diff options
| author | David S. Miller <davem@davemloft.net> | 2010-01-19 14:43:42 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-01-19 14:43:42 -0500 |
| commit | 6373464288cab09bc641be301d8d30fc9f64ba71 (patch) | |
| tree | c1bc92dc630aa15da2e12bc0d09c92169817a702 /include/linux | |
| parent | 6d955180b2f9ccff444df06265160868cabb289a (diff) | |
| parent | 730dd70549e0ec755dd55615ba5cfc38a482a947 (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Conflicts:
drivers/net/wireless/iwlwifi/iwl-core.h
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/ieee80211.h | 37 | ||||
| -rw-r--r-- | include/linux/nl80211.h | 58 |
2 files changed, 94 insertions, 1 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index aeea282bd2fe..842701906ae9 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
| @@ -120,6 +120,24 @@ | |||
| 120 | #define IEEE80211_QOS_CTL_TID_MASK 0x000F | 120 | #define IEEE80211_QOS_CTL_TID_MASK 0x000F |
| 121 | #define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007 | 121 | #define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007 |
| 122 | 122 | ||
| 123 | /* U-APSD queue for WMM IEs sent by AP */ | ||
| 124 | #define IEEE80211_WMM_IE_AP_QOSINFO_UAPSD (1<<7) | ||
| 125 | |||
| 126 | /* U-APSD queues for WMM IEs sent by STA */ | ||
| 127 | #define IEEE80211_WMM_IE_STA_QOSINFO_AC_VO (1<<0) | ||
| 128 | #define IEEE80211_WMM_IE_STA_QOSINFO_AC_VI (1<<1) | ||
| 129 | #define IEEE80211_WMM_IE_STA_QOSINFO_AC_BK (1<<2) | ||
| 130 | #define IEEE80211_WMM_IE_STA_QOSINFO_AC_BE (1<<3) | ||
| 131 | #define IEEE80211_WMM_IE_STA_QOSINFO_AC_MASK 0x0f | ||
| 132 | |||
| 133 | /* U-APSD max SP length for WMM IEs sent by STA */ | ||
| 134 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_ALL 0x00 | ||
| 135 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_2 0x01 | ||
| 136 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_4 0x02 | ||
| 137 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_6 0x03 | ||
| 138 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_MASK 0x03 | ||
| 139 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_SHIFT 5 | ||
| 140 | |||
| 123 | struct ieee80211_hdr { | 141 | struct ieee80211_hdr { |
| 124 | __le16 frame_control; | 142 | __le16 frame_control; |
| 125 | __le16 duration_id; | 143 | __le16 duration_id; |
| @@ -130,6 +148,25 @@ struct ieee80211_hdr { | |||
| 130 | u8 addr4[6]; | 148 | u8 addr4[6]; |
| 131 | } __attribute__ ((packed)); | 149 | } __attribute__ ((packed)); |
| 132 | 150 | ||
| 151 | struct ieee80211_hdr_3addr { | ||
| 152 | __le16 frame_control; | ||
| 153 | __le16 duration_id; | ||
| 154 | u8 addr1[6]; | ||
| 155 | u8 addr2[6]; | ||
| 156 | u8 addr3[6]; | ||
| 157 | __le16 seq_ctrl; | ||
| 158 | } __attribute__ ((packed)); | ||
| 159 | |||
| 160 | struct ieee80211_qos_hdr { | ||
| 161 | __le16 frame_control; | ||
| 162 | __le16 duration_id; | ||
| 163 | u8 addr1[6]; | ||
| 164 | u8 addr2[6]; | ||
| 165 | u8 addr3[6]; | ||
| 166 | __le16 seq_ctrl; | ||
| 167 | __le16 qos_ctrl; | ||
| 168 | } __attribute__ ((packed)); | ||
| 169 | |||
| 133 | /** | 170 | /** |
| 134 | * ieee80211_has_tods - check if IEEE80211_FCTL_TODS is set | 171 | * ieee80211_has_tods - check if IEEE80211_FCTL_TODS is set |
| 135 | * @fc: frame control bytes in little-endian byteorder | 172 | * @fc: frame control bytes in little-endian byteorder |
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index 2bfbe88837ef..127a73015760 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
| @@ -295,6 +295,10 @@ | |||
| 295 | * This command is also used as an event to notify when a requested | 295 | * This command is also used as an event to notify when a requested |
| 296 | * remain-on-channel duration has expired. | 296 | * remain-on-channel duration has expired. |
| 297 | * | 297 | * |
| 298 | * @NL80211_CMD_SET_TX_BITRATE_MASK: Set the mask of rates to be used in TX | ||
| 299 | * rate selection. %NL80211_ATTR_IFINDEX is used to specify the interface | ||
| 300 | * and @NL80211_ATTR_TX_RATES the set of allowed rates. | ||
| 301 | * | ||
| 298 | * @NL80211_CMD_MAX: highest used command number | 302 | * @NL80211_CMD_MAX: highest used command number |
| 299 | * @__NL80211_CMD_AFTER_LAST: internal use | 303 | * @__NL80211_CMD_AFTER_LAST: internal use |
| 300 | */ | 304 | */ |
| @@ -381,6 +385,8 @@ enum nl80211_commands { | |||
| 381 | NL80211_CMD_REMAIN_ON_CHANNEL, | 385 | NL80211_CMD_REMAIN_ON_CHANNEL, |
| 382 | NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, | 386 | NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, |
| 383 | 387 | ||
| 388 | NL80211_CMD_SET_TX_BITRATE_MASK, | ||
| 389 | |||
| 384 | /* add new commands above here */ | 390 | /* add new commands above here */ |
| 385 | 391 | ||
| 386 | /* used to define NL80211_CMD_MAX below */ | 392 | /* used to define NL80211_CMD_MAX below */ |
| @@ -430,6 +436,8 @@ enum nl80211_commands { | |||
| 430 | * @NL80211_ATTR_WIPHY_RTS_THRESHOLD: RTS threshold (TX frames with length | 436 | * @NL80211_ATTR_WIPHY_RTS_THRESHOLD: RTS threshold (TX frames with length |
| 431 | * larger than or equal to this use RTS/CTS handshake); allowed range: | 437 | * larger than or equal to this use RTS/CTS handshake); allowed range: |
| 432 | * 0..65536, disable with (u32)-1; dot11RTSThreshold; u32 | 438 | * 0..65536, disable with (u32)-1; dot11RTSThreshold; u32 |
| 439 | * @NL80211_ATTR_WIPHY_COVERAGE_CLASS: Coverage Class as defined by IEEE 802.11 | ||
| 440 | * section 7.3.2.9; dot11CoverageClass; u8 | ||
| 433 | * | 441 | * |
| 434 | * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on | 442 | * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on |
| 435 | * @NL80211_ATTR_IFNAME: network interface name | 443 | * @NL80211_ATTR_IFNAME: network interface name |
| @@ -638,6 +646,13 @@ enum nl80211_commands { | |||
| 638 | * | 646 | * |
| 639 | * @NL80211_ATTR_COOKIE: Generic 64-bit cookie to identify objects. | 647 | * @NL80211_ATTR_COOKIE: Generic 64-bit cookie to identify objects. |
| 640 | * | 648 | * |
| 649 | * @NL80211_ATTR_TX_RATES: Nested set of attributes | ||
| 650 | * (enum nl80211_tx_rate_attributes) describing TX rates per band. The | ||
| 651 | * enum nl80211_band value is used as the index (nla_type() of the nested | ||
| 652 | * data. If a band is not included, it will be configured to allow all | ||
| 653 | * rates based on negotiated supported rates information. This attribute | ||
| 654 | * is used with %NL80211_CMD_SET_TX_BITRATE_MASK. | ||
| 655 | * | ||
| 641 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 656 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 642 | * @__NL80211_ATTR_AFTER_LAST: internal use | 657 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| 643 | */ | 658 | */ |
| @@ -779,6 +794,10 @@ enum nl80211_attrs { | |||
| 779 | 794 | ||
| 780 | NL80211_ATTR_COOKIE, | 795 | NL80211_ATTR_COOKIE, |
| 781 | 796 | ||
| 797 | NL80211_ATTR_WIPHY_COVERAGE_CLASS, | ||
| 798 | |||
| 799 | NL80211_ATTR_TX_RATES, | ||
| 800 | |||
| 782 | /* add attributes here, update the policy in nl80211.c */ | 801 | /* add attributes here, update the policy in nl80211.c */ |
| 783 | 802 | ||
| 784 | __NL80211_ATTR_AFTER_LAST, | 803 | __NL80211_ATTR_AFTER_LAST, |
| @@ -1359,13 +1378,20 @@ enum nl80211_channel_type { | |||
| 1359 | * @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16) | 1378 | * @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16) |
| 1360 | * @NL80211_BSS_CAPABILITY: capability field (CPU order, u16) | 1379 | * @NL80211_BSS_CAPABILITY: capability field (CPU order, u16) |
| 1361 | * @NL80211_BSS_INFORMATION_ELEMENTS: binary attribute containing the | 1380 | * @NL80211_BSS_INFORMATION_ELEMENTS: binary attribute containing the |
| 1362 | * raw information elements from the probe response/beacon (bin) | 1381 | * raw information elements from the probe response/beacon (bin); |
| 1382 | * if the %NL80211_BSS_BEACON_IES attribute is present, the IEs here are | ||
| 1383 | * from a Probe Response frame; otherwise they are from a Beacon frame. | ||
| 1384 | * However, if the driver does not indicate the source of the IEs, these | ||
| 1385 | * IEs may be from either frame subtype. | ||
| 1363 | * @NL80211_BSS_SIGNAL_MBM: signal strength of probe response/beacon | 1386 | * @NL80211_BSS_SIGNAL_MBM: signal strength of probe response/beacon |
| 1364 | * in mBm (100 * dBm) (s32) | 1387 | * in mBm (100 * dBm) (s32) |
| 1365 | * @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon | 1388 | * @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon |
| 1366 | * in unspecified units, scaled to 0..100 (u8) | 1389 | * in unspecified units, scaled to 0..100 (u8) |
| 1367 | * @NL80211_BSS_STATUS: status, if this BSS is "used" | 1390 | * @NL80211_BSS_STATUS: status, if this BSS is "used" |
| 1368 | * @NL80211_BSS_SEEN_MS_AGO: age of this BSS entry in ms | 1391 | * @NL80211_BSS_SEEN_MS_AGO: age of this BSS entry in ms |
| 1392 | * @NL80211_BSS_BEACON_IES: binary attribute containing the raw information | ||
| 1393 | * elements from a Beacon frame (bin); not present if no Beacon frame has | ||
| 1394 | * yet been received | ||
| 1369 | * @__NL80211_BSS_AFTER_LAST: internal | 1395 | * @__NL80211_BSS_AFTER_LAST: internal |
| 1370 | * @NL80211_BSS_MAX: highest BSS attribute | 1396 | * @NL80211_BSS_MAX: highest BSS attribute |
| 1371 | */ | 1397 | */ |
| @@ -1381,6 +1407,7 @@ enum nl80211_bss { | |||
| 1381 | NL80211_BSS_SIGNAL_UNSPEC, | 1407 | NL80211_BSS_SIGNAL_UNSPEC, |
| 1382 | NL80211_BSS_STATUS, | 1408 | NL80211_BSS_STATUS, |
| 1383 | NL80211_BSS_SEEN_MS_AGO, | 1409 | NL80211_BSS_SEEN_MS_AGO, |
| 1410 | NL80211_BSS_BEACON_IES, | ||
| 1384 | 1411 | ||
| 1385 | /* keep last */ | 1412 | /* keep last */ |
| 1386 | __NL80211_BSS_AFTER_LAST, | 1413 | __NL80211_BSS_AFTER_LAST, |
| @@ -1478,4 +1505,33 @@ enum nl80211_key_attributes { | |||
| 1478 | NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1 | 1505 | NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1 |
| 1479 | }; | 1506 | }; |
| 1480 | 1507 | ||
| 1508 | /** | ||
| 1509 | * enum nl80211_tx_rate_attributes - TX rate set attributes | ||
| 1510 | * @__NL80211_TXRATE_INVALID: invalid | ||
| 1511 | * @NL80211_TXRATE_LEGACY: Legacy (non-MCS) rates allowed for TX rate selection | ||
| 1512 | * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with | ||
| 1513 | * 1 = 500 kbps) but without the IE length restriction (at most | ||
| 1514 | * %NL80211_MAX_SUPP_RATES in a single array). | ||
| 1515 | * @__NL80211_TXRATE_AFTER_LAST: internal | ||
| 1516 | * @NL80211_TXRATE_MAX: highest TX rate attribute | ||
| 1517 | */ | ||
| 1518 | enum nl80211_tx_rate_attributes { | ||
| 1519 | __NL80211_TXRATE_INVALID, | ||
| 1520 | NL80211_TXRATE_LEGACY, | ||
| 1521 | |||
| 1522 | /* keep last */ | ||
| 1523 | __NL80211_TXRATE_AFTER_LAST, | ||
| 1524 | NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1 | ||
| 1525 | }; | ||
| 1526 | |||
| 1527 | /** | ||
| 1528 | * enum nl80211_band - Frequency band | ||
| 1529 | * @NL80211_BAND_2GHZ - 2.4 GHz ISM band | ||
| 1530 | * @NL80211_BAND_5GHZ - around 5 GHz band (4.9 - 5.7 GHz) | ||
| 1531 | */ | ||
| 1532 | enum nl80211_band { | ||
| 1533 | NL80211_BAND_2GHZ, | ||
| 1534 | NL80211_BAND_5GHZ, | ||
| 1535 | }; | ||
| 1536 | |||
| 1481 | #endif /* __LINUX_NL80211_H */ | 1537 | #endif /* __LINUX_NL80211_H */ |
