diff options
author | Juuso Oikarinen <juuso.oikarinen@nokia.com> | 2010-05-27 08:32:13 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-06-03 14:10:45 -0400 |
commit | 2b2c009ecf71f4c66ff8420b63dddbc9737e04e3 (patch) | |
tree | 62f93194843ecf92d871d34963450c03d165af08 /net/mac80211/ieee80211_i.h | |
parent | 095dfdb0c479661f437b24b85e31f0d0b841eab6 (diff) |
mac80211: Add support for hardware ARP query filtering
Some hardware allow extended filtering of ARP frames not intended for
the host. To perform such filtering, the hardware needs to know the current
IP address(es) of the host, bound to its interface.
Add support for ARP filtering to mac80211 by adding a new op to the driver
interface, allowing to configure the current IP addresses. This op is called
upon association with the currently configured address(es), and when
associated whenever the IP address(es) change.
This patch adds configuration of IPv4 addresses only, as IPv6 addresses don't
need ARP filtering.
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index d4677efd3a36..47d67537f170 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -851,6 +851,7 @@ struct ieee80211_local { | |||
851 | struct work_struct dynamic_ps_disable_work; | 851 | struct work_struct dynamic_ps_disable_work; |
852 | struct timer_list dynamic_ps_timer; | 852 | struct timer_list dynamic_ps_timer; |
853 | struct notifier_block network_latency_notifier; | 853 | struct notifier_block network_latency_notifier; |
854 | struct notifier_block ifa_notifier; | ||
854 | 855 | ||
855 | int user_power_level; /* in dBm */ | 856 | int user_power_level; /* in dBm */ |
856 | int power_constr_level; /* in dBm */ | 857 | int power_constr_level; /* in dBm */ |
@@ -997,6 +998,7 @@ void ieee80211_send_pspoll(struct ieee80211_local *local, | |||
997 | void ieee80211_recalc_ps(struct ieee80211_local *local, s32 latency); | 998 | void ieee80211_recalc_ps(struct ieee80211_local *local, s32 latency); |
998 | int ieee80211_max_network_latency(struct notifier_block *nb, | 999 | int ieee80211_max_network_latency(struct notifier_block *nb, |
999 | unsigned long data, void *dummy); | 1000 | unsigned long data, void *dummy); |
1001 | int ieee80211_set_arp_filter(struct ieee80211_sub_if_data *sdata); | ||
1000 | void ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata, | 1002 | void ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata, |
1001 | struct ieee80211_channel_sw_ie *sw_elem, | 1003 | struct ieee80211_channel_sw_ie *sw_elem, |
1002 | struct ieee80211_bss *bss, | 1004 | struct ieee80211_bss *bss, |