From 81534524bfab4a9b91de03345e67f1d6a6d1930b Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Tue, 18 Feb 2025 11:10:21 +0100 Subject: [PATCH] wifi: Do not constrain aux PHY max width based on aux PHY max modulation class --- src/wifi/model/eht/emlsr-manager.cc | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/wifi/model/eht/emlsr-manager.cc b/src/wifi/model/eht/emlsr-manager.cc index f1e92bbe8..75b4223a8 100644 --- a/src/wifi/model/eht/emlsr-manager.cc +++ b/src/wifi/model/eht/emlsr-manager.cc @@ -58,9 +58,7 @@ EmlsrManager::GetTypeId() MakeUintegerAccessor(&EmlsrManager::SetMainPhyId, &EmlsrManager::GetMainPhyId), MakeUintegerChecker()) .AddAttribute("AuxPhyChannelWidth", - "The maximum channel width (MHz) supported by Aux PHYs. Note that the " - "maximum channel width is capped to the maximum channel width supported " - "by the configured maximum modulation class supported.", + "The maximum channel width (MHz) supported by Aux PHYs.", TypeId::ATTR_GET | TypeId::ATTR_CONSTRUCT, // prevent setting after construction UintegerValue(20), @@ -1381,27 +1379,25 @@ EmlsrManager::ComputeOperatingChannels() m_mainPhyChannels.emplace(linkId, channel); auto mainPhyChWidth = channel.GetWidth(); - auto auxPhyMaxWidth = - std::min(m_auxPhyMaxWidth, GetMaximumChannelWidth(m_auxPhyMaxModClass)); - if (auxPhyMaxWidth >= mainPhyChWidth) + if (m_auxPhyMaxWidth >= mainPhyChWidth) { // same channel can be used by aux PHYs m_auxPhyChannels.emplace(linkId, channel); continue; } // aux PHYs will operate on a primary subchannel - auto freq = channel.GetPrimaryChannelCenterFrequency(auxPhyMaxWidth); + auto freq = channel.GetPrimaryChannelCenterFrequency(m_auxPhyMaxWidth); auto chIt = WifiPhyOperatingChannel::FindFirst(0, freq, - auxPhyMaxWidth, + m_auxPhyMaxWidth, WIFI_STANDARD_UNSPECIFIED, channel.GetPhyBand()); NS_ASSERT_MSG(chIt != WifiPhyOperatingChannel::m_frequencyChannels.end(), - "Primary" << auxPhyMaxWidth << " channel not found"); + "Primary" << m_auxPhyMaxWidth << " channel not found"); m_auxPhyChannels.emplace(linkId, chIt); // find the P20 index for the channel used by the aux PHYs auto p20Index = channel.GetPrimaryChannelIndex(MHz_u{20}); - while (mainPhyChWidth > auxPhyMaxWidth) + while (mainPhyChWidth > m_auxPhyMaxWidth) { mainPhyChWidth /= 2; p20Index /= 2;