X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/f2aee3ed6da6e461957df0b77eae780c55f7a6c1..4c2790a43252b9cac1fe7f6b50b51c3c55d2370a:/ieee802_11.h?ds=sidebyside diff --git a/ieee802_11.h b/ieee802_11.h index b921c8f8..2aa13450 100644 --- a/ieee802_11.h +++ b/ieee802_11.h @@ -30,6 +30,7 @@ #define IEEE802_11_RA_LEN 6 #define IEEE802_11_TA_LEN 6 #define IEEE802_11_SEQ_LEN 2 +#define IEEE802_11_CTL_LEN 2 #define IEEE802_11_IV_LEN 3 #define IEEE802_11_KID_LEN 1 @@ -67,20 +68,20 @@ #define ST_DISASSOC 0xA #define ST_AUTH 0xB #define ST_DEAUTH 0xC -/* RESERVED 0xD */ +#define ST_ACTION 0xD /* RESERVED 0xE */ /* RESERVED 0xF */ #define CTRL_CONTROL_WRAPPER 0x7 -#define CTRL_BLOCK_ACK_REQ 0x8 -#define CTRL_BLOCK_ACK 0x9 -#define CTRL_PS_POLL 0xA -#define CTRL_RTS 0xB -#define CTRL_CTS 0xC -#define CTRL_ACK 0xD -#define CTRL_CF_END 0xE -#define CTRL_END_ACK 0xF +#define CTRL_BAR 0x8 +#define CTRL_BA 0x9 +#define CTRL_PS_POLL 0xA +#define CTRL_RTS 0xB +#define CTRL_CTS 0xC +#define CTRL_ACK 0xD +#define CTRL_CF_END 0xE +#define CTRL_END_ACK 0xF #define DATA_DATA 0x0 #define DATA_DATA_CF_ACK 0x1 @@ -143,12 +144,6 @@ struct mgmt_header_t { #define CAPABILITY_CFP_REQ(cap) ((cap) & 0x0008) #define CAPABILITY_PRIVACY(cap) ((cap) & 0x0010) -typedef enum { - NOT_PRESENT, - PRESENT, - TRUNCATED -} elem_status_t; - struct ssid_t { u_int8_t element_id; u_int8_t length; @@ -236,20 +231,20 @@ struct mgmt_body_t { u_int16_t reason_code; u_int16_t auth_alg; u_int16_t auth_trans_seq_num; - elem_status_t challenge_status; + int challenge_present; struct challenge_t challenge; u_int16_t capability_info; - elem_status_t ssid_status; + int ssid_present; struct ssid_t ssid; - elem_status_t rates_status; + int rates_present; struct rates_t rates; - elem_status_t ds_status; + int ds_present; struct ds_t ds; - elem_status_t cf_status; + int cf_present; struct cf_t cf; - elem_status_t fh_status; + int fh_present; struct fh_t fh; - elem_status_t tim_status; + int tim_present; struct tim_t tim; }; @@ -315,27 +310,37 @@ struct ctrl_end_ack_t { #define CTRL_END_ACK_HDRLEN (IEEE802_11_FC_LEN+IEEE802_11_DUR_LEN+\ IEEE802_11_RA_LEN+IEEE802_11_BSSID_LEN) -struct ctrl_block_ack_req_t { +struct ctrl_ba_t { u_int16_t fc; u_int16_t duration; u_int8_t ra[6]; - u_int8_t ta[6]; - u_int16_t bar_control; + u_int8_t fcs[4]; }; -#define CTRL_BLOCK_ACK_REQ_HDRLEN (IEEE802_11_FC_LEN+IEEE802_11_DUR_LEN+\ - IEEE802_11_RA_LEN+IEEE802_11_TA_LEN) +#define CTRL_BA_HDRLEN (IEEE802_11_FC_LEN+IEEE802_11_DUR_LEN+IEEE802_11_RA_LEN) -struct ctrl_block_ack_t { +struct ctrl_bar_t { u_int16_t fc; - u_int16_t duration; + u_int16_t dur; u_int8_t ra[6]; u_int8_t ta[6]; - u_int16_t ba_control; + u_int16_t ctl; + u_int16_t seq; + u_int8_t fcs[4]; }; -#define CTRL_BLOCK_ACK_HDRLEN (IEEE802_11_FC_LEN+IEEE802_11_DUR_LEN+\ - IEEE802_11_RA_LEN+IEEE802_11_TA_LEN) +#define CTRL_BAR_HDRLEN (IEEE802_11_FC_LEN+IEEE802_11_DUR_LEN+\ + IEEE802_11_RA_LEN+IEEE802_11_TA_LEN+\ + IEEE802_11_CTL_LEN+IEEE802_11_SEQ_LEN) + +struct meshcntl_t { + u_int8_t flags; + u_int8_t ttl; + u_int8_t seq[4]; + u_int8_t addr4[6]; + u_int8_t addr5[6]; + u_int8_t addr6[6]; +}; #define IV_IV(iv) ((iv) & 0xFFFFFF) #define IV_PAD(iv) (((iv) >> 24) & 0x3F)