[][MAC80211][hostapd][zero wait dfs]

[Description]
Add zero wait DFS for hostapd
The following patches are for openwrt 2102:
 404-2102-hostapd-sync-include-uapi-linux-nl80211.patch
 405-2102-hostapd-zero-wait-dfs.patch
The following patches are for openwrt master:
 406-master-hostapd-sync-include-uapi-linux-nl80211.patch
 407-master-hostapd-zero-wait-dfs.patch

[Release-log]

Change-Id: I6df36dc7178c236e0e79f6b934e9600fad3c5bcd
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/5342191
diff --git a/openwrt_patches-21.02/404-2102-hostapd-sync-include-uapi-linux-nl80211.patch b/openwrt_patches-21.02/404-2102-hostapd-sync-include-uapi-linux-nl80211.patch
new file mode 100644
index 0000000..f3dd2cd
--- /dev/null
+++ b/openwrt_patches-21.02/404-2102-hostapd-sync-include-uapi-linux-nl80211.patch
@@ -0,0 +1,169 @@
+diff --git a/package/network/services/hostapd/patches/903-2102-sync-include-uapi-linux-nl80211.patch b/package/network/services/hostapd/patches/903-2102-sync-include-uapi-linux-nl80211.patch
+new file mode 100644
+index 0000000..51a0d7f
+--- /dev/null
++++ b/package/network/services/hostapd/patches/903-2102-sync-include-uapi-linux-nl80211.patch
+@@ -0,0 +1,163 @@
++diff --git a/src/drivers/nl80211_copy.h b/src/drivers/nl80211_copy.h
++index 9679d56..ab84efc 100644
++--- a/src/drivers/nl80211_copy.h
+++++ b/src/drivers/nl80211_copy.h
++@@ -2483,6 +2483,56 @@ enum nl80211_commands {
++  *
++  * @NL80211_ATTR_RECEIVE_MULTICAST: multicast flag for the
++  *	%NL80211_CMD_REGISTER_FRAME command, see the description there.
+++ * @NL80211_ATTR_WIPHY_FREQ_OFFSET: offset of the associated
+++ *	%NL80211_ATTR_WIPHY_FREQ in positive KHz. Only valid when supplied with
+++ *	an %NL80211_ATTR_WIPHY_FREQ_OFFSET.
+++ * @NL80211_ATTR_CENTER_FREQ1_OFFSET: Center frequency offset in KHz for the
+++ *	first channel segment specified in %NL80211_ATTR_CENTER_FREQ1.
+++ * @NL80211_ATTR_SCAN_FREQ_KHZ: nested attribute with KHz frequencies
+++ *
+++ * @NL80211_ATTR_HE_6GHZ_CAPABILITY: HE 6 GHz Band Capability element (from
+++ *	association request when used with NL80211_CMD_NEW_STATION).
+++ *
+++ * @NL80211_ATTR_FILS_DISCOVERY: Optional parameter to configure FILS
+++ *	discovery. It is a nested attribute, see
+++ *	&enum nl80211_fils_discovery_attributes.
+++ *
+++ * @NL80211_ATTR_UNSOL_BCAST_PROBE_RESP: Optional parameter to configure
+++ *	unsolicited broadcast probe response. It is a nested attribute, see
+++ *	&enum nl80211_unsol_bcast_probe_resp_attributes.
+++ *
+++ * @NL80211_ATTR_S1G_CAPABILITY: S1G Capability information element (from
+++ *	association request when used with NL80211_CMD_NEW_STATION)
+++ * @NL80211_ATTR_S1G_CAPABILITY_MASK: S1G Capability Information element
+++ *	override mask. Used with NL80211_ATTR_S1G_CAPABILITY in
+++ *	NL80211_CMD_ASSOCIATE or NL80211_CMD_CONNECT.
+++ *
+++ * @NL80211_ATTR_SAE_PWE: Indicates the mechanism(s) allowed for SAE PWE
+++ *	derivation in WPA3-Personal networks which are using SAE authentication.
+++ *	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.
+++ *
+++ * @NL80211_ATTR_OBSS_COLOR_BITMAP: bitmap of the u64 BSS colors for the
+++ *	%NL80211_CMD_OBSS_COLOR_COLLISION event.
+++ *
+++ * @NL80211_ATTR_COLOR_CHANGE_COUNT: u8 attribute specifying the number of TBTT's
+++ *	until the color switch event.
+++ * @NL80211_ATTR_COLOR_CHANGE_COLOR: u8 attribute specifying the color that we are
+++ *	switching to
+++ * @NL80211_ATTR_COLOR_CHANGE_ELEMS: Nested set of attributes containing the IE
+++ *	information for the time while performing a color switch.
+++ *
+++ * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
+++ *	transmit power to stay within regulatory limits. u32, dBi.
++  *
++  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
++  * @NL80211_ATTR_MAX: highest attribute number currently defined
++@@ -2960,6 +3010,34 @@ enum nl80211_attrs {
++ 	NL80211_ATTR_PMK_REAUTH_THRESHOLD,
++ 
++ 	NL80211_ATTR_RECEIVE_MULTICAST,
+++	NL80211_ATTR_WIPHY_FREQ_OFFSET,
+++	NL80211_ATTR_CENTER_FREQ1_OFFSET,
+++	NL80211_ATTR_SCAN_FREQ_KHZ,
+++
+++	NL80211_ATTR_HE_6GHZ_CAPABILITY,
+++
+++	NL80211_ATTR_FILS_DISCOVERY,
+++
+++	NL80211_ATTR_UNSOL_BCAST_PROBE_RESP,
+++
+++	NL80211_ATTR_S1G_CAPABILITY,
+++	NL80211_ATTR_S1G_CAPABILITY_MASK,
+++
+++	NL80211_ATTR_SAE_PWE,
+++
+++	NL80211_ATTR_RECONNECT_REQUESTED,
+++
+++	NL80211_ATTR_SAR_SPEC,
+++
+++	NL80211_ATTR_DISABLE_HE,
+++
+++	NL80211_ATTR_OBSS_COLOR_BITMAP,
+++
+++	NL80211_ATTR_COLOR_CHANGE_COUNT,
+++	NL80211_ATTR_COLOR_CHANGE_COLOR,
+++	NL80211_ATTR_COLOR_CHANGE_ELEMS,
+++
+++	NL80211_ATTR_WIPHY_ANTENNA_GAIN,
++ 
++ 	/* add attributes here, update the policy in nl80211.c */
++ 
++@@ -5705,6 +5783,46 @@ enum nl80211_feature_flags {
++  * @NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS: management frame registrations
++  *	are possible for multicast frames and those will be reported properly.
++  *
+++ * @NL80211_EXT_FEATURE_SCAN_FREQ_KHZ: This driver supports receiving and
+++ *	reporting scan request with %NL80211_ATTR_SCAN_FREQ_KHZ. In order to
+++ *	report %NL80211_ATTR_SCAN_FREQ_KHZ, %NL80211_SCAN_FLAG_FREQ_KHZ must be
+++ *	included in the scan request.
+++ *
+++ * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS: The driver
+++ *	can report tx status for control port over nl80211 tx operations.
+++ *
+++ * @NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION: Driver supports Operating
+++ *	Channel Validation (OCV) when using driver's SME for RSNA handshakes.
+++ *
+++ * @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK: Device wants to do 4-way
+++ *	handshake with PSK in AP mode (PSK is passed as part of the start AP
+++ *	command).
+++ *
+++ * @NL80211_EXT_FEATURE_SAE_OFFLOAD_AP: Device wants to do SAE authentication
+++ *	in AP mode (SAE password is passed as part of the start AP command).
+++ *
+++ * @NL80211_EXT_FEATURE_FILS_DISCOVERY: Driver/device supports FILS discovery
+++ *	frames transmission
+++ *
+++ * @NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP: Driver/device supports
+++ *	unsolicited broadcast probe response transmission
+++ *
+++ * @NL80211_EXT_FEATURE_BEACON_RATE_HE: Driver supports beacon rate
+++ *	configuration (AP/mesh) with HE rates.
+++ *
+++ * @NL80211_EXT_FEATURE_SECURE_LTF: Device supports secure LTF measurement
+++ *      exchange protocol.
+++ *
+++ * @NL80211_EXT_FEATURE_SECURE_RTT: Device supports secure RTT measurement
+++ *      exchange protocol.
+++ *
+++ * @NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE: Device supports management
+++ *      frame protection for all management frames exchanged during the
+++ *      negotiation and range measurement procedure.
+++ *
+++ * @NL80211_EXT_FEATURE_BSS_COLOR: The driver supports BSS color collision
+++ *	detection and change announcemnts.
+++ *
++  * @NUM_NL80211_EXT_FEATURES: number of extended features.
++  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
++  */
++@@ -5758,6 +5876,18 @@ enum nl80211_ext_feature_index {
++ 	NL80211_EXT_FEATURE_DEL_IBSS_STA,
++ 	NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS,
++ 	NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT,
+++	NL80211_EXT_FEATURE_SCAN_FREQ_KHZ,
+++	NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS,
+++	NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION,
+++	NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK,
+++	NL80211_EXT_FEATURE_SAE_OFFLOAD_AP,
+++	NL80211_EXT_FEATURE_FILS_DISCOVERY,
+++	NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
+++	NL80211_EXT_FEATURE_BEACON_RATE_HE,
+++	NL80211_EXT_FEATURE_SECURE_LTF,
+++	NL80211_EXT_FEATURE_SECURE_RTT,
+++	NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
+++	NL80211_EXT_FEATURE_BSS_COLOR,
++ 
++ 	/* add new features before the definition below */
++ 	NUM_NL80211_EXT_FEATURES,
++