wifi: Add support for 20MHz only operations in 5 GHz and 6 GHz bands for 11ax and 11be

This commit is contained in:
Sébastien Deronne
2025-04-14 22:13:38 +02:00
parent ec780eb1bd
commit 296de82cf3
3 changed files with 8 additions and 3 deletions

View File

@@ -249,15 +249,15 @@ GetSupportedChannelWidthSet(WifiStandard standard, WifiPhyBand band)
case WIFI_STANDARD_80211ac:
return {MHz_u{80}, MHz_u{160}};
case WIFI_STANDARD_80211ax:
return (band == WifiPhyBand::WIFI_PHY_BAND_2_4GHZ) ? std::set<MHz_u>{MHz_u{20}, MHz_u{40}}
: std::set<MHz_u>{MHz_u{80}, MHz_u{160}};
return (band == WifiPhyBand::WIFI_PHY_BAND_2_4GHZ)
? std::set<MHz_u>{MHz_u{20}, MHz_u{40}}
: std::set<MHz_u>{MHz_u{20}, MHz_u{80}, MHz_u{160}};
case WIFI_STANDARD_80211be:
switch (band)
{
case WifiPhyBand::WIFI_PHY_BAND_2_4GHZ:
return {MHz_u{20}, MHz_u{40}};
case WifiPhyBand::WIFI_PHY_BAND_5GHZ:
return {MHz_u{80}, MHz_u{160}};
case WifiPhyBand::WIFI_PHY_BAND_6GHZ:
return {MHz_u{20}, MHz_u{80}, MHz_u{160}};
default:

View File

@@ -1684,6 +1684,10 @@ WifiRemoteStationManager::AddStationHeCapabilities(Mac48Address from,
{
state->m_channelWidth = MHz_u{80};
}
else if (heCapabilities.GetChannelWidthSet() == 0x00)
{
state->m_channelWidth = MHz_u{20};
}
// For other cases at 5 GHz, the supported channel width is set by the VHT capabilities
}
else if (m_wifiPhy->GetPhyBand() == WIFI_PHY_BAND_2_4GHZ)

View File

@@ -313,6 +313,7 @@ AmpduAggregationTest::DoSetup()
if (m_params.standard >= WIFI_STANDARD_80211ax)
{
HeCapabilities heCapabilities;
heCapabilities.SetChannelWidthSet(0x1);
heCapabilities.SetMaxAmpduLength((1 << 23) - 1);
m_managers.at(i)->AddStationHeCapabilities(Mac48Address("00:00:00:00:00:02"),
heCapabilities);