13#include "ns3/address-utils.h"
14#include "ns3/simulator.h"
50 static TypeId tid =
TypeId(
"ns3::MgtProbeResponseHeader")
72 SetMleContainingFrame();
83 SetMleContainingFrame();
102 if (
auto& mle = Get<MultiLinkElement>())
104 for (std::size_t
id = 0;
id < mle->GetNPerStaProfileSubelements(); ++id)
106 auto& perStaProfile = mle->GetPerStaProfile(
id);
107 if (perStaProfile.HasProbeResponse())
109 auto& frameInPerStaProfile = perStaProfile.GetProbeResponse();
110 frameInPerStaProfile.CopyIesFromContainingFrame(*
this);
129 .SetGroupName(
"Wifi")
186 static TypeId tid =
TypeId(
"ns3::MgtAssocRequestHeader")
188 .SetGroupName(
"Wifi")
202 SetMleContainingFrame();
226 SetMleContainingFrame();
252 if (
auto& mle = Get<MultiLinkElement>())
254 for (std::size_t
id = 0;
id < mle->GetNPerStaProfileSubelements();
id++)
256 auto& perStaProfile = mle->GetPerStaProfile(
id);
257 if (perStaProfile.HasAssocRequest())
259 auto& frameInPerStaProfile =
260 std::get<std::reference_wrapper<MgtAssocRequestHeader>>(
261 perStaProfile.GetAssocRequest())
263 frameInPerStaProfile.CopyIesFromContainingFrame(*
this);
280 "Bytes read (" << distance <<
") exceed expected number (" << length <<
")");
316 auto distance = i.GetDistanceFrom(start);
318 "Bytes read (" << distance <<
") exceed expected number (" << length <<
")");
332 static TypeId tid =
TypeId(
"ns3::MgtReassocRequestHeader")
334 .SetGroupName(
"Wifi")
348 SetMleContainingFrame();
380 SetMleContainingFrame();
408 if (
auto& mle = Get<MultiLinkElement>())
410 for (std::size_t
id = 0;
id < mle->GetNPerStaProfileSubelements();
id++)
412 auto& perStaProfile = mle->GetPerStaProfile(
id);
413 if (perStaProfile.HasReassocRequest())
415 auto& frameInPerStaProfile =
416 std::get<std::reference_wrapper<MgtReassocRequestHeader>>(
417 perStaProfile.GetAssocRequest())
419 frameInPerStaProfile.CopyIesFromContainingFrame(*
this);
437 "Bytes read (" << distance <<
") exceed expected number (" << length <<
")");
451 static TypeId tid =
TypeId(
"ns3::MgtAssocResponseHeader")
453 .SetGroupName(
"Wifi")
467 SetMleContainingFrame();
494 <<
"aid=" <<
m_aid <<
", ";
501 SetMleContainingFrame();
530 if (
auto& mle = Get<MultiLinkElement>())
532 for (std::size_t
id = 0;
id < mle->GetNPerStaProfileSubelements();
id++)
534 auto& perStaProfile = mle->GetPerStaProfile(
id);
535 if (perStaProfile.HasAssocResponse())
537 auto& frameInPerStaProfile = perStaProfile.GetAssocResponse();
538 frameInPerStaProfile.CopyIesFromContainingFrame(*
this);
556 "Bytes read (" << distance <<
") exceed expected number (" << length <<
")");
iterator in a Buffer instance
void WriteU64(uint64_t data)
void WriteU16(uint16_t data)
uint32_t GetDistanceFrom(const Iterator &o) const
static Time Now()
Return the current simulation virtual time.
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.