summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/wsm.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/cw1200/wsm.h')
-rw-r--r--drivers/staging/cw1200/wsm.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/staging/cw1200/wsm.h b/drivers/staging/cw1200/wsm.h
index d8db64da9b3..9b33a6e2b83 100644
--- a/drivers/staging/cw1200/wsm.h
+++ b/drivers/staging/cw1200/wsm.h
@@ -358,6 +358,7 @@ struct cw1200_common;
/* 4.5 dot11GroupAddressesTable */
#define WSM_MIB_ID_DOT11_GROUP_ADDRESSES_TABLE 0x0004
+#define WSM_MAX_GRP_ADDRTABLE_ENTRIES 8
/* 4.6 dot11WepDefaultKeyId */
#define WSM_MIB_ID_DOT11_WEP_DEFAULT_KEY_ID 0x0005
@@ -1446,6 +1447,33 @@ static inline int wsm_set_bssid_filtering(struct cw1200_common *priv,
&arg, sizeof(arg));
}
+/* Multicat filtering - 4.5 */
+struct wsm_multicast_filter {
+ __le32 enable;
+ __le32 numOfAddresses;
+ u8 macAddress[WSM_MAX_GRP_ADDRTABLE_ENTRIES][ETH_ALEN];
+} __packed;
+
+static inline int wsm_set_multicast_filter(struct cw1200_common *priv,
+ struct wsm_multicast_filter *fp)
+{
+ return wsm_write_mib(priv, WSM_MIB_ID_DOT11_GROUP_ADDRESSES_TABLE,
+ fp, sizeof(*fp));
+}
+
+/* IPv4 filtering - 4.10 */
+struct wsm_ipv4_filter {
+ __le32 enable;
+ u8 ipv4Address[4];
+} __packed;
+
+static inline int wsm_set_ipv4_arp_filter(struct cw1200_common *priv,
+ struct wsm_ipv4_filter *fp)
+{
+ return wsm_write_mib(priv, WSM_MIB_ID_ARP_IP_ADDRESSES_TABLE,
+ fp, sizeof(*fp));
+}
+
/* UseMultiTxConfMessage */
static inline int wsm_use_multi_tx_conf(struct cw1200_common *priv,