13#include "ns3/address-utils.h"
14#include "ns3/simulator.h"
50 static TypeId tid =
TypeId(
"ns3::MgtProbeResponseHeader")
96 SetMleContainingFrame();
107 SetMleContainingFrame();
126 if (
auto& mle = Get<MultiLinkElement>())
128 for (std::size_t
id = 0;
id < mle->GetNPerStaProfileSubelements(); ++id)
130 auto& perStaProfile = mle->GetPerStaProfile(
id);
131 if (perStaProfile.HasProbeResponse())
133 auto& frameInPerStaProfile = perStaProfile.GetProbeResponse();
134 frameInPerStaProfile.CopyIesFromContainingFrame(*
this);
153 .SetGroupName(
"Wifi")
167 static TypeId tid =
TypeId(
"ns3::MgtAssocRequestHeader")
169 .SetGroupName(
"Wifi")
207 SetMleContainingFrame();
231 SetMleContainingFrame();
257 if (
auto& mle = Get<MultiLinkElement>())
259 for (std::size_t
id = 0;
id < mle->GetNPerStaProfileSubelements();
id++)
261 auto& perStaProfile = mle->GetPerStaProfile(
id);
262 if (perStaProfile.HasAssocRequest())
264 auto& frameInPerStaProfile =
265 std::get<std::reference_wrapper<MgtAssocRequestHeader>>(
266 perStaProfile.GetAssocRequest())
268 frameInPerStaProfile.CopyIesFromContainingFrame(*
this);
285 "Bytes read (" << distance <<
") exceed expected number (" << length <<
")");
323 "Bytes read (" << distance <<
") exceed expected number (" << length <<
")");
337 static TypeId tid =
TypeId(
"ns3::MgtReassocRequestHeader")
339 .SetGroupName(
"Wifi")
383 SetMleContainingFrame();
415 SetMleContainingFrame();
443 if (
auto& mle = Get<MultiLinkElement>())
445 for (std::size_t
id = 0;
id < mle->GetNPerStaProfileSubelements();
id++)
447 auto& perStaProfile = mle->GetPerStaProfile(
id);
448 if (perStaProfile.HasReassocRequest())
450 auto& frameInPerStaProfile =
451 std::get<std::reference_wrapper<MgtReassocRequestHeader>>(
452 perStaProfile.GetAssocRequest())
454 frameInPerStaProfile.CopyIesFromContainingFrame(*
this);
472 "Bytes read (" << distance <<
") exceed expected number (" << length <<
")");
486 static TypeId tid =
TypeId(
"ns3::MgtAssocResponseHeader")
488 .SetGroupName(
"Wifi")
538 SetMleContainingFrame();
564 os <<
"status code=" <<
m_code <<
", "
565 <<
"aid=" <<
m_aid <<
", ";
572 SetMleContainingFrame();
601 if (
auto& mle = Get<MultiLinkElement>())
603 for (std::size_t
id = 0;
id < mle->GetNPerStaProfileSubelements();
id++)
605 auto& perStaProfile = mle->GetPerStaProfile(
id);
606 if (perStaProfile.HasAssocResponse())
608 auto& frameInPerStaProfile = perStaProfile.GetAssocResponse();
609 frameInPerStaProfile.CopyIesFromContainingFrame(*
this);
627 "Bytes read (" << distance <<
") exceed expected number (" << length <<
")");
iterator in a Buffer instance
void WriteHtolsbU16(uint16_t data)
void WriteHtolsbU64(uint64_t data)
uint32_t GetDistanceFrom(const Iterator &o) const
static Time Now()
Return the current simulation virtual time.
Status code for association response.
Buffer::Iterator Serialize(Buffer::Iterator start) const
Buffer::Iterator Deserialize(Buffer::Iterator start)
uint32_t GetSerializedSize() const
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::tuple< Ssid, SupportedRates, std::optional< ExtendedSupportedRatesIE >, std::optional< HtCapabilities >, std::optional< ExtendedCapabilities >, std::optional< VhtCapabilities >, std::optional< HeCapabilities >, std::optional< He6GhzBandCapabilities >, std::optional< MultiLinkElement >, std::optional< EhtCapabilities >, std::vector< TidToLinkMapping > > AssocRequestElems
List of Information Elements included in Association Request frames.
std::tuple< Ssid, SupportedRates, std::optional< DsssParameterSet >, std::optional< ErpInformation >, std::optional< ExtendedSupportedRatesIE >, std::optional< EdcaParameterSet >, std::optional< HtCapabilities >, std::optional< HtOperation >, std::optional< ExtendedCapabilities >, std::optional< VhtCapabilities >, std::optional< VhtOperation >, std::optional< ReducedNeighborReport >, std::optional< HeCapabilities >, std::optional< HeOperation >, std::optional< MuEdcaParameterSet >, std::optional< He6GhzBandCapabilities >, std::optional< MultiLinkElement >, std::optional< EhtCapabilities >, std::optional< EhtOperation >, std::vector< TidToLinkMapping > > ProbeResponseElems
List of Information Elements included in Probe Response frames.
void WriteTo(Buffer::Iterator &i, Ipv4Address ad)
Write an Ipv4Address to a Buffer.
std::tuple< SupportedRates, std::optional< ExtendedSupportedRatesIE >, std::optional< EdcaParameterSet >, std::optional< HtCapabilities >, std::optional< HtOperation >, std::optional< ExtendedCapabilities >, std::optional< VhtCapabilities >, std::optional< VhtOperation >, std::optional< HeCapabilities >, std::optional< HeOperation >, std::optional< MuEdcaParameterSet >, std::optional< He6GhzBandCapabilities >, std::optional< MultiLinkElement >, std::optional< EhtCapabilities >, std::optional< EhtOperation >, std::vector< TidToLinkMapping > > AssocResponseElems
List of Information Elements included in Association Response frames.
void ReadFrom(Buffer::Iterator &i, Ipv4Address &ad)
Read an Ipv4Address from a Buffer.