Snap for 8730993 from e4f57640c3f2031f328449045258a700020bae55 to mainline-tzdata3-release

Change-Id: Ic78fa8b052c7c804583203e2c4463b17bf7eb4ef
diff --git a/Android.bp b/Android.bp
index 01fe22a..e417aaf 100644
--- a/Android.bp
+++ b/Android.bp
@@ -58,10 +58,7 @@
 //
 cc_binary {
     name: "wificond",
-    defaults: [
-        "keystore2_use_latest_aidl_ndk_shared",
-        "wificond_defaults",
-    ],
+    defaults: ["wificond_defaults"],
     init_rc: ["wificond.rc"],
     srcs: [
 	"main.cpp",
@@ -70,8 +67,8 @@
     include_dirs: ["system/security/keystore/include"],
 
     shared_libs: [
-        "android.hardware.net.nlinterceptor-V1-ndk",
-        "android.security.legacykeystore-ndk",
+        "android.system.keystore2-V1-ndk_platform",
+        "android.security.legacykeystore-ndk_platform",
         "libbinder",
         "libbinder_ndk",
         "libbase",
@@ -85,7 +82,6 @@
         "android.system.wifi.keystore@1.0",
     ],
     static_libs: [
-        "libnlinterceptor",
         "libwificond", // Wificond daemon
         "libwifikeystorehal"  // Wifi Keystore HAL service
     ],
@@ -118,13 +114,11 @@
     ],
 
     shared_libs: [
-        "android.hardware.net.nlinterceptor-V1-ndk",
         "libbase",
         "libutils",
         "libwifi-system-iface",
     ],
     whole_static_libs: [
-        "libnlinterceptor",
         "libwificond_ipc",
         "libwificond_nl",
         "libwificond_event_loop",
@@ -144,16 +138,8 @@
         "net/nl80211_attribute.cpp",
         "net/nl80211_packet.cpp",
     ],
-    shared_libs: [
-        "android.hardware.net.nlinterceptor-V1-ndk",
-        "libbinder_ndk",
-        "libbase",
-    ],
-    whole_static_libs: [
-        "libnlinterceptor",
-        "android.hardware.automotive.can@libnetdevice",
-        "libnl++",
-    ],
+    shared_libs: ["libbase"],
+
 }
 
 //
@@ -166,6 +152,7 @@
     whole_static_libs: [
         "liblog",
         "libbase",
+        "libutils",
     ],
 
 }
@@ -193,11 +180,7 @@
         "scanning/scan_result.cpp",
         "scanning/single_scan_settings.cpp",
     ],
-    shared_libs: [
-        "android.hardware.net.nlinterceptor-V1-ndk",
-        "libbinder",
-    ],
-    static_libs: ["libnlinterceptor"],
+    shared_libs: ["libbinder"],
 }
 
 filegroup {
@@ -242,13 +225,6 @@
     name: "wificond_unit_test",
     defaults: ["wificond_defaults"],
     test_suites: ["device-tests"],
-    tidy_timeout_srcs: [
-        "tests/client_interface_impl_unittest.cpp",
-        "tests/netlink_utils_unittest.cpp",
-        "tests/scanner_unittest.cpp",
-        "tests/scan_utils_unittest.cpp",
-        "tests/server_unittest.cpp",
-    ],
     srcs: [
         "tests/ap_interface_impl_unittest.cpp",
         "tests/client_interface_impl_unittest.cpp",
@@ -273,16 +249,13 @@
     static_libs: [
         "libgmock",
         "libgtest",
-        "libnlinterceptor",
         "libwifi-system-iface-test",
         "libwificond",
         "libwificond_nl",
     ],
     shared_libs: [
-        "android.hardware.net.nlinterceptor-V1-ndk",
         "libbase",
         "libbinder",
-        "libbinder_ndk",
         "libcutils",
         "liblog",
         "libutils",
diff --git a/aidl/android/net/wifi/nl80211/IApInterfaceEventCallback.aidl b/aidl/android/net/wifi/nl80211/IApInterfaceEventCallback.aidl
index 5bd3c51..26a92de 100644
--- a/aidl/android/net/wifi/nl80211/IApInterfaceEventCallback.aidl
+++ b/aidl/android/net/wifi/nl80211/IApInterfaceEventCallback.aidl
@@ -32,7 +32,6 @@
   const int BANDWIDTH_80 = 4;
   const int BANDWIDTH_80P80 = 5;
   const int BANDWIDTH_160 = 6;
-  const int BANDWIDTH_320 = 7;
 
   // Signals that the stations associated to this soft Ap have changed.
   //
diff --git a/aidl/android/net/wifi/nl80211/IWifiScannerImpl.aidl b/aidl/android/net/wifi/nl80211/IWifiScannerImpl.aidl
index 02c714c..4cf0c2b 100644
--- a/aidl/android/net/wifi/nl80211/IWifiScannerImpl.aidl
+++ b/aidl/android/net/wifi/nl80211/IWifiScannerImpl.aidl
@@ -42,9 +42,6 @@
   // completed disconnected mode PNO scans
   NativeScanResult[] getPnoScanResults();
 
-  // Get the max number of SSIDs that the driver supports per scan.
-  int getMaxSsidsPerScan();
-
   // Request a single scan using a SingleScanSettings parcelable object.
   boolean scan(in SingleScanSettings scanSettings);
 
diff --git a/aidl/android/net/wifi/nl80211/IWificond.aidl b/aidl/android/net/wifi/nl80211/IWificond.aidl
index f84b020..d59ee33 100644
--- a/aidl/android/net/wifi/nl80211/IWificond.aidl
+++ b/aidl/android/net/wifi/nl80211/IWificond.aidl
@@ -106,8 +106,4 @@
 
     // @return a device wiphy capabilities for an interface
     @nullable DeviceWiphyCapabilities getDeviceWiphyCapabilities(@utf8InCpp String iface_name);
-
-    // Notify wificond country code changed. It is being used when the driver doesn't support
-    // NL80211_CMD_REG_CHANGE or NL80211_CMD_WIPHY_REG_CHANGE
-    oneway void notifyCountryCodeChanged();
 }
diff --git a/ap_interface_binder.cpp b/ap_interface_binder.cpp
index 9384cfa..371fa61 100644
--- a/ap_interface_binder.cpp
+++ b/ap_interface_binder.cpp
@@ -67,9 +67,6 @@
     case ChannelBandwidth::BW_160:
       bandwidth = IApInterfaceEventCallback::BANDWIDTH_160;
       break;
-    case ChannelBandwidth::BW_320:
-      bandwidth = IApInterfaceEventCallback::BANDWIDTH_320;
-      break;
     default:
       bandwidth = IApInterfaceEventCallback::BANDWIDTH_INVALID;
   }
diff --git a/device_wiphy_capabilities.cpp b/device_wiphy_capabilities.cpp
index 22a65a6..d932811 100644
--- a/device_wiphy_capabilities.cpp
+++ b/device_wiphy_capabilities.cpp
@@ -31,10 +31,8 @@
   is80211nSupported_ = false;
   is80211acSupported_ = false;
   is80211axSupported_ = false;
-  is80211beSupported_ = false;
   is160MhzSupported_ = false;
   is80p80MhzSupported_ = false;
-  is320MhzSupported_ = false;
   maxTxStreams_ = 1;
   maxRxStreams_ = 1;
 }
@@ -43,10 +41,8 @@
   RETURN_IF_FAILED(parcel->writeBool(is80211nSupported_));
   RETURN_IF_FAILED(parcel->writeBool(is80211acSupported_));
   RETURN_IF_FAILED(parcel->writeBool(is80211axSupported_));
-  RETURN_IF_FAILED(parcel->writeBool(is80211beSupported_));
   RETURN_IF_FAILED(parcel->writeBool(is160MhzSupported_ ));
   RETURN_IF_FAILED(parcel->writeBool(is80p80MhzSupported_));
