Merge tag 'mac80211-next-for-net-next-2020-12-11' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Johannes Berg says: ==================== A new set of wireless changes: * validate key indices for key deletion * more preamble support in mac80211 * various 6 GHz scan fixes/improvements * a common SAR power limitations API * various small fixes & code improvements * tag 'mac80211-next-for-net-next-2020-12-11' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next: (35 commits) mac80211: add ieee80211_set_sar_specs nl80211: add common API to configure SAR power limitations mac80211: fix a mistake check for rx_stats update mac80211: mlme: save ssid info to ieee80211_bss_conf while assoc mac80211: Update rate control on channel change mac80211: don't filter out beacons once we start CSA mac80211: Fix calculation of minimal channel width mac80211: ignore country element TX power on 6 GHz mac80211: use bitfield helpers for BA session action frames mac80211: support Rx timestamp calculation for all preamble types mac80211: don't set set TDLS STA bandwidth wider than possible mac80211: support driver-based disconnect with reconnect hint cfg80211: support immediate reconnect request hint mac80211: use struct assignment for he_obss_pd cfg80211: remove struct ieee80211_he_bss_color nl80211: validate key indexes for cfg80211_registered_device cfg80211: include block-tx flag in channel switch started event mac80211: disallow band-switch during CSA ieee80211: update reduced neighbor report TBTT info length cfg80211: Save the regulatory domain when setting custom regulatory ... ==================== Link: https://lore.kernel.org/r/20201211142552.209018-1-johannes@sipsolutions.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -1178,6 +1178,10 @@
|
||||
* includes the contents of the frame. %NL80211_ATTR_ACK flag is included
|
||||
* if the recipient acknowledged the frame.
|
||||
*
|
||||
* @NL80211_CMD_SET_SAR_SPECS: SAR power limitation configuration is
|
||||
* passed using %NL80211_ATTR_SAR_SPEC. %NL80211_ATTR_WIPHY is used to
|
||||
* specify the wiphy index to be applied to.
|
||||
*
|
||||
* @NL80211_CMD_MAX: highest used command number
|
||||
* @__NL80211_CMD_AFTER_LAST: internal use
|
||||
*/
|
||||
@@ -1408,6 +1412,8 @@ enum nl80211_commands {
|
||||
|
||||
NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS,
|
||||
|
||||
NL80211_CMD_SET_SAR_SPECS,
|
||||
|
||||
/* add new commands above here */
|
||||
|
||||
/* used to define NL80211_CMD_MAX below */
|
||||
@@ -2079,7 +2085,8 @@ enum nl80211_commands {
|
||||
* until the channel switch event.
|
||||
* @NL80211_ATTR_CH_SWITCH_BLOCK_TX: flag attribute specifying that transmission
|
||||
* must be blocked on the current channel (before the channel switch
|
||||
* operation).
|
||||
* operation). Also included in the channel switch started event if quiet
|
||||
* was requested by the AP.
|
||||
* @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information
|
||||
* for the time while performing a channel switch.
|
||||
* @NL80211_ATTR_CNTDWN_OFFS_BEACON: An array of offsets (u16) to the channel
|
||||
@@ -2534,6 +2541,15 @@ enum nl80211_commands {
|
||||
* This is a u8 attribute that encapsulates one of the values from
|
||||
* &enum nl80211_sae_pwe_mechanism.
|
||||
*
|
||||
* @NL80211_ATTR_SAR_SPEC: SAR power limitation specification when
|
||||
* used with %NL80211_CMD_SET_SAR_SPECS. The message contains fields
|
||||
* of %nl80211_sar_attrs which specifies the sar type and related
|
||||
* sar specs. Sar specs contains array of %nl80211_sar_specs_attrs.
|
||||
*
|
||||
* @NL80211_ATTR_RECONNECT_REQUESTED: flag attribute, used with deauth and
|
||||
* disassoc events to indicate that an immediate reconnect to the AP
|
||||
* is desired.
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@@ -3025,6 +3041,10 @@ enum nl80211_attrs {
|
||||
|
||||
NL80211_ATTR_SAE_PWE,
|
||||
|
||||
NL80211_ATTR_RECONNECT_REQUESTED,
|
||||
|
||||
NL80211_ATTR_SAR_SPEC,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -7156,4 +7176,96 @@ enum nl80211_sae_pwe_mechanism {
|
||||
NL80211_SAE_PWE_HASH_TO_ELEMENT,
|
||||
NL80211_SAE_PWE_BOTH,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_sar_type - type of SAR specs
|
||||
*
|
||||
* @NL80211_SAR_TYPE_POWER: power limitation specified in 0.25dBm unit
|
||||
*
|
||||
*/
|
||||
enum nl80211_sar_type {
|
||||
NL80211_SAR_TYPE_POWER,
|
||||
|
||||
/* add new type here */
|
||||
|
||||
/* Keep last */
|
||||
NUM_NL80211_SAR_TYPE,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_sar_attrs - Attributes for SAR spec
|
||||
*
|
||||
* @NL80211_SAR_ATTR_TYPE: the SAR type as defined in &enum nl80211_sar_type.
|
||||
*
|
||||
* @NL80211_SAR_ATTR_SPECS: Nested array of SAR power
|
||||
* limit specifications. Each specification contains a set
|
||||
* of %nl80211_sar_specs_attrs.
|
||||
*
|
||||
* For SET operation, it contains array of %NL80211_SAR_ATTR_SPECS_POWER
|
||||
* and %NL80211_SAR_ATTR_SPECS_RANGE_INDEX.
|
||||
*
|
||||
* For sar_capa dump, it contains array of
|
||||
* %NL80211_SAR_ATTR_SPECS_START_FREQ
|
||||
* and %NL80211_SAR_ATTR_SPECS_END_FREQ.
|
||||
*
|
||||
* @__NL80211_SAR_ATTR_LAST: Internal
|
||||
* @NL80211_SAR_ATTR_MAX: highest sar attribute
|
||||
*
|
||||
* These attributes are used with %NL80211_CMD_SET_SAR_SPEC
|
||||
*/
|
||||
enum nl80211_sar_attrs {
|
||||
__NL80211_SAR_ATTR_INVALID,
|
||||
|
||||
NL80211_SAR_ATTR_TYPE,
|
||||
NL80211_SAR_ATTR_SPECS,
|
||||
|
||||
__NL80211_SAR_ATTR_LAST,
|
||||
NL80211_SAR_ATTR_MAX = __NL80211_SAR_ATTR_LAST - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_sar_specs_attrs - Attributes for SAR power limit specs
|
||||
*
|
||||
* @NL80211_SAR_ATTR_SPECS_POWER: Required (s32)value to specify the actual
|
||||
* power limit value in units of 0.25 dBm if type is
|
||||
* NL80211_SAR_TYPE_POWER. (i.e., a value of 44 represents 11 dBm).
|
||||
* 0 means userspace doesn't have SAR limitation on this associated range.
|
||||
*
|
||||
* @NL80211_SAR_ATTR_SPECS_RANGE_INDEX: Required (u32) value to specify the
|
||||
* index of exported freq range table and the associated power limitation
|
||||
* is applied to this range.
|
||||
*
|
||||
* Userspace isn't required to set all the ranges advertised by WLAN driver,
|
||||
* and userspace can skip some certain ranges. These skipped ranges don't
|
||||
* have SAR limitations, and they are same as setting the
|
||||
* %NL80211_SAR_ATTR_SPECS_POWER to any unreasonable high value because any
|
||||
* value higher than regulatory allowed value just means SAR power
|
||||
* limitation is removed, but it's required to set at least one range.
|
||||
* It's not allowed to set duplicated range in one SET operation.
|
||||
*
|
||||
* Every SET operation overwrites previous SET operation.
|
||||
*
|
||||
* @NL80211_SAR_ATTR_SPECS_START_FREQ: Required (u32) value to specify the start
|
||||
* frequency of this range edge when registering SAR capability to wiphy.
|
||||
* It's not a channel center frequency. The unit is kHz.
|
||||
*
|
||||
* @NL80211_SAR_ATTR_SPECS_END_FREQ: Required (u32) value to specify the end
|
||||
* frequency of this range edge when registering SAR capability to wiphy.
|
||||
* It's not a channel center frequency. The unit is kHz.
|
||||
*
|
||||
* @__NL80211_SAR_ATTR_SPECS_LAST: Internal
|
||||
* @NL80211_SAR_ATTR_SPECS_MAX: highest sar specs attribute
|
||||
*/
|
||||
enum nl80211_sar_specs_attrs {
|
||||
__NL80211_SAR_ATTR_SPECS_INVALID,
|
||||
|
||||
NL80211_SAR_ATTR_SPECS_POWER,
|
||||
NL80211_SAR_ATTR_SPECS_RANGE_INDEX,
|
||||
NL80211_SAR_ATTR_SPECS_START_FREQ,
|
||||
NL80211_SAR_ATTR_SPECS_END_FREQ,
|
||||
|
||||
__NL80211_SAR_ATTR_SPECS_LAST,
|
||||
NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NL80211_H */
|
||||
|
||||
@@ -69,6 +69,16 @@ enum rfkill_operation {
|
||||
RFKILL_OP_CHANGE_ALL,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum rfkill_hard_block_reasons - hard block reasons
|
||||
* @RFKILL_HARD_BLOCK_SIGNAL: the hardware rfkill signal is active
|
||||
* @RFKILL_HARD_BLOCK_NOT_OWNER: the NIC is not owned by the host
|
||||
*/
|
||||
enum rfkill_hard_block_reasons {
|
||||
RFKILL_HARD_BLOCK_SIGNAL = 1 << 0,
|
||||
RFKILL_HARD_BLOCK_NOT_OWNER = 1 << 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct rfkill_event - events for userspace on /dev/rfkill
|
||||
* @idx: index of dev rfkill
|
||||
@@ -76,6 +86,8 @@ enum rfkill_operation {
|
||||
* @op: operation code
|
||||
* @hard: hard state (0/1)
|
||||
* @soft: soft state (0/1)
|
||||
* @hard_block_reasons: valid if hard is set. One or several reasons from
|
||||
* &enum rfkill_hard_block_reasons.
|
||||
*
|
||||
* Structure used for userspace communication on /dev/rfkill,
|
||||
* used for events from the kernel and control to the kernel.
|
||||
@@ -84,7 +96,9 @@ struct rfkill_event {
|
||||
__u32 idx;
|
||||
__u8 type;
|
||||
__u8 op;
|
||||
__u8 soft, hard;
|
||||
__u8 soft;
|
||||
__u8 hard;
|
||||
__u8 hard_block_reasons;
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user