aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>2010-05-27 08:32:13 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-06-03 14:10:45 -0400
commit2b2c009ecf71f4c66ff8420b63dddbc9737e04e3 (patch)
tree62f93194843ecf92d871d34963450c03d165af08 /net/mac80211/mlme.c
parent095dfdb0c479661f437b24b85e31f0d0b841eab6 (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/mlme.c')
-rw-r--r--net/mac80211/mlme.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 29c3a75a7ad0..7e720133358c 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -2078,8 +2078,17 @@ static enum work_done_result ieee80211_assoc_done(struct ieee80211_work *wk,
2078 cfg80211_send_assoc_timeout(wk->sdata->dev, 2078 cfg80211_send_assoc_timeout(wk->sdata->dev,
2079 wk->filter_ta); 2079 wk->filter_ta);
2080 return WORK_DONE_DESTROY; 2080 return WORK_DONE_DESTROY;
2081 } else {
2082 mutex_unlock(&wk->sdata->u.mgd.mtx);
2083
2084 /*
2085 * configure ARP filter IP addresses to the driver,
2086 * intentionally outside the mgd mutex.
2087 */
2088 rtnl_lock();
2089 ieee80211_set_arp_filter(wk->sdata);
2090 rtnl_unlock();
2081 } 2091 }
2082 mutex_unlock(&wk->sdata->u.mgd.mtx);
2083 } 2092 }
2084 2093
2085 cfg80211_send_rx_assoc(wk->sdata->dev, skb->data, skb->len); 2094 cfg80211_send_rx_assoc(wk->sdata->dev, skb->data, skb->len);