1 #ifndef _BES_SNIFFER_H_ 2 #define _BES_SNIFFER_H_ 3 4 #define SNIFFER_STATE_ENABLE_MASK 0x001 5 #define SNIFFER_STATE_DISABLE 0x000 6 #define SNIFFER_STATE_ENABLE 0x001 7 #define SNIFFER_STATE_MGMT 0x002 8 #define SNIFFER_STATE_FROMDS 0x004 9 #define SNIFFER_STATE_TODS 0x008 10 #define SNIFFER_STATE_40M 0x010 11 #define SNIFFER_STATE_ACK 0x020 12 #define SNIFFER_STATE_RTSCTX 0x040 13 #define SNIFFER_STATE_NULL 0x080 14 15 enum TYPESUBTYPE_T 16 { 17 ASSOC_REQ = 0x00, 18 ASSOC_RSP = 0x10, 19 REASSOC_REQ = 0x20, 20 REASSOC_RSP = 0x30, 21 PROBE_REQ = 0x40, 22 PROBE_RSP = 0x50, 23 BEACON = 0x80, 24 ATIM = 0x90, 25 DISASOC = 0xA0, 26 AUTH = 0xB0, 27 DEAUTH = 0xC0, 28 ACTION = 0xD0, 29 PS_POLL = 0xA4, 30 RTS = 0xB4, 31 CTS = 0xC4, 32 ACK = 0xD4, 33 CFEND = 0xE4, 34 CFEND_ACK = 0xF4, 35 DATA = 0x08, 36 DATA_ACK = 0x18, 37 DATA_POLL = 0x28, 38 DATA_POLL_ACK = 0x38, 39 NULL_FRAME = 0x48, 40 CFACK = 0x58, 41 CFPOLL = 0x68, 42 CFPOLL_ACK = 0x78, 43 QOS_DATA = 0x88, 44 QOS_DATA_ACK = 0x98, 45 QOS_DATA_POLL = 0xA8, 46 QOS_DATA_POLL_ACK = 0xB8, 47 QOS_NULL_FRAME = 0xC8, 48 QOS_CFPOLL = 0xE8, 49 QOS_CFPOLL_ACK = 0xF8, 50 BLOCKACK_REQ = 0x84, 51 BLOCKACK = 0x94 52 }; 53 54 typedef int (*sniffer_handler_t)(unsigned short data_len, void *data); 55 56 int bes_sniffer_start(sniffer_handler_t handler); 57 int bes_sniffer_stop(void); 58 int bes_sniffer_set_channel(u8 channel); 59 int bes_sniffer_set_filter(u8 f_mgmt, u8 f_fromds, u8 f_tods, u8 f_error, u8 f_ack, u8 f_rts, u8 f_null); 60 int bes_sniffer_send_mgmt_frame(u8 channel, const u8 *data, size_t len); 61 62 #endif 63