-  RETURN_IF_FAILED(parcel->writeBool(is320MhzSupported_ ));
   RETURN_IF_FAILED(parcel->writeUint32(maxTxStreams_));
   RETURN_IF_FAILED(parcel->writeUint32(maxRxStreams_));
   return ::android::OK;
@@ -56,10 +52,8 @@
   RETURN_IF_FAILED(parcel->readBool(&is80211nSupported_));
   RETURN_IF_FAILED(parcel->readBool(&is80211acSupported_));
   RETURN_IF_FAILED(parcel->readBool(&is80211axSupported_));
-  RETURN_IF_FAILED(parcel->readBool(&is80211beSupported_));
   RETURN_IF_FAILED(parcel->readBool(&is160MhzSupported_));
   RETURN_IF_FAILED(parcel->readBool(&is80p80MhzSupported_));
-  RETURN_IF_FAILED(parcel->readBool(&is320MhzSupported_));
   RETURN_IF_FAILED(parcel->readUint32(&maxTxStreams_));
   RETURN_IF_FAILED(parcel->readUint32(&maxRxStreams_));
 
diff --git a/device_wiphy_capabilities.h b/device_wiphy_capabilities.h
index fb118d0..c50f99c 100644
--- a/device_wiphy_capabilities.h
+++ b/device_wiphy_capabilities.h
@@ -32,10 +32,8 @@
     return (is80211nSupported_ == rhs.is80211nSupported_
             && is80211acSupported_ == rhs.is80211acSupported_
             && is80211axSupported_ == rhs.is80211axSupported_
-            && is80211beSupported_ == rhs.is80211beSupported_
             && is160MhzSupported_ == rhs.is160MhzSupported_
             && is80p80MhzSupported_ == rhs.is80p80MhzSupported_
-            && is320MhzSupported_ == rhs.is320MhzSupported_
             && maxTxStreams_ == rhs.maxTxStreams_
             && maxRxStreams_ == rhs.maxRxStreams_);
   }
@@ -45,10 +43,8 @@
   bool is80211nSupported_;
   bool is80211acSupported_;
   bool is80211axSupported_;
-  bool is80211beSupported_;
   bool is160MhzSupported_;
   bool is80p80MhzSupported_;
-  bool is320MhzSupported_;
   uint32_t maxTxStreams_;
   uint32_t maxRxStreams_;
 };
diff --git a/looper_backed_event_loop.cpp b/looper_backed_event_loop.cpp
index f759948..b4f5c44 100644
--- a/looper_backed_event_loop.cpp
+++ b/looper_backed_event_loop.cpp
@@ -79,14 +79,14 @@
 void LooperBackedEventLoop::PostTask(const std::function<void()>& callback) {
   sp<android::MessageHandler> event_loop_callback =
       new EventLoopCallback(callback);
-  looper_->sendMessage(event_loop_callback, Message());
+  looper_->sendMessage(event_loop_callback, NULL);
 }
 
 void LooperBackedEventLoop::PostDelayedTask(
     const std::function<void()>& callback,
     int64_t delay_ms) {
   sp<android::MessageHandler> looper_callback = new EventLoopCallback(callback);
-  looper_->sendMessageDelayed(ms2ns(delay_ms), looper_callback, Message());
+  looper_->sendMessageDelayed(ms2ns(delay_ms), looper_callback, NULL);
 }
 
 bool LooperBackedEventLoop::WatchFileDescriptor(
diff --git a/net/kernel-header-latest/nl80211.h b/net/kernel-header-latest/nl80211.h
index e7941c4..cd587e1 100644
--- a/net/kernel-header-latest/nl80211.h
+++ b/net/kernel-header-latest/nl80211.h
@@ -11,7 +11,7 @@
  * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
  * Copyright 2008 Colin McCabe <colin@cozybit.com>
  * Copyright 2015-2017	Intel Deutschland GmbH
- * Copyright (C) 2018-2022 Intel Corporation
+ * Copyright (C) 2018-2020 Intel Corporation
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -286,28 +286,6 @@
  * the interface goes down.
  */
 /**
- * DOC: FILS shared key crypto offload
- *
- * This feature is applicable to drivers running in AP mode.
- *
- * FILS shared key crypto offload can be advertised by drivers by setting
- * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD flag. The drivers that support
- * FILS shared key crypto offload should be able to encrypt and decrypt
- * association frames for FILS shared key authentication as per IEEE 802.11ai.
- * With this capability, for FILS key derivation, drivers depend on userspace.
- *
- * After FILS key derivation, userspace shares the FILS AAD details with the
- * driver and the driver stores the same to use in decryption of association
- * request and in encryption of association response. The below parameters
- * should be given to the driver in %NL80211_CMD_SET_FILS_AAD.
- *	%NL80211_ATTR_MAC - STA MAC address, used for storing FILS AAD per STA
- *	%NL80211_ATTR_FILS_KEK - Used for encryption or decryption
- *	%NL80211_ATTR_FILS_NONCES - Used for encryption or decryption
- *			(STA Nonce 16 bytes followed by AP Nonce 16 bytes)
- *
- * Once the association is done, the driver cleans the FILS AAD data.
- */
-/**
  * enum nl80211_commands - supported nl80211 commands
  *
  * @NL80211_CMD_UNSPEC: unspecified command to catch errors
@@ -344,10 +322,7 @@
  * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes
  *	%NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from
  *	userspace to request deletion of a virtual interface, then requires
- *	attribute %NL80211_ATTR_IFINDEX. If multiple BSSID advertisements are
- *	enabled using %NL80211_ATTR_MBSSID_CONFIG, %NL80211_ATTR_MBSSID_ELEMS,
- *	and if this command is used for the transmitting interface, then all
- *	the non-transmitting interfaces are deleted as well.
+ *	attribute %NL80211_ATTR_IFINDEX.
  *
  * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified
  *	by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.
@@ -665,9 +640,6 @@
  *	When a security association was established on an 802.1X network using
  *	fast transition, this event should be followed by an
  *	%NL80211_CMD_PORT_AUTHORIZED event.
- *	Following a %NL80211_CMD_ROAM event userspace can issue
- *	%NL80211_CMD_GET_SCAN in order to obtain the scan information for the
- *	new BSS the card/driver roamed to.
  * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify
  *	userspace that a connection was dropped by the AP or due to other
  *	reasons, for this the %NL80211_ATTR_DISCONNECTED_BY_AP and
@@ -770,8 +742,7 @@
  *	of any other interfaces, and other interfaces will again take
  *	precedence when they are used.
  *
- * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface
- *	(no longer supported).
+ * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface.
  *
  * @NL80211_CMD_SET_MULTICAST_TO_UNICAST: Configure if this AP should perform
  *	multicast to unicast conversion. When enabled, all multicast packets
@@ -1083,7 +1054,7 @@
  *	%NL80211_ATTR_MAC.
  * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates an 802.1X FT roam was
  *	completed successfully. Drivers that support 4 way handshake offload
- *	should send this event after indicating 802.1X FT assocation with
+ *	should send this event after indicating 802.1X FT association with
  *	%NL80211_CMD_ROAM. If the 4 way handshake failed %NL80211_CMD_DISCONNECT
  *	should be indicated instead.
  * @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request
@@ -1191,36 +1162,6 @@
  *	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_OBSS_COLOR_COLLISION: This notification is sent out whenever
- *	mac80211/drv detects a bss color collision.
- *
- * @NL80211_CMD_COLOR_CHANGE_REQUEST: This command is used to indicate that
- *	userspace wants to change the BSS color.
- *
- * @NL80211_CMD_COLOR_CHANGE_STARTED: Notify userland, that a color change has
- *	started
- *
- * @NL80211_CMD_COLOR_CHANGE_ABORTED: Notify userland, that the color change has
- *	been aborted
- *
- * @NL80211_CMD_COLOR_CHANGE_COMPLETED: Notify userland that the color change
- *	has completed
- *
- * @NL80211_CMD_SET_FILS_AAD: Set FILS AAD data to the driver using -
- *	&NL80211_ATTR_MAC - for STA MAC address
- *	&NL80211_ATTR_FILS_KEK - for KEK
- *	&NL80211_ATTR_FILS_NONCES - for FILS Nonces
- *		(STA Nonce 16 bytes followed by AP Nonce 16 bytes)
- *
- * @NL80211_CMD_ASSOC_COMEBACK: notification about an association
- *      temporal rejection with comeback. The event includes %NL80211_ATTR_MAC
- *      to describe the BSSID address of the AP and %NL80211_ATTR_TIMEOUT to
- *      specify the timeout value.
- *
  * @NL80211_CMD_MAX: highest used command number
  * @__NL80211_CMD_AFTER_LAST: internal use
  */
@@ -1371,14 +1312,6 @@
 	NL80211_CMD_SET_TID_CONFIG,
 	NL80211_CMD_UNPROT_BEACON,
 	NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS,
-	NL80211_CMD_SET_SAR_SPECS,
-	NL80211_CMD_OBSS_COLOR_COLLISION,
-	NL80211_CMD_COLOR_CHANGE_REQUEST,
-	NL80211_CMD_COLOR_CHANGE_STARTED,
-	NL80211_CMD_COLOR_CHANGE_ABORTED,
-	NL80211_CMD_COLOR_CHANGE_COMPLETED,
-	NL80211_CMD_SET_FILS_AAD,
-	NL80211_CMD_ASSOC_COMEBACK,
 	/* add new commands above here */
 	/* used to define NL80211_CMD_MAX below */
 	__NL80211_CMD_AFTER_LAST,
@@ -1717,9 +1650,8 @@
  *	specify just a single bitrate, which is to be used for the beacon.
  *	The driver must also specify support for this with the extended
  *	features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY,
- *	NL80211_EXT_FEATURE_BEACON_RATE_HT,
- *	NL80211_EXT_FEATURE_BEACON_RATE_VHT and
- *	NL80211_EXT_FEATURE_BEACON_RATE_HE.
+ *	NL80211_EXT_FEATURE_BEACON_RATE_HT and
+ *	NL80211_EXT_FEATURE_BEACON_RATE_VHT.
  *
  * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain
  *	at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME.
@@ -1923,15 +1855,8 @@
  * @NL80211_ATTR_PROBE_RESP: Probe Response template data. Contains the entire
  *	probe-response frame. The DA field in the 802.11 header is zero-ed out,
  *	to be filled by the FW.
- * @NL80211_ATTR_DISABLE_HT: Force HT capable interfaces to disable
- *      this feature during association. This is a flag attribute.
- *	Currently only supported in mac80211 drivers.
- * @NL80211_ATTR_DISABLE_VHT: Force VHT capable interfaces to disable
- *      this feature during association. This is a flag attribute.
- *	Currently only supported in mac80211 drivers.
- * @NL80211_ATTR_DISABLE_HE: Force HE capable interfaces to disable
- *      this feature during association. This is a flag attribute.
- *	Currently only supported in mac80211 drivers.
+ * @NL80211_ATTR_DISABLE_HT:  Force HT capable interfaces to disable
+ *      this feature.  Currently, only supported in mac80211 drivers.
  * @NL80211_ATTR_HT_CAPABILITY_MASK: Specify which bits of the
  *      ATTR_HT_CAPABILITY to which attention should be paid.
  *      Currently, only mac80211 NICs support this feature.
@@ -2052,8 +1977,7 @@
  *	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). Also included in the channel switch started event if quiet
