diff --git a/current.txt b/current.txt index ecfe7bd67c..f026d7d47a 100644 --- a/current.txt +++ b/current.txt @@ -653,10 +653,10 @@ cf1d55e8c68300090747ab90b94c22e4c859b29c84ced68a317c595bb115eab2 android.hardwar 36b3acf78ac4ecf8156be8741c1d8332cdce7a1ebf4dfa1562952f14a94e6c87 android.hardware.wifi.hostapd@1.2::IHostapd 2defa258951e25a132aaeb36e3febe6f41bf9c6dbb1b1ebdf0b41708ab4e107e android.hardware.wifi.hostapd@1.2::types a64467bae843569f0d465c5be7f0c7a5b987985b55a3ef4794dd5afc68538650 android.hardware.wifi.supplicant@1.3::ISupplicant -213457930af81ff3ea344fbc9d4a0d0a2bb70527f96b7b6a32ee3b5e4c17057e android.hardware.wifi.supplicant@1.3::ISupplicantStaIface -c1b8cfff5a86a7edef800a65b7c8fa025f4546cb95710d48e27bac50a8d16619 android.hardware.wifi.supplicant@1.3::ISupplicantStaIfaceCallback -a6163000e2804472924733bcf8b4269db776460cc4df64f9c4dc8350d7aeafc5 android.hardware.wifi.supplicant@1.3::ISupplicantStaNetwork -16e3e23eea763fbff39230ef069823643c5760b738b3661dbbdaf460c5b9ba13 android.hardware.wifi.supplicant@1.3::types +c72cb37b3f66ef65aeb5c6438a3fbe17bbe847fdf62d1a76eafd7f3a8a526105 android.hardware.wifi.supplicant@1.3::ISupplicantStaIface +342a8e12db4dca643f2755eb4167e8f103d96502053a25a1f51f42107a4530f1 android.hardware.wifi.supplicant@1.3::ISupplicantStaIfaceCallback +5477f8bafb29548875622fa83f1c0a29cee641acee613315eb747731001f4aff android.hardware.wifi.supplicant@1.3::ISupplicantStaNetwork +91015479f5a0fba9872e98d3cca4680995de64f42ae71461b4b7e5acc5a196ab android.hardware.wifi.supplicant@1.3::types 7a4ba60b5ddedf497e5d2bdff7d72b7d4a811969000e28677dd9e2389e683b34 android.hardware.radio@1.5::types afa2d6cf4c0ba4b8482d5bcc097594ad5bc49be0bf3003034f75955cdaf66045 android.hardware.radio@1.5::IRadio 3afac66f21a33bc9c4b80481c7d5540038348651d9a7d8af64ea13610af138da android.hardware.radio@1.5::IRadioIndication diff --git a/wifi/supplicant/1.3/ISupplicantStaIface.hal b/wifi/supplicant/1.3/ISupplicantStaIface.hal index fa88b91c6c..58ef165360 100644 --- a/wifi/supplicant/1.3/ISupplicantStaIface.hal +++ b/wifi/supplicant/1.3/ISupplicantStaIface.hal @@ -18,7 +18,7 @@ package android.hardware.wifi.supplicant@1.3; import @1.0::SupplicantStatus; import @1.2::ISupplicantStaIface; -import @1.3::ISupplicantStaNetwork; +import ISupplicantStaNetwork; import ISupplicantStaIfaceCallback; /** diff --git a/wifi/supplicant/1.3/ISupplicantStaIfaceCallback.hal b/wifi/supplicant/1.3/ISupplicantStaIfaceCallback.hal index ae7f7970c3..72ba160ec9 100644 --- a/wifi/supplicant/1.3/ISupplicantStaIfaceCallback.hal +++ b/wifi/supplicant/1.3/ISupplicantStaIfaceCallback.hal @@ -27,6 +27,121 @@ import @1.2::ISupplicantStaIfaceCallback; * corresponding |ISupplicantStaIface.registerCallback_1_3| method. */ interface ISupplicantStaIfaceCallback extends @1.2::ISupplicantStaIfaceCallback { + /** + * IEEE Std 802.11-2016 - Table 9-357. + * BTM status code filled in BSS transition management response frame. + */ + enum BssTmStatusCode : uint8_t { + ACCEPT = 0, + REJECT_UNSPECIFIED = 1, + REJECT_INSUFFICIENT_BEACON = 2, + REJECT_INSUFFICIENT_CAPABITY = 3, + REJECT_BSS_TERMINATION_UNDESIRED = 4, + REJECT_BSS_TERMINATION_DELAY_REQUEST = 5, + REJECT_STA_CANDIDATE_LIST_PROVIDED = 6, + REJECT_NO_SUITABLE_CANDIDATES = 7, + REJECT_LEAVING_ESS = 8, + }; + + /** + * Bitmask of various information retrieved from BSS transition management request frame. + */ + enum BssTmDataFlagsMask : uint32_t { + /** + * Preferred candidate list included. + */ + WNM_MODE_PREFERRED_CANDIDATE_LIST_INCLUDED = 1 << 0, + /** + * Abridged. + */ + WNM_MODE_ABRIDGED = 1 << 1, + /** + * Disassociation Imminent. + */ + WNM_MODE_DISASSOCIATION_IMMINENT = 1 << 2, + /** + * BSS termination included. + */ + WNM_MODE_BSS_TERMINATION_INCLUDED = 1 << 3, + /** + * ESS Disassociation Imminent. + */ + WNM_MODE_ESS_DISASSOCIATION_IMMINENT = 1 << 4, + /** + * MBO transition reason code included. + */ + MBO_TRANSITION_REASON_CODE_INCLUDED = 1 << 5, + /** + * MBO retry delay time included. + */ + MBO_ASSOC_RETRY_DELAY_INCLUDED = 1 << 6, + /** + * MBO cellular data connection preference value included. + */ + MBO_CELLULAR_DATA_CONNECTION_PREFERENCE_INCLUDED = 1 << 7, + }; + + /** + * MBO spec v1.2, 4.2.6 Table 18: MBO transition reason code attribute + * values. + */ + enum MboTransitionReasonCode : uint8_t { + UNSPECIFIED = 0, + EXCESSIVE_FRAME_LOSS = 1, + EXCESSIVE_TRAFFIC_DELAY = 2, + INSUFFICIENT_BANDWIDTH = 3, + LOAD_BALANCING = 4, + LOW_RSSI = 5, + RX_EXCESSIVE_RETRIES = 6, + HIGH_INTERFERENCE = 7, + GRAY_ZONE = 8, + TRANSITION_TO_PREMIUM_AP = 9, + }; + + /** + * MBO spec v1.2, 4.2.5 Table 16: MBO Cellular Data connection preference + * attribute values. AP use this to indicate STA, its preference for the + * STA to move from BSS to cellular network. + */ + enum MboCellularDataConnectionPrefValue : uint8_t { + EXCLUDED = 0, + NOT_PREFERRED = 1, + /* + * 2-254 Reserved. + */ + PREFERRED = 255, + }; + + /** + * Data retrieved from received BSS transition management request frame. + */ + struct BssTmData { + /* + * Status code filled in BSS transition management response frame + */ + BssTmStatusCode status; + + /* + * Bitmask of BssTmDataFlagsMask + */ + bitfield flags; + + /* + * Duration for which STA shouldn't try to re-associate. + */ + uint32_t assocRetryDelayMs; + + /* + * Reason for BSS transition request. + */ + MboTransitionReasonCode mboTransitionReason; + + /* + * Cellular Data Connection preference value. + */ + MboCellularDataConnectionPrefValue mboCellPreference; + }; + /** * Indicates PMK cache added event. * @@ -61,5 +176,13 @@ interface ISupplicantStaIfaceCallback extends @1.2::ISupplicantStaIfaceCallback * Operating Class. */ oneway onDppFailure_1_3(DppFailureCode code, string ssid, string channelList, - vecbandList); + vec bandList); + + /** + * Indicates BTM request frame handling status. + * + * @param BssTmData Data retrieved from received BSS transition management + * request frame. + */ + oneway onBssTmHandlingDone(BssTmData tmData); }; diff --git a/wifi/supplicant/1.3/ISupplicantStaNetwork.hal b/wifi/supplicant/1.3/ISupplicantStaNetwork.hal index 1bcf7bcde2..c18bffc93f 100644 --- a/wifi/supplicant/1.3/ISupplicantStaNetwork.hal +++ b/wifi/supplicant/1.3/ISupplicantStaNetwork.hal @@ -25,29 +25,44 @@ import @1.2::ISupplicantStaNetwork; * configuration it controls. */ interface ISupplicantStaNetwork extends @1.2::ISupplicantStaNetwork { - /** Possble mask of values for Proto param. */ + /** + * Possble mask of values for Proto param. + */ enum ProtoMask : @1.0::ISupplicantStaNetwork.ProtoMask { WAPI = 1 << 2, }; - /** Possble mask of values for KeyMgmt param. */ + /** + * Possble mask of values for KeyMgmt param. + */ enum KeyMgmtMask : @1.2::ISupplicantStaNetwork.KeyMgmtMask { - /* WAPI Psk */ + /* + * WAPI Psk + */ WAPI_PSK = 1 << 12, - - /** WAPI Cert */ + /** + * WAPI Cert + */ WAPI_CERT = 1 << 13, }; - /** Possble mask of values for PairwiseCipher param. */ + /** + * Possble mask of values for PairwiseCipher param. + */ enum PairwiseCipherMask : @1.2::ISupplicantStaNetwork.PairwiseCipherMask { - /** SMS4 Pairwise Cipher */ + /** + * SMS4 Pairwise Cipher + */ SMS4 = 1 << 7, }; - /** Possble mask of values for GroupCipher param. */ + /** + * Possble mask of values for GroupCipher param. + */ enum GroupCipherMask : @1.2::ISupplicantStaNetwork.GroupCipherMask { - /** SMS4 Group Cipher */ + /** + * SMS4 Group Cipher + */ SMS4 = 1 << 7, }; @@ -99,8 +114,7 @@ interface ISupplicantStaNetwork extends @1.2::ISupplicantStaNetwork { * |SupplicantStatusCode.FAILURE_UNKNOWN| * @return keyMgmtMask Combination of |KeyMgmtMask| values. */ - getKeyMgmt_1_3() - generates (SupplicantStatus status, bitfield keyMgmtMask); + getKeyMgmt_1_3() generates (SupplicantStatus status, bitfield keyMgmtMask); /** * Set proto mask for the network. @@ -154,8 +168,7 @@ interface ISupplicantStaNetwork extends @1.2::ISupplicantStaNetwork { * @return pairwiseCipherMask Combination of |PairwiseCipherMask| values. */ getPairwiseCipher_1_3() - generates (SupplicantStatus status, - bitfield pairwiseCipherMask); + generates (SupplicantStatus status, bitfield pairwiseCipherMask); /** * Set pairwise cipher mask for the network. @@ -183,8 +196,7 @@ interface ISupplicantStaNetwork extends @1.2::ISupplicantStaNetwork { * @return groupCipherMask Combination of |GroupCipherMask| values. */ getGroupCipher_1_3() - generates (SupplicantStatus status, - bitfield groupCipherMask); + generates (SupplicantStatus status, bitfield groupCipherMask); /** * Set WAPI certificate suite for this network. diff --git a/wifi/supplicant/1.3/types.hal b/wifi/supplicant/1.3/types.hal index 2e5027954f..05f4760126 100644 --- a/wifi/supplicant/1.3/types.hal +++ b/wifi/supplicant/1.3/types.hal @@ -15,6 +15,7 @@ */ package android.hardware.wifi.supplicant@1.3; + import @1.2::DppProgressCode; import @1.2::DppFailureCode; @@ -87,7 +88,10 @@ enum DppProgressCode : @1.2::DppProgressCode { * DppSuccessCode: Success codes for DPP (Easy Connect) Configurator */ enum DppSuccessCode : uint32_t { - CONFIGURATION_SENT, /* Replaces @1.2::onDppSuccessConfigSent() */ + /* + * Replaces @1.2::onDppSuccessConfigSent() + */ + CONFIGURATION_SENT, CONFIGURATION_APPLIED, }; diff --git a/wifi/supplicant/1.3/vts/functional/supplicant_sta_iface_hidl_test.cpp b/wifi/supplicant/1.3/vts/functional/supplicant_sta_iface_hidl_test.cpp index 2b08e48fd6..8c9f9cd1e2 100644 --- a/wifi/supplicant/1.3/vts/functional/supplicant_sta_iface_hidl_test.cpp +++ b/wifi/supplicant/1.3/vts/functional/supplicant_sta_iface_hidl_test.cpp @@ -62,6 +62,9 @@ class SupplicantStaIfaceHidlTest : public ::testing::VtsHalHidlTargetTestBase { int64_t pmkCacheExpirationTimeInSec; std::vector serializedPmkCacheEntry; + // Data retrieved from BSS transition management frame. + ISupplicantStaIfaceCallback::BssTmData tmData; + enum DppCallbackType { ANY_CALLBACK = -2, INVALID = -1, @@ -229,6 +232,10 @@ class IfaceCallback : public ISupplicantStaIfaceCallback { const hidl_vec& /* serializedEntry */) override { return Void(); } + Return onBssTmHandlingDone( + const ISupplicantStaIfaceCallback::BssTmData& /* data */) override { + return Void(); + } }; class IfacePmkCacheCallback : public IfaceCallback { @@ -279,6 +286,20 @@ class IfaceDppCallback : public IfaceCallback { public: IfaceDppCallback(SupplicantStaIfaceHidlTest& parent) : parent_(parent){}; }; + +class IfaceBssTmHandlingDoneCallback : public IfaceCallback { + SupplicantStaIfaceHidlTest& parent_; + Return onBssTmHandlingDone( + const ISupplicantStaIfaceCallback::BssTmData& data) override { + parent_.tmData = data; + return Void(); + } + + public: + IfaceBssTmHandlingDoneCallback(SupplicantStaIfaceHidlTest& parent) + : parent_(parent) {} +}; + /* * RegisterCallback_1_3 */