Jiri Benc | f0706e82 | 2007-05-05 11:45:53 -0700 | [diff] [blame] | 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 | ieee80211_msg_passive_scan = 3, |
| 51 | ieee80211_msg_wep_frame_unknown_key = 4, |
| 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 | ieee80211_msg_set_aid_for_sta = 8 /* used by Intersil MVC driver */, |
| 56 | ieee80211_msg_key_threshold_notification = 9, |
| 57 | ieee80211_msg_radar = 11, |
| 58 | }; |
| 59 | |
| 60 | struct ieee80211_msg_set_aid_for_sta { |
| 61 | char sta_address[ETH_ALEN]; |
| 62 | u16 aid; |
| 63 | }; |
| 64 | |
| 65 | struct ieee80211_msg_key_notification { |
| 66 | int tx_rx_count; |
| 67 | char ifname[IFNAMSIZ]; |
| 68 | u8 addr[ETH_ALEN]; /* ff:ff:ff:ff:ff:ff for broadcast keys */ |
| 69 | }; |
| 70 | |
| 71 | |
| 72 | enum ieee80211_phytype { |
| 73 | ieee80211_phytype_fhss_dot11_97 = 1, |
| 74 | ieee80211_phytype_dsss_dot11_97 = 2, |
| 75 | ieee80211_phytype_irbaseband = 3, |
| 76 | ieee80211_phytype_dsss_dot11_b = 4, |
| 77 | ieee80211_phytype_pbcc_dot11_b = 5, |
| 78 | ieee80211_phytype_ofdm_dot11_g = 6, |
| 79 | ieee80211_phytype_pbcc_dot11_g = 7, |
| 80 | ieee80211_phytype_ofdm_dot11_a = 8, |
| 81 | ieee80211_phytype_dsss_dot11_turbog = 255, |
| 82 | ieee80211_phytype_dsss_dot11_turbo = 256, |
| 83 | }; |
| 84 | |
| 85 | enum ieee80211_ssi_type { |
| 86 | ieee80211_ssi_none = 0, |
| 87 | ieee80211_ssi_norm = 1, /* normalized, 0-1000 */ |
| 88 | ieee80211_ssi_dbm = 2, |
| 89 | ieee80211_ssi_raw = 3, /* raw SSI */ |
| 90 | }; |
| 91 | |
| 92 | struct ieee80211_radar_info { |
| 93 | int channel; |
| 94 | int radar; |
| 95 | int radar_type; |
| 96 | }; |
| 97 | |
| 98 | #endif /* IEEE80211_COMMON_H */ |