diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-28 12:05:25 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-28 12:05:25 -0400 |
| commit | e5dfa9282f3db461a896a6692b529e1823ba98c6 (patch) | |
| tree | 574d23cebc57c657373b0e1b6692c047aba8dd6e /include/net | |
| parent | 5dd962494f76fb3ef1196cd420b5d6260d7a3766 (diff) | |
| parent | b2ab040db85835e54c7559533df7f85902617926 (diff) | |
Merge branch 'upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/ieee80211.h | 525 | ||||
| -rw-r--r-- | include/net/ieee80211_crypt.h | 38 | ||||
| -rw-r--r-- | include/net/ieee80211_radiotap.h | 231 | ||||
| -rw-r--r-- | include/net/syncppp.h | 1 |
4 files changed, 658 insertions, 137 deletions
diff --git a/include/net/ieee80211.h b/include/net/ieee80211.h index dc36b1be6745..5e38dca1d082 100644 --- a/include/net/ieee80211.h +++ b/include/net/ieee80211.h | |||
| @@ -11,19 +11,26 @@ | |||
| 11 | * | 11 | * |
| 12 | * Adaption to a generic IEEE 802.11 stack by James Ketrenos | 12 | * Adaption to a generic IEEE 802.11 stack by James Ketrenos |
| 13 | * <jketreno@linux.intel.com> | 13 | * <jketreno@linux.intel.com> |
| 14 | * Copyright (c) 2004, Intel Corporation | 14 | * Copyright (c) 2004-2005, Intel Corporation |
| 15 | * | 15 | * |
| 16 | * This program is free software; you can redistribute it and/or modify | 16 | * This program is free software; you can redistribute it and/or modify |
| 17 | * it under the terms of the GNU General Public License version 2 as | 17 | * it under the terms of the GNU General Public License version 2 as |
| 18 | * published by the Free Software Foundation. See README and COPYING for | 18 | * published by the Free Software Foundation. See README and COPYING for |
| 19 | * more details. | 19 | * more details. |
| 20 | * | ||
| 21 | * API Version History | ||
| 22 | * 1.0.x -- Initial version | ||
| 23 | * 1.1.x -- Added radiotap, QoS, TIM, ieee80211_geo APIs, | ||
| 24 | * various structure changes, and crypto API init method | ||
| 20 | */ | 25 | */ |
| 21 | #ifndef IEEE80211_H | 26 | #ifndef IEEE80211_H |
| 22 | #define IEEE80211_H | 27 | #define IEEE80211_H |
| 23 | #include <linux/if_ether.h> /* ETH_ALEN */ | 28 | #include <linux/if_ether.h> /* ETH_ALEN */ |
| 24 | #include <linux/kernel.h> /* ARRAY_SIZE */ | 29 | #include <linux/kernel.h> /* ARRAY_SIZE */ |
| 25 | #include <linux/wireless.h> | 30 | #include <linux/wireless.h> |
| 26 | 31 | ||
| 32 | #define IEEE80211_VERSION "git-1.1.6" | ||
| 33 | |||
| 27 | #define IEEE80211_DATA_LEN 2304 | 34 | #define IEEE80211_DATA_LEN 2304 |
| 28 | /* Maximum size for the MA-UNITDATA primitive, 802.11 standard section | 35 | /* Maximum size for the MA-UNITDATA primitive, 802.11 standard section |
| 29 | 6.2.1.1.2. | 36 | 6.2.1.1.2. |
| @@ -33,34 +40,13 @@ | |||
| 33 | represents the 2304 bytes of real data, plus a possible 8 bytes of | 40 | represents the 2304 bytes of real data, plus a possible 8 bytes of |
| 34 | WEP IV and ICV. (this interpretation suggested by Ramiro Barreiro) */ | 41 | WEP IV and ICV. (this interpretation suggested by Ramiro Barreiro) */ |
| 35 | 42 | ||
| 36 | |||
| 37 | #define IEEE80211_HLEN 30 | ||
| 38 | #define IEEE80211_FRAME_LEN (IEEE80211_DATA_LEN + IEEE80211_HLEN) | ||
| 39 | |||
| 40 | struct ieee80211_hdr { | ||
| 41 | __le16 frame_ctl; | ||
| 42 | __le16 duration_id; | ||
| 43 | u8 addr1[ETH_ALEN]; | ||
| 44 | u8 addr2[ETH_ALEN]; | ||
| 45 | u8 addr3[ETH_ALEN]; | ||
| 46 | __le16 seq_ctl; | ||
| 47 | u8 addr4[ETH_ALEN]; | ||
| 48 | } __attribute__ ((packed)); | ||
| 49 | |||
| 50 | struct ieee80211_hdr_3addr { | ||
| 51 | __le16 frame_ctl; | ||
| 52 | __le16 duration_id; | ||
| 53 | u8 addr1[ETH_ALEN]; | ||
| 54 | u8 addr2[ETH_ALEN]; | ||
| 55 | u8 addr3[ETH_ALEN]; | ||
| 56 | __le16 seq_ctl; | ||
| 57 | } __attribute__ ((packed)); | ||
| 58 | |||
| 59 | #define IEEE80211_1ADDR_LEN 10 | 43 | #define IEEE80211_1ADDR_LEN 10 |
| 60 | #define IEEE80211_2ADDR_LEN 16 | 44 | #define IEEE80211_2ADDR_LEN 16 |
| 61 | #define IEEE80211_3ADDR_LEN 24 | 45 | #define IEEE80211_3ADDR_LEN 24 |
| 62 | #define IEEE80211_4ADDR_LEN 30 | 46 | #define IEEE80211_4ADDR_LEN 30 |
| 63 | #define IEEE80211_FCS_LEN 4 | 47 | #define IEEE80211_FCS_LEN 4 |
| 48 | #define IEEE80211_HLEN (IEEE80211_4ADDR_LEN) | ||
| 49 | #define IEEE80211_FRAME_LEN (IEEE80211_DATA_LEN + IEEE80211_HLEN) | ||
| 64 | 50 | ||
| 65 | #define MIN_FRAG_THRESHOLD 256U | 51 | #define MIN_FRAG_THRESHOLD 256U |
| 66 | #define MAX_FRAG_THRESHOLD 2346U | 52 | #define MAX_FRAG_THRESHOLD 2346U |
| @@ -113,11 +99,11 @@ struct ieee80211_hdr_3addr { | |||
| 113 | #define IEEE80211_STYPE_CFACK 0x0050 | 99 | #define IEEE80211_STYPE_CFACK 0x0050 |
| 114 | #define IEEE80211_STYPE_CFPOLL 0x0060 | 100 | #define IEEE80211_STYPE_CFPOLL 0x0060 |
| 115 | #define IEEE80211_STYPE_CFACKPOLL 0x0070 | 101 | #define IEEE80211_STYPE_CFACKPOLL 0x0070 |
| 102 | #define IEEE80211_STYPE_QOS_DATA 0x0080 | ||
| 116 | 103 | ||
| 117 | #define IEEE80211_SCTL_FRAG 0x000F | 104 | #define IEEE80211_SCTL_FRAG 0x000F |
| 118 | #define IEEE80211_SCTL_SEQ 0xFFF0 | 105 | #define IEEE80211_SCTL_SEQ 0xFFF0 |
| 119 | 106 | ||
| 120 | |||
| 121 | /* debug macros */ | 107 | /* debug macros */ |
| 122 | 108 | ||
| 123 | #ifdef CONFIG_IEEE80211_DEBUG | 109 | #ifdef CONFIG_IEEE80211_DEBUG |
| @@ -128,8 +114,7 @@ do { if (ieee80211_debug_level & (level)) \ | |||
| 128 | in_interrupt() ? 'I' : 'U', __FUNCTION__ , ## args); } while (0) | 114 | in_interrupt() ? 'I' : 'U', __FUNCTION__ , ## args); } while (0) |
| 129 | #else | 115 | #else |
| 130 | #define IEEE80211_DEBUG(level, fmt, args...) do {} while (0) | 116 | #define IEEE80211_DEBUG(level, fmt, args...) do {} while (0) |
| 131 | #endif /* CONFIG_IEEE80211_DEBUG */ | 117 | #endif /* CONFIG_IEEE80211_DEBUG */ |
| 132 | |||
| 133 | 118 | ||
| 134 | /* debug macros not dependent on CONFIG_IEEE80211_DEBUG */ | 119 | /* debug macros not dependent on CONFIG_IEEE80211_DEBUG */ |
| 135 | 120 | ||
| @@ -140,7 +125,6 @@ do { if (ieee80211_debug_level & (level)) \ | |||
| 140 | * messages. It should never be used for passing essid to user space. */ | 125 | * messages. It should never be used for passing essid to user space. */ |
| 141 | const char *escape_essid(const char *essid, u8 essid_len); | 126 | const char *escape_essid(const char *essid, u8 essid_len); |
| 142 | 127 | ||
| 143 | |||
| 144 | /* | 128 | /* |
| 145 | * To use the debug system: | 129 | * To use the debug system: |
| 146 | * | 130 | * |
| @@ -177,6 +161,7 @@ const char *escape_essid(const char *essid, u8 essid_len); | |||
| 177 | 161 | ||
| 178 | #define IEEE80211_DL_TX (1<<8) | 162 | #define IEEE80211_DL_TX (1<<8) |
| 179 | #define IEEE80211_DL_RX (1<<9) | 163 | #define IEEE80211_DL_RX (1<<9) |
| 164 | #define IEEE80211_DL_QOS (1<<31) | ||
| 180 | 165 | ||
| 181 | #define IEEE80211_ERROR(f, a...) printk(KERN_ERR "ieee80211: " f, ## a) | 166 | #define IEEE80211_ERROR(f, a...) printk(KERN_ERR "ieee80211: " f, ## a) |
| 182 | #define IEEE80211_WARNING(f, a...) printk(KERN_WARNING "ieee80211: " f, ## a) | 167 | #define IEEE80211_WARNING(f, a...) printk(KERN_WARNING "ieee80211: " f, ## a) |
| @@ -190,9 +175,10 @@ const char *escape_essid(const char *essid, u8 essid_len); | |||
| 190 | #define IEEE80211_DEBUG_DROP(f, a...) IEEE80211_DEBUG(IEEE80211_DL_DROP, f, ## a) | 175 | #define IEEE80211_DEBUG_DROP(f, a...) IEEE80211_DEBUG(IEEE80211_DL_DROP, f, ## a) |
| 191 | #define IEEE80211_DEBUG_TX(f, a...) IEEE80211_DEBUG(IEEE80211_DL_TX, f, ## a) | 176 | #define IEEE80211_DEBUG_TX(f, a...) IEEE80211_DEBUG(IEEE80211_DL_TX, f, ## a) |
| 192 | #define IEEE80211_DEBUG_RX(f, a...) IEEE80211_DEBUG(IEEE80211_DL_RX, f, ## a) | 177 | #define IEEE80211_DEBUG_RX(f, a...) IEEE80211_DEBUG(IEEE80211_DL_RX, f, ## a) |
| 178 | #define IEEE80211_DEBUG_QOS(f, a...) IEEE80211_DEBUG(IEEE80211_DL_QOS, f, ## a) | ||
| 193 | #include <linux/netdevice.h> | 179 | #include <linux/netdevice.h> |
| 194 | #include <linux/wireless.h> | 180 | #include <linux/wireless.h> |
| 195 | #include <linux/if_arp.h> /* ARPHRD_ETHER */ | 181 | #include <linux/if_arp.h> /* ARPHRD_ETHER */ |
| 196 | 182 | ||
| 197 | #ifndef WIRELESS_SPY | 183 | #ifndef WIRELESS_SPY |
| 198 | #define WIRELESS_SPY /* enable iwspy support */ | 184 | #define WIRELESS_SPY /* enable iwspy support */ |
| @@ -200,10 +186,10 @@ const char *escape_essid(const char *essid, u8 essid_len); | |||
| 200 | #include <net/iw_handler.h> /* new driver API */ | 186 | #include <net/iw_handler.h> /* new driver API */ |
| 201 | 187 | ||
| 202 | #ifndef ETH_P_PAE | 188 | #ifndef ETH_P_PAE |
| 203 | #define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */ | 189 | #define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */ |
| 204 | #endif /* ETH_P_PAE */ | 190 | #endif /* ETH_P_PAE */ |
| 205 | 191 | ||
| 206 | #define ETH_P_PREAUTH 0x88C7 /* IEEE 802.11i pre-authentication */ | 192 | #define ETH_P_PREAUTH 0x88C7 /* IEEE 802.11i pre-authentication */ |
| 207 | 193 | ||
| 208 | #ifndef ETH_P_80211_RAW | 194 | #ifndef ETH_P_80211_RAW |
| 209 | #define ETH_P_80211_RAW (ETH_P_ECONET + 1) | 195 | #define ETH_P_80211_RAW (ETH_P_ECONET + 1) |
| @@ -215,10 +201,10 @@ const char *escape_essid(const char *essid, u8 essid_len); | |||
| 215 | 201 | ||
| 216 | struct ieee80211_snap_hdr { | 202 | struct ieee80211_snap_hdr { |
| 217 | 203 | ||
| 218 | u8 dsap; /* always 0xAA */ | 204 | u8 dsap; /* always 0xAA */ |
| 219 | u8 ssap; /* always 0xAA */ | 205 | u8 ssap; /* always 0xAA */ |
| 220 | u8 ctrl; /* always 0x03 */ | 206 | u8 ctrl; /* always 0x03 */ |
| 221 | u8 oui[P80211_OUI_LEN]; /* organizational universal id */ | 207 | u8 oui[P80211_OUI_LEN]; /* organizational universal id */ |
| 222 | 208 | ||
| 223 | } __attribute__ ((packed)); | 209 | } __attribute__ ((packed)); |
| 224 | 210 | ||
| @@ -246,8 +232,9 @@ struct ieee80211_snap_hdr { | |||
| 246 | #define WLAN_CAPABILITY_PBCC (1<<6) | 232 | #define WLAN_CAPABILITY_PBCC (1<<6) |
| 247 | #define WLAN_CAPABILITY_CHANNEL_AGILITY (1<<7) | 233 | #define WLAN_CAPABILITY_CHANNEL_AGILITY (1<<7) |
| 248 | #define WLAN_CAPABILITY_SPECTRUM_MGMT (1<<8) | 234 | #define WLAN_CAPABILITY_SPECTRUM_MGMT (1<<8) |
| 235 | #define WLAN_CAPABILITY_QOS (1<<9) | ||
| 249 | #define WLAN_CAPABILITY_SHORT_SLOT_TIME (1<<10) | 236 | #define WLAN_CAPABILITY_SHORT_SLOT_TIME (1<<10) |
| 250 | #define WLAN_CAPABILITY_OSSS_OFDM (1<<13) | 237 | #define WLAN_CAPABILITY_DSSS_OFDM (1<<13) |
| 251 | |||