- *	was requested by the AP.
+ *	operation).
  * @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
@@ -2369,9 +2293,7 @@
  *	space supports external authentication. This attribute shall be used
  *	with %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP request. The driver
  *	may offload authentication processing to user space if this capability
- *	is indicated in the respective requests from the user space. (This flag
- *	attribute deprecated for %NL80211_CMD_START_AP, use
- *	%NL80211_ATTR_AP_SETTINGS_FLAGS)
+ *	is indicated in the respective requests from the user space.
  *
  * @NL80211_ATTR_NSS: Station's New/updated  RX_NSS value notified using this
  *	u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
@@ -2504,57 +2426,6 @@
  *	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_MBSSID_CONFIG: Nested attribute for multiple BSSID
- *	advertisements (MBSSID) parameters in AP mode.
- *	Kernel uses this attribute to indicate the driver's support for MBSSID
- *	and enhanced multi-BSSID advertisements (EMA AP) to the userspace.
- *	Userspace should use this attribute to configure per interface MBSSID
- *	parameters.
- *	See &enum nl80211_mbssid_config_attributes for details.
- *
- * @NL80211_ATTR_MBSSID_ELEMS: Nested parameter to pass multiple BSSID elements.
- *	Mandatory parameter for the transmitting interface to enable MBSSID.
- *	Optional for the non-transmitting interfaces.
- *
- * @NL80211_ATTR_RADAR_BACKGROUND: Configure dedicated offchannel chain
- *	available for radar/CAC detection on some hw. This chain can't be used
- *	to transmit or receive frames and it is bounded to a running wdev.
- *	Background radar/CAC detection allows to avoid the CAC downtime
- *	switching on a different channel during CAC detection on the selected
- *	radar channel.
- *
- * @NL80211_ATTR_AP_SETTINGS_FLAGS: u32 attribute contains ap settings flags,
- *	enumerated in &enum nl80211_ap_settings_flags. This attribute shall be
- *	used with %NL80211_CMD_START_AP request.
- *
- * @NL80211_ATTR_EHT_CAPABILITY: EHT Capability information element (from
- *	association request when used with NL80211_CMD_NEW_STATION). Can be set
- *	only if %NL80211_STA_FLAG_WME is set.
- *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2859,19 +2730,6 @@
 	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_MBSSID_CONFIG,
-	NL80211_ATTR_MBSSID_ELEMS,
-	NL80211_ATTR_RADAR_BACKGROUND,
-	NL80211_ATTR_AP_SETTINGS_FLAGS,
-	NL80211_ATTR_EHT_CAPABILITY,
 	/* add attributes here, update the policy in nl80211.c */
 	__NL80211_ATTR_AFTER_LAST,
 	NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
@@ -2922,8 +2780,6 @@
 #define NL80211_HE_MAX_CAPABILITY_LEN           54
 #define NL80211_MAX_NR_CIPHER_SUITES		5
 #define NL80211_MAX_NR_AKM_SUITES		2
-#define NL80211_EHT_MIN_CAPABILITY_LEN          13
-#define NL80211_EHT_MAX_CAPABILITY_LEN          51
 #define NL80211_MIN_REMAIN_ON_CHANNEL_TIME	10
 /* default RSSI threshold for scan results if none specified. */
 #define NL80211_SCAN_RSSI_THOLD_OFF		-300
