Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 #ifndef IEEE80211_H
00047 #define IEEE80211_H
00048
00049 #define FCS_LEN 4
00050
00051 #define IEEE80211_FCTL_VERS 0x0003
00052 #define IEEE80211_FCTL_FTYPE 0x000c
00053 #define IEEE80211_FCTL_STYPE 0x00f0
00054 #define IEEE80211_FCTL_TODS 0x0100
00055 #define IEEE80211_FCTL_FROMDS 0x0200
00056 #define IEEE80211_FCTL_MOREFRAGS 0x0400
00057 #define IEEE80211_FCTL_RETRY 0x0800
00058 #define IEEE80211_FCTL_PM 0x1000
00059 #define IEEE80211_FCTL_MOREDATA 0x2000
00060 #define IEEE80211_FCTL_PROTECTED 0x4000
00061 #define IEEE80211_FCTL_ORDER 0x8000
00062
00063 #define IEEE80211_SCTL_FRAG 0x000F
00064 #define IEEE80211_SCTL_SEQ 0xFFF0
00065
00066 #define IEEE80211_FTYPE_MGMT 0x0000
00067 #define IEEE80211_FTYPE_CTL 0x0004
00068 #define IEEE80211_FTYPE_DATA 0x0008
00069
00070
00071 #define IEEE80211_STYPE_ASSOC_REQ 0x0000
00072 #define IEEE80211_STYPE_ASSOC_RESP 0x0010
00073 #define IEEE80211_STYPE_REASSOC_REQ 0x0020
00074 #define IEEE80211_STYPE_REASSOC_RESP 0x0030
00075 #define IEEE80211_STYPE_PROBE_REQ 0x0040
00076 #define IEEE80211_STYPE_PROBE_RESP 0x0050
00077 #define IEEE80211_STYPE_BEACON 0x0080
00078 #define IEEE80211_STYPE_ATIM 0x0090
00079 #define IEEE80211_STYPE_DISASSOC 0x00A0
00080 #define IEEE80211_STYPE_AUTH 0x00B0
00081 #define IEEE80211_STYPE_DEAUTH 0x00C0
00082 #define IEEE80211_STYPE_ACTION 0x00D0
00083
00084
00085 #define IEEE80211_STYPE_BACK_REQ 0x0080
00086 #define IEEE80211_STYPE_BACK 0x0090
00087 #define IEEE80211_STYPE_PSPOLL 0x00A0
00088 #define IEEE80211_STYPE_RTS 0x00B0
00089 #define IEEE80211_STYPE_CTS 0x00C0
00090 #define IEEE80211_STYPE_ACK 0x00D0
00091 #define IEEE80211_STYPE_CFEND 0x00E0
00092 #define IEEE80211_STYPE_CFENDACK 0x00F0
00093
00094
00095 #define IEEE80211_STYPE_DATA 0x0000
00096 #define IEEE80211_STYPE_DATA_CFACK 0x0010
00097 #define IEEE80211_STYPE_DATA_CFPOLL 0x0020
00098 #define IEEE80211_STYPE_DATA_CFACKPOLL 0x0030
00099 #define IEEE80211_STYPE_NULLFUNC 0x0040
00100 #define IEEE80211_STYPE_CFACK 0x0050
00101 #define IEEE80211_STYPE_CFPOLL 0x0060
00102 #define IEEE80211_STYPE_CFACKPOLL 0x0070
00103 #define IEEE80211_STYPE_QOS_DATA 0x0080
00104 #define IEEE80211_STYPE_QOS_DATA_CFACK 0x0090
00105 #define IEEE80211_STYPE_QOS_DATA_CFPOLL 0x00A0
00106 #define IEEE80211_STYPE_QOS_DATA_CFACKPOLL 0x00B0
00107 #define IEEE80211_STYPE_QOS_NULLFUNC 0x00C0
00108 #define IEEE80211_STYPE_QOS_CFACK 0x00D0
00109 #define IEEE80211_STYPE_QOS_CFPOLL 0x00E0
00110 #define IEEE80211_STYPE_QOS_CFACKPOLL 0x00F0
00111
00112
00113
00114 #define IEEE80211_MAX_FRAG_THRESHOLD 2352
00115 #define IEEE80211_MAX_RTS_THRESHOLD 2353
00116 #define IEEE80211_MAX_AID 2007
00117 #define IEEE80211_MAX_TIM_LEN 251
00118
00119
00120
00121
00122
00123 #define IEEE80211_MAX_DATA_LEN 2304
00124
00125 #define IEEE80211_MAX_FRAME_LEN 2352
00126
00127 #define IEEE80211_MAX_SSID_LEN 32
00128
00129 #define IEEE80211_4ADDR_LEN 30
00130 #define IEEE80211_3ADDR_LEN 24
00131
00132 struct ieee80211_hdr {
00133 __le16 frame_control;
00134 __le16 duration_id;
00135 u8 addr1[6];
00136 u8 addr2[6];
00137 u8 addr3[6];
00138 __le16 seq_ctrl;
00139 u8 addr4[6];
00140 } __attribute__ ((packed));
00141
00142
00143 #define P80211_OUI_LEN 3
00144
00145 struct ieee80211_snap_hdr {
00146
00147 u8 dsap;
00148 u8 ssap;
00149 u8 ctrl;
00150 u8 oui[P80211_OUI_LEN];
00151
00152 } __attribute__ ((packed));
00153
00154 #define SNAP_SIZE sizeof(struct ieee80211_snap_hdr)
00155
00156
00157 #endif
00158