#ifndef _IF_WAVELAN_IEEE_H
#define _IF_WAVELAN_IEEE_H
#ifndef SIOCSWAVELAN
#define SIOCSWAVELAN SIOCSIFGENERIC
#endif
#ifndef SIOCGWAVELAN
#define SIOCGWAVELAN SIOCGIFGENERIC
#endif
#define WI_MAX_DATALEN 512
struct wi_req {
u_int16_t wi_len;
u_int16_t wi_type;
u_int16_t wi_val[WI_MAX_DATALEN];
};
#define WI_RID_IFACE_STATS 0x0100
#define WI_RID_MGMT_XMIT 0x0200
#ifdef WICACHE
#define WI_RID_ZERO_CACHE 0x0300
#define WI_RID_READ_CACHE 0x0400
#endif
#define WI_RID_MONITOR_MODE 0x0500
#define WI_RID_SCAN_APS 0x0600
#define WI_RID_READ_APS 0x0700
struct wi_80211_hdr {
u_int16_t frame_ctl;
u_int16_t dur_id;
u_int8_t addr1[6];
u_int8_t addr2[6];
u_int8_t addr3[6];
u_int16_t seq_ctl;
u_int8_t addr4[6];
};
#define WI_FCTL_VERS 0x0002
#define WI_FCTL_FTYPE 0x000C
#define WI_FCTL_STYPE 0x00F0
#define WI_FCTL_TODS 0x0100
#define WI_FCTL_FROMDS 0x0200
#define WI_FCTL_MOREFRAGS 0x0400
#define WI_FCTL_RETRY 0x0800
#define WI_FCTL_PM 0x1000
#define WI_FCTL_MOREDATA 0x2000
#define WI_FCTL_WEP 0x4000
#define WI_FCTL_ORDER 0x8000
#define WI_FTYPE_MGMT 0x0000
#define WI_FTYPE_CTL 0x0004
#define WI_FTYPE_DATA 0x0008
#define WI_STYPE_MGMT_ASREQ 0x0000
#define WI_STYPE_MGMT_ASRESP 0x0010
#define WI_STYPE_MGMT_REASREQ 0x0020
#define WI_STYPE_MGMT_REASRESP 0x0030
#define WI_STYPE_MGMT_PROBEREQ 0x0040
#define WI_STYPE_MGMT_PROBERESP 0x0050
#define WI_STYPE_MGMT_BEACON 0x0080
#define WI_STYPE_MGMT_ATIM 0x0090
#define WI_STYPE_MGMT_DISAS 0x00A0
#define WI_STYPE_MGMT_AUTH 0x00B0
#define WI_STYPE_MGMT_DEAUTH 0x00C0
#define WI_STYPE_CTL_PSPOLL 0x00A0
#define WI_STYPE_CTL_RTS 0x00B0
#define WI_STYPE_CTL_CTS 0x00C0
#define WI_STYPE_CTL_ACK 0x00D0
#define WI_STYPE_CTL_CFEND 0x00E0
#define WI_STYPE_CTL_CFENDACK 0x00F0
struct wi_mgmt_hdr {
u_int16_t frame_ctl;
u_int16_t duration;
u_int8_t dst_addr[6];
u_int8_t src_addr[6];
u_int8_t bssid[6];
u_int16_t seq_ctl;
};
#ifdef WICACHE
#define MAXWICACHE 10
struct wi_sigcache {
char macsrc[6];
int ipsrc;
int signal;
int noise;
int quality;
};
#endif
struct wi_counters {
u_int32_t wi_tx_unicast_frames;
u_int32_t wi_tx_multicast_frames;
u_int32_t wi_tx_fragments;
u_int32_t wi_tx_unicast_octets;
u_int32_t wi_tx_multicast_octets;
u_int32_t wi_tx_deferred_xmits;
u_int32_t wi_tx_single_retries;
u_int32_t wi_tx_multi_retries;
u_int32_t wi_tx_retry_limit;
u_int32_t wi_tx_discards;
u_int32_t wi_rx_unicast_frames;
u_int32_t wi_rx_multicast_frames;
u_int32_t wi_rx_fragments;
u_int32_t wi_rx_unicast_octets;
u_int32_t wi_rx_multicast_octets;
u_int32_t wi_rx_fcs_errors;
u_int32_t wi_rx_discards_nobuf;
u_int32_t wi_tx_discards_wrong_sa;
u_int32_t wi_rx_WEP_cant_decrypt;
u_int32_t wi_rx_msg_in_msg_frags;
u_int32_t wi_rx_msg_in_bad_msg_frags;
};
#define WI_RID_PORTTYPE 0xFC00
#define WI_RID_MAC_NODE 0xFC01
#define WI_RID_DESIRED_SSID 0xFC02
#define WI_RID_OWN_CHNL 0xFC03
#define WI_RID_OWN_SSID 0xFC04
#define WI_RID_OWN_ATIM_WIN 0xFC05
#define WI_RID_SYSTEM_SCALE 0xFC06
#define WI_RID_MAX_DATALEN 0xFC07
#define WI_RID_MAC_WDS 0xFC08
#define WI_RID_PM_ENABLED 0xFC09
#define WI_RID_PM_EPS 0xFC0A
#define WI_RID_MCAST_RX 0xFC0B
#define WI_RID_MAX_SLEEP 0xFC0C
#define WI_RID_HOLDOVER 0xFC0D
#define WI_RID_NODENAME 0xFC0E
#define WI_RID_DTIM_PERIOD 0xFC10
#define WI_RID_WDS_ADDR1 0xFC11
#define WI_RID_WDS_ADDR2 0xFC12
#define WI_RID_WDS_ADDR3 0xFC13
#define WI_RID_WDS_ADDR4 0xFC14
#define WI_RID_WDS_ADDR5 0xFC15
#define WI_RID_WDS_ADDR6 0xFC16
#define WI_RID_MCAST_PM_BUF 0xFC17
#define WI_RID_ENCRYPTION 0xFC20
#define WI_RID_AUTHTYPE 0xFC21
#define WI_RID_P2_TX_CRYPT_KEY 0xFC23
#define WI_RID_P2_CRYPT_KEY0 0xFC24
#define WI_RID_P2_CRYPT_KEY1 0xFC25
#define WI_RID_MICROWAVE_OVEN 0xFC25
#define WI_RID_P2_CRYPT_KEY2 0xFC26
#define WI_RID_P2_CRYPT_KEY3 0xFC27
#define WI_RID_P2_ENCRYPTION 0xFC28
#define PRIVACY_INVOKED 0x01
#define EXCLUDE_UNENCRYPTED 0x02
#define HOST_ENCRYPT 0x10
#define IV_EVERY_FRAME 0x00
#define IV_EVERY10_FRAME 0x20
#define IV_EVERY50_FRAME 0x40
#define IV_EVERY100_FRAME 0x60
#define HOST_DECRYPT 0x80
#define WI_RID_WEP_MAPTABLE 0xFC29
#define WI_RID_CNFAUTHMODE 0xFC2A
#define WI_RID_ROAMING_MODE 0xFC2D
#define WI_RID_ALT_RETRY_COUNT 0xFC32
#define WI_RID_OWN_BEACON_INT 0xFC33
#define WI_RID_SET_TIM 0xFC40
#define WI_RID_DBM_ADJUST 0xFC46
#define WI_RID_BASIC_RATE 0xFCB3
#define WI_RID_SUPPORT_RATE 0xFCB4
#define WI_RID_MCAST_LIST 0xFC80
#define WI_RID_CREATE_IBSS 0xFC81
#define WI_RID_FRAG_THRESH 0xFC82
#define WI_RID_RTS_THRESH 0xFC83
#define WI_RID_TX_RATE 0xFC84
#define WI_RID_PROMISC 0xFC85
#define WI_RID_FRAG_THRESH0 0xFC90
#define WI_RID_FRAG_THRESH1 0xFC91
#define WI_RID_FRAG_THRESH2 0xFC92
#define WI_RID_FRAG_THRESH3 0xFC93
#define WI_RID_FRAG_THRESH4 0xFC94
#define WI_RID_FRAG_THRESH5 0xFC95
#define WI_RID_FRAG_THRESH6 0xFC96
#define WI_RID_RTS_THRESH0 0xFC97
#define WI_RID_RTS_THRESH1 0xFC98
#define WI_RID_RTS_THRESH2 0xFC99
#define WI_RID_RTS_THRESH3 0xFC9A
#define WI_RID_RTS_THRESH4 0xFC9B
#define WI_RID_RTS_THRESH5 0xFC9C
#define WI_RID_RTS_THRESH6 0xFC9D
#define WI_RID_TX_RATE0 0xFC9E
#define WI_RID_TX_RATE1 0xFC9F
#define WI_RID_TX_RATE2 0xFCA0
#define WI_RID_TX_RATE3 0xFCA1
#define WI_RID_TX_RATE4 0xFCA2
#define WI_RID_TX_RATE5 0xFCA3
#define WI_RID_TX_RATE6 0xFCA4
#define WI_RID_DEFLT_CRYPT_KEYS 0xFCB0
#define WI_RID_TX_CRYPT_KEY 0xFCB1
#define WI_RID_TICK_TIME 0xFCE0
struct wi_key {
u_int16_t wi_keylen;
u_int8_t wi_keydat[14];
};
struct wi_ltv_keys {
u_int16_t wi_len;
u_int16_t wi_type;
struct wi_key wi_keys[4];
};
#define WI_RID_DNLD_BUF 0xFD01
#define WI_RID_MEMSZ 0xFD02
#define WI_RID_PRI_IDENTITY 0xFD02
#define WI_RID_PRI_SUP_RANGE 0xFD03
#define WI_RID_CIF_ACT_RANGE 0xFD04
#define WI_RID_SERIALNO 0xFD0A
#define WI_RID_CARD_ID 0xFD0B
#define WI_RID_MFI_SUP_RANGE 0xFD0C
#define WI_RID_CFI_SUP_RANGE 0xFD0D
#define WI_RID_CHANNEL_LIST 0xFD10
#define WI_RID_REG_DOMAINS 0xFD11
#define WI_RID_TEMP_TYPE 0xFD12
#define WI_RID_CIS 0xFD13
#define WI_RID_STA_IDENTITY 0xFD20
#define WI_RID_STA_SUP_RANGE 0xFD21
#define WI_RID_MFI_ACT_RANGE 0xFD22
#define WI_RID_SYMBOL_IDENTITY 0xFD24
#define WI_RID_CFI_ACT_RANGE 0xFD33
#define WI_RID_COMMQUAL 0xFD43
#define WI_RID_SCALETHRESH 0xFD46
#define WI_RID_PCF 0xFD87
#define WI_RID_PORT_STAT 0xFD40
#define WI_RID_CURRENT_SSID 0xFD41
#define WI_RID_CURRENT_BSSID 0xFD42
#define WI_RID_COMMS_QUALITY 0xFD43
#define WI_RID_CUR_TX_RATE 0xFD44
#define WI_RID_CUR_BEACON_INT 0xFD45
#define WI_RID_CUR_SCALE_THRESH 0xFD46
#define WI_RID_PROT_RESP_TIME 0xFD47
#define WI_RID_SHORT_RTR_LIM 0xFD48
#define WI_RID_LONG_RTS_LIM 0xFD49
#define WI_RID_MAX_TX_LIFE 0xFD4A
#define WI_RID_MAX_RX_LIFE 0xFD4B
#define WI_RID_CF_POLL 0xFD4C
#define WI_RID_AUTH_ALGS 0xFD4D
#define WI_RID_AUTH_TYPE 0xFD4E
#define WI_RID_WEP_AVAIL 0xFD4F
#define WI_RID_CUR_TX_RATE1 0xFD80
#define WI_RID_CUR_TX_RATE2 0xFD81
#define WI_RID_CUR_TX_RATE3 0xFD82
#define WI_RID_CUR_TX_RATE4 0xFD83
#define WI_RID_CUR_TX_RATE5 0xFD84
#define WI_RID_CUR_TX_RATE6 0xFD85
#define WI_RID_OWN_MAC 0xFD86
#define WI_RID_PCI_INFO 0xFD87
#define WI_RID_BCAST_SCAN_REQ 0xFCAB
#define BSCAN_5SEC 0x01
#define BSCAN_ONETIME 0x02
#define BSCAN_PASSIVE 0x40
#define BSCAN_BCAST 0x80
#define WI_RID_SCAN_REQ 0xFCE1
#define WI_RID_JOIN_REQ 0xFCE2
#define WI_RID_AUTH_STATION 0xFCE3
#define WI_RID_CHANNEL_REQ 0xFCE4
#define WI_RID_SCAN_RESULTS 0xFD88
struct wi_apinfo {
int scanreason;
char bssid[6];
int channel;
int signal;
int noise;
int quality;
int namelen;
char name[32];
int capinfo;
int interval;
int rate;
};
#define WI_RID_PHY_TYPE 0xFDC0
#define WI_RID_CURRENT_CHAN 0xFDC1
#define WI_RID_PWR_STATE 0xFDC2
#define WI_RID_CCA_MODE 0xFDC3
#define WI_RID_CCA_TIME 0xFDC4
#define WI_RID_MAC_PROC_DELAY 0xFDC5
#define WI_RID_DATA_RATES 0xFDC6
#endif