]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - build-utilities/hostap.git/commitdiff
nl80211: Add and align rx filters IDs
authorEyal Shapira <eyal@wizery.com>
Tue, 21 Feb 2012 22:59:19 +0000 (00:59 +0200)
committerEyal Shapira <eyal@wizery.com>
Thu, 15 Mar 2012 16:42:16 +0000 (18:42 +0200)
Add more patterns (SSDP, ARP, DHCP) and align IDs to a common
vendor Android framework implementation.
Note that ARP pattern shouldn't be used as our FW
responds to ARPs by default without waking up the host.
It is added only for ID alignments purposes.

src/drivers/driver_nl80211.c

index e4072c0ac6407b6418d3dac108a13504830b05d3..c9ed051d63b5c869fd21c3d8cc763ecd8ca4dea1 100644 (file)
@@ -8777,6 +8777,7 @@ nl80211_self_filter_get_pattern_handler(u8 *buf, int buflen, void *arg)
 }
 
 static struct rx_filter rx_filters[] = {
+       /* ID 0 */
        {.name = "self",
         .pattern = {},
         .pattern_len = 6,
@@ -8785,6 +8786,7 @@ static struct rx_filter rx_filters[] = {
         .get_pattern_handler = nl80211_self_filter_get_pattern_handler,
        },
 
+       /* ID 1 */
        {.name = "bcast",
         .pattern = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
         .pattern_len = 6,
@@ -8792,6 +8794,7 @@ static struct rx_filter rx_filters[] = {
         .mask_len = 1,
        },
 
+       /* ID 2 */
        {.name = "ipv4mc",
         .pattern = {0x01,0x00,0x5E},
         .pattern_len = 3,
@@ -8799,6 +8802,7 @@ static struct rx_filter rx_filters[] = {
         .mask_len = 1,
        },
 
+       /* ID 3 */
        {.name = "ipv6mc",
         .pattern = {0x33,0x33},
         .pattern_len = 2,
@@ -8806,18 +8810,45 @@ static struct rx_filter rx_filters[] = {
         .mask_len = 1,
        },
 
+       /* ID 4 */
        {.name = "dhcp",
-        .pattern = {0   , 0   , 0   , 0   , 0   , 0   , 0   , 0   ,
+        .pattern = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0   , 0   ,
                     0   , 0   , 0   , 0   , 0   , 0   , 0x45, 0   ,
                     0   , 0   , 0   , 0   , 0   , 0   , 0   , 0x11,
                     0   , 0   , 0   , 0   , 0   , 0   , 0   , 0   ,
                     0   , 0   , 0   , 0   , 0x00, 0x44},
         .pattern_len = 38,
-        .mask = { 0,                                 /* OCTET 1 */
-                  BIT(6),                            /* OCTET 2 */
-                  BIT(7),                            /* OCTET 3 */
-                  0,                                 /* OCTET 4 */
-                  BIT(4) | BIT(5) },                 /* OCTET 5 */
+        .mask = { BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5),
+                  BIT(6),                               /* OCTET 2 */
+                  BIT(7),                               /* OCTET 3 */
+                  0,                                    /* OCTET 4 */
+                  BIT(4) | BIT(5) },                    /* OCTET 5 */
+        .mask_len = 5,
+       },
+
+       /* ID 5 */
+       {.name = "arp",
+        .pattern = {0   , 0   , 0   , 0   , 0   , 0   , 0   , 0   ,
+                    0   , 0   , 0   , 0   , 0x08, 0x06},
+        .pattern_len = 14,
+        .mask = { 0,                                    /* OCTET 1 */
+                  BIT(4) | BIT(5) },                    /* OCTET 2 */
+        .mask_len = 2,
+       },
+
+       /* ID 6 */
+       {.name = "ssdp",
+        .pattern = {0x01, 0x00, 0x5E, 0   , 0   , 0   , 0   , 0   ,
+                    0   , 0   , 0   , 0   , 0   , 0   , 0x45, 0   ,
+                    0   , 0   , 0   , 0   , 0   , 0   , 0   , 0x11,
+                    0   , 0   , 0   , 0   , 0   , 0   , 0xEF, 0xFF,
+                    0xFF, 0xFA, 0   , 0   , 0x07, 0x6C},
+        .pattern_len = 38,
+        .mask = { BIT(0) | BIT(1) | BIT(2),             /* OCTET 1 */
+                  BIT(6),                               /* OCTET 2 */
+                  BIT(7),                               /* OCTET 3 */
+                  BIT(6) | BIT(7),                      /* OCTET 4 */
+                  BIT(0) | BIT(1) | BIT(4) | BIT(5) },  /* OCTET 5 */
         .mask_len = 5,
        },
 };