@@ -3078,54 +2934,6 @@
 	NL80211_RATE_INFO_HE_RU_ALLOC_2x996,
 };
 /**
- * enum nl80211_eht_gi - EHT guard interval
- * @NL80211_RATE_INFO_EHT_GI_0_8: 0.8 usec
- * @NL80211_RATE_INFO_EHT_GI_1_6: 1.6 usec
- * @NL80211_RATE_INFO_EHT_GI_3_2: 3.2 usec
- */
-enum nl80211_eht_gi {
-	NL80211_RATE_INFO_EHT_GI_0_8,
-	NL80211_RATE_INFO_EHT_GI_1_6,
-	NL80211_RATE_INFO_EHT_GI_3_2,
-};
-/**
- * enum nl80211_eht_ru_alloc - EHT RU allocation values
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_26: 26-tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_52: 52-tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_52P26: 52+26-tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_106: 106-tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_106P26: 106+26 tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_242: 242-tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_484: 484-tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_484P242: 484+242 tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_996: 996-tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_996P484: 996+484 tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242: 996+484+242 tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_2x996: 2x996-tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484: 2x996+484 tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_3x996: 3x996-tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484: 3x996+484 tone RU allocation
- * @NL80211_RATE_INFO_EHT_RU_ALLOC_4x996: 4x996-tone RU allocation
- */
-enum nl80211_eht_ru_alloc {
-	NL80211_RATE_INFO_EHT_RU_ALLOC_26,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_52,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_52P26,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_106,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_106P26,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_242,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_484,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_484P242,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_996,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_996P484,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_2x996,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_3x996,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484,
-	NL80211_RATE_INFO_EHT_RU_ALLOC_4x996,
-};
-/**
  * enum nl80211_rate_info - bitrate information
  *
  * These attribute types are used with %NL80211_STA_INFO_TXRATE
@@ -3164,13 +2972,6 @@
  * @NL80211_RATE_INFO_HE_DCM: HE DCM value (u8, 0/1)
  * @NL80211_RATE_INFO_RU_ALLOC: HE RU allocation, if not present then
  *	non-OFDMA was used (u8, see &enum nl80211_he_ru_alloc)
- * @NL80211_RATE_INFO_320_MHZ_WIDTH: 320 MHz bitrate
- * @NL80211_RATE_INFO_EHT_MCS: EHT MCS index (u8, 0-15)
- * @NL80211_RATE_INFO_EHT_NSS: EHT NSS value (u8, 1-8)
- * @NL80211_RATE_INFO_EHT_GI: EHT guard interval identifier
- *	(u8, see &enum nl80211_eht_gi)
- * @NL80211_RATE_INFO_EHT_RU_ALLOC: EHT RU allocation, if not present then
- *	non-OFDMA was used (u8, see &enum nl80211_eht_ru_alloc)
  * @__NL80211_RATE_INFO_AFTER_LAST: internal use
  */
 enum nl80211_rate_info {
@@ -3192,11 +2993,6 @@
 	NL80211_RATE_INFO_HE_GI,
 	NL80211_RATE_INFO_HE_DCM,
 	NL80211_RATE_INFO_HE_RU_ALLOC,
-	NL80211_RATE_INFO_320_MHZ_WIDTH,
-	NL80211_RATE_INFO_EHT_MCS,
-	NL80211_RATE_INFO_EHT_NSS,
-	NL80211_RATE_INFO_EHT_GI,
-	NL80211_RATE_INFO_EHT_RU_ALLOC,
 	/* keep last */
 	__NL80211_RATE_INFO_AFTER_LAST,
 	NL80211_RATE_INFO_MAX = __NL80211_RATE_INFO_AFTER_LAST - 1
@@ -3492,20 +3288,11 @@
  *     capabilities IE
  * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as
  *     defined in HE capabilities IE
+ * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
+ *     defined
  * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16),
  *	given for all 6 GHz band channels
- * @NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS: vendor element capabilities that are
- *	advertised on this band/for this iftype (binary)
- * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC: EHT MAC capabilities as in EHT
- *	capabilities element
- * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY: EHT PHY capabilities as in EHT
- *	capabilities element
- * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET: EHT supported NSS/MCS as in EHT
- *	capabilities element
- * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE: EHT PPE thresholds information as
- *	defined in EHT capabilities element
  * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
- * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band attribute currently defined
  */
 enum nl80211_band_iftype_attr {
 	__NL80211_BAND_IFTYPE_ATTR_INVALID,
@@ -3515,11 +3302,6 @@
 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
 	NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
-	NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
-	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC,
-	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY,
-	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET,
-	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE,
 	/* keep last */
 	__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
 	NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1
@@ -3654,10 +3436,6 @@
  *	on this channel in current regulatory domain.
  * @NL80211_FREQUENCY_ATTR_16MHZ: 16 MHz operation is allowed
  *	on this channel in current regulatory domain.
- * @NL80211_FREQUENCY_ATTR_NO_320MHZ: any 320 MHz channel using this channel
- *	as the primary or any of the secondary channels isn't possible
- * @NL80211_FREQUENCY_ATTR_NO_EHT: EHT 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
@@ -3694,8 +3472,6 @@
 	NL80211_FREQUENCY_ATTR_4MHZ,
 	NL80211_FREQUENCY_ATTR_8MHZ,
 	NL80211_FREQUENCY_ATTR_16MHZ,
-	NL80211_FREQUENCY_ATTR_NO_320MHZ,
-	NL80211_FREQUENCY_ATTR_NO_EHT,
 	/* keep last */
 	__NL80211_FREQUENCY_ATTR_AFTER_LAST,
 	NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1
@@ -3878,7 +3654,6 @@
  * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
  * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
  * @NL80211_RRF_NO_HE: HE operation not allowed
- * @NL80211_RRF_NO_320MHZ: 320MHz operation not allowed
  */
 enum nl80211_reg_rule_flags {
 	NL80211_RRF_NO_OFDM		= 1<<0,
@@ -3897,7 +3672,6 @@
 	NL80211_RRF_NO_80MHZ		= 1<<15,
 	NL80211_RRF_NO_160MHZ		= 1<<16,
 	NL80211_RRF_NO_HE		= 1<<17,
-	NL80211_RRF_NO_320MHZ		= 1<<18,
 };
 #define NL80211_RRF_PASSIVE_SCAN	NL80211_RRF_NO_IR
 #define NL80211_RRF_NO_IBSS		NL80211_RRF_NO_IR
@@ -4372,8 +4146,6 @@
  * @NL80211_CHAN_WIDTH_4: 4 MHz OFDM channel
  * @NL80211_CHAN_WIDTH_8: 8 MHz OFDM channel
  * @NL80211_CHAN_WIDTH_16: 16 MHz OFDM channel
- * @NL80211_CHAN_WIDTH_320: 320 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
- *	attribute must be provided as well
  */
 enum nl80211_chan_width {
 	NL80211_CHAN_WIDTH_20_NOHT,
@@ -4389,7 +4161,6 @@
 	NL80211_CHAN_WIDTH_4,
 	NL80211_CHAN_WIDTH_8,
 	NL80211_CHAN_WIDTH_16,
-	NL80211_CHAN_WIDTH_320,
 };
 /**
  * enum nl80211_bss_scan_width - control channel width for a BSS
@@ -4683,7 +4454,6 @@
  * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
  * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
  * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
- * @NL80211_BAND_LC: light communication band (placeholder)
  * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
  *	since newer kernel versions may support more bands
  */
@@ -4693,7 +4463,6 @@
 	NL80211_BAND_60GHZ,
 	NL80211_BAND_6GHZ,
 	NL80211_BAND_S1GHZ,
-	NL80211_BAND_LC,
 	NUM_NL80211_BANDS,
 };
 /**
@@ -4803,7 +4572,7 @@
  *	(%NL80211_TID_CONFIG_ATTR_TIDS, %NL80211_TID_CONFIG_ATTR_OVERRIDE).
  * @NL80211_TID_CONFIG_ATTR_PEER_SUPP: same as the previous per-vif one, but
  *	per peer instead.
- * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribue, if set indicates
+ * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribute, if set indicates
  *	that the new configuration overrides all previous peer
  *	configurations, otherwise previous peer specific configurations
  *	should be left untouched.
@@ -4832,7 +4601,7 @@
  *	for the TIDs specified in %NL80211_TID_CONFIG_ATTR_TIDS.
  *	Its type is u8, using the values from &nl80211_tid_config.
  * @NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE: This attribute will be useful
- *	to notfiy the driver that what type of txrate should be used
+ *	to notify the driver that what type of txrate should be used
  *	for the TIDs specified in %NL80211_TID_CONFIG_ATTR_TIDS. using
  *	the values form &nl80211_tx_rate_setting.
  * @NL80211_TID_CONFIG_ATTR_TX_RATE: Data frame TX rate mask should be applied
@@ -5395,15 +5164,13 @@
 	NL80211_TDLS_ENABLE_LINK,
 	NL80211_TDLS_DISABLE_LINK,
 };
-/**
+/*
  * enum nl80211_ap_sme_features - device-integrated AP features
- * @NL80211_AP_SME_SA_QUERY_OFFLOAD: SA Query procedures offloaded to driver
- *	when user space indicates support for SA Query procedures offload during
- *	"start ap" with %NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT.
- */
+ * Reserved for future use, no bits are defined in
+ * NL80211_ATTR_DEVICE_AP_SME yet.
 enum nl80211_ap_sme_features {
-	NL80211_AP_SME_SA_QUERY_OFFLOAD		= 1 << 0,
 };
