aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2014-01-01 15:39:56 -0500
committerJohn W. Linville <linville@tuxdriver.com>2014-01-01 15:39:56 -0500
commitad86c55bac643a745f480d26689d153ec0f38b04 (patch)
tree8ae3e20d2f3619021393166fe1f50a8ca00c1c33 /include/uapi/linux
parent21eb218989523b7bee28900aaec9f9296b70fa27 (diff)
parent39731b78b4afebb7501c05b68e2443a1b250b41c (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/nl80211.h65
1 files changed, 63 insertions, 2 deletions
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 129b7b087148..e1307909ecf1 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -693,6 +693,15 @@
693 * other station that transmission must be blocked until the channel 693 * other station that transmission must be blocked until the channel
694 * switch is complete. 694 * switch is complete.
695 * 695 *
696 * @NL80211_CMD_VENDOR: Vendor-specified command/event. The command is specified
697 * by the %NL80211_ATTR_VENDOR_ID attribute and a sub-command in
698 * %NL80211_ATTR_VENDOR_SUBCMD. Parameter(s) can be transported in
699 * %NL80211_ATTR_VENDOR_DATA.
700 * For feature advertisement, the %NL80211_ATTR_VENDOR_DATA attribute is
701 * used in the wiphy data as a nested attribute containing descriptions
702 * (&struct nl80211_vendor_cmd_info) of the supported vendor commands.
703 * This may also be sent as an event with the same attributes.
704 *
696 * @NL80211_CMD_MAX: highest used command number 705 * @NL80211_CMD_MAX: highest used command number
697 * @__NL80211_CMD_AFTER_LAST: internal use 706 * @__NL80211_CMD_AFTER_LAST: internal use
698 */ 707 */
@@ -860,6 +869,8 @@ enum nl80211_commands {
860 869
861 NL80211_CMD_CHANNEL_SWITCH, 870 NL80211_CMD_CHANNEL_SWITCH,
862 871
872 NL80211_CMD_VENDOR,
873
863 /* add new commands above here */ 874 /* add new commands above here */
864 875
865 /* used to define NL80211_CMD_MAX below */ 876 /* used to define NL80211_CMD_MAX below */
@@ -1520,6 +1531,16 @@ enum nl80211_commands {
1520 * @NL80211_ATTR_SUPPORT_10_MHZ: A flag indicating that the device supports 1531 * @NL80211_ATTR_SUPPORT_10_MHZ: A flag indicating that the device supports
1521 * 10 MHz channel bandwidth. 1532 * 10 MHz channel bandwidth.
1522 * 1533 *
1534 * @NL80211_ATTR_OPMODE_NOTIF: Operating mode field from Operating Mode
1535 * Notification Element based on association request when used with
1536 * %NL80211_CMD_NEW_STATION; u8 attribute.
1537 *
1538 * @NL80211_ATTR_VENDOR_ID: The vendor ID, either a 24-bit OUI or, if
1539 * %NL80211_VENDOR_ID_IS_LINUX is set, a special Linux ID (not used yet)
1540 * @NL80211_ATTR_VENDOR_SUBCMD: vendor sub-command
1541 * @NL80211_ATTR_VENDOR_DATA: data for the vendor command, if any; this
1542 * attribute is also used for vendor command feature advertisement
1543 *
1523 * @NL80211_ATTR_MAX: highest attribute number currently defined 1544 * @NL80211_ATTR_MAX: highest attribute number currently defined
1524 * @__NL80211_ATTR_AFTER_LAST: internal use 1545 * @__NL80211_ATTR_AFTER_LAST: internal use
1525 */ 1546 */
@@ -1839,6 +1860,12 @@ enum nl80211_attrs {
1839 NL80211_ATTR_SUPPORT_5_MHZ, 1860 NL80211_ATTR_SUPPORT_5_MHZ,
1840 NL80211_ATTR_SUPPORT_10_MHZ, 1861 NL80211_ATTR_SUPPORT_10_MHZ,
1841 1862
1863 NL80211_ATTR_OPMODE_NOTIF,
1864
1865 NL80211_ATTR_VENDOR_ID,
1866 NL80211_ATTR_VENDOR_SUBCMD,
1867 NL80211_ATTR_VENDOR_DATA,
1868
1842 /* add attributes here, update the policy in nl80211.c */ 1869 /* add attributes here, update the policy in nl80211.c */
1843 1870
1844 __NL80211_ATTR_AFTER_LAST, 1871 __NL80211_ATTR_AFTER_LAST,
@@ -3083,21 +3110,35 @@ enum nl80211_key_attributes {
3083 * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with 3110 * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with
3084 * 1 = 500 kbps) but without the IE length restriction (at most 3111 * 1 = 500 kbps) but without the IE length restriction (at most
3085 * %NL80211_MAX_SUPP_RATES in a single array). 3112 * %NL80211_MAX_SUPP_RATES in a single array).
3086 * @NL80211_TXRATE_MCS: HT (MCS) rates allowed for TX rate selection 3113 * @NL80211_TXRATE_HT: HT (MCS) rates allowed for TX rate selection
3087 * in an array of MCS numbers. 3114 * in an array of MCS numbers.
3115 * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection,
3116 * see &struct nl80211_txrate_vht
3088 * @__NL80211_TXRATE_AFTER_LAST: internal 3117 * @__NL80211_TXRATE_AFTER_LAST: internal
3089 * @NL80211_TXRATE_MAX: highest TX rate attribute 3118 * @NL80211_TXRATE_MAX: highest TX rate attribute
3090 */ 3119 */
3091enum nl80211_tx_rate_attributes { 3120enum nl80211_tx_rate_attributes {
3092 __NL80211_TXRATE_INVALID, 3121 __NL80211_TXRATE_INVALID,
3093 NL80211_TXRATE_LEGACY, 3122 NL80211_TXRATE_LEGACY,
3094 NL80211_TXRATE_MCS, 3123 NL80211_TXRATE_HT,
3124 NL80211_TXRATE_VHT,
3095 3125
3096 /* keep last */ 3126 /* keep last */
3097 __NL80211_TXRATE_AFTER_LAST, 3127 __NL80211_TXRATE_AFTER_LAST,
3098 NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1 3128 NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1
3099}; 3129};
3100 3130
3131#define NL80211_TXRATE_MCS NL80211_TXRATE_HT
3132#define NL80211_VHT_NSS_MAX 8
3133
3134/**
3135 * struct nl80211_txrate_vht - VHT MCS/NSS txrate bitmap
3136 * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.)
3137 */
3138struct nl80211_txrate_vht {
3139 __u16 mcs[NL80211_VHT_NSS_MAX];
3140};
3141
3101/** 3142/**
3102 * enum nl80211_band - Frequency band 3143 * enum nl80211_band - Frequency band
3103 * @NL80211_BAND_2GHZ: 2.4 GHz ISM band 3144 * @NL80211_BAND_2GHZ: 2.4 GHz ISM band
@@ -3959,4 +4000,24 @@ enum nl80211_rxmgmt_flags {
3959 NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0, 4000 NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0,
3960}; 4001};
3961 4002
4003/*
4004 * If this flag is unset, the lower 24 bits are an OUI, if set
4005 * a Linux nl80211 vendor ID is used (no such IDs are allocated
4006 * yet, so that's not valid so far)
4007 */
4008#define NL80211_VENDOR_ID_IS_LINUX 0x80000000
4009
4010/**
4011 * struct nl80211_vendor_cmd_info - vendor command data
4012 * @vendor_id: If the %NL80211_VENDOR_ID_IS_LINUX flag is clear, then the
4013 * value is a 24-bit OUI; if it is set then a separately allocated ID
4014 * may be used, but no such IDs are allocated yet. New IDs should be
4015 * added to this file when needed.
4016 * @subcmd: sub-command ID for the command
4017 */
4018struct nl80211_vendor_cmd_info {
4019 __u32 vendor_id;
4020 __u32 subcmd;
4021};
4022
3962#endif /* __LINUX_NL80211_H */ 4023#endif /* __LINUX_NL80211_H */