mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Wifi: Add frequency list to chanelPrams in hostapd
This commit adds a new parameter to the channel parameters for IHostapd Hidl interface to handle a list of channel freq in MHz to be used in ACS. This is needed as part of support of Wifi 6GHz band since 6GHz band channels use same channel numbers as 2.4/5GHz bands. Bug: 146186687 Bug: 139354972 Test: Manual Test: VTS test Change-Id: I8692f3cd28cfaae1d3b870c9f8dbcdd2ff350ee4
This commit is contained in:
@@ -650,7 +650,7 @@ a3eddd9bbdc87e8c22764070037dd1154f1cf006e6fba93364c4f85d4c134a19 android.hardwar
|
||||
94e803236398bed1febb11cc21051bc42ec003700139b099d6c479e02a7ca3c3 android.hardware.neuralnetworks@1.3::IPreparedModelCallback
|
||||
618a628f8c94d6f6e4cb401b69fa50ccb8b82191ea434e3a071252289b4f312c android.hardware.neuralnetworks@1.3::types
|
||||
3e01d4446cd69fd1c48f8572efd97487bc179564b32bd795800b97bbe10be37b android.hardware.wifi@1.4::IWifi
|
||||
7d136c169b62abdee0bb6abafb97638acd792ce2102dfccddaa5df98d4bd3df9 android.hardware.wifi.hostapd@1.2::IHostapd
|
||||
514dc8b810658c45d7b0d34132b708cee2658ecedd9c7efc57d0d666ef182484 android.hardware.wifi.hostapd@1.2::IHostapd
|
||||
11f6448d15336361180391c8ebcdfd2d7cf77b3782d577e594d583aadc9c2877 android.hardware.wifi.hostapd@1.2::types
|
||||
a64467bae843569f0d465c5be7f0c7a5b987985b55a3ef4794dd5afc68538650 android.hardware.wifi.supplicant@1.3::ISupplicant
|
||||
c72cb37b3f66ef65aeb5c6438a3fbe17bbe847fdf62d1a76eafd7f3a8a526105 android.hardware.wifi.supplicant@1.3::ISupplicantStaIface
|
||||
|
||||
@@ -57,6 +57,7 @@ interface IHostapd extends @1.1::IHostapd {
|
||||
* 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
|
||||
@@ -95,6 +96,21 @@ interface IHostapd extends @1.1::IHostapd {
|
||||
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.
|
||||
*/
|
||||
@@ -103,6 +119,15 @@ interface IHostapd extends @1.1::IHostapd {
|
||||
* 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;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -113,9 +138,15 @@ interface IHostapd extends @1.1::IHostapd {
|
||||
* Baseline information as defined in HAL 1.1.
|
||||
*/
|
||||
@1.1::IHostapd.IfaceParams V1_1;
|
||||
/** Additional Hw mode params for the interface */
|
||||
|
||||
/**
|
||||
* Additional Hw mode params for the interface
|
||||
*/
|
||||
HwModeParams hwModeParams;
|
||||
/** Additional Channel params for the interface */
|
||||
|
||||
/**
|
||||
* Additional Channel params for the interface
|
||||
*/
|
||||
ChannelParams channelParams;
|
||||
};
|
||||
|
||||
@@ -135,7 +166,7 @@ interface IHostapd extends @1.1::IHostapd {
|
||||
* |HostapdStatusCode.FAILURE_IFACE_EXISTS|
|
||||
*/
|
||||
addAccessPoint_1_2(IfaceParams ifaceParams, NetworkParams nwParams)
|
||||
generates(HostapdStatus status);
|
||||
generates (HostapdStatus status);
|
||||
|
||||
/**
|
||||
* force one of the hotspot clients disconnect..
|
||||
|
||||
@@ -109,28 +109,26 @@ class HostapdHidlTest
|
||||
return iface_params_1_2;
|
||||
}
|
||||
|
||||
IHostapd::IfaceParams getIfaceParamsWithAcsAndChannelRange() {
|
||||
IHostapd::IfaceParams getIfaceParamsWithAcsAndFreqRange() {
|
||||
IHostapd::IfaceParams iface_params_1_2 = getIfaceParamsWithAcs();
|
||||
::android::hardware::wifi::hostapd::V1_1::IHostapd::ChannelParams
|
||||
channelParams;
|
||||
::android::hardware::wifi::hostapd::V1_1::IHostapd::AcsChannelRange
|
||||
acsChannelRange;
|
||||
acsChannelRange.start = 1;
|
||||
acsChannelRange.end = 11;
|
||||
std::vector<
|
||||
::android::hardware::wifi::hostapd::V1_1::IHostapd::AcsChannelRange>
|
||||
vec_acsChannelRange;
|
||||
vec_acsChannelRange.push_back(acsChannelRange);
|
||||
channelParams.acsChannelRanges = vec_acsChannelRange;
|
||||
iface_params_1_2.V1_1.channelParams = channelParams;
|
||||
::android::hardware::wifi::hostapd::V1_2::IHostapd::AcsFrequencyRange
|
||||
acsFrequencyRange;
|
||||
acsFrequencyRange.start = 2412;
|
||||
acsFrequencyRange.end = 2462;
|
||||
std::vector<::android::hardware::wifi::hostapd::V1_2::IHostapd::
|
||||
AcsFrequencyRange>
|
||||
vec_acsFrequencyRange;
|
||||
vec_acsFrequencyRange.push_back(acsFrequencyRange);
|
||||
iface_params_1_2.channelParams.acsChannelFreqRangesMhz =
|
||||
vec_acsFrequencyRange;
|
||||
return iface_params_1_2;
|
||||
}
|
||||
|
||||
IHostapd::IfaceParams getIfaceParamsWithAcsAndInvalidChannelRange() {
|
||||
IHostapd::IfaceParams getIfaceParamsWithAcsAndInvalidFreqRange() {
|
||||
IHostapd::IfaceParams iface_params_1_2 =
|
||||
getIfaceParamsWithAcsAndChannelRange();
|
||||
iface_params_1_2.V1_1.channelParams.acsChannelRanges[0].start = 222;
|
||||
iface_params_1_2.V1_1.channelParams.acsChannelRanges[0].end = 999;
|
||||
getIfaceParamsWithAcsAndFreqRange();
|
||||
iface_params_1_2.channelParams.acsChannelFreqRangesMhz[0].start = 222;
|
||||
iface_params_1_2.channelParams.acsChannelFreqRangesMhz[0].end = 999;
|
||||
return iface_params_1_2;
|
||||
}
|
||||
|
||||
@@ -186,13 +184,13 @@ TEST_P(HostapdHidlTest, AddPskAccessPointWithAcs) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an access point with PSK network config, ACS enabled & channel Range.
|
||||
* Adds an access point with PSK network config, ACS enabled & frequency Range.
|
||||
* Access point creation should pass.
|
||||
*/
|
||||
TEST_P(HostapdHidlTest, AddPskAccessPointWithAcsAndChannelRange) {
|
||||
TEST_P(HostapdHidlTest, AddPskAccessPointWithAcsAndFreqRange) {
|
||||
auto status =
|
||||
HIDL_INVOKE(hostapd_, addAccessPoint_1_2,
|
||||
getIfaceParamsWithAcsAndChannelRange(), getPskNwParams());
|
||||
getIfaceParamsWithAcsAndFreqRange(), getPskNwParams());
|
||||
// TODO: b/140172237, fix this in R
|
||||
// EXPECT_EQ(HostapdStatusCode::SUCCESS, status.code);
|
||||
}
|
||||
@@ -201,9 +199,9 @@ TEST_P(HostapdHidlTest, AddPskAccessPointWithAcsAndChannelRange) {
|
||||
* Adds an access point with invalid channel range.
|
||||
* Access point creation should fail.
|
||||
*/
|
||||
TEST_P(HostapdHidlTest, AddPskAccessPointWithAcsAndInvalidChannelRange) {
|
||||
TEST_P(HostapdHidlTest, AddPskAccessPointWithAcsAndInvalidFreqRange) {
|
||||
auto status = HIDL_INVOKE(hostapd_, addAccessPoint_1_2,
|
||||
getIfaceParamsWithAcsAndInvalidChannelRange(),
|
||||
getIfaceParamsWithAcsAndInvalidFreqRange(),
|
||||
getPskNwParams());
|
||||
// TODO: b/140172237, fix this in R
|
||||
// EXPECT_NE(HostapdStatusCode::SUCCESS, status.code);
|
||||
@@ -245,14 +243,15 @@ TEST_P(HostapdHidlTest, AddOpenAccessPointWithoutAcs) {
|
||||
* Access point creation & removal should pass.
|
||||
*/
|
||||
TEST_P(HostapdHidlTest, RemoveAccessPointWithAcs) {
|
||||
auto status = HIDL_INVOKE(hostapd_, addAccessPoint_1_2,
|
||||
getIfaceParamsWithAcs(), getPskNwParams());
|
||||
auto status_1_2 = HIDL_INVOKE(hostapd_, addAccessPoint_1_2,
|
||||
getIfaceParamsWithAcs(), getPskNwParams());
|
||||
// TODO: b/140172237, fix this in R
|
||||
/*
|
||||
EXPECT_EQ(HostapdStatusCode::SUCCESS, status.code);
|
||||
status =
|
||||
EXPECT_EQ(HostapdStatusCode::SUCCESS, status_1_2.code);
|
||||
auto status =
|
||||
HIDL_INVOKE(hostapd_, removeAccessPoint, getPrimaryWlanIfaceName());
|
||||
EXPECT_EQ(HostapdStatusCode::SUCCESS, status.code);
|
||||
EXPECT_EQ(android::hardware::wifi::hostapd::V1_0::HostapdStatusCode::SUCCESS,
|
||||
status.code);
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user