802.11 stuff beginnings, from netbsd
authormickey <mickey@openbsd.org>
Wed, 22 Mar 2000 04:37:13 +0000 (04:37 +0000)
committermickey <mickey@openbsd.org>
Wed, 22 Mar 2000 04:37:13 +0000 (04:37 +0000)
sys/net/if_ieee80211.h [new file with mode: 0644]

diff --git a/sys/net/if_ieee80211.h b/sys/net/if_ieee80211.h
new file mode 100644 (file)
index 0000000..475257e
--- /dev/null
@@ -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_ */