mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 16:50:18 +00:00
Wifi: MBO-OCE feature support (phase 3)
Added hidl call back function to notify framework about bss transition request frame handling status. Also fixed few code style issues by running hidl-gen -Lformat. Bug: 139474288 Test: Manual Test: VTS test Change-Id: I00760f14d81a59e63042b1a5be9f9e3f74ff3a83
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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<BssTmDataFlagsMask> 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,
|
||||
vec<uint16_t>bandList);
|
||||
vec<uint16_t> bandList);
|
||||
|
||||
/**
|
||||
* Indicates BTM request frame handling status.
|
||||
*
|
||||
* @param BssTmData Data retrieved from received BSS transition management
|
||||
* request frame.
|
||||
*/
|
||||
oneway onBssTmHandlingDone(BssTmData tmData);
|
||||
};
|
||||
|
||||
@@ -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> keyMgmtMask);
|
||||
getKeyMgmt_1_3() generates (SupplicantStatus status, bitfield<KeyMgmtMask> 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> pairwiseCipherMask);
|
||||
generates (SupplicantStatus status, bitfield<PairwiseCipherMask> 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> groupCipherMask);
|
||||
generates (SupplicantStatus status, bitfield<GroupCipherMask> groupCipherMask);
|
||||
|
||||
/**
|
||||
* Set WAPI certificate suite for this network.
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
|
||||
@@ -62,6 +62,9 @@ class SupplicantStaIfaceHidlTest : public ::testing::VtsHalHidlTargetTestBase {
|
||||
int64_t pmkCacheExpirationTimeInSec;
|
||||
std::vector<uint8_t> 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<uint8_t>& /* serializedEntry */) override {
|
||||
return Void();
|
||||
}
|
||||
Return<void> 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<void> onBssTmHandlingDone(
|
||||
const ISupplicantStaIfaceCallback::BssTmData& data) override {
|
||||
parent_.tmData = data;
|
||||
return Void();
|
||||
}
|
||||
|
||||
public:
|
||||
IfaceBssTmHandlingDoneCallback(SupplicantStaIfaceHidlTest& parent)
|
||||
: parent_(parent) {}
|
||||
};
|
||||
|
||||
/*
|
||||
* RegisterCallback_1_3
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user