Hostapd: redefine data structure to avoid dependency on IHostapd@1.2

This commit is to remove dependency on IHostapdHal@1.2 by re-defining
structures that were imported earlier. This allows support on targets
where IHotapdHal@1.2 is not present

Additionally, this commit adds following vendor network params:
 - enableOCV
 - enableBeaconProtection

Change-Id: I6b9645a1defcdb8eac5178cee39ead1f8299b325
CRs-Fixed: 2673976
This commit is contained in:
Purushottam Kushwaha
2020-04-27 19:39:27 +05:30
parent 21d4b6379b
commit 2699635d77
2 changed files with 121 additions and 8 deletions

View File

@@ -31,7 +31,6 @@ package vendor.qti.hardware.wifi.hostapd@1.2;
import android.hardware.wifi.hostapd@1.0::IHostapd;
import android.hardware.wifi.hostapd@1.0::types;
import android.hardware.wifi.hostapd@1.2::IHostapd;
import @1.0::IHostapdVendor;
import @1.1::IHostapdVendor;
@@ -47,6 +46,103 @@ interface IHostapdVendor extends @1.1::IHostapdVendor {
SAE_TRANSITION,
};
/**
* Band bitmMask to use for the SoftAp operations.
* A combinatoin of these bits are used to identify the allowed bands
* to start the softAp
*/
enum BandMask : uint32_t {
/**
* 2.4 GHz band.
*/
BAND_2_GHZ = 1 << 0,
/**
* 5 GHz band.
*/
BAND_5_GHZ = 1 << 1,
/**
* 6 GHz band.
*/
BAND_6_GHZ = 1 << 2,
};
/**
* Parameters to control the HW mode for the interface.
*/
struct HwModeParams {
/**
* Whether IEEE 802.11ax (HE) is enabled or not.
* Note: hw_mode=a is used to specify that 5 GHz band or 6 GHz band is
* used with HE.
*/
bool enable80211AX;
/**
* Whether 6GHz band enabled or not on softAp.
* Note: hw_mode=a is used to specify that 5 GHz band or 6 GHz band is
* used.
*/
bool enable6GhzBand;
/**
* Whether HE single user beamformer in enabled or not on softAp.
* Note: this is only applicable if 802.11ax is supported for softAp
*/
bool enableHeSingleUserBeamformer;
/**
* Whether HE single user beamformee is enabled or not on softAp.
* Note: this is only applicable if 802.11ax is supported for softAp
*/
bool enableHeSingleUserBeamformee;
/**
* Whether HE multiple user beamformer is enabled or not on softAp.
* Note: this is only applicable if 802.11ax is supported for softAp
*/
bool enableHeMultiUserBeamformer;
/**
* Whether HE Target Wait Time (TWT) is enabled or not on softAp.
* Note: this is only applicable if 802.11ax is supported for softAp
*/
bool enableHeTargetWakeTime;
};
/**
* Parameters to specify the channel frequency range for ACS.
*/
struct AcsFrequencyRange {
/**
* Channel Frequency (in MHz) at the start of the range.
*/
uint32_t start;
/**
* Channel Frequency (in MHz) at the end of the range.
*/
uint32_t end;
};
/**
* Parameters to control the channel selection for the interface.
*/
struct ChannelParams {
/**
* Band to use for the SoftAp operations.
*/
bitfield<BandMask> bandMask;
/**
* This option can be used to specify the channel frequencies (in MHz) selected by ACS.
* If this is an empty list, all channels allowed in selected HW mode
* are specified implicitly.
* Note: channels may be overridden by firmware.
* Note: this option is ignored if ACS is disabled.
*/
vec<AcsFrequencyRange> acsChannelFreqRangesMhz;
};
/**
* Parameters to use for setting up the access point interface.
@@ -58,14 +154,14 @@ interface IHostapdVendor extends @1.1::IHostapdVendor {
@1.1::IHostapdVendor.VendorIfaceParams VendorV1_1;
/**
* Additional Channel params for the interface from 1.2::IHostapd HAL
* Additional Hw mode params for the interface
*/
@1.2::IHostapd.ChannelParams channelParams;
HwModeParams hwModeParams;
/**
* Additional Hw mode params for the interface from 1.2::IHostapd HAL
* Additional Channel params for the interface
*/
@1.2::IHostapd.HwModeParams hwModeParams;
ChannelParams channelParams;
};
/**
@@ -73,14 +169,31 @@ interface IHostapdVendor extends @1.1::IHostapdVendor {
*/
struct VendorNetworkParams {
/**
* Baseline information as defined in HAL 1.2::IHostapd.
* Baseline information as defined in HAL 1.0.
*/
@1.2::IHostapd.NetworkParams V1_2;
@1.0::IHostapd.NetworkParams V1_0;
/**
* Passphrase for WPA3_SAE network, WPA3_SAE_TRANSITION and
* WPA2_PSK. Replaces @1.0::IHostapd.NetworkParams.pskPassphrase.
*/
string passphrase;
/**
* Key management mask for the network. overrides NetworkParams.encryptionType
*/
VendorEncryptionType vendorEncryptionType;
/**
* ocv: Operating Channel Validation
* This is a countermeasure against multi-channel man-in-the-middle attacks.
*/
bool enableOCV;
/**
* Beacon Protection (management frame protection for Beacon frames)
*/
bool enableBeaconProtection;
};

View File

@@ -1 +1 @@
version=3
version=2