diff options
| author | 2024-01-18 19:27:21 +0000 | |
|---|---|---|
| committer | 2024-01-31 00:14:21 +0000 | |
| commit | 6b5104cf649dc96e6ceed141eeb2678754e3d9bb (patch) | |
| tree | f1eecf1624dc87e30864ad25b60c05937d8d92e4 | |
| parent | 8a091a74d2da456efd219ee1a272dca987c8fe56 (diff) | |
Get the device support for cross-akm roaming
Read NL80211_ATTR_MAX_NUM_AKM_SUITES attribute from
wiphy info to get the device support for cross-akm
roaming feature.
Bug: 313038031
Test: Manual - STA connection
Test: atest DeviceWiphyCapabilitiesTest
Test: atest WifiNl80211ManagerTest
Change-Id: Ib429a4826ed3110d128c7a6929c73b73d89f06a3
4 files changed, 32 insertions, 2 deletions
diff --git a/core/api/system-current.txt b/core/api/system-current.txt index f1011616c3ab..008549c5b04c 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -9657,6 +9657,7 @@ package android.net.wifi.nl80211 { public final class DeviceWiphyCapabilities implements android.os.Parcelable { ctor public DeviceWiphyCapabilities(); method public int describeContents(); + method @FlaggedApi("android.net.wifi.flags.get_device_cross_akm_roaming_support") public int getMaxNumberAkms(); method public int getMaxNumberRxSpatialStreams(); method public int getMaxNumberTxSpatialStreams(); method public boolean isChannelWidthSupported(int); diff --git a/wifi/java/src/android/net/wifi/nl80211/DeviceWiphyCapabilities.java b/wifi/java/src/android/net/wifi/nl80211/DeviceWiphyCapabilities.java index 21700d5852cb..6d57a8709ab9 100644 --- a/wifi/java/src/android/net/wifi/nl80211/DeviceWiphyCapabilities.java +++ b/wifi/java/src/android/net/wifi/nl80211/DeviceWiphyCapabilities.java @@ -16,11 +16,13 @@ package android.net.wifi.nl80211; +import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.SystemApi; import android.net.wifi.ScanResult; import android.net.wifi.WifiAnnotations.ChannelWidth; import android.net.wifi.WifiAnnotations.WifiStandard; +import android.net.wifi.flags.Flags; import android.os.Parcel; import android.os.Parcelable; import android.util.Log; @@ -48,6 +50,7 @@ public final class DeviceWiphyCapabilities implements Parcelable { private boolean mChannelWidth320MhzSupported; private int mMaxNumberTxSpatialStreams; private int mMaxNumberRxSpatialStreams; + private int mMaxNumberAkms; /** public constructor */ @@ -61,6 +64,7 @@ public final class DeviceWiphyCapabilities implements Parcelable { mChannelWidth320MhzSupported = false; mMaxNumberTxSpatialStreams = 1; mMaxNumberRxSpatialStreams = 1; + mMaxNumberAkms = 1; } /** @@ -199,6 +203,25 @@ public final class DeviceWiphyCapabilities implements Parcelable { } /** + * Get the maximum number of AKM suites supported in the connection request to the driver. + * + * @return maximum number of AKMs + */ + @FlaggedApi(Flags.FLAG_GET_DEVICE_CROSS_AKM_ROAMING_SUPPORT) + public int getMaxNumberAkms() { + return mMaxNumberAkms; + } + + /** + * Set the maximum number of AKM suites supported in the connection request to the driver. + * + * @hide + */ + public void setMaxNumberAkms(int akms) { + mMaxNumberAkms = akms; + } + + /** * Set maximum number of receive spatial streams * * @param streams number of streams @@ -226,7 +249,8 @@ public final class DeviceWiphyCapabilities implements Parcelable { && mChannelWidth80p80MhzSupported == capa.mChannelWidth80p80MhzSupported && mChannelWidth320MhzSupported == capa.mChannelWidth320MhzSupported && mMaxNumberTxSpatialStreams == capa.mMaxNumberTxSpatialStreams - && mMaxNumberRxSpatialStreams == capa.mMaxNumberRxSpatialStreams; + && mMaxNumberRxSpatialStreams == capa.mMaxNumberRxSpatialStreams + && mMaxNumberAkms == capa.mMaxNumberAkms; } /** override hash code */ @@ -235,7 +259,7 @@ public final class DeviceWiphyCapabilities implements Parcelable { return Objects.hash(m80211nSupported, m80211acSupported, m80211axSupported, m80211beSupported, mChannelWidth160MhzSupported, mChannelWidth80p80MhzSupported, mChannelWidth320MhzSupported, mMaxNumberTxSpatialStreams, - mMaxNumberRxSpatialStreams); + mMaxNumberRxSpatialStreams, mMaxNumberAkms); } /** implement Parcelable interface */ @@ -259,6 +283,7 @@ public final class DeviceWiphyCapabilities implements Parcelable { out.writeBoolean(mChannelWidth320MhzSupported); out.writeInt(mMaxNumberTxSpatialStreams); out.writeInt(mMaxNumberRxSpatialStreams); + out.writeInt(mMaxNumberAkms); } @Override @@ -276,6 +301,7 @@ public final class DeviceWiphyCapabilities implements Parcelable { .append(mChannelWidth320MhzSupported ? "Yes" : "No"); sb.append("mMaxNumberTxSpatialStreams: ").append(mMaxNumberTxSpatialStreams); sb.append("mMaxNumberRxSpatialStreams: ").append(mMaxNumberRxSpatialStreams); + sb.append("mMaxNumberAkms: ").append(mMaxNumberAkms); return sb.toString(); } @@ -298,6 +324,7 @@ public final class DeviceWiphyCapabilities implements Parcelable { capabilities.mChannelWidth320MhzSupported = in.readBoolean(); capabilities.mMaxNumberTxSpatialStreams = in.readInt(); capabilities.mMaxNumberRxSpatialStreams = in.readInt(); + capabilities.mMaxNumberAkms = in.readInt(); return capabilities; } diff --git a/wifi/tests/src/android/net/wifi/nl80211/DeviceWiphyCapabilitiesTest.java b/wifi/tests/src/android/net/wifi/nl80211/DeviceWiphyCapabilitiesTest.java index 7b900fec70a8..5a3ca2beee14 100644 --- a/wifi/tests/src/android/net/wifi/nl80211/DeviceWiphyCapabilitiesTest.java +++ b/wifi/tests/src/android/net/wifi/nl80211/DeviceWiphyCapabilitiesTest.java @@ -49,6 +49,7 @@ public class DeviceWiphyCapabilitiesTest { capa.setChannelWidthSupported(ScanResult.CHANNEL_WIDTH_80MHZ_PLUS_MHZ, false); capa.setMaxNumberTxSpatialStreams(2); capa.setMaxNumberRxSpatialStreams(1); + capa.setMaxNumberAkms(2); Parcel parcel = Parcel.obtain(); capa.writeToParcel(parcel, 0); diff --git a/wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java b/wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java index 362eb1425a30..02da835d1002 100644 --- a/wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java +++ b/wifi/tests/src/android/net/wifi/nl80211/WifiNl80211ManagerTest.java @@ -1130,6 +1130,7 @@ public class WifiNl80211ManagerTest { capaExpected.setChannelWidthSupported(ScanResult.CHANNEL_WIDTH_80MHZ_PLUS_MHZ, false); capaExpected.setMaxNumberTxSpatialStreams(2); capaExpected.setMaxNumberRxSpatialStreams(1); + capaExpected.setMaxNumberAkms(2); when(mWificond.getDeviceWiphyCapabilities(TEST_INTERFACE_NAME)) .thenReturn(capaExpected); |