diff options
author | Assaf Krauss <assaf.krauss@intel.com> | 2008-06-15 11:23:29 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-06-26 16:49:14 -0400 |
commit | f2df38596a81b6c24f4586b0b4befeaebf3e02db (patch) | |
tree | 3906ec28e75cb84b9644b94a8cec202c61f4f0f6 /include/linux/ieee80211.h | |
parent | b99a017c01bb19b58fd0826e36a1bdacf581c545 (diff) |
mac80211: 11h Infrastructure - Parsing
This patch introduces parsing of 11h and 11d related elements from incoming
management frames.
Signed-off-by: Assaf Krauss <assaf.krauss@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/linux/ieee80211.h')
-rw-r--r-- | include/linux/ieee80211.h | 54 |
1 files changed, 51 insertions, 3 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 2998e3b5f166..8546f09e462c 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -469,6 +469,40 @@ struct ieee80211s_hdr { | |||
469 | u8 eaddr3[6]; | 469 | u8 eaddr3[6]; |
470 | } __attribute__ ((packed)); | 470 | } __attribute__ ((packed)); |
471 | 471 | ||
472 | /** | ||
473 | * struct ieee80211_quiet_ie | ||
474 | * | ||
475 | * This structure refers to "Quiet information element" | ||
476 | */ | ||
477 | struct ieee80211_quiet_ie { | ||
478 | u8 count; | ||
479 | u8 period; | ||
480 | __le16 duration; | ||
481 | __le16 offset; | ||
482 | } __attribute__ ((packed)); | ||
483 | |||
484 | /** | ||
485 | * struct ieee80211_msrment_ie | ||
486 | * | ||
487 | * This structure refers to "Measurement Request/Report information element" | ||
488 | */ | ||
489 | struct ieee80211_msrment_ie { | ||
490 | u8 token; | ||
491 | u8 mode; | ||
492 | u8 type; | ||
493 | u8 request[0]; | ||
494 | } __attribute__ ((packed)); | ||
495 | |||
496 | /** | ||
497 | * struct ieee80211_channel_sw_ie | ||
498 | * | ||
499 | * This structure refers to "Channel Switch Announcement information element" | ||
500 | */ | ||
501 | struct ieee80211_channel_sw_ie { | ||
502 | u8 mode; | ||
503 | u8 new_ch_num; | ||
504 | u8 count; | ||
505 | } __attribute__ ((packed)); | ||
472 | 506 | ||
473 | struct ieee80211_mgmt { | 507 | struct ieee80211_mgmt { |
474 | __le16 frame_control; | 508 | __le16 frame_control; |
@@ -544,13 +578,18 @@ struct ieee80211_mgmt { | |||
544 | u8 action_code; | 578 | u8 action_code; |
545 | u8 element_id; | 579 | u8 element_id; |
546 | u8 length; | 580 | u8 length; |
547 | u8 switch_mode; | 581 | struct ieee80211_channel_sw_ie sw_elem; |
548 | u8 new_chan; | ||
549 | u8 switch_count; | ||
550 | } __attribute__((packed)) chan_switch; | 582 | } __attribute__((packed)) chan_switch; |
551 | struct{ | 583 | struct{ |
552 | u8 action_code; | 584 | u8 action_code; |
553 | u8 dialog_token; | 585 | u8 dialog_token; |
586 | u8 element_id; | ||
587 | u8 length; | ||
588 | struct ieee80211_msrment_ie msr_elem; | ||
589 | } __attribute__((packed)) measurement; | ||
590 | struct{ | ||
591 | u8 action_code; | ||
592 | u8 dialog_token; | ||
554 | __le16 capab; | 593 | __le16 capab; |
555 | __le16 timeout; | 594 | __le16 timeout; |
556 | __le16 start_seq_num; | 595 | __le16 start_seq_num; |
@@ -875,6 +914,15 @@ enum ieee80211_category { | |||
875 | WLAN_CATEGORY_WMM = 17, | 914 | WLAN_CATEGORY_WMM = 17, |
876 | }; | 915 | }; |
877 | 916 | ||
917 | /* SPECTRUM_MGMT action code */ | ||
918 | enum ieee80211_spectrum_mgmt_actioncode { | ||
919 | WLAN_ACTION_SPCT_MSR_REQ = 0, | ||
920 | WLAN_ACTION_SPCT_MSR_RPRT = 1, | ||
921 | WLAN_ACTION_SPCT_TPC_REQ = 2, | ||
922 | WLAN_ACTION_SPCT_TPC_RPRT = 3, | ||
923 | WLAN_ACTION_SPCT_CHL_SWITCH = 4, | ||
924 | }; | ||
925 | |||
878 | /* BACK action code */ | 926 | /* BACK action code */ |
879 | enum ieee80211_back_actioncode { | 927 | enum ieee80211_back_actioncode { |
880 | WLAN_ACTION_ADDBA_REQ = 0, | 928 | WLAN_ACTION_ADDBA_REQ = 0, |