24 #include "ns3/address-utils.h"
25 #include "ns3/simulator.h"
61 static TypeId tid =
TypeId(
"ns3::MgtProbeResponseHeader")
107 uint32_t size = 8 + 2 ;
147 .SetGroupName(
"Wifi")
161 static TypeId tid =
TypeId(
"ns3::MgtAssocRequestHeader")
163 .SetGroupName(
"Wifi")
201 SetMleContainingFrame();
225 SetMleContainingFrame();
251 if (
auto& mle = Get<MultiLinkElement>())
253 for (std::size_t
id = 0;
id < mle->GetNPerStaProfileSubelements();
id++)
255 auto& perStaProfile = mle->GetPerStaProfile(
id);
256 if (perStaProfile.HasAssocRequest())
258 auto& frameInPerStaProfile =
259 std::get<std::reference_wrapper<MgtAssocRequestHeader>>(
260 perStaProfile.GetAssocRequest())
262 frameInPerStaProfile.CopyIesFromContainingFrame(*
this);
279 "Bytes read (" << distance <<
") exceed expected number (" << length <<
")");
293 static TypeId tid =
TypeId(
"ns3::MgtReassocRequestHeader")
295 .SetGroupName(
"Wifi")
339 SetMleContainingFrame();
371 SetMleContainingFrame();
399 if (
auto& mle = Get<MultiLinkElement>())
401 for (std::size_t
id = 0;
id < mle->GetNPerStaProfileSubelements();
id++)
403 auto& perStaProfile = mle->GetPerStaProfile(
id);
404 if (perStaProfile.HasReassocRequest())
406 auto& frameInPerStaProfile =
407 std::get<std::reference_wrapper<MgtReassocRequestHeader>>(
408 perStaProfile.GetAssocRequest())
410 frameInPerStaProfile.CopyIesFromContainingFrame(*
this);
428 "Bytes read (" << distance <<
") exceed expected number (" << length <<
")");
442 static TypeId tid =
TypeId(
"ns3::MgtAssocResponseHeader")
444 .SetGroupName(
"Wifi")
494 SetMleContainingFrame();
520 os <<
"status code=" <<
m_code <<
", "
521 <<
"aid=" <<
m_aid <<
", ";
528 SetMleContainingFrame();
557 if (
auto& mle = Get<MultiLinkElement>())
559 for (std::size_t
id = 0;
id < mle->GetNPerStaProfileSubelements();
id++)
561 auto& perStaProfile = mle->GetPerStaProfile(
id);
562 if (perStaProfile.HasAssocResponse())
564 auto& frameInPerStaProfile = perStaProfile.GetAssocResponse();
565 frameInPerStaProfile.CopyIesFromContainingFrame(*
this);
583 "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.
auto get(const nlohmann::detail::iteration_proxy_value< IteratorType > &i) -> decltype(i.key())
Every class exported by the ns3 library is enclosed in the ns3 namespace.
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< MultiLinkElement >, std::optional< EhtCapabilities >, std::optional< EhtOperation >, std::vector< TidToLinkMapping > > AssocResponseElems
List of Information Elements included in Association Response frames.
std::tuple< Ssid, SupportedRates, std::optional< ExtendedSupportedRatesIE >, std::optional< HtCapabilities >, std::optional< ExtendedCapabilities >, std::optional< VhtCapabilities >, std::optional< HeCapabilities >, std::optional< MultiLinkElement >, std::optional< EhtCapabilities >, std::vector< TidToLinkMapping > > AssocRequestElems
List of Information Elements included in Association Request frames.
void WriteTo(Buffer::Iterator &i, Ipv4Address ad)
Write an Ipv4Address to a Buffer.
void ReadFrom(Buffer::Iterator &i, Ipv4Address &ad)
Read an Ipv4Address from a Buffer.