diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2007-12-18 19:31:22 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:59:45 -0500 |
commit | ce3edf6d0b979fa4d5da7204fd8c6f77f2b8622a (patch) | |
tree | 3608f59fa3c437edfe132a603775111a03dce453 /net/mac80211/ieee80211_i.h | |
parent | 1946b74ce03c4edecabde80d027da00a7eab56ca (diff) |
mac80211: clean up eapol frame handling/port control
This cleans up the eapol frame handling and some related code in the
receive and transmit paths. After this patch
* EAPOL frames addressed to us or the EAPOL group address are
always accepted regardless of whether they are encrypted or not
* other frames from a station are dropped if PAE is enabled and
the station is not authorized
* unencrypted frames (except the EAPOL frames above) are dropped if
drop_unencrypted is enabled
* some superfluous code that eth_type_trans handles anyway is gone
* port control is done for transmitted packets
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index b54ed5fe4aa3..214109b8d95a 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -306,11 +306,11 @@ struct ieee80211_sub_if_data { | |||
306 | unsigned int flags; | 306 | unsigned int flags; |
307 | 307 | ||
308 | int drop_unencrypted; | 308 | int drop_unencrypted; |
309 | int eapol; /* 0 = process EAPOL frames as normal data frames, | 309 | /* |
310 | * 1 = send EAPOL frames through wlan#ap to hostapd | 310 | * IEEE 802.1X Port access control in effect, |
311 | * (default) */ | 311 | * drop packets to/from unauthorized port |
312 | int ieee802_1x; /* IEEE 802.1X PAE - drop packet to/from unauthorized | 312 | */ |
313 | * port */ | 313 | int ieee802_1x_pac; |
314 | 314 | ||
315 | u16 sequence; | 315 | u16 sequence; |
316 | 316 | ||
@@ -339,8 +339,7 @@ struct ieee80211_sub_if_data { | |||
339 | struct { | 339 | struct { |
340 | struct dentry *channel_use; | 340 | struct dentry *channel_use; |
341 | struct dentry *drop_unencrypted; | 341 | struct dentry *drop_unencrypted; |
342 | struct dentry *eapol; | 342 | struct dentry *ieee802_1x_pac; |
343 | struct dentry *ieee8021_x; | ||
344 | struct dentry *state; | 343 | struct dentry *state; |
345 | struct dentry *bssid; | 344 | struct dentry *bssid; |
346 | struct dentry *prev_bssid; | 345 | struct dentry *prev_bssid; |
@@ -359,8 +358,7 @@ struct ieee80211_sub_if_data { | |||
359 | struct { | 358 | struct { |
360 | struct dentry *channel_use; | 359 | struct dentry *channel_use; |
361 | struct dentry *drop_unencrypted; | 360 | struct dentry *drop_unencrypted; |
362 | struct dentry *eapol; | 361 | struct dentry *ieee802_1x_pac; |
363 | struct dentry *ieee8021_x; | ||
364 | struct dentry *num_sta_ps; | 362 | struct dentry *num_sta_ps; |
365 | struct dentry *dtim_period; | 363 | struct dentry *dtim_period; |
366 | struct dentry *dtim_count; | 364 | struct dentry *dtim_count; |
@@ -374,15 +372,13 @@ struct ieee80211_sub_if_data { | |||
374 | struct { | 372 | struct { |
375 | struct dentry *channel_use; | 373 | struct dentry *channel_use; |
376 | struct dentry *drop_unencrypted; | 374 | struct dentry *drop_unencrypted; |
377 | struct dentry *eapol; | 375 | struct dentry *ieee802_1x_pac; |
378 | struct dentry *ieee8021_x; | ||
379 | struct dentry *peer; | 376 | struct dentry *peer; |
380 | } wds; | 377 | } wds; |
381 | struct { | 378 | struct { |
382 | struct dentry *channel_use; | 379 | struct dentry *channel_use; |
383 | struct dentry *drop_unencrypted; | 380 | struct dentry *drop_unencrypted; |
384 | struct dentry *eapol; | 381 | struct dentry *ieee802_1x_pac; |
385 | struct dentry *ieee8021_x; | ||
386 | } vlan; | 382 | } vlan; |
387 | struct { | 383 | struct { |
388 | struct dentry *mode; | 384 | struct dentry *mode; |