+ */
 /**
  * enum nl80211_feature_flags - device/driver features
  * @NL80211_FEATURE_SK_TX_STATUS: This driver supports reflecting back
@@ -5688,30 +5455,6 @@
  * @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.
- *
- * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD: Driver running in AP mode supports
- *	FILS encryption and decryption for (Re)Association Request and Response
- *	frames. Userspace has to share FILS AAD details to the driver by using
- *	@NL80211_CMD_SET_FILS_AAD.
- *
- * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC
- *	detection.
- *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -5772,13 +5515,6 @@
 	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,
-	NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
-	NL80211_EXT_FEATURE_RADAR_BACKGROUND,
 	/* add new features before the definition below */
 	NUM_NL80211_EXT_FEATURES,
 	MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
@@ -6059,13 +5795,11 @@
  * @NL80211_TDLS_PEER_HT: TDLS peer is HT capable.
  * @NL80211_TDLS_PEER_VHT: TDLS peer is VHT capable.
  * @NL80211_TDLS_PEER_WMM: TDLS peer is WMM capable.
- * @NL80211_TDLS_PEER_HE: TDLS peer is HE capable.
  */
 enum nl80211_tdls_peer_capability {
 	NL80211_TDLS_PEER_HT = 1<<0,
 	NL80211_TDLS_PEER_VHT = 1<<1,
 	NL80211_TDLS_PEER_WMM = 1<<2,
-	NL80211_TDLS_PEER_HE = 1<<3,
 };
 /**
  * enum nl80211_sched_scan_plan - scanning plan for scheduled scan
@@ -6614,12 +6348,6 @@
  *      if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
  *	%NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
  *	ranging will be used.
- * @NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK: negotiate for LMR feedback. Only
- *	valid if either %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED or
- *	%NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set.
- * @NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR: optional. The BSS color of the
- *	responder. Only valid if %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED
- *	or %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED is set.
  *
  * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
  * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
@@ -6637,8 +6365,6 @@
 	NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
 	NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
 	NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
-	NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
-	NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
 	/* keep last */
 	NUM_NL80211_PMSR_FTM_REQ_ATTR,
 	NL80211_PMSR_FTM_REQ_ATTR_MAX = NUM_NL80211_PMSR_FTM_REQ_ATTR - 1
@@ -6875,172 +6601,4 @@
 	NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX =
 		__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST - 1
 };
-/**
- * enum nl80211_sae_pwe_mechanism - The mechanism(s) allowed for SAE PWE
- *	derivation. Applicable only when WPA3-Personal SAE authentication is
- *	used.
- *
- * @NL80211_SAE_PWE_UNSPECIFIED: not specified, used internally to indicate that
- *	attribute is not present from userspace.
- * @NL80211_SAE_PWE_HUNT_AND_PECK: hunting-and-pecking loop only
- * @NL80211_SAE_PWE_HASH_TO_ELEMENT: hash-to-element only
- * @NL80211_SAE_PWE_BOTH: both hunting-and-pecking loop and hash-to-element
- *	can be used.
- */
-enum nl80211_sae_pwe_mechanism {
-	NL80211_SAE_PWE_UNSPECIFIED,
-	NL80211_SAE_PWE_HUNT_AND_PECK,
-	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,
-};
-/**
- * enum nl80211_mbssid_config_attributes - multiple BSSID (MBSSID) and enhanced
- * multi-BSSID advertisements (EMA) in AP mode.
- * Kernel uses some of these attributes to advertise driver's support for
- * MBSSID and EMA.
- * Remaining attributes should be used by the userspace to configure the
- * features.
- *
- * @__NL80211_MBSSID_CONFIG_ATTR_INVALID: Invalid
- *
- * @NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES: Used by the kernel to advertise
- *	the maximum number of MBSSID interfaces supported by the driver.
- *	Driver should indicate MBSSID support by setting
- *	wiphy->mbssid_max_interfaces to a value more than or equal to 2.
- *
- * @NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY: Used by the kernel
- *	to advertise the maximum profile periodicity supported by the driver
- *	if EMA is enabled. Driver should indicate EMA support to the userspace
- *	by setting wiphy->ema_max_profile_periodicity to
- *	a non-zero value.
- *
- * @NL80211_MBSSID_CONFIG_ATTR_INDEX: Mandatory parameter to pass the index of
- *	this BSS (u8) in the multiple BSSID set.
- *	Value must be set to 0 for the transmitting interface and non-zero for
- *	all non-transmitting interfaces. The userspace will be responsible
- *	for using unique indices for the interfaces.
- *	Range: 0 to wiphy->mbssid_max_interfaces-1.
- *
- * @NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX: Mandatory parameter for
- *	a non-transmitted profile which provides the interface index (u32) of
- *	the transmitted profile. The value must match one of the interface
- *	indices advertised by the kernel. Optional if the interface being set up
- *	is the transmitting one, however, if provided then the value must match
- *	the interface index of the same.
- *
- * @NL80211_MBSSID_CONFIG_ATTR_EMA: Flag used to enable EMA AP feature.
- *	Setting this flag is permitted only if the driver advertises EMA support
- *	by setting wiphy->ema_max_profile_periodicity to non-zero.
- *
- * @__NL80211_MBSSID_CONFIG_ATTR_LAST: Internal
- * @NL80211_MBSSID_CONFIG_ATTR_MAX: highest attribute
- */
-enum nl80211_mbssid_config_attributes {
-	__NL80211_MBSSID_CONFIG_ATTR_INVALID,
-	NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
-	NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
-	NL80211_MBSSID_CONFIG_ATTR_INDEX,
-	NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
-	NL80211_MBSSID_CONFIG_ATTR_EMA,
-	/* keep last */
-	__NL80211_MBSSID_CONFIG_ATTR_LAST,
-	NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
-};
-/**
- * enum nl80211_ap_settings_flags - AP settings flags
- *
- * @NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT: AP supports external
- *	authentication.
- * @NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT: Userspace supports SA Query
- *	procedures offload to driver. If driver advertises
- *	%NL80211_AP_SME_SA_QUERY_OFFLOAD in AP SME features, userspace shall
- *	ignore SA Query procedures and validations when this flag is set by
- *	userspace.
- */
-enum nl80211_ap_settings_flags {
-	NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT	= 1 << 0,
-	NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT	= 1 << 1,
-};
-#endif /* __LINUX_NL80211_H */
+#endif /* __LINUX_NL80211_H */
\ No newline at end of file
diff --git a/net/netlink_manager.cpp b/net/netlink_manager.cpp
index 64db5d8..53673c6 100644
--- a/net/netlink_manager.cpp
+++ b/net/netlink_manager.cpp
@@ -33,7 +33,6 @@
 #include "net/nl80211_packet.h"
 
 using android::base::unique_fd;
-using android::nlinterceptor::InterceptedSocket;
 using std::array;
 using std::placeholders::_1;
 using std::string;
@@ -48,7 +47,7 @@
 // netlink.h suggests NLMSG_GOODSIZE to be at most 8192 bytes.
 constexpr int kReceiveBufferSize = 8 * 1024;
 constexpr uint32_t kBroadcastSequenceNumber = 0;
