aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ti/wl1251/acx.h
diff options
context:
space:
mode:
authorDavid Gnedt <david.gnedt@davizone.at>2014-01-07 07:06:24 -0500
committerJohn W. Linville <linville@tuxdriver.com>2014-01-09 10:53:39 -0500
commit204cc5c44fb695ece1eab15dd6fb92340028106d (patch)
tree222a1e7a48d91db05cdd44b22108375bfaa6c419 /drivers/net/wireless/ti/wl1251/acx.h
parentf7ad1eed4d4b9d5f0b7ada151d5670e7cb33a6e7 (diff)
wl1251: implement hardware ARP filtering
Update hardware ARP filter configuration on BSS_CHANGED_ARP_FILTER notification from mac80211. Ported from wl1271 driver. Signed-off-by: David Gnedt <david.gnedt@davizone.at> Signed-off-by: Pali Rohár <pali.rohar@gmail.com> Signed-off-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ti/wl1251/acx.h')
-rw-r--r--drivers/net/wireless/ti/wl1251/acx.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wl1251/acx.h b/drivers/net/wireless/ti/wl1251/acx.h
index c2ba100f9b1a..ba9ddc05e47a 100644
--- a/drivers/net/wireless/ti/wl1251/acx.h
+++ b/drivers/net/wireless/ti/wl1251/acx.h
@@ -1232,6 +1232,20 @@ struct wl1251_acx_bet_enable {
1232 u8 padding[2]; 1232 u8 padding[2];
1233} __packed; 1233} __packed;
1234 1234
1235#define ACX_IPV4_VERSION 4
1236#define ACX_IPV6_VERSION 6
1237#define ACX_IPV4_ADDR_SIZE 4
1238struct wl1251_acx_arp_filter {
1239 struct acx_header header;
1240 u8 version; /* The IP version: 4 - IPv4, 6 - IPv6.*/
1241 u8 enable; /* 1 - ARP filtering is enabled, 0 - disabled */
1242 u8 padding[2];
1243 u8 address[16]; /* The IP address used to filter ARP packets.
1244 ARP packets that do not match this address are
1245 dropped. When the IP Version is 4, the last 12
1246 bytes of the the address are ignored. */
1247} __attribute__((packed));
1248
1235struct wl1251_acx_ac_cfg { 1249struct wl1251_acx_ac_cfg {
1236 struct acx_header header; 1250 struct acx_header header;
1237 1251
@@ -1473,6 +1487,7 @@ int wl1251_acx_mem_cfg(struct wl1251 *wl);
1473int wl1251_acx_wr_tbtt_and_dtim(struct wl1251 *wl, u16 tbtt, u8 dtim); 1487int wl1251_acx_wr_tbtt_and_dtim(struct wl1251 *wl, u16 tbtt, u8 dtim);
1474int wl1251_acx_bet_enable(struct wl1251 *wl, enum wl1251_acx_bet_mode mode, 1488int wl1251_acx_bet_enable(struct wl1251 *wl, enum wl1251_acx_bet_mode mode,
1475 u8 max_consecutive); 1489 u8 max_consecutive);
1490int wl1251_acx_arp_ip_filter(struct wl1251 *wl, bool enable, __be32 address);
1476int wl1251_acx_ac_cfg(struct wl1251 *wl, u8 ac, u8 cw_min, u16 cw_max, 1491int wl1251_acx_ac_cfg(struct wl1251 *wl, u8 ac, u8 cw_min, u16 cw_max,
1477 u8 aifs, u16 txop); 1492 u8 aifs, u16 txop);
1478int wl1251_acx_tid_cfg(struct wl1251 *wl, u8 queue, 1493int wl1251_acx_tid_cfg(struct wl1251 *wl, u8 queue,