diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 2000-03-22 04:37:14 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 2000-03-22 04:37:14 +0000 |
commit | 46b6d794b5bb1a7aacc3b1e00046a537270d2924 (patch) | |
tree | 5b8c8653e01ba8647f5219e5cdff4fe09b30fe85 /sys/net | |
parent | 213cf3500c93134315fb6e0531a0184b90086c89 (diff) |
802.11 stuff beginnings, from netbsd
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if_ieee80211.h | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/sys/net/if_ieee80211.h b/sys/net/if_ieee80211.h new file mode 100644 index 00000000000..475257efd75 --- /dev/null +++ b/sys/net/if_ieee80211.h @@ -0,0 +1,114 @@ +/* $OpenBSD: if_ieee80211.h,v 1.1 2000/03/22 04:37:13 mickey Exp $ */ +/* $NetBSD: if_ieee80211.h,v 1.2 2000/03/10 05:44:23 onoe Exp $ */ + + +#ifndef _NET_IF_IEEE80211_H_ +#define _NET_IF_IEEE80211_H_ + +/* + * generic definitions for IEEE 802.11 frames + */ +struct ieee80211_frame { + u_int8_t i_fc[2]; + u_int8_t i_dur[2]; + u_int8_t i_addr1[ETHER_ADDR_LEN]; + u_int8_t i_addr2[ETHER_ADDR_LEN]; + u_int8_t i_addr3[ETHER_ADDR_LEN]; + u_int8_t i_seq[2]; + /* possibly followed by addr4[ETHER_ADDR_LEN]; */ +}; + +#define IEEE80211_FC0_VERSION_MASK 0x03 +#define IEEE80211_FC0_VERSION_0 0x00 +#define IEEE80211_FC0_TYPE_MASK 0x0c +#define IEEE80211_FC0_TYPE_MGT 0x00 +#define IEEE80211_FC0_TYPE_CTL 0x04 +#define IEEE80211_FC0_TYPE_DATA 0x08 + +#define IEEE80211_FC0_SUBTYPE_MASK 0xf0 +/* for TYPE_MGT */ +#define IEEE80211_FC0_SUBTYPE_ASSOC_REQ 0x00 +#define IEEE80211_FC0_SUBTYPE_ASSOC_RESP 0x10 +#define IEEE80211_FC0_SUBTYPE_REASSOC_REQ 0x20 +#define IEEE80211_FC0_SUBTYPE_REASSOC_RESP 0x30 +#define IEEE80211_FC0_SUBTYPE_PROBE_REQ 0x40 +#define IEEE80211_FC0_SUBTYPE_PROBE_RESP 0x50 +#define IEEE80211_FC0_SUBTYPE_BEACON 0x80 +#define IEEE80211_FC0_SUBTYPE_ATIM 0x90 +#define IEEE80211_FC0_SUBTYPE_DISASSOC 0xa0 +#define IEEE80211_FC0_SUBTYPE_AUTH 0xb0 +#define IEEE80211_FC0_SUBTYPE_DEAUTH 0xc0 +/* for TYPE_CTL */ +#define IEEE80211_FC0_SUBTYPE_PS_POLL 0xa0 +#define IEEE80211_FC0_SUBTYPE_RTS 0xb0 +#define IEEE80211_FC0_SUBTYPE_CTS 0xc0 +#define IEEE80211_FC0_SUBTYPE_ACK 0xd0 +#define IEEE80211_FC0_SUBTYPE_CF_END 0xe0 +#define IEEE80211_FC0_SUBTYPE_CF_END_ACK 0xf0 +/* for TYPE_DATA (bit combination) */ +#define IEEE80211_FC0_SUBTYPE_CF_ACK 0x10 +#define IEEE80211_FC0_SUBTYPE_CF_POLL 0x20 +#define IEEE80211_FC0_SUBTYPE_NODATA 0x40 + +#define IEEE80211_FC1_DIR_MASK 0x03 +#define IEEE80211_FC1_DIR_NODS 0x00 /* STA->STA */ +#define IEEE80211_FC1_DIR_TODS 0x01 /* STA->AP */ +#define IEEE80211_FC1_DIR_FROMDS 0x02 /* AP ->STA */ +#define IEEE80211_FC1_DIR_DSTODS 0x03 /* AP ->AP */ + +#define IEEE80211_FC1_MORE_FRAG 0x04 +#define IEEE80211_FC1_RETRY 0x08 +#define IEEE80211_FC1_PWR_MGT 0x10 +#define IEEE80211_FC1_MORE_DATA 0x20 +#define IEEE80211_FC1_WEP 0x40 +#define IEEE80211_FC1_ORDER 0x80 + +/* + * Management Frames + */ + +#define IEEE80211_ELEMID_SSID 0 +#define IEEE80211_ELEMID_RATES 1 +#define IEEE80211_ELEMID_FHPARMS 2 +#define IEEE80211_ELEMID_DSPARMS 3 +#define IEEE80211_ELEMID_CFPARMS 4 +#define IEEE80211_ELEMID_TIM 5 +#define IEEE80211_ELEMID_IBSSPARMS 6 +#define IEEE80211_ELEMID_CHALLENGE 16 + +#define IEEE80211_AUTH_ALG_OPEN 0x0000 +#define IEEE80211_AUTH_ALG_SHARED 0x0001 + +#define IEEE80211_CAPINFO_ESS 0x01 +#define IEEE80211_CAPINFO_IBSS 0x02 +#define IEEE80211_CAPINFO_CF_POLLABLE 0x04 +#define IEEE80211_CAPINFO_CF_POLLREQ 0x08 +#define IEEE80211_CAPINFO_PRIVACY 0x10 + +#define IEEE80211_REASON_UNSPECIFIED 1 +#define IEEE80211_REASON_AUTH_EXPIRE 2 +#define IEEE80211_REASON_AUTH_LEAVE 3 +#define IEEE80211_REASON_ASSOC_EXPIRE 4 +#define IEEE80211_REASON_ASSOC_TOOMANY 5 +#define IEEE80211_REASON_NOT_AUTHED 6 +#define IEEE80211_REASON_NOT_ASSOCED 7 +#define IEEE80211_REASON_ASSOC_LEAVE 8 +#define IEEE80211_REASON_ASSOC_NOT_AUTHED 9 + +#define IEEE80211_STATUS_UNSPECIFIED 1 +#define IEEE80211_STATUS_CAPINFO 10 +#define IEEE80211_STATUS_NOT_ASSOCED 11 +#define IEEE80211_STATUS_OTHER 12 +#define IEEE80211_STATUS_ALG 13 +#define IEEE80211_STATUS_SEQUENCE 14 +#define IEEE80211_STATUS_CHALLENGE 15 +#define IEEE80211_STATUS_TIMEOUT 16 + + +#define IEEE80211_NWID_LEN 32 + +/* nwid is u_int8_t array of IEEE80211_NWID_LEN pointed at by ifr.ifr_data */ +#define SIOCS80211NWID _IOWR('i', 230, struct ifreq) +#define SIOCG80211NWID _IOWR('i', 231, struct ifreq) + +#endif /* !_NET_IF_IEEE80211_H_ */ |