-constexpr int kMaximumNetlinkMessageWaitMilliSeconds = 1000;
+constexpr int kMaximumNetlinkMessageWaitMilliSeconds = 300;
 uint8_t ReceiveBuffer[kReceiveBufferSize];
 
 void AppendPacket(vector<unique_ptr<const NL80211Packet>>* vec,
@@ -71,8 +70,6 @@
       return BW_80P80;
     case NL80211_CHAN_WIDTH_160:
       return BW_160;
-    case NL80211_CHAN_WIDTH_320:
-      return BW_320;
   }
   LOG(ERROR) << "Unknown bandwidth type: " << bandwidth;
   return BW_INVALID;
@@ -99,8 +96,7 @@
 void NetlinkManager::ReceivePacketAndRunHandler(int fd) {
   ssize_t len = read(fd, ReceiveBuffer, kReceiveBufferSize);
   if (len == -1) {
-    LOG(ERROR) << "Failed to read packet from buffer on fd: " << fd;
-    perror(" netlink error ");
+    LOG(ERROR) << "Failed to read packet from buffer";
     return;
   }
   if (len == 0) {
@@ -223,14 +219,13 @@
     LOG(DEBUG) << "NetlinkManager is already started";
     return true;
   }
-
-  bool setup_rt = SetupSocket(&sync_netlink_fd_, &sync_netlink_destination_);
+  bool setup_rt = SetupSocket(&sync_netlink_fd_);
   if (!setup_rt) {
     LOG(ERROR) << "Failed to setup synchronous netlink socket";
     return false;
   }
 
-  setup_rt = SetupSocket(&async_netlink_fd_, &async_netlink_destination_);
+  setup_rt = SetupSocket(&async_netlink_fd_);
   if (!setup_rt) {
     LOG(ERROR) << "Failed to setup asynchronous netlink socket";
     return false;
@@ -272,7 +267,7 @@
     LOG(ERROR) << "Do not use asynchronous interface for dump request !";
     return false;
   }
-  if (!SendMessageInternal(packet, async_netlink_fd_.get(), async_netlink_destination_)) {
+  if (!SendMessageInternal(packet, async_netlink_fd_.get())) {
     return false;
   }
   message_handlers_[packet.GetMessageSequence()] = handler;
@@ -282,7 +277,7 @@
 bool NetlinkManager::SendMessageAndGetResponses(
     const NL80211Packet& packet,
     vector<unique_ptr<const NL80211Packet>>* response) {
-  if (!SendMessageInternal(packet, sync_netlink_fd_.get(), sync_netlink_destination_)) {
+  if (!SendMessageInternal(packet, sync_netlink_fd_.get())) {
     return false;
   }
   // Polling netlink socket, waiting for GetFamily reply.
@@ -308,7 +303,7 @@
                            time_remaining);
 
     if (poll_return == 0) {
-      LOG(ERROR) << "Failed to poll netlink fd:" << sync_netlink_fd_.get() << "time out ";
+      LOG(ERROR) << "Failed to poll netlink fd: time out ";
       message_handlers_.erase(sequence);
       return false;
     } else if (poll_return == -1) {
@@ -391,23 +386,18 @@
   return true;
 }
 
-bool NetlinkManager::SendMessageInternal(const NL80211Packet& packet, int fd,
-    InterceptedSocket nl_destination) {
+bool NetlinkManager::SendMessageInternal(const NL80211Packet& packet, int fd) {
   const vector<uint8_t>& data = packet.GetConstData();
-  struct sockaddr_nl sa = nl_destination;
-
-  ssize_t bytes_sent = TEMP_FAILURE_RETRY(
-      sendto(fd, data.data(), data.size(), 0, reinterpret_cast<struct sockaddr*>(&sa), sizeof(sa))
-      );
+  ssize_t bytes_sent =
+      TEMP_FAILURE_RETRY(send(fd, data.data(), data.size(), 0));
   if (bytes_sent == -1) {
     PLOG(ERROR) << "Failed to send netlink message";
-    CHECK(!nlinterceptor::isEnabled()) << "Interceptor died, restarting wificond...";
     return false;
   }
   return true;
 }
 
-bool NetlinkManager::SetupSocket(unique_fd* netlink_fd, InterceptedSocket* nl_destination) {
+bool NetlinkManager::SetupSocket(unique_fd* netlink_fd) {
   struct sockaddr_nl nladdr;
 
   memset(&nladdr, 0, sizeof(nladdr));
@@ -435,15 +425,6 @@
     PLOG(ERROR) << "Failed to bind netlink socket";
     return false;
   }
-
-  if (!nlinterceptor::isEnabled()) {
-    nl_destination = {};  // sets portId to 0, talk directly to kernel.
-    return true;
-  }
-
-  auto interceptorSocketMaybe = nlinterceptor::createSocket(*netlink_fd, "Wificond");
-  CHECK(interceptorSocketMaybe.has_value()) << "Failed to create interceptor socket!";
-  *nl_destination = *interceptorSocketMaybe;
   return true;
 }
 
@@ -491,16 +472,6 @@
     return false;
   }
   uint32_t group_id = groups[group];
-
-  if (nlinterceptor::isEnabled()) {
-    if (!nlinterceptor::subscribe(async_netlink_destination_, group_id)) {
-      LOG(ERROR) << "Failed to subscribe " << async_netlink_destination_.portId
-                 << " to group " << group_id << "!";
-      return false;
-    }
-    return true;
-  }
-
   int err = setsockopt(async_netlink_fd_.get(),
                        SOL_NETLINK,
                        NETLINK_ADD_MEMBERSHIP,
diff --git a/net/netlink_manager.h b/net/netlink_manager.h
index e73ebe4..51bc2c4 100644
--- a/net/netlink_manager.h
+++ b/net/netlink_manager.h
@@ -26,7 +26,6 @@
 
 #include <android-base/macros.h>
 #include <android-base/unique_fd.h>
-#include <libnlinterceptor/libnlinterceptor.h>
 
 #include "event_loop.h"
 
@@ -98,7 +97,6 @@
     BW_80,
     BW_80P80,
     BW_160,
-    BW_320,
 };
 
 // This describes a type of function handling channel switch notification.
@@ -275,13 +273,11 @@
   virtual void UnsubscribeFrameTxStatusEvent(uint32_t interface_index);
 
  private:
-  bool SetupSocket(android::base::unique_fd* netlink_fd,
-                   android::nlinterceptor::InterceptedSocket* nl_destination);
+  bool SetupSocket(android::base::unique_fd* netlink_fd);
   bool WatchSocket(android::base::unique_fd* netlink_fd);
   void ReceivePacketAndRunHandler(int fd);
   bool DiscoverFamilyId();
-  bool SendMessageInternal(const NL80211Packet& packet, int fd,
-                           android::nlinterceptor::InterceptedSocket nl_destination);
+  bool SendMessageInternal(const NL80211Packet& packet, int fd);
   void BroadcastHandler(std::unique_ptr<const NL80211Packet> packet);
   void OnRegChangeEvent(std::unique_ptr<const NL80211Packet> packet);
   void OnMlmeEvent(std::unique_ptr<const NL80211Packet> packet);
@@ -303,12 +299,6 @@
   // rescheduling.
   android::base::unique_fd sync_netlink_fd_;
   android::base::unique_fd async_netlink_fd_;
-
-  // Each netlink socket will either communicate directly with the kernel (pid = 0), or will be
-  // assigned a Netlink Interceptor socket, and will have a non-zero pid to which messages should be
-  // sent.
-  android::nlinterceptor::InterceptedSocket sync_netlink_destination_ = {NETLINK_GENERIC, 0};
-  android::nlinterceptor::InterceptedSocket async_netlink_destination_ = {NETLINK_GENERIC, 0};
   EventLoop* event_loop_;
 
   // This is a collection of message handlers, for each sequence number.
diff --git a/net/netlink_utils.cpp b/net/netlink_utils.cpp
index dc2e4be..57b4239 100644
--- a/net/netlink_utils.cpp
+++ b/net/netlink_utils.cpp
@@ -71,9 +71,6 @@
 constexpr uint8_t kHe160MhzBitMask = 0x8;
 constexpr uint8_t kHe80p80MhzBitMask = 0x10;
 
-constexpr uint8_t kEhtCapPhyNumByte = 8;
-constexpr uint8_t kEht320MhzBitMask = 0x2;
-
 bool IsExtFeatureFlagSet(
     const std::vector<uint8_t>& ext_feature_flags_bytes,
     enum nl80211_ext_feature_index ext_feature_flag) {
@@ -135,9 +132,8 @@
       netlink_manager_->GetSequenceNumber(),
       getpid());
   get_wiphy.AddFlag(NLM_F_DUMP);
-  int ifindex;
   if (!iface_name.empty()) {
-    ifindex = if_nametoindex(iface_name.c_str());
+    int ifindex = if_nametoindex(iface_name.c_str());
     if (ifindex == 0) {
       PLOG(ERROR) << "Can't get " << iface_name << " index";
       return false;
@@ -146,8 +142,7 @@
   }
   vector<unique_ptr<const NL80211Packet>> response;
   if (!netlink_manager_->SendMessageAndGetResponses(get_wiphy, &response))  {
-    LOG(ERROR) << "NL80211_CMD_GET_WIPHY dump failed, ifindex: "
-               << ifindex << " and name: " << iface_name.c_str();
+    LOG(ERROR) << "NL80211_CMD_GET_WIPHY dump failed";
     return false;
   }
   if (response.empty()) {
@@ -475,7 +470,6 @@
     LOG(ERROR) << "Failed to get the list of attributes under iftype_data_attr";
     return;
   }
-
   NL80211NestedAttr attr = attrs[0];
   if (attr.HasAttribute(NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY)) {
     out_band_info->is_80211ax_supported = true;
@@ -484,10 +478,6 @@
   if (attr.HasAttribute(NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET)) {
     ParseHeMcsSetAttribute(attr, out_band_info);
   }
-  if (attr.HasAttribute(NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY)) {
-    out_band_info->is_80211be_supported = true;
-    ParseEhtCapPhyAttribute(attr, out_band_info);
-  }
   return;
 }
 
@@ -663,6 +653,7 @@
   if (vht_cap & kVht80p80MhzBitMask) {
     out_band_info->is_80p80_mhz_supported = true;
   }
+
 }
 
 void NetlinkUtils::ParseHeCapPhyAttribute(const NL80211NestedAttr& attribute,
@@ -688,25 +679,6 @@
   }
 }
 
-void NetlinkUtils::ParseEhtCapPhyAttribute(const NL80211NestedAttr& attribute,
-                                           BandInfo* out_band_info) {
-  vector<uint8_t> eht_cap_phy;
-  if (!attribute.GetAttributeValue(
-      NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY,
-      &eht_cap_phy)) {
-    LOG(ERROR) << " EHT CAP PHY is not found";
-    return;
-  }
-
-  if (eht_cap_phy.size() < kEhtCapPhyNumByte) {
-    LOG(ERROR) << "EHT Cap PHY size is incorrect";
-    return;
-  }
-  if (eht_cap_phy[0] & kEht320MhzBitMask) {
-    out_band_info->is_320_mhz_supported = true;
-  }
-}
-
 bool NetlinkUtils::GetStationInfo(uint32_t interface_index,
                                   const array<uint8_t, ETH_ALEN>& mac_address,
                                   StationInfo* out_station_info) {
diff --git a/net/netlink_utils.h b/net/netlink_utils.h
index 3b334d9..c64a208 100644
--- a/net/netlink_utils.h
+++ b/net/netlink_utils.h
@@ -58,10 +58,8 @@
       is_80211n_supported(false),
       is_80211ac_supported(false),
       is_80211ax_supported(false),
-      is_80211be_supported(false),
       is_160_mhz_supported(false),
       is_80p80_mhz_supported(false),
-      is_320_mhz_supported(false),
       max_tx_streams(1),
       max_rx_streams(1) {};
   // Frequencies for 2.4 GHz band.
@@ -80,14 +78,10 @@
   bool is_80211ac_supported;
   // support for 802.11ax
   bool is_80211ax_supported;
-  // support for 802.11be
-  bool is_80211be_supported;
   // support for 160Mhz channel width
   bool is_160_mhz_supported;
   // support for 80+80Mhz channel width
   bool is_80p80_mhz_supported;
-  // support for 320Mhz channel width
-  bool is_320_mhz_supported;
   // Max number of transmit spatial streams
   uint32_t max_tx_streams;
   // Max number of receive spatial streams
@@ -326,8 +320,6 @@
                             BandInfo* out_band_info);
   void ParseHeCapPhyAttribute(const NL80211NestedAttr& attribute,
                               BandInfo* out_band_info);
-  void ParseEhtCapPhyAttribute(const NL80211NestedAttr& attribute,
-                              BandInfo* out_band_info);
 
   bool ParseScanCapabilities(const NL80211Packet* const packet,
                              ScanCapabilities* out_scan_capabilities);
diff --git a/scanning/scanner_impl.cpp b/scanning/scanner_impl.cpp
index c7857df..48ca30f 100644
--- a/scanning/scanner_impl.cpp
+++ b/scanning/scanner_impl.cpp
@@ -134,15 +134,6 @@
   return Status::ok();
 }
 
-Status ScannerImpl::getMaxSsidsPerScan(int32_t* out_max_ssids_per_scan) {
-  if (!CheckIsValid()) {
-    *out_max_ssids_per_scan = 0;
-    return Status::ok();
-  }
-  *out_max_ssids_per_scan = static_cast<int32_t>(scan_capabilities_.max_num_scan_ssids);
-  return Status::ok();
-}
-
 Status ScannerImpl::scan(const SingleScanSettings& scan_settings,
                          bool* out_success) {
   if (!CheckIsValid()) {
@@ -225,18 +216,6 @@
   vector<vector<uint8_t>> skipped_match_ssids;
   std::set<int32_t> unique_frequencies;
   int num_networks_no_freqs = 0;
-  // Get the list of supported frequencies
-  const auto band_2g = client_interface_->GetBandInfo().band_2g;
-  const auto band_5g = client_interface_->GetBandInfo().band_5g;
-  const auto band_dfs = client_interface_->GetBandInfo().band_dfs;
-  const auto band_6g = client_interface_->GetBandInfo().band_6g;
-  const auto band_60g = client_interface_->GetBandInfo().band_60g;
-  std::set<uint32_t> all_freqs;
-  all_freqs.insert(band_2g.begin(), band_2g.end());
-  all_freqs.insert(band_5g.begin(), band_5g.end());
-  all_freqs.insert(band_dfs.begin(), band_dfs.end());
-  all_freqs.insert(band_6g.begin(), band_6g.end());
-  all_freqs.insert(band_60g.begin(), band_60g.end());
   for (auto& network : pno_settings.pno_networks_) {
     // Add hidden network ssid.
     if (network.is_hidden_) {
@@ -257,27 +236,26 @@
 
     // build the set of unique frequencies to scan for.
     for (const auto& frequency : network.frequencies_) {
-      if (all_freqs.find(frequency) != all_freqs.end()) {
-        unique_frequencies.insert(frequency);
-      } else {
-        LOG(INFO) << "filtered out invalid frequency " << frequency;
-      }
+      unique_frequencies.insert(frequency);
     }
     if (network.frequencies_.empty()) {
       num_networks_no_freqs++;
     }
   }
 
-  // Also scan the default frequencies if more than kPercentNetworksWithFreq of
+  // Also scan the default frequencies if there is frequency data passed down but more than 30% of
   // networks don't have frequency data.
-  if (num_networks_no_freqs * 100 > kPercentNetworksWithFreq * match_ssids->size()) {
+  if (unique_frequencies.size() > 0 && num_networks_no_freqs * 100 / match_ssids->size()
+      > kPercentNetworksWithFreq) {
     // Filter out frequencies not supported by chip.
+    const auto band_2g = client_interface_->GetBandInfo().band_2g;
     for (const auto frequency : kPnoScanDefaultFreqs2G) {
       if (std::find(band_2g.begin(), band_2g.end(), frequency) != band_2g.end()) {
         unique_frequencies.insert(frequency);
       }
     }
     // Note: kPnoScanDefaultFreqs5G doesn't contain DFS frequencies.
+    const auto band_5g = client_interface_->GetBandInfo().band_5g;
     for (const auto frequency : kPnoScanDefaultFreqs5G) {
       if (std::find(band_5g.begin(), band_5g.end(), frequency) != band_5g.end()) {
         unique_frequencies.insert(frequency);
diff --git a/scanning/scanner_impl.h b/scanning/scanner_impl.h
index 449f454..6e23ea7 100644
--- a/scanning/scanner_impl.h
+++ b/scanning/scanner_impl.h
@@ -49,8 +49,6 @@
   ::android::binder::Status getPnoScanResults(
       std::vector<android::net::wifi::nl80211::NativeScanResult>*
           out_scan_results) override;
-  ::android::binder::Status getMaxSsidsPerScan(
-      int32_t* out_max_ssids_per_scan) override;
   ::android::binder::Status scan(
       const android::net::wifi::nl80211::SingleScanSettings&
           scan_settings,
diff --git a/server.cpp b/server.cpp
index 1fd10dd..9668bce 100644
--- a/server.cpp
+++ b/server.cpp
@@ -444,10 +444,8 @@
   capabilities->value().is80211nSupported_  = band_info.is_80211n_supported;
   capabilities->value().is80211acSupported_ = band_info.is_80211ac_supported;
   capabilities->value().is80211axSupported_ = band_info.is_80211ax_supported;
-  capabilities->value().is80211beSupported_ = band_info.is_80211be_supported;
   capabilities->value().is160MhzSupported_ = band_info.is_160_mhz_supported;
   capabilities->value().is80p80MhzSupported_ = band_info.is_80p80_mhz_supported;
-  capabilities->value().is320MhzSupported_ = band_info.is_320_mhz_supported;
   capabilities->value().maxTxStreams_ = band_info.max_tx_streams;
   capabilities->value().maxRxStreams_ = band_info.max_rx_streams;
 
@@ -488,47 +486,16 @@
 }
 
 void Server::OnRegDomainChanged(uint32_t wiphy_index, std::string& country_code) {
-  string current_country_code;
   if (country_code.empty()) {
-    LOG(DEBUG) << "Regulatory domain changed with empty country code (world mode?)";
-    if (!netlink_utils_->GetCountryCode(&current_country_code)) {
-        LOG(ERROR) << "Fail to get country code on wiphy_index:" << wiphy_index;
-    }
+    LOG(INFO) << "Regulatory domain changed";
   } else {
-      current_country_code = country_code;
-  }
-  if (!current_country_code.empty()) {
-      LOG(INFO) << "Regulatory domain changed to country: " << current_country_code
-                << " on wiphy_index: " << wiphy_index;
-      BroadcastRegDomainChanged(current_country_code);
-  }
-  // Sometimes lower layer sends stale wiphy index when there are no
-  // interfaces. So update band - wiphy index mapping only if an
-  // interface exists
-  if (!hasNoIfaceForWiphyIndex(wiphy_index)) {
-    UpdateBandWiphyIndexMap(wiphy_index);
+    LOG(INFO) << "Regulatory domain changed to country: " << country_code
+              << " on wiphy_index: " << wiphy_index;
+    BroadcastRegDomainChanged(country_code);
   }
   LogSupportedBands(wiphy_index);
 }
 
-android::binder::Status Server::notifyCountryCodeChanged() {
-  LOG(INFO) << "Receive notifyCountryCodeChanged";
-  uint32_t wiphy_index;
-  for (auto& it : client_interfaces_) {
-    if (netlink_utils_->GetWiphyIndex(&wiphy_index, it.first)) {
-      UpdateBandWiphyIndexMap(wiphy_index);
-      LogSupportedBands(wiphy_index);
-    }
-  }
-  for (auto& it : ap_interfaces_) {
-    if (netlink_utils_->GetWiphyIndex(&wiphy_index, it.first)) {
-      UpdateBandWiphyIndexMap(wiphy_index);
-      LogSupportedBands(wiphy_index);
-    }
-  }
-  return Status::ok();
-}
-
 void Server::LogSupportedBands(uint32_t wiphy_index) {
   BandInfo band_info;
   ScanCapabilities scan_capabilities;
diff --git a/server.h b/server.h
index b43ae0a..1368c83 100644
--- a/server.h
+++ b/server.h
@@ -109,8 +109,6 @@
       const std::string& iface_name,
       ::std::optional<net::wifi::nl80211::DeviceWiphyCapabilities>* capabilities) override;
 
-  android::binder::Status notifyCountryCodeChanged() override;
-
  private:
   // Request interface information from kernel and setup local interface object.
   // This assumes that interface should be in STATION mode. Even if we setup
diff --git a/tests/scanner_unittest.cpp b/tests/scanner_unittest.cpp
index 869a21b..dde640e 100644
--- a/tests/scanner_unittest.cpp
+++ b/tests/scanner_unittest.cpp
@@ -51,8 +51,6 @@
 
 constexpr uint32_t kFakeInterfaceIndex = 12;
 constexpr uint32_t kFakeScanIntervalMs = 10000;
-vector<uint32_t> kDefaultFrequencies = {2412, 2417, 2422, 2427, 2432, 2437, 2447, 2452, 2457,
-                                        2462, 5180, 5200, 5220, 5240, 5745, 5765, 5785, 5805};
 
 // This is a helper function to mock the behavior of ScanUtils::Scan()
 // when we expect a error code.
@@ -511,9 +509,10 @@
   pno_settings.pno_networks_.push_back(network);
   pno_settings.pno_networks_.push_back(network2);
 
-  std::set<uint32_t> frequencies(kDefaultFrequencies.begin(), kDefaultFrequencies.end());
-  frequencies.insert(5640); // add frequency from saved network
-  vector<uint32_t> expected_frequencies(frequencies.begin(), frequencies.end());
+  std::set<int32_t> default_frequencies = {2412, 2417, 2422, 2427, 2432, 2437, 2447, 2452, 2457,
+                                           2462, 5180, 5200, 5220, 5240, 5745, 5765, 5785, 5805};
+  default_frequencies.insert(5640); // add frequency from saved network
+  vector<uint32_t> expected_frequencies(default_frequencies.begin(), default_frequencies.end());
 
   // Mock BandInfo to make sure the default_frequencies don't get filtered out as invalid.
   BandInfo band_info;
@@ -530,8 +529,8 @@
   EXPECT_TRUE(success);
 }
 
-// Verify that when there is no frequency data in pno networks, default frequencies is passed into
-// StartScheduledScan frequencies.
+// Verify that when there is no frequency data all pno networks, an empty list is passed into
+// StartScheduledScan in order to scan all frequencies.
 TEST_F(ScannerTest, TestStartPnoScanEmptyList) {
   bool success = false;
   ScanCapabilities scan_capabilities_test_frequencies(
@@ -554,7 +553,7 @@
   pno_settings.pno_networks_.push_back(network2);
   EXPECT_CALL(
       scan_utils_,
-      StartScheduledScan(_, _, _, _, _, _, _, _, Eq(kDefaultFrequencies), _)).
+      StartScheduledScan(_, _, _, _, _, _, _, _, Eq(vector<uint32_t>{}), _)).
           WillOnce(Return(true));
   EXPECT_TRUE(scanner_impl.startPnoScan(pno_settings, &success).isOk());
   EXPECT_TRUE(success);