wifi: Add attributes to HeConfiguration to set MU EDCA Parameter Set elements
This commit is contained in:
@@ -58,6 +58,114 @@ HeConfiguration::GetTypeId (void)
|
||||
MakeUintegerAccessor (&HeConfiguration::GetMpduBufferSize,
|
||||
&HeConfiguration::SetMpduBufferSize),
|
||||
MakeUintegerChecker<uint16_t> (64, 256))
|
||||
.AddAttribute ("MuBeAifsn",
|
||||
"AIFSN used by BE EDCA when the MU EDCA Timer is running. "
|
||||
"It must be either zero (EDCA disabled) or a value from 2 to 15.",
|
||||
UintegerValue (0),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muBeAifsn),
|
||||
MakeUintegerChecker<uint8_t> (0, 15))
|
||||
.AddAttribute ("MuBkAifsn",
|
||||
"AIFSN used by BK EDCA when the MU EDCA Timer is running. "
|
||||
"It must be either zero (EDCA disabled) or a value from 2 to 15.",
|
||||
UintegerValue (0),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muBkAifsn),
|
||||
MakeUintegerChecker<uint8_t> (0, 15))
|
||||
.AddAttribute ("MuViAifsn",
|
||||
"AIFSN used by VI EDCA when the MU EDCA Timer is running. "
|
||||
"It must be either zero (EDCA disabled) or a value from 2 to 15.",
|
||||
UintegerValue (0),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muViAifsn),
|
||||
MakeUintegerChecker<uint8_t> (0, 15))
|
||||
.AddAttribute ("MuVoAifsn",
|
||||
"AIFSN used by VO EDCA when the MU EDCA Timer is running. "
|
||||
"It must be either zero (EDCA disabled) or a value from 2 to 15.",
|
||||
UintegerValue (0),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muVoAifsn),
|
||||
MakeUintegerChecker<uint8_t> (0, 15))
|
||||
.AddAttribute ("MuBeCwMin",
|
||||
"CWmin used by BE EDCA when the MU EDCA Timer is running. "
|
||||
"It must be a power of 2 minus 1 in the range from 0 to 32767.",
|
||||
UintegerValue (15),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muBeCwMin),
|
||||
MakeUintegerChecker<uint16_t> (0, 32767))
|
||||
.AddAttribute ("MuBkCwMin",
|
||||
"CWmin used by BK EDCA when the MU EDCA Timer is running. "
|
||||
"It must be a power of 2 minus 1 in the range from 0 to 32767.",
|
||||
UintegerValue (15),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muBkCwMin),
|
||||
MakeUintegerChecker<uint16_t> (0, 32767))
|
||||
.AddAttribute ("MuViCwMin",
|
||||
"CWmin used by VI EDCA when the MU EDCA Timer is running. "
|
||||
"It must be a power of 2 minus 1 in the range from 0 to 32767.",
|
||||
UintegerValue (15),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muViCwMin),
|
||||
MakeUintegerChecker<uint16_t> (0, 32767))
|
||||
.AddAttribute ("MuVoCwMin",
|
||||
"CWmin used by VO EDCA when the MU EDCA Timer is running. "
|
||||
"It must be a power of 2 minus 1 in the range from 0 to 32767.",
|
||||
UintegerValue (15),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muVoCwMin),
|
||||
MakeUintegerChecker<uint16_t> (0, 32767))
|
||||
.AddAttribute ("MuBeCwMax",
|
||||
"CWmax used by BE EDCA when the MU EDCA Timer is running. "
|
||||
"It must be a power of 2 minus 1 in the range from 0 to 32767.",
|
||||
UintegerValue (1023),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muBeCwMax),
|
||||
MakeUintegerChecker<uint16_t> (0, 32767))
|
||||
.AddAttribute ("MuBkCwMax",
|
||||
"CWmax used by BK EDCA when the MU EDCA Timer is running. "
|
||||
"It must be a power of 2 minus 1 in the range from 0 to 32767.",
|
||||
UintegerValue (1023),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muBkCwMax),
|
||||
MakeUintegerChecker<uint16_t> (0, 32767))
|
||||
.AddAttribute ("MuViCwMax",
|
||||
"CWmax used by VI EDCA when the MU EDCA Timer is running. "
|
||||
"It must be a power of 2 minus 1 in the range from 0 to 32767.",
|
||||
UintegerValue (1023),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muViCwMax),
|
||||
MakeUintegerChecker<uint16_t> (0, 32767))
|
||||
.AddAttribute ("MuVoCwMax",
|
||||
"CWmax used by VO EDCA when the MU EDCA Timer is running. "
|
||||
"It must be a power of 2 minus 1 in the range from 0 to 32767.",
|
||||
UintegerValue (1023),
|
||||
MakeUintegerAccessor (&HeConfiguration::m_muVoCwMax),
|
||||
MakeUintegerChecker<uint16_t> (0, 32767))
|
||||
.AddAttribute ("BeMuEdcaTimer",
|
||||
"The MU EDCA Timer used by BE EDCA. It must be a multiple of "
|
||||
"8192 us and must be in the range from 8.192 ms to 2088.96 ms. "
|
||||
"0 is a reserved value, but we allow to use this value to indicate "
|
||||
"that an MU EDCA Parameter Set element must not be sent. Therefore, "
|
||||
"0 can only be used if the MU EDCA Timer for all ACs is set to 0.",
|
||||
TimeValue (MicroSeconds (0)),
|
||||
MakeTimeAccessor (&HeConfiguration::m_beMuEdcaTimer),
|
||||
MakeTimeChecker (MicroSeconds (0), MicroSeconds (2088960)))
|
||||
.AddAttribute ("BkMuEdcaTimer",
|
||||
"The MU EDCA Timer used by BK EDCA. It must be a multiple of "
|
||||
"8192 us and must be in the range from 8.192 ms to 2088.96 ms."
|
||||
"0 is a reserved value, but we allow to use this value to indicate "
|
||||
"that an MU EDCA Parameter Set element must not be sent. Therefore, "
|
||||
"0 can only be used if the MU EDCA Timer for all ACs is set to 0.",
|
||||
TimeValue (MicroSeconds (0)),
|
||||
MakeTimeAccessor (&HeConfiguration::m_bkMuEdcaTimer),
|
||||
MakeTimeChecker (MicroSeconds (0), MicroSeconds (2088960)))
|
||||
.AddAttribute ("ViMuEdcaTimer",
|
||||
"The MU EDCA Timer used by VI EDCA. It must be a multiple of "
|
||||
"8192 us and must be in the range from 8.192 ms to 2088.96 ms."
|
||||
"0 is a reserved value, but we allow to use this value to indicate "
|
||||
"that an MU EDCA Parameter Set element must not be sent. Therefore, "
|
||||
"0 can only be used if the MU EDCA Timer for all ACs is set to 0.",
|
||||
TimeValue (MicroSeconds (0)),
|
||||
MakeTimeAccessor (&HeConfiguration::m_viMuEdcaTimer),
|
||||
MakeTimeChecker (MicroSeconds (0), MicroSeconds (2088960)))
|
||||
.AddAttribute ("VoMuEdcaTimer",
|
||||
"The MU EDCA Timer used by VO EDCA. It must be a multiple of "
|
||||
"8192 us and must be in the range from 8.192 ms to 2088.96 ms."
|
||||
"0 is a reserved value, but we allow to use this value to indicate "
|
||||
"that an MU EDCA Parameter Set element must not be sent. Therefore, "
|
||||
"0 can only be used if the MU EDCA Timer for all ACs is set to 0.",
|
||||
TimeValue (MicroSeconds (0)),
|
||||
MakeTimeAccessor (&HeConfiguration::m_voMuEdcaTimer),
|
||||
MakeTimeChecker (MicroSeconds (0), MicroSeconds (2088960)))
|
||||
;
|
||||
return tid;
|
||||
}
|
||||
|
||||
@@ -74,6 +74,22 @@ private:
|
||||
Time m_guardInterval; //!< Supported HE guard interval
|
||||
uint8_t m_bssColor; //!< BSS color
|
||||
uint16_t m_mpduBufferSize; //!< MPDU buffer size
|
||||
uint8_t m_muBeAifsn; //!< AIFSN for BE in MU EDCA Parameter Set
|
||||
uint8_t m_muBkAifsn; //!< AIFSN for BK in MU EDCA Parameter Set
|
||||
uint8_t m_muViAifsn; //!< AIFSN for VI in MU EDCA Parameter Set
|
||||
uint8_t m_muVoAifsn; //!< AIFSN for VO in MU EDCA Parameter Set
|
||||
uint16_t m_muBeCwMin; //!< CWmin for BE in MU EDCA Parameter Set
|
||||
uint16_t m_muBkCwMin; //!< CWmin for BK in MU EDCA Parameter Set
|
||||
uint16_t m_muViCwMin; //!< CWmin for VI in MU EDCA Parameter Set
|
||||
uint16_t m_muVoCwMin; //!< CWmin for VO in MU EDCA Parameter Set
|
||||
uint16_t m_muBeCwMax; //!< CWmax for BE in MU EDCA Parameter Set
|
||||
uint16_t m_muBkCwMax; //!< CWmax for BK in MU EDCA Parameter Set
|
||||
uint16_t m_muViCwMax; //!< CWmax for VI in MU EDCA Parameter Set
|
||||
uint16_t m_muVoCwMax; //!< CWmax for VO in MU EDCA Parameter Set
|
||||
Time m_beMuEdcaTimer; //!< Timer for BE in MU EDCA Parameter Set
|
||||
Time m_bkMuEdcaTimer; //!< Timer for BK in MU EDCA Parameter Set
|
||||
Time m_viMuEdcaTimer; //!< Timer for VI in MU EDCA Parameter Set
|
||||
Time m_voMuEdcaTimer; //!< Timer for VO in MU EDCA Parameter Set
|
||||
};
|
||||
|
||||
} //namespace ns3
|
||||
|
||||
Reference in New Issue
Block a user