nl80211: Sync with wireless-testing.git
The driver_nl80211.c changes are needed to avoid compiler warnings with two frequency attributes pointing to the same value. Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
8fcabc6817
commit
9fcd300db6
2 changed files with 102 additions and 19 deletions
|
@ -5784,10 +5784,8 @@ static void phy_info_freq(struct hostapd_hw_modes *mode,
|
||||||
|
|
||||||
if (tb_freq[NL80211_FREQUENCY_ATTR_DISABLED])
|
if (tb_freq[NL80211_FREQUENCY_ATTR_DISABLED])
|
||||||
chan->flag |= HOSTAPD_CHAN_DISABLED;
|
chan->flag |= HOSTAPD_CHAN_DISABLED;
|
||||||
if (tb_freq[NL80211_FREQUENCY_ATTR_PASSIVE_SCAN])
|
if (tb_freq[NL80211_FREQUENCY_ATTR_NO_IR])
|
||||||
chan->flag |= HOSTAPD_CHAN_PASSIVE_SCAN;
|
chan->flag |= HOSTAPD_CHAN_PASSIVE_SCAN | HOSTAPD_CHAN_NO_IBSS;
|
||||||
if (tb_freq[NL80211_FREQUENCY_ATTR_NO_IBSS])
|
|
||||||
chan->flag |= HOSTAPD_CHAN_NO_IBSS;
|
|
||||||
if (tb_freq[NL80211_FREQUENCY_ATTR_RADAR])
|
if (tb_freq[NL80211_FREQUENCY_ATTR_RADAR])
|
||||||
chan->flag |= HOSTAPD_CHAN_RADAR;
|
chan->flag |= HOSTAPD_CHAN_RADAR;
|
||||||
|
|
||||||
|
@ -5816,8 +5814,7 @@ static int phy_info_freqs(struct phy_info_arg *phy_info,
|
||||||
static struct nla_policy freq_policy[NL80211_FREQUENCY_ATTR_MAX + 1] = {
|
static struct nla_policy freq_policy[NL80211_FREQUENCY_ATTR_MAX + 1] = {
|
||||||
[NL80211_FREQUENCY_ATTR_FREQ] = { .type = NLA_U32 },
|
[NL80211_FREQUENCY_ATTR_FREQ] = { .type = NLA_U32 },
|
||||||
[NL80211_FREQUENCY_ATTR_DISABLED] = { .type = NLA_FLAG },
|
[NL80211_FREQUENCY_ATTR_DISABLED] = { .type = NLA_FLAG },
|
||||||
[NL80211_FREQUENCY_ATTR_PASSIVE_SCAN] = { .type = NLA_FLAG },
|
[NL80211_FREQUENCY_ATTR_NO_IR] = { .type = NLA_FLAG },
|
||||||
[NL80211_FREQUENCY_ATTR_NO_IBSS] = { .type = NLA_FLAG },
|
|
||||||
[NL80211_FREQUENCY_ATTR_RADAR] = { .type = NLA_FLAG },
|
[NL80211_FREQUENCY_ATTR_RADAR] = { .type = NLA_FLAG },
|
||||||
[NL80211_FREQUENCY_ATTR_MAX_TX_POWER] = { .type = NLA_U32 },
|
[NL80211_FREQUENCY_ATTR_MAX_TX_POWER] = { .type = NLA_U32 },
|
||||||
[NL80211_FREQUENCY_ATTR_DFS_STATE] = { .type = NLA_U32 },
|
[NL80211_FREQUENCY_ATTR_DFS_STATE] = { .type = NLA_U32 },
|
||||||
|
|
|
@ -581,7 +581,14 @@
|
||||||
* operation, %NL80211_ATTR_MAC contains the peer MAC address, and
|
* operation, %NL80211_ATTR_MAC contains the peer MAC address, and
|
||||||
* %NL80211_ATTR_REASON_CODE the reason code to be used (only with
|
* %NL80211_ATTR_REASON_CODE the reason code to be used (only with
|
||||||
* %NL80211_TDLS_TEARDOWN).
|
* %NL80211_TDLS_TEARDOWN).
|
||||||
* @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame.
|
* @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. The
|
||||||
|
* %NL80211_ATTR_TDLS_ACTION attribute determines the type of frame to be
|
||||||
|
* sent. Public Action codes (802.11-2012 8.1.5.1) will be sent as
|
||||||
|
* 802.11 management frames, while TDLS action codes (802.11-2012
|
||||||
|
* 8.5.13.1) will be encapsulated and sent as data frames. The currently
|
||||||
|
* supported Public Action code is %WLAN_PUB_ACTION_TDLS_DISCOVER_RES
|
||||||
|
* and the currently supported TDLS actions codes are given in
|
||||||
|
* &enum ieee80211_tdls_actioncode.
|
||||||
*
|
*
|
||||||
* @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP
|
* @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP
|
||||||
* (or GO) interface (i.e. hostapd) to ask for unexpected frames to
|
* (or GO) interface (i.e. hostapd) to ask for unexpected frames to
|
||||||
|
@ -686,6 +693,15 @@
|
||||||
* other station that transmission must be blocked until the channel
|
* other station that transmission must be blocked until the channel
|
||||||
* switch is complete.
|
* switch is complete.
|
||||||
*
|
*
|
||||||
|
* @NL80211_CMD_VENDOR: Vendor-specified command/event. The command is specified
|
||||||
|
* by the %NL80211_ATTR_VENDOR_ID attribute and a sub-command in
|
||||||
|
* %NL80211_ATTR_VENDOR_SUBCMD. Parameter(s) can be transported in
|
||||||
|
* %NL80211_ATTR_VENDOR_DATA.
|
||||||
|
* For feature advertisement, the %NL80211_ATTR_VENDOR_DATA attribute is
|
||||||
|
* used in the wiphy data as a nested attribute containing descriptions
|
||||||
|
* (&struct nl80211_vendor_cmd_info) of the supported vendor commands.
|
||||||
|
* This may also be sent as an event with the same attributes.
|
||||||
|
*
|
||||||
* @NL80211_CMD_MAX: highest used command number
|
* @NL80211_CMD_MAX: highest used command number
|
||||||
* @__NL80211_CMD_AFTER_LAST: internal use
|
* @__NL80211_CMD_AFTER_LAST: internal use
|
||||||
*/
|
*/
|
||||||
|
@ -853,6 +869,8 @@ enum nl80211_commands {
|
||||||
|
|
||||||
NL80211_CMD_CHANNEL_SWITCH,
|
NL80211_CMD_CHANNEL_SWITCH,
|
||||||
|
|
||||||
|
NL80211_CMD_VENDOR,
|
||||||
|
|
||||||
/* add new commands above here */
|
/* add new commands above here */
|
||||||
|
|
||||||
/* used to define NL80211_CMD_MAX below */
|
/* used to define NL80211_CMD_MAX below */
|
||||||
|
@ -1508,6 +1526,21 @@ enum nl80211_commands {
|
||||||
* to react to radar events, e.g. initiate a channel switch or leave the
|
* to react to radar events, e.g. initiate a channel switch or leave the
|
||||||
* IBSS network.
|
* IBSS network.
|
||||||
*
|
*
|
||||||
|
* @NL80211_ATTR_SUPPORT_5_MHZ: A flag indicating that the device supports
|
||||||
|
* 5 MHz channel bandwidth.
|
||||||
|
* @NL80211_ATTR_SUPPORT_10_MHZ: A flag indicating that the device supports
|
||||||
|
* 10 MHz channel bandwidth.
|
||||||
|
*
|
||||||
|
* @NL80211_ATTR_OPMODE_NOTIF: Operating mode field from Operating Mode
|
||||||
|
* Notification Element based on association request when used with
|
||||||
|
* %NL80211_CMD_NEW_STATION; u8 attribute.
|
||||||
|
*
|
||||||
|
* @NL80211_ATTR_VENDOR_ID: The vendor ID, either a 24-bit OUI or, if
|
||||||
|
* %NL80211_VENDOR_ID_IS_LINUX is set, a special Linux ID (not used yet)
|
||||||
|
* @NL80211_ATTR_VENDOR_SUBCMD: vendor sub-command
|
||||||
|
* @NL80211_ATTR_VENDOR_DATA: data for the vendor command, if any; this
|
||||||
|
* attribute is also used for vendor command feature advertisement
|
||||||
|
*
|
||||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||||
*/
|
*/
|
||||||
|
@ -1824,6 +1857,15 @@ enum nl80211_attrs {
|
||||||
|
|
||||||
NL80211_ATTR_HANDLE_DFS,
|
NL80211_ATTR_HANDLE_DFS,
|
||||||
|
|
||||||
|
NL80211_ATTR_SUPPORT_5_MHZ,
|
||||||
|
NL80211_ATTR_SUPPORT_10_MHZ,
|
||||||
|
|
||||||
|
NL80211_ATTR_OPMODE_NOTIF,
|
||||||
|
|
||||||
|
NL80211_ATTR_VENDOR_ID,
|
||||||
|
NL80211_ATTR_VENDOR_SUBCMD,
|
||||||
|
NL80211_ATTR_VENDOR_DATA,
|
||||||
|
|
||||||
/* add attributes here, update the policy in nl80211.c */
|
/* add attributes here, update the policy in nl80211.c */
|
||||||
|
|
||||||
__NL80211_ATTR_AFTER_LAST,
|
__NL80211_ATTR_AFTER_LAST,
|
||||||
|
@ -2224,10 +2266,9 @@ enum nl80211_band_attr {
|
||||||
* @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz
|
* @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz
|
||||||
* @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current
|
* @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current
|
||||||
* regulatory domain.
|
* regulatory domain.
|
||||||
* @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is
|
* @NL80211_FREQUENCY_ATTR_NO_IR: no mechanisms that initiate radiation
|
||||||
* permitted on this channel in current regulatory domain.
|
* are permitted on this channel, this includes sending probe
|
||||||
* @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted
|
* requests, or modes of operation that require beaconing.
|
||||||
* on this channel in current regulatory domain.
|
|
||||||
* @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory
|
* @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory
|
||||||
* on this channel in current regulatory domain.
|
* on this channel in current regulatory domain.
|
||||||
* @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm
|
* @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm
|
||||||
|
@ -2254,8 +2295,8 @@ enum nl80211_frequency_attr {
|
||||||
__NL80211_FREQUENCY_ATTR_INVALID,
|
__NL80211_FREQUENCY_ATTR_INVALID,
|
||||||
NL80211_FREQUENCY_ATTR_FREQ,
|
NL80211_FREQUENCY_ATTR_FREQ,
|
||||||
NL80211_FREQUENCY_ATTR_DISABLED,
|
NL80211_FREQUENCY_ATTR_DISABLED,
|
||||||
NL80211_FREQUENCY_ATTR_PASSIVE_SCAN,
|
NL80211_FREQUENCY_ATTR_NO_IR,
|
||||||
NL80211_FREQUENCY_ATTR_NO_IBSS,
|
__NL80211_FREQUENCY_ATTR_NO_IBSS,
|
||||||
NL80211_FREQUENCY_ATTR_RADAR,
|
NL80211_FREQUENCY_ATTR_RADAR,
|
||||||
NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
|
NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
|
||||||
NL80211_FREQUENCY_ATTR_DFS_STATE,
|
NL80211_FREQUENCY_ATTR_DFS_STATE,
|
||||||
|
@ -2271,6 +2312,9 @@ enum nl80211_frequency_attr {
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
|
#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
|
||||||
|
#define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR
|
||||||
|
#define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR
|
||||||
|
#define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum nl80211_bitrate_attr - bitrate attributes
|
* enum nl80211_bitrate_attr - bitrate attributes
|
||||||
|
@ -2413,8 +2457,9 @@ enum nl80211_sched_scan_match_attr {
|
||||||
* @NL80211_RRF_DFS: DFS support is required to be used
|
* @NL80211_RRF_DFS: DFS support is required to be used
|
||||||
* @NL80211_RRF_PTP_ONLY: this is only for Point To Point links
|
* @NL80211_RRF_PTP_ONLY: this is only for Point To Point links
|
||||||
* @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links
|
* @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links
|
||||||
* @NL80211_RRF_PASSIVE_SCAN: passive scan is required
|
* @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed,
|
||||||
* @NL80211_RRF_NO_IBSS: no IBSS is allowed
|
* this includes probe requests or modes of operation that require
|
||||||
|
* beaconing.
|
||||||
*/
|
*/
|
||||||
enum nl80211_reg_rule_flags {
|
enum nl80211_reg_rule_flags {
|
||||||
NL80211_RRF_NO_OFDM = 1<<0,
|
NL80211_RRF_NO_OFDM = 1<<0,
|
||||||
|
@ -2424,10 +2469,17 @@ enum nl80211_reg_rule_flags {
|
||||||
NL80211_RRF_DFS = 1<<4,
|
NL80211_RRF_DFS = 1<<4,
|
||||||
NL80211_RRF_PTP_ONLY = 1<<5,
|
NL80211_RRF_PTP_ONLY = 1<<5,
|
||||||
NL80211_RRF_PTMP_ONLY = 1<<6,
|
NL80211_RRF_PTMP_ONLY = 1<<6,
|
||||||
NL80211_RRF_PASSIVE_SCAN = 1<<7,
|
NL80211_RRF_NO_IR = 1<<7,
|
||||||
NL80211_RRF_NO_IBSS = 1<<8,
|
__NL80211_RRF_NO_IBSS = 1<<8,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
|
||||||
|
#define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR
|
||||||
|
#define NL80211_RRF_NO_IR NL80211_RRF_NO_IR
|
||||||
|
|
||||||
|
/* For backport compatibility with older userspace */
|
||||||
|
#define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum nl80211_dfs_regions - regulatory DFS regions
|
* enum nl80211_dfs_regions - regulatory DFS regions
|
||||||
*
|
*
|
||||||
|
@ -3058,21 +3110,35 @@ enum nl80211_key_attributes {
|
||||||
* in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with
|
* in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with
|
||||||
* 1 = 500 kbps) but without the IE length restriction (at most
|
* 1 = 500 kbps) but without the IE length restriction (at most
|
||||||
* %NL80211_MAX_SUPP_RATES in a single array).
|
* %NL80211_MAX_SUPP_RATES in a single array).
|
||||||
* @NL80211_TXRATE_MCS: HT (MCS) rates allowed for TX rate selection
|
* @NL80211_TXRATE_HT: HT (MCS) rates allowed for TX rate selection
|
||||||
* in an array of MCS numbers.
|
* in an array of MCS numbers.
|
||||||
|
* @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection,
|
||||||
|
* see &struct nl80211_txrate_vht
|
||||||
* @__NL80211_TXRATE_AFTER_LAST: internal
|
* @__NL80211_TXRATE_AFTER_LAST: internal
|
||||||
* @NL80211_TXRATE_MAX: highest TX rate attribute
|
* @NL80211_TXRATE_MAX: highest TX rate attribute
|
||||||
*/
|
*/
|
||||||
enum nl80211_tx_rate_attributes {
|
enum nl80211_tx_rate_attributes {
|
||||||
__NL80211_TXRATE_INVALID,
|
__NL80211_TXRATE_INVALID,
|
||||||
NL80211_TXRATE_LEGACY,
|
NL80211_TXRATE_LEGACY,
|
||||||
NL80211_TXRATE_MCS,
|
NL80211_TXRATE_HT,
|
||||||
|
NL80211_TXRATE_VHT,
|
||||||
|
|
||||||
/* keep last */
|
/* keep last */
|
||||||
__NL80211_TXRATE_AFTER_LAST,
|
__NL80211_TXRATE_AFTER_LAST,
|
||||||
NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1
|
NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define NL80211_TXRATE_MCS NL80211_TXRATE_HT
|
||||||
|
#define NL80211_VHT_NSS_MAX 8
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct nl80211_txrate_vht - VHT MCS/NSS txrate bitmap
|
||||||
|
* @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.)
|
||||||
|
*/
|
||||||
|
struct nl80211_txrate_vht {
|
||||||
|
__u16 mcs[NL80211_VHT_NSS_MAX];
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum nl80211_band - Frequency band
|
* enum nl80211_band - Frequency band
|
||||||
* @NL80211_BAND_2GHZ: 2.4 GHz ISM band
|
* @NL80211_BAND_2GHZ: 2.4 GHz ISM band
|
||||||
|
@ -3934,4 +4000,24 @@ enum nl80211_rxmgmt_flags {
|
||||||
NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0,
|
NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If this flag is unset, the lower 24 bits are an OUI, if set
|
||||||
|
* a Linux nl80211 vendor ID is used (no such IDs are allocated
|
||||||
|
* yet, so that's not valid so far)
|
||||||
|
*/
|
||||||
|
#define NL80211_VENDOR_ID_IS_LINUX 0x80000000
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct nl80211_vendor_cmd_info - vendor command data
|
||||||
|
* @vendor_id: If the %NL80211_VENDOR_ID_IS_LINUX flag is clear, then the
|
||||||
|
* value is a 24-bit OUI; if it is set then a separately allocated ID
|
||||||
|
* may be used, but no such IDs are allocated yet. New IDs should be
|
||||||
|
* added to this file when needed.
|
||||||
|
* @subcmd: sub-command ID for the command
|
||||||
|
*/
|
||||||
|
struct nl80211_vendor_cmd_info {
|
||||||
|
__u32 vendor_id;
|
||||||
|
__u32 subcmd;
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* __LINUX_NL80211_H */
|
#endif /* __LINUX_NL80211_H */
|
||||||
|
|
Loading…
Reference in a new issue