diff options
Diffstat (limited to 'drivers/staging/cw1200/wsm.h')
-rw-r--r-- | drivers/staging/cw1200/wsm.h | 28 |
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, |