diff --git a/src/wifi/model/ap-wifi-mac.cc b/src/wifi/model/ap-wifi-mac.cc index 74fcd770e..8622462cc 100644 --- a/src/wifi/model/ap-wifi-mac.cc +++ b/src/wifi/model/ap-wifi-mac.cc @@ -1126,9 +1126,9 @@ ApWifiMac::Receive (Ptr 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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)) diff --git a/src/wifi/model/mgt-headers.cc b/src/wifi/model/mgt-headers.cc index 760774cd6..a33329355 100644 --- a/src/wifi/model/mgt-headers.cc +++ b/src/wifi/model/mgt-headers.cc @@ -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; diff --git a/src/wifi/model/mgt-headers.h b/src/wifi/model/mgt-headers.h index 5a020da38..af473d137 100644 --- a/src/wifi/model/mgt-headers.h +++ b/src/wifi/model/mgt-headers.h @@ -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. *