wifi: Avoid unnecessary copies of IEs in (Re)Association Request frames

This commit is contained in:
Stefano Avallone
2022-06-27 11:25:12 +02:00
committed by Stefano Avallone
parent f225ab9ff7
commit 231c9d4951
3 changed files with 248 additions and 86 deletions

View File

@@ -1126,9 +1126,9 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
//rate set is compatible with our Basic Rate set
MgtAssocRequestHeader assocReq;
packet->PeekHeader (assocReq);
CapabilityInformation capabilities = assocReq.GetCapabilities ();
const CapabilityInformation& capabilities = assocReq.GetCapabilities ();
GetWifiRemoteStationManager ()->AddSupportedPhyPreamble (from, capabilities.IsShortPreamble ());
SupportedRates rates = assocReq.GetSupportedRates ();
const SupportedRates& rates = assocReq.GetSupportedRates ();
bool problem = false;
if (rates.GetNRates () == 0)
{
@@ -1137,7 +1137,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
if (GetHtSupported ())
{
//check whether the HT STA supports all MCSs in Basic MCS Set
HtCapabilities htCapabilities = assocReq.GetHtCapabilities ();
const HtCapabilities& htCapabilities = assocReq.GetHtCapabilities ();
if (htCapabilities.IsSupportedMcs (0))
{
for (uint8_t i = 0; i < GetWifiRemoteStationManager ()->GetNBasicMcs (); i++)
@@ -1154,7 +1154,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
if (GetVhtSupported ())
{
//check whether the VHT STA supports all MCSs in Basic MCS Set
VhtCapabilities vhtCapabilities = assocReq.GetVhtCapabilities ();
const VhtCapabilities& vhtCapabilities = assocReq.GetVhtCapabilities ();
if (vhtCapabilities.GetVhtCapabilitiesInfo () != 0)
{
for (uint8_t i = 0; i < GetWifiRemoteStationManager ()->GetNBasicMcs (); i++)
@@ -1171,7 +1171,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
if (GetHeSupported ())
{
//check whether the HE STA supports all MCSs in Basic MCS Set
HeCapabilities heCapabilities = assocReq.GetHeCapabilities ();
const HeCapabilities& heCapabilities = assocReq.GetHeCapabilities ();
if (heCapabilities.GetSupportedMcsAndNss () != 0)
{
for (uint8_t i = 0; i < GetWifiRemoteStationManager ()->GetNBasicMcs (); i++)
@@ -1188,7 +1188,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
if (GetEhtSupported ())
{
//check whether the EHT STA supports all MCSs in Basic MCS Set
EhtCapabilities ehtCapabilities = assocReq.GetEhtCapabilities ();
// const EhtCapabilities& ehtCapabilities = assocReq.GetEhtCapabilities ();
//TODO: to be completed
}
if (problem)
@@ -1213,7 +1213,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
}
if (GetHtSupported ())
{
HtCapabilities htCapabilities = assocReq.GetHtCapabilities ();
const HtCapabilities& htCapabilities = assocReq.GetHtCapabilities ();
if (htCapabilities.IsSupportedMcs (0))
{
GetWifiRemoteStationManager ()->AddStationHtCapabilities (from, htCapabilities);
@@ -1221,7 +1221,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
}
if (GetVhtSupported ())
{
VhtCapabilities vhtCapabilities = assocReq.GetVhtCapabilities ();
const VhtCapabilities& vhtCapabilities = assocReq.GetVhtCapabilities ();
//we will always fill in RxHighestSupportedLgiDataRate field at TX, so this can be used to check whether it supports VHT
if (vhtCapabilities.GetRxHighestSupportedLgiDataRate () > 0)
{
@@ -1238,12 +1238,12 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
}
if (GetHtSupported ())
{
ExtendedCapabilities extendedCapabilities = assocReq.GetExtendedCapabilities ();
// const ExtendedCapabilities& extendedCapabilities = assocReq.GetExtendedCapabilities ();
//TODO: to be completed
}
if (GetHeSupported ())
{
HeCapabilities heCapabilities = assocReq.GetHeCapabilities ();
const HeCapabilities& heCapabilities = assocReq.GetHeCapabilities ();
if (heCapabilities.GetSupportedMcsAndNss () != 0)
{
GetWifiRemoteStationManager ()->AddStationHeCapabilities (from, heCapabilities);
@@ -1259,7 +1259,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
}
if (GetEhtSupported ())
{
EhtCapabilities ehtCapabilities = assocReq.GetEhtCapabilities ();
const EhtCapabilities& ehtCapabilities = assocReq.GetEhtCapabilities ();
//TODO: once we support non constant rate managers, we should add checks here whether EHT is supported by the peer
GetWifiRemoteStationManager ()->AddStationEhtCapabilities (from, ehtCapabilities);
for (const auto & mcs : GetWifiPhy ()->GetMcsList (WIFI_MOD_CLASS_EHT))
@@ -1282,9 +1282,9 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
//rate set is compatible with our Basic Rate set
MgtReassocRequestHeader reassocReq;
packet->PeekHeader (reassocReq);
CapabilityInformation capabilities = reassocReq.GetCapabilities ();
const CapabilityInformation& capabilities = reassocReq.GetCapabilities ();
GetWifiRemoteStationManager ()->AddSupportedPhyPreamble (from, capabilities.IsShortPreamble ());
SupportedRates rates = reassocReq.GetSupportedRates ();
const SupportedRates& rates = reassocReq.GetSupportedRates ();
bool problem = false;
if (rates.GetNRates () == 0)
{
@@ -1293,7 +1293,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
if (GetHtSupported ())
{
//check whether the HT STA supports all MCSs in Basic MCS Set
HtCapabilities htCapabilities = reassocReq.GetHtCapabilities ();
const HtCapabilities& htCapabilities = reassocReq.GetHtCapabilities ();
if (htCapabilities.IsSupportedMcs (0))
{
for (uint8_t i = 0; i < GetWifiRemoteStationManager ()->GetNBasicMcs (); i++)
@@ -1310,7 +1310,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
if (GetVhtSupported ())
{
//check whether the VHT STA supports all MCSs in Basic MCS Set
VhtCapabilities vhtCapabilities = reassocReq.GetVhtCapabilities ();
const VhtCapabilities& vhtCapabilities = reassocReq.GetVhtCapabilities ();
if (vhtCapabilities.GetVhtCapabilitiesInfo () != 0)
{
for (uint8_t i = 0; i < GetWifiRemoteStationManager ()->GetNBasicMcs (); i++)
@@ -1327,7 +1327,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
if (GetHeSupported ())
{
//check whether the HE STA supports all MCSs in Basic MCS Set
HeCapabilities heCapabilities = reassocReq.GetHeCapabilities ();
const HeCapabilities& heCapabilities = reassocReq.GetHeCapabilities ();
if (heCapabilities.GetSupportedMcsAndNss () != 0)
{
for (uint8_t i = 0; i < GetWifiRemoteStationManager ()->GetNBasicMcs (); i++)
@@ -1344,7 +1344,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
if (GetEhtSupported ())
{
//check whether the EHT STA supports all MCSs in Basic MCS Set
EhtCapabilities ehtCapabilities = reassocReq.GetEhtCapabilities ();
// const EhtCapabilities& ehtCapabilities = reassocReq.GetEhtCapabilities ();
//TODO: to be completed
}
if (problem)
@@ -1369,7 +1369,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
}
if (GetHtSupported ())
{
HtCapabilities htCapabilities = reassocReq.GetHtCapabilities ();
const HtCapabilities& htCapabilities = reassocReq.GetHtCapabilities ();
if (htCapabilities.IsSupportedMcs (0))
{
GetWifiRemoteStationManager ()->AddStationHtCapabilities (from, htCapabilities);
@@ -1377,7 +1377,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
}
if (GetVhtSupported ())
{
VhtCapabilities vhtCapabilities = reassocReq.GetVhtCapabilities ();
const VhtCapabilities& vhtCapabilities = reassocReq.GetVhtCapabilities ();
//we will always fill in RxHighestSupportedLgiDataRate field at TX, so this can be used to check whether it supports VHT
if (vhtCapabilities.GetRxHighestSupportedLgiDataRate () > 0)
{
@@ -1394,12 +1394,12 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
}
if (GetHtSupported ())
{
ExtendedCapabilities extendedCapabilities = reassocReq.GetExtendedCapabilities ();
// const ExtendedCapabilities& extendedCapabilities = reassocReq.GetExtendedCapabilities ();
//TODO: to be completed
}
if (GetHeSupported ())
{
HeCapabilities heCapabilities = reassocReq.GetHeCapabilities ();
const HeCapabilities& heCapabilities = reassocReq.GetHeCapabilities ();
if (heCapabilities.GetSupportedMcsAndNss () != 0)
{
GetWifiRemoteStationManager ()->AddStationHeCapabilities (from, heCapabilities);
@@ -1415,7 +1415,7 @@ ApWifiMac::Receive (Ptr<WifiMacQueueItem> mpdu)
}
if (GetEhtSupported ())
{
EhtCapabilities ehtCapabilities = reassocReq.GetEhtCapabilities ();
const EhtCapabilities& ehtCapabilities = reassocReq.GetEhtCapabilities ();
//TODO: once we support non constant rate managers, we should add checks here whether HE is supported by the peer
GetWifiRemoteStationManager ()->AddStationEhtCapabilities (from, ehtCapabilities);
for (const auto & mcs : GetWifiPhy ()->GetMcsList (WIFI_MOD_CLASS_HE))

View File

@@ -682,17 +682,29 @@ MgtAssocRequestHeader::~MgtAssocRequestHeader ()
}
void
MgtAssocRequestHeader::SetSsid (Ssid ssid)
MgtAssocRequestHeader::SetSsid (const Ssid& ssid)
{
m_ssid = ssid;
}
void
MgtAssocRequestHeader::SetSupportedRates (SupportedRates rates)
MgtAssocRequestHeader::SetSsid (Ssid&& ssid)
{
m_ssid = std::move (ssid);
}
void
MgtAssocRequestHeader::SetSupportedRates (const SupportedRates& rates)
{
m_rates = rates;
}
void
MgtAssocRequestHeader::SetSupportedRates (SupportedRates&& rates)
{
m_rates = std::move (rates);
}
void
MgtAssocRequestHeader::SetListenInterval (uint16_t interval)
{
@@ -700,84 +712,120 @@ MgtAssocRequestHeader::SetListenInterval (uint16_t interval)
}
void
MgtAssocRequestHeader::SetCapabilities (CapabilityInformation capabilities)
MgtAssocRequestHeader::SetCapabilities (const CapabilityInformation& capabilities)
{
m_capability = capabilities;
}
CapabilityInformation
void
MgtAssocRequestHeader::SetCapabilities (CapabilityInformation&& capabilities)
{
m_capability = std::move (capabilities);
}
const CapabilityInformation&
MgtAssocRequestHeader::GetCapabilities (void) const
{
return m_capability;
}
void
MgtAssocRequestHeader::SetExtendedCapabilities (ExtendedCapabilities extendedCapabilities)
MgtAssocRequestHeader::SetExtendedCapabilities (const ExtendedCapabilities& extendedCapabilities)
{
m_extendedCapability = extendedCapabilities;
}
ExtendedCapabilities
void
MgtAssocRequestHeader::SetExtendedCapabilities (ExtendedCapabilities&& extendedCapabilities)
{
m_extendedCapability = std::move (extendedCapabilities);
}
const ExtendedCapabilities&
MgtAssocRequestHeader::GetExtendedCapabilities (void) const
{
return m_extendedCapability;
}
void
MgtAssocRequestHeader::SetHtCapabilities (HtCapabilities htCapabilities)
MgtAssocRequestHeader::SetHtCapabilities (const HtCapabilities& htCapabilities)
{
m_htCapability = htCapabilities;
}
HtCapabilities
void
MgtAssocRequestHeader::SetHtCapabilities (HtCapabilities&& htCapabilities)
{
m_htCapability = std::move (htCapabilities);
}
const HtCapabilities&
MgtAssocRequestHeader::GetHtCapabilities (void) const
{
return m_htCapability;
}
void
MgtAssocRequestHeader::SetVhtCapabilities (VhtCapabilities vhtCapabilities)
MgtAssocRequestHeader::SetVhtCapabilities (const VhtCapabilities& vhtCapabilities)
{
m_vhtCapability = vhtCapabilities;
}
VhtCapabilities
void
MgtAssocRequestHeader::SetVhtCapabilities (VhtCapabilities&& vhtCapabilities)
{
m_vhtCapability = std::move (vhtCapabilities);
}
const VhtCapabilities&
MgtAssocRequestHeader::GetVhtCapabilities (void) const
{
return m_vhtCapability;
}
void
MgtAssocRequestHeader::SetHeCapabilities (HeCapabilities heCapabilities)
MgtAssocRequestHeader::SetHeCapabilities (const HeCapabilities& heCapabilities)
{
m_heCapability = heCapabilities;
}
HeCapabilities
void
MgtAssocRequestHeader::SetHeCapabilities (HeCapabilities&& heCapabilities)
{
m_heCapability = std::move (heCapabilities);
}
const HeCapabilities&
MgtAssocRequestHeader::GetHeCapabilities (void) const
{
return m_heCapability;
}
void
MgtAssocRequestHeader::SetEhtCapabilities (EhtCapabilities ehtCapabilities)
MgtAssocRequestHeader::SetEhtCapabilities (const EhtCapabilities& ehtCapabilities)
{
m_ehtCapability = ehtCapabilities;
}
EhtCapabilities
void
MgtAssocRequestHeader::SetEhtCapabilities (EhtCapabilities&& ehtCapabilities)
{
m_ehtCapability = std::move (ehtCapabilities);
}
const EhtCapabilities&
MgtAssocRequestHeader::GetEhtCapabilities (void) const
{
return m_ehtCapability;
}
Ssid
const Ssid&
MgtAssocRequestHeader::GetSsid (void) const
{
return m_ssid;
}
SupportedRates
const SupportedRates&
MgtAssocRequestHeader::GetSupportedRates (void) const
{
return m_rates;
@@ -885,17 +933,29 @@ MgtReassocRequestHeader::~MgtReassocRequestHeader ()
}
void
MgtReassocRequestHeader::SetSsid (Ssid ssid)
MgtReassocRequestHeader::SetSsid (const Ssid& ssid)
{
m_ssid = ssid;
}
void
MgtReassocRequestHeader::SetSupportedRates (SupportedRates rates)
MgtReassocRequestHeader::SetSsid (Ssid&& ssid)
{
m_ssid = std::move (ssid);
}
void
MgtReassocRequestHeader::SetSupportedRates (const SupportedRates& rates)
{
m_rates = rates;
}
void
MgtReassocRequestHeader::SetSupportedRates (SupportedRates&& rates)
{
m_rates = std::move (rates);
}
void
MgtReassocRequestHeader::SetListenInterval (uint16_t interval)
{
@@ -903,84 +963,120 @@ MgtReassocRequestHeader::SetListenInterval (uint16_t interval)
}
void
MgtReassocRequestHeader::SetCapabilities (CapabilityInformation capabilities)
MgtReassocRequestHeader::SetCapabilities (const CapabilityInformation& capabilities)
{
m_capability = capabilities;
}
CapabilityInformation
void
MgtReassocRequestHeader::SetCapabilities (CapabilityInformation&& capabilities)
{
m_capability = std::move (capabilities);
}
const CapabilityInformation&
MgtReassocRequestHeader::GetCapabilities (void) const
{
return m_capability;
}
void
MgtReassocRequestHeader::SetExtendedCapabilities (ExtendedCapabilities extendedCapabilities)
MgtReassocRequestHeader::SetExtendedCapabilities (const ExtendedCapabilities& extendedCapabilities)
{
m_extendedCapability = extendedCapabilities;
}
ExtendedCapabilities
void
MgtReassocRequestHeader::SetExtendedCapabilities (ExtendedCapabilities&& extendedCapabilities)
{
m_extendedCapability = std::move (extendedCapabilities);
}
const ExtendedCapabilities&
MgtReassocRequestHeader::GetExtendedCapabilities (void) const
{
return m_extendedCapability;
}
void
MgtReassocRequestHeader::SetHtCapabilities (HtCapabilities htCapabilities)
MgtReassocRequestHeader::SetHtCapabilities (const HtCapabilities& htCapabilities)
{
m_htCapability = htCapabilities;
}
HtCapabilities
void
MgtReassocRequestHeader::SetHtCapabilities (HtCapabilities&& htCapabilities)
{
m_htCapability = std::move (htCapabilities);
}
const HtCapabilities&
MgtReassocRequestHeader::GetHtCapabilities (void) const
{
return m_htCapability;
}
void
MgtReassocRequestHeader::SetVhtCapabilities (VhtCapabilities vhtCapabilities)
MgtReassocRequestHeader::SetVhtCapabilities (const VhtCapabilities& vhtCapabilities)
{
m_vhtCapability = vhtCapabilities;
}
VhtCapabilities
void
MgtReassocRequestHeader::SetVhtCapabilities (VhtCapabilities&& vhtCapabilities)
{
m_vhtCapability = std::move (vhtCapabilities);
}
const VhtCapabilities&
MgtReassocRequestHeader::GetVhtCapabilities (void) const
{
return m_vhtCapability;
}
void
MgtReassocRequestHeader::SetHeCapabilities (HeCapabilities heCapabilities)
MgtReassocRequestHeader::SetHeCapabilities (const HeCapabilities& heCapabilities)
{
m_heCapability = heCapabilities;
}
HeCapabilities
void
MgtReassocRequestHeader::SetHeCapabilities (HeCapabilities&& heCapabilities)
{
m_heCapability = std::move (heCapabilities);
}
const HeCapabilities&
MgtReassocRequestHeader::GetHeCapabilities (void) const
{
return m_heCapability;
}
void
MgtReassocRequestHeader::SetEhtCapabilities (EhtCapabilities ehtCapabilities)
MgtReassocRequestHeader::SetEhtCapabilities (const EhtCapabilities& ehtCapabilities)
{
m_ehtCapability = ehtCapabilities;
}
EhtCapabilities
void
MgtReassocRequestHeader::SetEhtCapabilities (EhtCapabilities&& ehtCapabilities)
{
m_ehtCapability = std::move (ehtCapabilities);
}
const EhtCapabilities&
MgtReassocRequestHeader::GetEhtCapabilities (void) const
{
return m_ehtCapability;
}
Ssid
const Ssid&
MgtReassocRequestHeader::GetSsid (void) const
{
return m_ssid;
}
SupportedRates
const SupportedRates&
MgtReassocRequestHeader::GetSupportedRates (void) const
{
return m_rates;

View File

@@ -58,103 +58,136 @@ public:
*
* \param ssid SSID
*/
void SetSsid (Ssid ssid);
void SetSsid (const Ssid& ssid);
/** \copydoc SetSsid */
void SetSsid (Ssid&& ssid);
/**
* Set the supported rates.
*
* \param rates the supported rates
*/
void SetSupportedRates (SupportedRates rates);
void SetSupportedRates (const SupportedRates& rates);
/** \copydoc SetSupportedRates */
void SetSupportedRates (SupportedRates&& rates);
/**
* Set the listen interval.
*
* \param interval the listen interval
*/
void SetListenInterval (uint16_t interval);
/**
* Set the Capability information.
*
* \param capabilities Capability information
*/
void SetCapabilities (CapabilityInformation capabilities);
void SetCapabilities (const CapabilityInformation& capabilities);
/** \copydoc SetCapabilities */
void SetCapabilities (CapabilityInformation&& capabilities);
/**
* Set the Extended Capabilities.
*
* \param extendedCapabilities the Extended Capabilities
*/
void SetExtendedCapabilities (ExtendedCapabilities extendedCapabilities);
void SetExtendedCapabilities (const ExtendedCapabilities& extendedCapabilities);
/** \copydoc SetExtendedCapabilities */
void SetExtendedCapabilities (ExtendedCapabilities&& extendedCapabilities);
/**
* Set the HT capabilities.
*
* \param htCapabilities HT capabilities
*/
void SetHtCapabilities (HtCapabilities htCapabilities);
void SetHtCapabilities (const HtCapabilities& htCapabilities);
/** \copydoc SetHtCapabilities */
void SetHtCapabilities (HtCapabilities&& htCapabilities);
/**
* Set the VHT capabilities.
*
* \param vhtCapabilities VHT capabilities
*/
void SetVhtCapabilities (VhtCapabilities vhtCapabilities);
void SetVhtCapabilities (const VhtCapabilities& vhtCapabilities);
/** \copydoc SetVhtCapabilities */
void SetVhtCapabilities (VhtCapabilities&& vhtCapabilities);
/**
* Set the HE capabilities.
*
* \param heCapabilities HE capabilities
*/
void SetHeCapabilities (HeCapabilities heCapabilities);
void SetHeCapabilities (const HeCapabilities& heCapabilities);
/** \copydoc SetHeCapabilities */
void SetHeCapabilities (HeCapabilities&& heCapabilities);
/**
* Set the EHT capabilities.
*
* \param ehtCapabilities EHT capabilities
*/
void SetEhtCapabilities (EhtCapabilities ehtCapabilities);
void SetEhtCapabilities (const EhtCapabilities& ehtCapabilities);
/** \copydoc SetEhtCapabilities */
void SetEhtCapabilities (EhtCapabilities&& ehtCapabilities);
/**
* Return the Capability information.
*
* \return Capability information
*/
CapabilityInformation GetCapabilities (void) const;
const CapabilityInformation& GetCapabilities (void) const;
/**
* Return the extended capabilities.
*
* \return the extended capabilities
*/
ExtendedCapabilities GetExtendedCapabilities (void) const;
const ExtendedCapabilities& GetExtendedCapabilities (void) const;
/**
* Return the HT capabilities.
*
* \return HT capabilities
*/
HtCapabilities GetHtCapabilities (void) const;
const HtCapabilities& GetHtCapabilities (void) const;
/**
* Return the VHT capabilities.
*
* \return VHT capabilities
*/
VhtCapabilities GetVhtCapabilities (void) const;
const VhtCapabilities& GetVhtCapabilities (void) const;
/**
* Return the HE capabilities.
*
* \return HE capabilities
*/
HeCapabilities GetHeCapabilities (void) const;
const HeCapabilities& GetHeCapabilities (void) const;
/**
* Return the EHT capabilities.
*
* \return EHT capabilities
*/
EhtCapabilities GetEhtCapabilities (void) const;
const EhtCapabilities& GetEhtCapabilities (void) const;
/**
* Return the Service Set Identifier (SSID).
*
* \return SSID
*/
Ssid GetSsid (void) const;
const Ssid& GetSsid (void) const;
/**
* Return the supported rates.
*
* \return the supported rates
*/
SupportedRates GetSupportedRates (void) const;
const SupportedRates& GetSupportedRates (void) const;
/**
* Return the listen interval.
*
@@ -203,103 +236,136 @@ public:
*
* \param ssid SSID
*/
void SetSsid (Ssid ssid);
void SetSsid (const Ssid& ssid);
/** \copydoc SetSsid */
void SetSsid (Ssid&& ssid);
/**
* Set the supported rates.
*
* \param rates the supported rates
*/
void SetSupportedRates (SupportedRates rates);
void SetSupportedRates (const SupportedRates& rates);
/** \copydoc SetSupportedRates */
void SetSupportedRates (SupportedRates&& rates);
/**
* Set the listen interval.
*
* \param interval the listen interval
*/
void SetListenInterval (uint16_t interval);
/**
* Set the Capability information.
*
* \param capabilities Capability information
*/
void SetCapabilities (CapabilityInformation capabilities);
void SetCapabilities (const CapabilityInformation& capabilities);
/** \copydoc SetCapabilities */
void SetCapabilities (CapabilityInformation&& capabilities);
/**
* Set the Extended Capabilities.
*
* \param extendedCapabilities the Extended Capabilities
*/
void SetExtendedCapabilities (ExtendedCapabilities extendedCapabilities);
void SetExtendedCapabilities (const ExtendedCapabilities& extendedCapabilities);
/** \copydoc SetExtendedCapabilities */
void SetExtendedCapabilities (ExtendedCapabilities&& extendedCapabilities);
/**
* Set the HT capabilities.
*
* \param htCapabilities HT capabilities
*/
void SetHtCapabilities (HtCapabilities htCapabilities);
void SetHtCapabilities (const HtCapabilities& htCapabilities);
/** \copydoc SetHtCapabilities */
void SetHtCapabilities (HtCapabilities&& htCapabilities);
/**
* Set the VHT capabilities.
*
* \param vhtCapabilities VHT capabilities
*/
void SetVhtCapabilities (VhtCapabilities vhtCapabilities);
void SetVhtCapabilities (const VhtCapabilities& vhtCapabilities);
/** \copydoc SetVhtCapabilities */
void SetVhtCapabilities (VhtCapabilities&& vhtCapabilities);
/**
* Set the HE capabilities.
*
* \param heCapabilities HE capabilities
*/
void SetHeCapabilities (HeCapabilities heCapabilities);
void SetHeCapabilities (const HeCapabilities& heCapabilities);
/** \copydoc SetHeCapabilities */
void SetHeCapabilities (HeCapabilities&& heCapabilities);
/**
* Set the EHT capabilities.
*
* \param ehtCapabilities EHT capabilities
*/
void SetEhtCapabilities (EhtCapabilities ehtCapabilities);
void SetEhtCapabilities (const EhtCapabilities& ehtCapabilities);
/** \copydoc SetEhtCapabilities */
void SetEhtCapabilities (EhtCapabilities&& ehtCapabilities);
/**
* Return the Capability information.
*
* \return Capability information
*/
CapabilityInformation GetCapabilities (void) const;
const CapabilityInformation& GetCapabilities (void) const;
/**
* Return the extended capabilities.
*
* \return the extended capabilities
*/
ExtendedCapabilities GetExtendedCapabilities (void) const;
const ExtendedCapabilities& GetExtendedCapabilities (void) const;
/**
* Return the HT capabilities.
*
* \return HT capabilities
*/
HtCapabilities GetHtCapabilities (void) const;
const HtCapabilities& GetHtCapabilities (void) const;
/**
* Return the VHT capabilities.
*
* \return VHT capabilities
*/
VhtCapabilities GetVhtCapabilities (void) const;
const VhtCapabilities& GetVhtCapabilities (void) const;
/**
* Return the HE capabilities.
*
* \return HE capabilities
*/
HeCapabilities GetHeCapabilities (void) const;
const HeCapabilities& GetHeCapabilities (void) const;
/**
* Return the EHT capabilities.
*
* \return EHT capabilities
*/
EhtCapabilities GetEhtCapabilities (void) const;
const EhtCapabilities& GetEhtCapabilities (void) const;
/**
* Return the Service Set Identifier (SSID).
*
* \return SSID
*/
Ssid GetSsid (void) const;
const Ssid& GetSsid (void) const;
/**
* Return the supported rates.
*
* \return the supported rates
*/
SupportedRates GetSupportedRates (void) const;
const SupportedRates& GetSupportedRates (void) const;
/**
* Return the listen interval.
*