diff options
author | Andrew Dodd <atd7@cornell.edu> | 2012-08-12 10:02:48 +0200 |
---|---|---|
committer | Daniel Hillenbrand <daniel.hillenbrand@codeworkx.de> | 2012-08-12 10:02:48 +0200 |
commit | edd8a9171858fad7713b8fc07b158df5114b3c1a (patch) | |
tree | f1ed361f6075a9f72da9779e971a34c11155f3fb /drivers/net/wireless/bcmdhd | |
parent | 4ebf6fb174e2c7a853a991377319c50d497795a0 (diff) | |
download | kernel_samsung_smdk4412-edd8a9171858fad7713b8fc07b158df5114b3c1a.zip kernel_samsung_smdk4412-edd8a9171858fad7713b8fc07b158df5114b3c1a.tar.gz kernel_samsung_smdk4412-edd8a9171858fad7713b8fc07b158df5114b3c1a.tar.bz2 |
bcmdhd: change packet filter settings to block multicast
Change-Id: Icdd509ea644a798fc9ab77e02541c2a20581e442
Diffstat (limited to 'drivers/net/wireless/bcmdhd')
-rw-r--r-- | drivers/net/wireless/bcmdhd/src/dhd/sys/dhd_linux.c | 59 |
1 files changed, 2 insertions, 57 deletions
diff --git a/drivers/net/wireless/bcmdhd/src/dhd/sys/dhd_linux.c b/drivers/net/wireless/bcmdhd/src/dhd/sys/dhd_linux.c index 0cd3971..da72c75 100644 --- a/drivers/net/wireless/bcmdhd/src/dhd/sys/dhd_linux.c +++ b/drivers/net/wireless/bcmdhd/src/dhd/sys/dhd_linux.c @@ -3816,31 +3816,9 @@ dhd_preinit_ioctls(dhd_pub_t *dhd) #ifdef PKT_FILTER_SUPPORT /* Setup defintions for pktfilter , enable in suspend */ - dhd->pktfilter_count = 4; -#ifdef GAN_LITE_NAT_KEEPALIVE_FILTER - /* Setup filter to block broadcast and NAT Keepalive packets */ - dhd->pktfilter[0] = "100 0 0 0 0xffffff 0xffffff"; /* discard all broadcast packets */ - dhd->pktfilter[1] = "102 0 0 36 0xffffffff 0x11940009"; /* discard NAT Keepalive packets */ - dhd->pktfilter[2] = "104 0 0 38 0xffffffff 0x11940009"; /* discard NAT Keepalive packets */ - dhd->pktfilter[3] = NULL; -#else - /* Setup filter to allow only unicast */ -#if defined(CUSTOMER_HW_SAMSUNG) - dhd->pktfilter_count = 5; - dhd->pktfilter[0] = "100 0 0 0 " - HEX_PREF_STR UNI_FILTER_STR ZERO_ADDR_STR ETHER_TYPE_STR IPV6_FILTER_STR - " " - HEX_PREF_STR ZERO_ADDR_STR ZERO_ADDR_STR ETHER_TYPE_STR ZERO_TYPE_STR; - dhd->pktfilter[4] = "104 0 0 0 0xFFFFFF 0x01005E"; - /* customer want to get IPV4 multicast packets */ -#else -#error Customer want to filter out all IPV6 packets + dhd->pktfilter_count = 1; dhd->pktfilter[0] = "100 0 0 0 0x01 0x00"; -#endif - dhd->pktfilter[1] = NULL; - dhd->pktfilter[2] = NULL; - dhd->pktfilter[3] = NULL; -#endif /* GAN_LITE_NAT_KEEPALIVE_FILTER */ + #if defined(SOFTAP) if (ap_fw_loaded) { int i; @@ -5055,40 +5033,7 @@ int net_os_set_dtim_skip(struct net_device *dev, int val) int net_os_rxfilter_add_remove(struct net_device *dev, int add_remove, int num) { -#ifndef GAN_LITE_NAT_KEEPALIVE_FILTER - dhd_info_t *dhd = *(dhd_info_t **)netdev_priv(dev); - char *filterp = NULL; - int ret = 0; - - if (!dhd || (num == DHD_UNICAST_FILTER_NUM)) - return ret; - if (num >= dhd->pub.pktfilter_count) - return -EINVAL; - if (add_remove) { - switch (num) { - case DHD_BROADCAST_FILTER_NUM: - filterp = "101 0 0 0 0xFFFFFFFFFFFF 0xFFFFFFFFFFFF"; - break; - case DHD_MULTICAST4_FILTER_NUM: - filterp = "102 0 0 0 0xFFFFFF 0x01005E"; - break; - case DHD_MULTICAST6_FILTER_NUM: -#if defined(CUSTOMER_HW_SAMSUNG) -/* customer want to use NO IPV6 packets only */ - return ret; -#endif - filterp = "103 0 0 0 0xFFFF 0x3333"; - break; - default: - return -EINVAL; - } - } - dhd->pub.pktfilter[num] = filterp; - dhd_pktfilter_offload_set(&dhd->pub, dhd->pub.pktfilter[num]); - return ret; -#else return 0; -#endif /* GAN_LITE_NAT_KEEPALIVE_FILTER */ } int net_os_set_packet_filter(struct net_device *dev, int val) |