From 6a2b47cf952d1a014e60f64929a761edef6068e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deronne?= Date: Mon, 22 Jan 2024 21:26:33 +0100 Subject: [PATCH] wifi: No need to indicate whether HT and/or VHT is supported in Extended Capabilities IEs --- src/wifi/model/extended-capabilities.cc | 79 ++++++++----------------- src/wifi/model/extended-capabilities.h | 18 ------ src/wifi/model/wifi-mac.cc | 2 - 3 files changed, 24 insertions(+), 75 deletions(-) diff --git a/src/wifi/model/extended-capabilities.cc b/src/wifi/model/extended-capabilities.cc index 18b689840..78dc864d4 100644 --- a/src/wifi/model/extended-capabilities.cc +++ b/src/wifi/model/extended-capabilities.cc @@ -79,9 +79,7 @@ ExtendedCapabilities::ExtendedCapabilities() m_protectedQloadReport(0), m_tdlsWiderBandwidth(0), m_operatingModeNotification(0), - m_maxNumberOfMsdusInAmsdu(0), - m_htSupported(0), - m_vhtSupported(0) + m_maxNumberOfMsdusInAmsdu(0) { } @@ -97,27 +95,9 @@ ExtendedCapabilities::Print(std::ostream& os) const os << "Extended Capabilities=" << +GetExtendedCapabilitiesByte1(); } -void -ExtendedCapabilities::SetHtSupported(uint8_t htSupported) -{ - m_htSupported = htSupported; -} - -void -ExtendedCapabilities::SetVhtSupported(uint8_t vhtSupported) -{ - m_vhtSupported = vhtSupported; -} - uint16_t ExtendedCapabilities::GetInformationFieldSize() const { - // we should not be here if it is not supported - NS_ASSERT(m_htSupported > 0 || m_vhtSupported > 0); - if (!m_vhtSupported) - { - return 1; - } return 8; } @@ -334,23 +314,15 @@ ExtendedCapabilities::GetExtendedCapabilitiesByte8() const void ExtendedCapabilities::SerializeInformationField(Buffer::Iterator start) const { - if (m_htSupported > 0 && m_vhtSupported == 0) - { - // write the corresponding value for each bit - start.WriteU8(GetExtendedCapabilitiesByte1() & 0x7f); - } - else if (m_vhtSupported > 0) - { - // write the corresponding value for each bit - start.WriteU8(GetExtendedCapabilitiesByte1()); - start.WriteU8(GetExtendedCapabilitiesByte2()); - start.WriteU8(GetExtendedCapabilitiesByte3()); - start.WriteU8(GetExtendedCapabilitiesByte4()); - start.WriteU8(GetExtendedCapabilitiesByte5()); - start.WriteU8(GetExtendedCapabilitiesByte6()); - start.WriteU8(GetExtendedCapabilitiesByte7()); - start.WriteU8(GetExtendedCapabilitiesByte8()); - } + // write the corresponding value for each bit + start.WriteU8(GetExtendedCapabilitiesByte1()); + start.WriteU8(GetExtendedCapabilitiesByte2()); + start.WriteU8(GetExtendedCapabilitiesByte3()); + start.WriteU8(GetExtendedCapabilitiesByte4()); + start.WriteU8(GetExtendedCapabilitiesByte5()); + start.WriteU8(GetExtendedCapabilitiesByte6()); + start.WriteU8(GetExtendedCapabilitiesByte7()); + start.WriteU8(GetExtendedCapabilitiesByte8()); } uint16_t @@ -358,24 +330,21 @@ ExtendedCapabilities::DeserializeInformationField(Buffer::Iterator start, uint16 { Buffer::Iterator i = start; uint8_t byte1 = i.ReadU8(); + uint8_t byte2 = i.ReadU8(); + uint8_t byte3 = i.ReadU8(); + uint8_t byte4 = i.ReadU8(); + uint8_t byte5 = i.ReadU8(); + uint8_t byte6 = i.ReadU8(); + uint8_t byte7 = i.ReadU8(); + uint8_t byte8 = i.ReadU8(); SetExtendedCapabilitiesByte1(byte1); - if (m_vhtSupported > 0) - { - uint8_t byte2 = i.ReadU8(); - uint8_t byte3 = i.ReadU8(); - uint8_t byte4 = i.ReadU8(); - uint8_t byte5 = i.ReadU8(); - uint8_t byte6 = i.ReadU8(); - uint8_t byte7 = i.ReadU8(); - uint8_t byte8 = i.ReadU8(); - SetExtendedCapabilitiesByte2(byte2); - SetExtendedCapabilitiesByte3(byte3); - SetExtendedCapabilitiesByte4(byte4); - SetExtendedCapabilitiesByte5(byte5); - SetExtendedCapabilitiesByte6(byte6); - SetExtendedCapabilitiesByte7(byte7); - SetExtendedCapabilitiesByte8(byte8); - } + SetExtendedCapabilitiesByte2(byte2); + SetExtendedCapabilitiesByte3(byte3); + SetExtendedCapabilitiesByte4(byte4); + SetExtendedCapabilitiesByte5(byte5); + SetExtendedCapabilitiesByte6(byte6); + SetExtendedCapabilitiesByte7(byte7); + SetExtendedCapabilitiesByte8(byte8); return length; } diff --git a/src/wifi/model/extended-capabilities.h b/src/wifi/model/extended-capabilities.h index 3e12cdde9..878519ae9 100644 --- a/src/wifi/model/extended-capabilities.h +++ b/src/wifi/model/extended-capabilities.h @@ -42,18 +42,6 @@ class ExtendedCapabilities : public WifiInformationElement void SerializeInformationField(Buffer::Iterator start) const override; uint16_t DeserializeInformationField(Buffer::Iterator start, uint16_t length) override; void Print(std::ostream& os) const override; - /** - * Set the HT Supported flag. - * - * \param htSupported flag whether HT is supported - */ - void SetHtSupported(uint8_t htSupported); - /** - * Set the VHT Supported flag. - * - * \param vhtSupported flag whether VHT is supported - */ - void SetVhtSupported(uint8_t vhtSupported); /** * Set the first byte in the Extended Capabilities information element. @@ -160,7 +148,6 @@ class ExtendedCapabilities : public WifiInformationElement uint8_t m_psmpCapability; ///< PSMP Capability uint8_t m_spsmpSupport; ///< S-PSMP Support - // fields if VHT supported uint8_t m_event; ///< Event uint8_t m_diagnostics; ///< Diagnostics uint8_t m_multicastDiagnostics; ///< Multicast Diagnostics @@ -220,11 +207,6 @@ class ExtendedCapabilities : public WifiInformationElement uint8_t m_tdlsWiderBandwidth; ///< TDLS Wider Bandwidth uint8_t m_operatingModeNotification; ///< Operating Mode Notification uint8_t m_maxNumberOfMsdusInAmsdu; ///< Max Number Of MSDUs In A-MSDU - - uint8_t m_htSupported; ///< Flag to indicate HT is supported in order to decide whether this - ///< element should be added to the frame or not - uint8_t m_vhtSupported; ///< Flag to indicate VHT is supported in order to decide whether this - ///< element should be added to the frame or not }; } // namespace ns3 diff --git a/src/wifi/model/wifi-mac.cc b/src/wifi/model/wifi-mac.cc index 393789671..5dbc6081a 100644 --- a/src/wifi/model/wifi-mac.cc +++ b/src/wifi/model/wifi-mac.cc @@ -2093,8 +2093,6 @@ WifiMac::GetExtendedCapabilities() const { NS_LOG_FUNCTION(this); ExtendedCapabilities capabilities; - capabilities.SetHtSupported(GetHtSupported(SINGLE_LINK_OP_ID)); - capabilities.SetVhtSupported(GetVhtSupported(SINGLE_LINK_OP_ID)); // TODO: to be completed return capabilities; }