wifi: Add MediumSyncDelay attributes to EHT configuration

This commit is contained in:
Stefano Avallone
2023-06-12 17:09:40 +02:00
committed by Stefano Avallone
parent bf7cf39231
commit fe141a64d7
2 changed files with 38 additions and 2 deletions

View File

@@ -23,6 +23,7 @@
#include "ns3/attribute-container.h"
#include "ns3/boolean.h"
#include "ns3/enum.h"
#include "ns3/integer.h"
#include "ns3/log.h"
#include "ns3/pair.h"
#include "ns3/string.h"
@@ -70,6 +71,29 @@ EhtConfiguration::GetTypeId()
TimeValue(MicroSeconds(0)),
MakeTimeAccessor(&EhtConfiguration::m_transitionTimeout),
MakeTimeChecker(MicroSeconds(0), MicroSeconds(65536)))
.AddAttribute(
"MediumSyncDuration",
"The duration of the MediumSyncDelay timer (must be a multiple of 32 us). "
"The value of this attribute is only used by AP MLDs with EMLSR activated.",
TimeValue(MicroSeconds(DEFAULT_MSD_DURATION_USEC)),
MakeTimeAccessor(&EhtConfiguration::m_mediumSyncDuration),
MakeTimeChecker(MicroSeconds(0), MicroSeconds(255 * 32)))
.AddAttribute(
"MsdOfdmEdThreshold",
"Threshold (dBm) to be used instead of the normal CCA sensitivity for the primary "
"20 MHz channel if the MediumSyncDelay timer has a nonzero value. "
"The value of this attribute is only used by AP MLDs with EMLSR activated.",
IntegerValue(DEFAULT_MSD_OFDM_ED_THRESH),
MakeIntegerAccessor(&EhtConfiguration::m_msdOfdmEdThreshold),
MakeIntegerChecker<int8_t>(-72, -62))
.AddAttribute(
"MsdMaxNTxops",
"Maximum number of TXOPs that an EMLSR client is allowed to attempt to initiate "
"while the MediumSyncDelay timer is running (zero indicates no limit). "
"The value of this attribute is only used by AP MLDs with EMLSR activated.",
UintegerValue(DEFAULT_MSD_MAX_N_TXOPS),
MakeUintegerAccessor(&EhtConfiguration::m_msdMaxNTxops),
MakeUintegerChecker<uint8_t>(0, 15))
.AddAttribute(
"TidToLinkMappingNegSupport",
"TID-to-Link Mapping Negotiation Support.",

View File

@@ -31,6 +31,15 @@
namespace ns3
{
/// default MediumSyncDelay timer duration (max PPDU TX time rounded to a multiple of 32 us)
static constexpr uint16_t DEFAULT_MSD_DURATION_USEC = 5484 / 32 * 32;
/// default MediumSyncDelay timer OFDM ED threshold
static constexpr int8_t DEFAULT_MSD_OFDM_ED_THRESH = -72;
/// default MediumSyncDelay max number of TXOP attempts
static constexpr uint8_t DEFAULT_MSD_MAX_N_TXOPS = 1;
/**
* \brief TID-to-Link Mapping Negotiation Support
*/
@@ -77,8 +86,11 @@ class EhtConfiguration : public Object
const std::map<std::list<uint8_t>, std::list<uint8_t>>& mapping);
private:
bool m_emlsrActivated; //!< whether EMLSR option is activated
Time m_transitionTimeout; //!< Transition timeout
bool m_emlsrActivated; //!< whether EMLSR option is activated
Time m_transitionTimeout; //!< Transition timeout
Time m_mediumSyncDuration; //!< duration of the MediumSyncDelay timer
int8_t m_msdOfdmEdThreshold; //!< MediumSyncDelay OFDM ED threshold
uint8_t m_msdMaxNTxops; //!< MediumSyncDelay max number of TXOPs
WifiTidToLinkMappingNegSupport
m_tidLinkMappingSupport; //!< TID-to-Link Mapping Negotiation Support
std::map<std::list<uint64_t>, std::list<uint64_t>>