| From ba300c33cdf557fd7bb1c985afa615dfdc7cb1eb Mon Sep 17 00:00:00 2001 |
| From: Johannes Berg <johannes.berg@intel.com> |
| Date: Thu, 13 Feb 2020 19:07:44 +0100 |
| Subject: [PATCH] update nl80211.h |
| |
| Change-Id: Ia0e95e0cc90a2dfc6caec71f1c1052588411b6bf |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| --- |
| commit ba300c33cdf557fd7bb1c985afa615dfdc7cb1eb upstream |
| |
| nl80211.h | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- |
| 1 file changed, 79 insertions(+), 1 deletion(-) |
| |
| diff --git a/nl80211.h b/nl80211.h |
| index 5eab191607f8..158bccb4a47b 100644 |
| --- a/nl80211.h |
| +++ b/nl80211.h |
| @@ -1039,11 +1039,14 @@ |
| * a control port frame and as a notification that a control port frame |
| * has been received. %NL80211_ATTR_FRAME is used to specify the |
| * frame contents. The frame is the raw EAPoL data, without ethernet or |
| - * 802.11 headers. |
| + * 802.11 headers. An optional %NL80211_ATTR_SRC_MAC can be used to send |
| + * pre-auth frames to STAs on behalf of other APs. |
| * When used as an event indication %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, |
| * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT and %NL80211_ATTR_MAC are added |
| * indicating the protocol type of the received frame; whether the frame |
| * was received unencrypted and the MAC address of the peer respectively. |
| + * %NL80211_ATTR_DST_MAC can be used to forward pre-auth frames in |
| + * userspace while using AP mode. |
| * |
| * @NL80211_CMD_RELOAD_REGDB: Request that the regdb firmware file is reloaded. |
| * |
| @@ -2400,6 +2403,18 @@ enum nl80211_commands { |
| * @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key |
| * (u16). |
| * |
| + * @NL80211_ATTR_HE_BSS_COLOR: nested attribute for BSS Color Settings. |
| + * |
| + * @NL80211_ATTR_IFTYPE_AKM_SUITES: nested array attribute, with each entry |
| + * using attributes from &enum nl80211_iftype_akm_attributes. This |
| + * attribute is sent in a response to %NL80211_CMD_GET_WIPHY indicating |
| + * supported AKM suites capability per interface. AKMs advertised in |
| + * %NL80211_ATTR_AKM_SUITES are default capabilities if AKM suites not |
| + * advertised for a specific interface type. |
| + * |
| + * @NL80211_ATTR_SRC_MAC: MAC address used in control port over nl80211 transmit |
| + * @NL80211_ATTR_DST_MAC: MAC address used in control port over nl80211 receive |
| + * |
| * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| * @NL80211_ATTR_MAX: highest attribute number currently defined |
| * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -2864,6 +2879,13 @@ enum nl80211_attrs { |
| |
| NL80211_ATTR_VLAN_ID, |
| |
| + NL80211_ATTR_HE_BSS_COLOR, |
| + |
| + NL80211_ATTR_IFTYPE_AKM_SUITES, |
| + |
| + NL80211_ATTR_SRC_MAC, |
| + NL80211_ATTR_DST_MAC, |
| + |
| /* add attributes here, update the policy in nl80211.c */ |
| |
| __NL80211_ATTR_AFTER_LAST, |
| @@ -3583,6 +3605,8 @@ enum nl80211_wmm_rule { |
| * @NL80211_FREQUENCY_ATTR_WMM: this channel has wmm limitations. |
| * This is a nested attribute that contains the wmm limitation per AC. |
| * (see &enum nl80211_wmm_rule) |
| + * @NL80211_FREQUENCY_ATTR_NO_HE: HE operation is not allowed on this channel |
| + * in current regulatory domain. |
| * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number |
| * currently defined |
| * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use |
| @@ -3612,6 +3636,7 @@ enum nl80211_frequency_attr { |
| NL80211_FREQUENCY_ATTR_NO_20MHZ, |
| NL80211_FREQUENCY_ATTR_NO_10MHZ, |
| NL80211_FREQUENCY_ATTR_WMM, |
| + NL80211_FREQUENCY_ATTR_NO_HE, |
| |
| /* keep last */ |
| __NL80211_FREQUENCY_ATTR_AFTER_LAST, |
| @@ -3809,6 +3834,7 @@ enum nl80211_sched_scan_match_attr { |
| * @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation |
| * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed |
| * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed |
| + * @NL80211_RRF_NO_HE: HE operation not allowed |
| */ |
| enum nl80211_reg_rule_flags { |
| NL80211_RRF_NO_OFDM = 1<<0, |
| @@ -3826,6 +3852,7 @@ enum nl80211_reg_rule_flags { |
| NL80211_RRF_NO_HT40PLUS = 1<<14, |
| NL80211_RRF_NO_80MHZ = 1<<15, |
| NL80211_RRF_NO_160MHZ = 1<<16, |
| + NL80211_RRF_NO_HE = 1<<17, |
| }; |
| |
| #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR |
| @@ -5521,6 +5548,10 @@ enum nl80211_feature_flags { |
| * feature, which prevents bufferbloat by using the expected transmission |
| * time to limit the amount of data buffered in the hardware. |
| * |
| + * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_MAC_ADDRS: The driver |
| + * can use src and dst MAC addresses with control port over nl80211 rx |
| + * and tx operations. |
| + * |
| * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| */ |
| @@ -5568,6 +5599,7 @@ enum nl80211_ext_feature_index { |
| NL80211_EXT_FEATURE_SAE_OFFLOAD, |
| NL80211_EXT_FEATURE_VLAN_OFFLOAD, |
| NL80211_EXT_FEATURE_AQL, |
| + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_MAC_ADDRS, |
| |
| /* add new features before the definition below */ |
| NUM_NL80211_EXT_FEATURES, |
| @@ -6587,5 +6619,51 @@ enum nl80211_obss_pd_attributes { |
| NL80211_HE_OBSS_PD_ATTR_MAX = __NL80211_HE_OBSS_PD_ATTR_LAST - 1, |
| }; |
| |
| +/** |
| + * enum nl80211_bss_color_attributes - BSS Color attributes |
| + * @__NL80211_HE_BSS_COLOR_ATTR_INVALID: Invalid |
| + * |
| + * @NL80211_HE_BSS_COLOR_ATTR_COLOR: the current BSS Color. |
| + * @NL80211_HE_BSS_COLOR_ATTR_DISABLED: is BSS coloring disabled. |
| + * @NL80211_HE_BSS_COLOR_ATTR_PARTIAL: the AID equation to be used.. |
| + * |
| + * @__NL80211_HE_BSS_COLOR_ATTR_LAST: Internal |
| + * @NL80211_HE_BSS_COLOR_ATTR_MAX: highest BSS Color attribute. |
| + */ |
| +enum nl80211_bss_color_attributes { |
| + __NL80211_HE_BSS_COLOR_ATTR_INVALID, |
| + |
| + NL80211_HE_BSS_COLOR_ATTR_COLOR, |
| + NL80211_HE_BSS_COLOR_ATTR_DISABLED, |
| + NL80211_HE_BSS_COLOR_ATTR_PARTIAL, |
| + |
| + /* keep last */ |
| + __NL80211_HE_BSS_COLOR_ATTR_LAST, |
| + NL80211_HE_BSS_COLOR_ATTR_MAX = __NL80211_HE_BSS_COLOR_ATTR_LAST - 1, |
| +}; |
| + |
| +/** |
| + * enum nl80211_iftype_akm_attributes - interface type AKM attributes |
| + * @__NL80211_IFTYPE_AKM_ATTR_INVALID: Invalid |
| + * |
| + * @NL80211_IFTYPE_AKM_ATTR_IFTYPES: nested attribute containing a flag |
| + * attribute for each interface type that supports AKM suites specified in |
| + * %NL80211_IFTYPE_AKM_ATTR_SUITES |
| + * @NL80211_IFTYPE_AKM_ATTR_SUITES: an array of u32. Used to indicate supported |
| + * AKM suites for the specified interface types. |
| + * |
| + * @__NL80211_IFTYPE_AKM_ATTR_LAST: Internal |
| + * @NL80211_IFTYPE_AKM_ATTR_MAX: highest interface type AKM attribute. |
| + */ |
| +enum nl80211_iftype_akm_attributes { |
| + __NL80211_IFTYPE_AKM_ATTR_INVALID, |
| + |
| + NL80211_IFTYPE_AKM_ATTR_IFTYPES, |
| + NL80211_IFTYPE_AKM_ATTR_SUITES, |
| + |
| + /* keep last */ |
| + __NL80211_IFTYPE_AKM_ATTR_LAST, |
| + NL80211_IFTYPE_AKM_ATTR_MAX = __NL80211_IFTYPE_AKM_ATTR_LAST - 1, |
| +}; |
| |
| #endif /* __LINUX_NL80211_H */ |
| -- |
| 2.26.0.292.g33ef6b2f38-goog |
| |