aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/bcmdhd
diff options
context:
space:
mode:
authorAndrew Dodd <atd7@cornell.edu>2012-08-12 10:02:48 +0200
committerDaniel Hillenbrand <daniel.hillenbrand@codeworkx.de>2012-08-12 10:02:48 +0200
commitedd8a9171858fad7713b8fc07b158df5114b3c1a (patch)
treef1ed361f6075a9f72da9779e971a34c11155f3fb /drivers/net/wireless/bcmdhd
parent4ebf6fb174e2c7a853a991377319c50d497795a0 (diff)
downloadkernel_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.c59
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)