Sniffer mode: wifi_pkt_rx_ctrl_t 11n not working?
Posted: Sat Jun 24, 2017 7:34 pm
https://github.com/espressif/esp-idf/bl ... fi_types.h
I have set the wifi card into sniffer mode but I am not getting any 11n packets? and hence none of the 11n fields are getting populated. They are always 0. Also, the "rate" field seems to be only the values "11" or "0" for me. No other value is shown even though packets are being captured successfully.
I am not sure what do I have to do to capture 11n packets? and get the rest of the fields populated?
Code: Select all
typedef struct {
signed rssi:8; /**< signal intensity of packet */
unsigned rate:5; /**< data rate */
unsigned :1; /**< reserve */
unsigned sig_mode:2; /**< 0:is not 11n packet; 1:is 11n packet */
unsigned :16; /**< reserve */
unsigned mcs:7; /**< if is 11n packet, shows the modulation(range from 0 to 76) */
unsigned cwb:1; /**< if is 11n packet, shows if is HT40 packet or not */
unsigned :16; /**< reserve */
unsigned smoothing:1; /**< reserve */
unsigned not_sounding:1; /**< reserve */
unsigned :1; /**< reserve */
unsigned aggregation:1; /**< Aggregation */
unsigned stbc:2; /**< STBC */
unsigned fec_coding:1; /**< if is 11n packet, shows if is LDPC packet or not */
unsigned sgi:1; /**< SGI */
unsigned noise_floor:8; /**< noise floor */
unsigned ampdu_cnt:8; /**< ampdu cnt */
unsigned channel:4; /**< which channel this packet in */
unsigned :12; /**< reserve */
unsigned timestamp:32; /**< timestamp */
unsigned :32; /**< reserve */
unsigned :32; /**< reserve */
unsigned sig_len:12; /**< It is really lenth of packet */
unsigned :12; /**< reserve */
unsigned rx_state:8; /**< rx state */
} wifi_pkt_rx_ctrl_t;
I am not sure what do I have to do to capture 11n packets? and get the rest of the fields populated?