wifi: Add function set PPE thresholds in EHT capabilities

This commit is contained in:
Sébastien Deronne
2022-08-22 21:26:30 +02:00
committed by Sebastien Deronne
parent 568cf017e2
commit 359b6d873c
2 changed files with 27 additions and 0 deletions

View File

@@ -598,6 +598,22 @@ EhtCapabilities::SetSupportedTxEhtMcsAndNss(EhtMcsAndNssSet::EhtMcsMapType mapTy
}
}
void
EhtCapabilities::SetPpeThresholds(uint8_t nssPe,
uint8_t ruIndexBitmask,
const std::vector<std::pair<uint8_t, uint8_t>>& ppeThresholds)
{
NS_ASSERT(ppeThresholds.size() == (std::bitset<5>(ruIndexBitmask).count() * (nssPe + 1)));
m_phyCapabilities.ppeThresholdsPresent = 1;
m_ppeThresholds.nssPe = nssPe;
m_ppeThresholds.ruIndexBitmask = ruIndexBitmask;
m_ppeThresholds.ppeThresholdsInfo.clear();
for (const auto& [ppetMax, ppet8] : ppeThresholds)
{
m_ppeThresholds.ppeThresholdsInfo.push_back({ppetMax, ppet8});
}
}
void
EhtCapabilities::SerializeInformationField(Buffer::Iterator start) const
{

View File

@@ -310,6 +310,17 @@ class EhtCapabilities : public WifiInformationElement
uint8_t upperMcs,
uint8_t maxNss);
/**
* Set the EHT PPE threshold info subfield
*
* \param nssPe the NSS_PE subfield
* \param ruIndexBitmask the RU Index Bitmask subfield
* \param ppeThresholds the PPE thresholds made of pairs (PPETmax, PPET8)
*/
void SetPpeThresholds(uint8_t nssPe,
uint8_t ruIndexBitmask,
const std::vector<std::pair<uint8_t, uint8_t>>& ppeThresholds);
EhtMacCapabilities m_macCapabilities; //!< EHT MAC Capabilities Info subfield
EhtPhyCapabilities m_phyCapabilities; //!< EHT PHY Capabilities Info subfield
EhtMcsAndNssSet m_supportedEhtMcsAndNssSet; //!< Supported EHT-MCS And NSS Set subfield