Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6489a56 authored by Sunil Ravi's avatar Sunil Ravi
Browse files

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
parent d0e56364
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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;

/**
+124 −1
Original line number Diff line number Diff line
@@ -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.
     *
@@ -62,4 +177,12 @@ interface ISupplicantStaIfaceCallback extends @1.2::ISupplicantStaIfaceCallback
     */
    oneway onDppFailure_1_3(DppFailureCode code, string ssid, string channelList,
        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);
};
+27 −15
Original line number Diff line number Diff line
@@ -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.
+5 −1
Original line number Diff line number Diff line
@@ -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,
};

Loading