See 7.3.2.96 of 802.11s draft 2.07. More...
#include "ie-dot11s-preq.h"
Public Member Functions | |
IePreq () | |
~IePreq () override | |
void | AddDestinationAddressElement (bool doFlag, bool rfFlag, Mac48Address dest_address, uint32_t dest_seq_number) |
Add a destination address unit: flags, destination and sequence number. | |
void | ClearDestinationAddressElements () |
Clear PREQ: remove all destinations. | |
void | DecrementTtl () |
Handle TTL. | |
void | DelDestinationAddressElement (Mac48Address dest_address) |
Delete a destination address unit by destination. | |
uint16_t | DeserializeInformationField (Buffer::Iterator i, uint16_t length) override |
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets) | |
WifiInformationElementId | ElementId () const override |
Get the wifi information element ID. | |
uint8_t | GetDestCount () const |
Get destination count. | |
std::vector< Ptr< DestinationAddressUnit > > | GetDestinationList () |
Get all destinations, which are stored in PREQ: | |
uint8_t | GetHopCount () const |
Get hop count value. | |
uint16_t | GetInformationFieldSize () const override |
Length of serialized information (i.e., the length of the body of the IE, not including the Element ID and length octets. | |
uint32_t | GetLifetime () const |
Get lifetime value. | |
uint32_t | GetMetric () const |
Get metric value. | |
Mac48Address | GetOriginatorAddress () const |
Get originator address value. | |
uint32_t | GetOriginatorSeqNumber () const |
Get originator sequence number value. | |
uint32_t | GetPreqID () const |
Get path discovery id field. | |
uint8_t | GetTtl () const |
Get TTL value. | |
void | IncrementMetric (uint32_t metric) |
Handle Metric: | |
bool | IsFull () const |
Is full function. | |
bool | IsNeedNotPrep () const |
Check whether Proactive PREP subfield to off. | |
bool | IsUnicastPreq () const |
Is unicast PREQ function. | |
bool | MayAddAddress (Mac48Address originator) |
Checks that preq's originator address equals to originator, and this preq is not proactive. | |
void | Print (std::ostream &os) const override |
Generate human-readable form of IE. | |
void | SerializeInformationField (Buffer::Iterator i) const override |
Serialize information (i.e., the body of the IE, not including the Element ID and length octets) | |
void | SetDestCount (uint8_t dest_count) |
Set destination count value. | |
void | SetHopcount (uint8_t hopcount) |
Set number of hops from originator to mesh STA transmitting this element. | |
void | SetLifetime (uint32_t lifetime) |
Set lifetime in TUs for the forwarding information to be considered valid. | |
void | SetMetric (uint32_t metric) |
Set metric value. | |
void | SetNeedNotPrep () |
Set Proactive PREP subfield to off. | |
void | SetOriginatorAddress (Mac48Address originator_address) |
Set originator address value. | |
void | SetOriginatorSeqNumber (uint32_t originator_seq_number) |
Set originator sequence number. | |
void | SetPreqID (uint32_t id) |
Set path discovery id field. | |
void | SetTTL (uint8_t ttl) |
Set remaining number of hops allowed for this element. | |
void | SetUnicastPreq () |
Set flag indicating that PREQ is unicast. | |
Public Member Functions inherited from ns3::WifiInformationElement | |
virtual | ~WifiInformationElement () |
Buffer::Iterator | Deserialize (Buffer::Iterator i) |
Deserialize entire IE (which may possibly be fragmented into multiple elements), which must be present. | |
Buffer::Iterator | DeserializeIfPresent (Buffer::Iterator i) |
Deserialize entire IE (which may possibly be fragmented into multiple elements) if it is present. | |
virtual WifiInformationElementId | ElementIdExt () const |
Get the wifi information element ID extension. | |
uint16_t | GetSerializedSize () const |
Get the size of the serialized IE including Element ID and length fields (for every element this IE is possibly fragmented into). | |
virtual bool | operator== (const WifiInformationElement &a) const |
Compare two IEs for equality by ID & Length, and then through memcmp of serialised version. | |
Buffer::Iterator | Serialize (Buffer::Iterator i) const |
Serialize entire IE including Element ID and length fields. | |
Public Member Functions inherited from ns3::SimpleRefCount< WifiInformationElement > | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
Private Attributes | |
uint8_t | m_destCount |
destination count | |
std::vector< Ptr< DestinationAddressUnit > > | m_destinations |
the destinations | |
uint8_t | m_flags |
flags | |
uint8_t | m_hopCount |
hop count | |
uint32_t | m_lifetime |
lifetime | |
uint8_t | m_maxSize |
how many destinations we support | |
uint32_t | m_metric |
metric | |
Mac48Address | m_originatorAddress |
originator address | |
uint32_t | m_originatorSeqNumber |
originator sequence number | |
uint32_t | m_preqId |
PREQ ID. | |
uint8_t | m_ttl |
TTL. | |
Friends | |
bool | operator== (const IePreq &a, const IePreq &b) |
equality operator | |
See 7.3.2.96 of 802.11s draft 2.07.
Definition at line 94 of file ie-dot11s-preq.h.
ns3::dot11s::IePreq::IePreq | ( | ) |
Definition at line 92 of file ie-dot11s-preq.cc.
|
override |
Definition at line 88 of file ie-dot11s-preq.cc.
void ns3::dot11s::IePreq::AddDestinationAddressElement | ( | bool | doFlag, |
bool | rfFlag, | ||
Mac48Address | dest_address, | ||
uint32_t | dest_seq_number ) |
Add a destination address unit: flags, destination and sequence number.
doFlag | |
rfFlag | |
dest_address | |
dest_seq_number |
Definition at line 371 of file ie-dot11s-preq.cc.
References ns3::Create(), m_destCount, and m_destinations.
Referenced by ns3::dot11s::HwmpProtocolMac::RequestDestination(), and ns3::dot11s::HwmpProtocol::SendProactivePreq().
void ns3::dot11s::IePreq::ClearDestinationAddressElements | ( | ) |
Clear PREQ: remove all destinations.
Definition at line 407 of file ie-dot11s-preq.cc.
References m_destCount, and m_destinations.
void ns3::dot11s::IePreq::DecrementTtl | ( | ) |
void ns3::dot11s::IePreq::DelDestinationAddressElement | ( | Mac48Address | dest_address | ) |
Delete a destination address unit by destination.
dest_address | the destination address |
Definition at line 393 of file ie-dot11s-preq.cc.
References m_destCount, and m_destinations.
Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().
|
overridevirtual |
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
start | an iterator which points to where the information should be written. |
length | the expected number of bytes to read |
Implements ns3::WifiInformationElement.
Definition at line 285 of file ie-dot11s-preq.cc.
References ns3::Create(), ns3::Buffer::Iterator::GetDistanceFrom(), m_destCount, m_destinations, m_flags, m_hopCount, m_lifetime, m_metric, m_originatorAddress, m_originatorSeqNumber, m_preqId, m_ttl, NS_ASSERT, ns3::ReadFrom(), ns3::Buffer::Iterator::ReadLsbtohU32(), and ns3::Buffer::Iterator::ReadU8().
|
overridevirtual |
Get the wifi information element ID.
Implements ns3::WifiInformationElement.
Definition at line 107 of file ie-dot11s-preq.cc.
References IE_PREQ.
uint8_t ns3::dot11s::IePreq::GetDestCount | ( | ) | const |
Get destination count.
Definition at line 227 of file ie-dot11s-preq.cc.
References m_destCount.
Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().
std::vector< Ptr< DestinationAddressUnit > > ns3::dot11s::IePreq::GetDestinationList | ( | ) |
Get all destinations, which are stored in PREQ:
Definition at line 365 of file ie-dot11s-preq.cc.
References m_destinations.
Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().
uint8_t ns3::dot11s::IePreq::GetHopCount | ( | ) | const |
Get hop count value.
Definition at line 185 of file ie-dot11s-preq.cc.
References m_hopCount.
|
overridevirtual |
Length of serialized information (i.e., the length of the body of the IE, not including the Element ID and length octets.
This is the value that will appear in the second octet of the entire IE - the length field - if the IE is not fragmented)
Implements ns3::WifiInformationElement.
Definition at line 328 of file ie-dot11s-preq.cc.
References m_destCount, and m_maxSize.
Referenced by IsFull(), and MayAddAddress().
uint32_t ns3::dot11s::IePreq::GetLifetime | ( | ) | const |
Get lifetime value.
Definition at line 221 of file ie-dot11s-preq.cc.
References m_lifetime.
Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().
uint32_t ns3::dot11s::IePreq::GetMetric | ( | ) | const |
Get metric value.
Definition at line 203 of file ie-dot11s-preq.cc.
References m_metric.
Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().
Mac48Address ns3::dot11s::IePreq::GetOriginatorAddress | ( | ) | const |
Get originator address value.
Definition at line 209 of file ie-dot11s-preq.cc.
References m_originatorAddress.
Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().
uint32_t ns3::dot11s::IePreq::GetOriginatorSeqNumber | ( | ) | const |
Get originator sequence number value.
Definition at line 215 of file ie-dot11s-preq.cc.
References m_originatorSeqNumber.
Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().
uint32_t ns3::dot11s::IePreq::GetPreqID | ( | ) | const |
Get path discovery id field.
Definition at line 197 of file ie-dot11s-preq.cc.
References m_preqId.
uint8_t ns3::dot11s::IePreq::GetTtl | ( | ) | const |
void ns3::dot11s::IePreq::IncrementMetric | ( | uint32_t | metric | ) |
Handle Metric:
metric | the mteric to increment |
Definition at line 240 of file ie-dot11s-preq.cc.
References m_metric.
Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().
bool ns3::dot11s::IePreq::IsFull | ( | ) | const |
Is full function.
Definition at line 471 of file ie-dot11s-preq.cc.
References GetInformationFieldSize().
bool ns3::dot11s::IePreq::IsNeedNotPrep | ( | ) | const |
Check whether Proactive PREP subfield to off.
Definition at line 179 of file ie-dot11s-preq.cc.
References m_flags.
Referenced by ns3::dot11s::HwmpProtocol::ReceivePreq().
bool ns3::dot11s::IePreq::IsUnicastPreq | ( | ) | const |
Is unicast PREQ function.
Definition at line 173 of file ie-dot11s-preq.cc.
References m_flags.
bool ns3::dot11s::IePreq::MayAddAddress | ( | Mac48Address | originator | ) |
Checks that preq's originator address equals to originator, and this preq is not proactive.
originator | the originator address |
Definition at line 452 of file ie-dot11s-preq.cc.
References ns3::Mac48Address::GetBroadcast(), GetInformationFieldSize(), m_destinations, and m_originatorAddress.
|
overridevirtual |
Generate human-readable form of IE.
os | output stream |
Reimplemented from ns3::WifiInformationElement.
Definition at line 351 of file ie-dot11s-preq.cc.
References m_destCount, m_destinations, m_hopCount, m_lifetime, m_metric, m_originatorAddress, m_originatorSeqNumber, m_preqId, and m_ttl.
Referenced by ns3::dot11s::operator<<().
|
overridevirtual |
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
start | an iterator which points to where the information should be written. |
Implements ns3::WifiInformationElement.
Definition at line 246 of file ie-dot11s-preq.cc.
References m_destCount, m_destinations, m_flags, m_hopCount, m_lifetime, m_maxSize, m_metric, m_originatorAddress, m_originatorSeqNumber, m_preqId, m_ttl, ns3::Buffer::Iterator::WriteHtolsbU32(), ns3::WriteTo(), and ns3::Buffer::Iterator::WriteU8().
void ns3::dot11s::IePreq::SetDestCount | ( | uint8_t | dest_count | ) |
Set destination count value.
dest_count | the destination count |
Definition at line 167 of file ie-dot11s-preq.cc.
References m_destCount.
void ns3::dot11s::IePreq::SetHopcount | ( | uint8_t | hopcount | ) |
Set number of hops from originator to mesh STA transmitting this element.
hopcount | the hop count |
Definition at line 125 of file ie-dot11s-preq.cc.
References m_hopCount.
Referenced by ns3::dot11s::HwmpProtocolMac::RequestDestination(), and ns3::dot11s::HwmpProtocol::SendProactivePreq().
void ns3::dot11s::IePreq::SetLifetime | ( | uint32_t | lifetime | ) |
Set lifetime in TUs for the forwarding information to be considered valid.
lifetime | the lifetime in TUs |
Definition at line 161 of file ie-dot11s-preq.cc.
References m_lifetime.
Referenced by ns3::dot11s::HwmpProtocolMac::RequestDestination(), and ns3::dot11s::HwmpProtocol::SendProactivePreq().
void ns3::dot11s::IePreq::SetMetric | ( | uint32_t | metric | ) |
Set metric value.
metric | the metric |
Definition at line 143 of file ie-dot11s-preq.cc.
References m_metric.
void ns3::dot11s::IePreq::SetNeedNotPrep | ( | ) |
Set Proactive PREP subfield to off.
Definition at line 119 of file ie-dot11s-preq.cc.
References m_flags.
void ns3::dot11s::IePreq::SetOriginatorAddress | ( | Mac48Address | originator_address | ) |
Set originator address value.
originator_address | the originator MAC address |
Definition at line 149 of file ie-dot11s-preq.cc.
References m_originatorAddress.
Referenced by ns3::dot11s::HwmpProtocolMac::RequestDestination(), and ns3::dot11s::HwmpProtocol::SendProactivePreq().
void ns3::dot11s::IePreq::SetOriginatorSeqNumber | ( | uint32_t | originator_seq_number | ) |
Set originator sequence number.
originator_seq_number |
Definition at line 155 of file ie-dot11s-preq.cc.
References m_originatorSeqNumber.
Referenced by ns3::dot11s::HwmpProtocolMac::RequestDestination(), and ns3::dot11s::HwmpProtocol::SendProactivePreq().
void ns3::dot11s::IePreq::SetPreqID | ( | uint32_t | id | ) |
Set path discovery id field.
id | some unique id for this path discovery |
Definition at line 137 of file ie-dot11s-preq.cc.
References m_preqId.
Referenced by ns3::dot11s::HwmpProtocolMac::RequestDestination(), and ns3::dot11s::HwmpProtocol::SendProactivePreq().
void ns3::dot11s::IePreq::SetTTL | ( | uint8_t | ttl | ) |
Set remaining number of hops allowed for this element.
ttl | the TTL |
Definition at line 131 of file ie-dot11s-preq.cc.
References m_ttl.
Referenced by ns3::dot11s::HwmpProtocolMac::RequestDestination(), and ns3::dot11s::HwmpProtocol::SendProactivePreq().
void ns3::dot11s::IePreq::SetUnicastPreq | ( | ) |
Set flag indicating that PREQ is unicast.
Definition at line 113 of file ie-dot11s-preq.cc.
References m_flags.
equality operator
a | lhs |
b | rhs |
Definition at line 426 of file ie-dot11s-preq.cc.
|
private |
destination count
Definition at line 268 of file ie-dot11s-preq.h.
Referenced by AddDestinationAddressElement(), ClearDestinationAddressElements(), DelDestinationAddressElement(), DeserializeInformationField(), GetDestCount(), GetInformationFieldSize(), Print(), SerializeInformationField(), and SetDestCount().
|
private |
the destinations
Definition at line 269 of file ie-dot11s-preq.h.
Referenced by AddDestinationAddressElement(), ClearDestinationAddressElements(), DelDestinationAddressElement(), DeserializeInformationField(), GetDestinationList(), MayAddAddress(), Print(), and SerializeInformationField().
|
private |
flags
Definition at line 260 of file ie-dot11s-preq.h.
Referenced by DeserializeInformationField(), IsNeedNotPrep(), IsUnicastPreq(), SerializeInformationField(), SetNeedNotPrep(), and SetUnicastPreq().
|
private |
hop count
Definition at line 261 of file ie-dot11s-preq.h.
Referenced by DecrementTtl(), DeserializeInformationField(), GetHopCount(), Print(), SerializeInformationField(), and SetHopcount().
|
private |
lifetime
Definition at line 266 of file ie-dot11s-preq.h.
Referenced by DeserializeInformationField(), GetLifetime(), Print(), SerializeInformationField(), and SetLifetime().
|
private |
how many destinations we support
Definition at line 258 of file ie-dot11s-preq.h.
Referenced by GetInformationFieldSize(), and SerializeInformationField().
|
private |
metric
Definition at line 267 of file ie-dot11s-preq.h.
Referenced by DeserializeInformationField(), GetMetric(), IncrementMetric(), Print(), SerializeInformationField(), and SetMetric().
|
private |
originator address
Definition at line 264 of file ie-dot11s-preq.h.
Referenced by DeserializeInformationField(), GetOriginatorAddress(), MayAddAddress(), Print(), SerializeInformationField(), and SetOriginatorAddress().
|
private |
originator sequence number
Definition at line 265 of file ie-dot11s-preq.h.
Referenced by DeserializeInformationField(), GetOriginatorSeqNumber(), Print(), SerializeInformationField(), and SetOriginatorSeqNumber().
|
private |
PREQ ID.
Definition at line 263 of file ie-dot11s-preq.h.
Referenced by DeserializeInformationField(), GetPreqID(), Print(), SerializeInformationField(), and SetPreqID().
|
private |
TTL.
Definition at line 262 of file ie-dot11s-preq.h.
Referenced by DecrementTtl(), DeserializeInformationField(), GetTtl(), Print(), SerializeInformationField(), and SetTTL().