add git checkout support
[10.03/openwrt.git] / package / mac80211 / src / mac80211 / ieee80211_common.h
1 /*
2  * IEEE 802.11 driver (80211.o) -- hostapd interface
3  * Copyright 2002-2004, Instant802 Networks, Inc.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation.
8  */
9
10 #ifndef IEEE80211_COMMON_H
11 #define IEEE80211_COMMON_H
12
13 #include <linux/types.h>
14
15 /*
16  * This is common header information with user space. It is used on all
17  * frames sent to wlan#ap interface.
18  */
19
20 #define IEEE80211_FI_VERSION 0x80211001
21
22 struct ieee80211_frame_info {
23         __be32 version;
24         __be32 length;
25         __be64 mactime;
26         __be64 hosttime;
27         __be32 phytype;
28         __be32 channel;
29         __be32 datarate;
30         __be32 antenna;
31         __be32 priority;
32         __be32 ssi_type;
33         __be32 ssi_signal;
34         __be32 ssi_noise;
35         __be32 preamble;
36         __be32 encoding;
37
38         /* Note: this structure is otherwise identical to capture format used
39          * in linux-wlan-ng, but this additional field is used to provide meta
40          * data about the frame to hostapd. This was the easiest method for
41          * providing this information, but this might change in the future. */
42         __be32 msg_type;
43 } __attribute__ ((packed));
44
45
46 enum ieee80211_msg_type {
47         ieee80211_msg_normal = 0,
48         ieee80211_msg_tx_callback_ack = 1,
49         ieee80211_msg_tx_callback_fail = 2,
50         /* hole at 3, was ieee80211_msg_passive_scan but unused */
51         /* hole at 4, was ieee80211_msg_wep_frame_unknown_key but now unused */
52         ieee80211_msg_michael_mic_failure = 5,
53         /* hole at 6, was monitor but never sent to userspace */
54         ieee80211_msg_sta_not_assoc = 7,
55         /* 8 was ieee80211_msg_set_aid_for_sta */
56         /* 9 was ieee80211_msg_key_threshold_notification */
57         /* 11 was ieee80211_msg_radar */
58 };
59
60 struct ieee80211_msg_key_notification {
61         int tx_rx_count;
62         char ifname[IFNAMSIZ];
63         u8 addr[ETH_ALEN]; /* ff:ff:ff:ff:ff:ff for broadcast keys */
64 };
65
66
67 enum ieee80211_phytype {
68         ieee80211_phytype_fhss_dot11_97  = 1,
69         ieee80211_phytype_dsss_dot11_97  = 2,
70         ieee80211_phytype_irbaseband     = 3,
71         ieee80211_phytype_dsss_dot11_b   = 4,
72         ieee80211_phytype_pbcc_dot11_b   = 5,
73         ieee80211_phytype_ofdm_dot11_g   = 6,
74         ieee80211_phytype_pbcc_dot11_g   = 7,
75         ieee80211_phytype_ofdm_dot11_a   = 8,
76 };
77
78 enum ieee80211_ssi_type {
79         ieee80211_ssi_none = 0,
80         ieee80211_ssi_norm = 1, /* normalized, 0-1000 */
81         ieee80211_ssi_dbm = 2,
82         ieee80211_ssi_raw = 3, /* raw SSI */
83 };
84
85 struct ieee80211_radar_info {
86                 int channel;
87                 int radar;
88                 int radar_type;
89 };
90
91 #endif /* IEEE80211_COMMON_H */