A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::WifiMacHeader Class Reference

Implements the IEEE 802.11 MAC header. More...

#include <wifi-mac-header.h>

+ Inheritance diagram for ns3::WifiMacHeader:
+ Collaboration diagram for ns3::WifiMacHeader:

Public Types

enum  AddressType { ADDR1, ADDR2, ADDR3, ADDR4 }
 Address types. More...
 
enum  QosAckPolicy { NORMAL_ACK = 0, NO_ACK = 1, NO_EXPLICIT_ACK = 2, BLOCK_ACK = 3 }
 ACK policy for QoS frames. More...
 

Public Member Functions

 WifiMacHeader ()
 
 ~WifiMacHeader ()
 
virtual uint32_t Deserialize (Buffer::Iterator start)
 
Mac48Address GetAddr1 (void) const
 Return the address in the Address 1 field. More...
 
Mac48Address GetAddr2 (void) const
 Return the address in the Address 2 field. More...
 
Mac48Address GetAddr3 (void) const
 Return the address in the Address 3 field. More...
 
Mac48Address GetAddr4 (void) const
 Return the address in the Address 4 field. More...
 
Time GetDuration (void) const
 Return the duration from the Duration/ID field (Time object). More...
 
uint16_t GetFragmentNumber (void) const
 Return the fragment number of the header. More...
 
virtual TypeId GetInstanceTypeId (void) const
 
enum QosAckPolicy GetQosAckPolicy (void) const
 Return the QoS ACK Policy of a QoS header. More...
 
uint8_t GetQosTid (void) const
 Return the Traffic ID of a QoS header. More...
 
uint8_t GetQosTxopLimit (void) const
 Return the TXOP limit. More...
 
uint16_t GetRawDuration (void) const
 Return the raw duration from the Duration/ID field. More...
 
uint16_t GetSequenceControl (void) const
 Return the raw Sequence Control field. More...
 
uint16_t GetSequenceNumber (void) const
 Return the sequence number of the header. More...
 
virtual uint32_t GetSerializedSize (void) const
 
uint32_t GetSize (void) const
 Return the size of the WifiMacHeader in octets. More...
 
enum WifiMacType GetType (void) const
 Return the type (enum WifiMacType) More...
 
const char * GetTypeString (void) const
 Return a string corresponds to the header type. More...
 
bool IsAck (void) const
 Return true if the header is an ACK header. More...
 
bool IsAction () const
 Return true if the header is an Action header. More...
 
bool IsAssocReq (void) const
 Return true if the header is an Association Request header. More...
 
bool IsAssocResp (void) const
 Return true if the header is an Association Response header. More...
 
bool IsAuthentication (void) const
 Return true if the header is an Authentication header. More...
 
bool IsBeacon (void) const
 Return true if the header is a Beacon header. More...
 
bool IsBlockAck (void) const
 Return true if the header is a Block ACK header. More...
 
bool IsBlockAckReq (void) const
 Return true if the header is a Block ACK Request header. More...
 
bool IsCfpoll (void) const
 Return true if the Type/Subtype is one of the possible CF-Poll headers. More...
 
bool IsCtl (void) const
 Return true if the Type is Control. More...
 
bool IsCts (void) const
 Return true if the header is a CTS header. More...
 
bool IsData (void) const
 Return true if the Type is DATA. More...
 
bool IsDeauthentication (void) const
 Return true if the header is a Deauthentication header. More...
 
bool IsDisassociation (void) const
 Return true if the header is a Disassociation header. More...
 
bool IsFromDs (void) const
 
bool IsMgt (void) const
 Return true if the Type is Management. More...
 
bool IsMoreFragments (void) const
 Return if the More Fragment bit is set. More...
 
bool IsMultihopAction () const
 Check if the header is a Multihop action header. More...
 
bool IsProbeReq (void) const
 Return true if the header is a Probe Request header. More...
 
bool IsProbeResp (void) const
 Return true if the header is a Probe Response header. More...
 
bool IsQosAck (void) const
 Return if the QoS ACK policy is Normal ACK. More...
 
bool IsQosAmsdu (void) const
 Check if the A-MSDU present bit is set in the QoS control field. More...
 
bool IsQosBlockAck (void) const
 Return if the QoS ACK policy is Block ACK. More...
 
bool IsQosData (void) const
 Return true if the Type is DATA and Subtype is one of the possible values for QoS DATA. More...
 
bool IsQosEosp (void) const
 Return if the end of service period (EOSP) is set. More...
 
bool IsQosNoAck (void) const
 Return if the QoS ACK policy is No ACK. More...
 
bool IsReassocReq (void) const
 Return true if the header is a Reassociation Request header. More...
 
bool IsReassocResp (void) const
 Return true if the header is a Reassociation Response header. More...
 
bool IsRetry (void) const
 Return if the Retry bit is set. More...
 
bool IsRts (void) const
 Return true if the header is a RTS header. More...
 
bool IsToDs (void) const
 
virtual void Print (std::ostream &os) const
 
virtual void Serialize (Buffer::Iterator start) const
 
void SetAction ()
 Set Type/Subtype values for an action header. More...
 
void SetAddr1 (Mac48Address address)
 Fill the Address 1 field with the given address. More...
 
void SetAddr2 (Mac48Address address)
 Fill the Address 2 field with the given address. More...
 
void SetAddr3 (Mac48Address address)
 Fill the Address 3 field with the given address. More...
 
void SetAddr4 (Mac48Address address)
 Fill the Address 4 field with the given address. More...
 
void SetAssocReq (void)
 Set Type/Subtype values for an association request header. More...
 
void SetAssocResp (void)
 Set Type/Subtype values for an association response header. More...
 
void SetBeacon (void)
 Set Type/Subtype values for a beacon header. More...
 
void SetBlockAck (void)
 Set Type/Subtype values for a Block Ack header. More...
 
void SetBlockAckReq (void)
 Set Type/Subtype values for a Block Ack Request header. More...
 
void SetDsFrom (void)
 Set the From DS bit in the Frame Control field. More...
 
void SetDsNotFrom (void)
 Un-set the From DS bit in the Frame Control field. More...
 
void SetDsNotTo (void)
 Un-set the To DS bit in the Frame Control field. More...
 
void SetDsTo (void)
 Set the To DS bit in the Frame Control field. More...
 
void SetDuration (Time duration)
 Set the Duration/ID field with the given duration (Time object). More...
 
void SetFragmentNumber (uint8_t frag)
 Set the fragment number of the header. More...
 
void SetId (uint16_t id)
 Set the Duration/ID field with the given ID. More...
 
void SetMoreFragments (void)
 Set the More Fragment bit in the Frame Control field. More...
 
void SetMultihopAction ()
 Set Type/Subtype values for a multihop action header. More...
 
void SetNoMoreFragments (void)
 Un-set the More Fragment bit in the Frame Control Field. More...
 
void SetNoOrder (void)
 Unset order bit in the frame control field. More...
 
void SetNoRetry (void)
 Un-set the Retry bit in the Frame Control field. More...
 
void SetOrder (void)
 Set order bit in the frame control field. More...
 
void SetProbeReq (void)
 Set Type/Subtype values for a probe request header. More...
 
void SetProbeResp (void)
 Set Type/Subtype values for a probe response header. More...
 
void SetQosAckPolicy (enum QosAckPolicy policy)
 Set the QoS ACK policy in the QoS control field. More...
 
void SetQosAmsdu (void)
 Set that A-MSDU is present. More...
 
void SetQosBlockAck (void)
 Set the QoS ACK policy in the QoS control field to block ACK. More...
 
void SetQosEosp ()
 Set the end of service period (EOSP) bit in the QoS control field. More...
 
void SetQosNoAck (void)
 Set the QoS ACK policy in the QoS control field to no ACK. More...
 
void SetQosNoAmsdu (void)
 Set that A-MSDU is not present. More...
 
void SetQosNoEosp ()
 Un-set the end of service period (EOSP) bit in the QoS control field. More...
 
void SetQosNormalAck (void)
 Set the QoS ACK policy in the QoS control field to normal ACK. More...
 
void SetQosTid (uint8_t tid)
 Set the TID for the QoS header. More...
 
void SetQosTxopLimit (uint8_t txop)
 Set TXOP limit in the QoS control field. More...
 
void SetRawDuration (uint16_t duration)
 Set the Duration/ID field with the given raw uint16_t value. More...
 
void SetRetry (void)
 Set the Retry bit in the Frame Control field. More...
 
void SetSequenceNumber (uint16_t seq)
 Set the sequence number of the header. More...
 
void SetType (enum WifiMacType type)
 Set Type/Subtype values with the correct values depending on the given type. More...
 
void SetTypeData (void)
 Set Type/Subtype values for a data packet with no subtype equal to 0. More...
 
- Public Member Functions inherited from ns3::Header
virtual ~Header ()
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Header
static TypeId GetTypeId (void)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Chunk
static TypeId GetTypeId (void)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Member Functions

uint16_t GetFrameControl (void) const
 Return the raw Frame Control field. More...
 
uint16_t GetQosControl (void) const
 Return the raw QoS Control field. More...
 
void PrintFrameControl (std::ostream &os) const
 Print the Frame Control field to the output stream. More...
 
void SetFrameControl (uint16_t control)
 Set the Frame Control field with the given raw value. More...
 
void SetQosControl (uint16_t qos)
 Set the QoS Control field with the given raw value. More...
 
void SetSequenceControl (uint16_t seq)
 Set the Sequence Control field with the given raw value. More...
 

Private Attributes

Mac48Address m_addr1
 
Mac48Address m_addr2
 
Mac48Address m_addr3
 
Mac48Address m_addr4
 
uint8_t m_amsduPresent
 
uint8_t m_ctrlFromDs
 
uint8_t m_ctrlMoreData
 
uint8_t m_ctrlMoreFrag
 
uint8_t m_ctrlOrder
 
uint8_t m_ctrlRetry
 
uint8_t m_ctrlSubtype
 
uint8_t m_ctrlToDs
 
uint8_t m_ctrlType
 
uint8_t m_ctrlWep
 
uint16_t m_duration
 
uint8_t m_qosAckPolicy
 
uint8_t m_qosEosp
 
uint16_t m_qosStuff
 
uint8_t m_qosTid
 
uint8_t m_seqFrag
 
uint16_t m_seqSeq
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 

Detailed Description

Implements the IEEE 802.11 MAC header.

Doxygen introspection did not find any typical Config paths.


No Attributes are defined for this type.
No TraceSources are defined for this type.

Definition at line 80 of file wifi-mac-header.h.

Member Enumeration Documentation

Address types.

Enumerator
ADDR1 
ADDR2 
ADDR3 
ADDR4 

Definition at line 97 of file wifi-mac-header.h.

ACK policy for QoS frames.

Enumerator
NORMAL_ACK 
NO_ACK 
NO_EXPLICIT_ACK 
BLOCK_ACK 

Definition at line 86 of file wifi-mac-header.h.

Constructor & Destructor Documentation

ns3::WifiMacHeader::WifiMacHeader ( )

Definition at line 48 of file wifi-mac-header.cc.

ns3::WifiMacHeader::~WifiMacHeader ( )

Definition at line 56 of file wifi-mac-header.cc.

Member Function Documentation

uint32_t ns3::WifiMacHeader::Deserialize ( Buffer::Iterator  start)
virtual
Parameters
startan iterator which points to where the header should written.
Returns
the number of bytes read.

This method is used by Packet::RemoveHeader to re-create a header from the byte buffer of a packet. The data read is expected to match bit-for-bit the representation of this header in real networks.

Implements ns3::Header.

Definition at line 1130 of file wifi-mac-header.cc.

References ns3::Buffer::Iterator::GetDistanceFrom(), m_addr1, m_addr2, m_addr3, m_addr4, m_ctrlFromDs, m_ctrlSubtype, m_ctrlToDs, m_ctrlType, m_duration, ns3::ReadFrom(), ns3::Buffer::Iterator::ReadLsbtohU16(), SetFrameControl(), SetQosControl(), SetSequenceControl(), visualizer.core::start(), ns3::SUBTYPE_CTL_ACK, ns3::SUBTYPE_CTL_BACKREQ, ns3::SUBTYPE_CTL_BACKRESP, ns3::SUBTYPE_CTL_CTS, ns3::SUBTYPE_CTL_RTS, ns3::TYPE_CTL, ns3::TYPE_DATA, and ns3::TYPE_MGT.

+ Here is the call graph for this function:

Mac48Address ns3::WifiMacHeader::GetAddr1 ( void  ) const

Return the address in the Address 1 field.

Returns
the address in the Address 1 field

Definition at line 416 of file wifi-mac-header.cc.

References m_addr1.

Referenced by ns3::MacLow::BlockAckTimeout(), ns3::MacLow::CalculateOverallTxTime(), ns3::MacLow::CalculateTransmissionTime(), ns3::EdcaTxopN::CompleteTx(), ns3::MacLow::CtsTimeout(), ns3::MacLow::FastAckTimeout(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::MacLow::ForwardDown(), ns3::MacLow::GetDataTxVector(), ns3::DcaTxop::GetFragmentOffset(), ns3::EdcaTxopN::GetFragmentOffset(), ns3::DcaTxop::GetFragmentSize(), ns3::EdcaTxopN::GetFragmentSize(), ns3::DcaTxop::GetNextFragmentSize(), ns3::EdcaTxopN::GetNextFragmentSize(), ns3::BlockAckManager::GetNextPacket(), ns3::MacTxMiddle::GetNextSequenceNumberfor(), ns3::MacLow::GetRtsTxVector(), ns3::EdcaTxopN::GotAck(), ns3::DcaTxop::IsLastFragment(), ns3::EdcaTxopN::IsLastFragment(), ns3::EdcaTxopN::MapDestAddressForAggregation(), ns3::DcaTxop::MissedAck(), ns3::EdcaTxopN::MissedAck(), ns3::EdcaTxopN::MissedCts(), ns3::DcaTxop::MissedCts(), ns3::DcaTxop::NeedDataRetransmission(), ns3::EdcaTxopN::NeedDataRetransmission(), ns3::DcaTxop::NeedFragmentation(), ns3::EdcaTxopN::NeedFragmentation(), ns3::DcaTxop::NeedRts(), ns3::EdcaTxopN::NeedRts(), ns3::DcaTxop::NeedRtsRetransmission(), ns3::EdcaTxopN::NeedRtsRetransmission(), ns3::MacLow::NormalAckTimeout(), ns3::EdcaTxopN::NotifyAccessGranted(), ns3::DcaTxop::NotifyAccessGranted(), ns3::MacLow::NotifyNav(), ns3::aodv::Neighbors::ProcessTxError(), ns3::dsr::RouteCache::ProcessTxError(), ns3::EdcaTxopN::PushFront(), ns3::DcaTxop::Queue(), ns3::EdcaTxopN::Queue(), ns3::flame::FlameProtocolMac::Receive(), ns3::MacRxMiddle::Receive(), ns3::AdhocWifiMac::Receive(), ns3::ApWifiMac::Receive(), ns3::StaWifiMac::Receive(), ns3::OcbWifiMac::Receive(), ns3::MeshWifiInterfaceMac::Receive(), ns3::RegularWifiMac::Receive(), ns3::MacLow::ReceiveOk(), ns3::MacLow::SendCtsToSelf(), ns3::MacLow::SendDataAfterCts(), ns3::MacLow::SendDataPacket(), ns3::MeshWifiInterfaceMac::SendManagementFrame(), ns3::MacLow::SendRtsForPacket(), ns3::EdcaTxopN::SetupBlockAckIfNeeded(), ns3::MacLow::StartDataTxTimers(), ns3::MacLow::StartTransmission(), ns3::BlockAckManager::StorePacket(), ns3::MacLow::SuperFastAckTimeout(), ns3::dot11s::PeerManagementProtocolMac::TxError(), ns3::ApWifiMac::TxFailed(), ns3::dot11s::PeerManagementProtocolMac::TxOk(), ns3::ApWifiMac::TxOk(), ns3::dot11s::PeerManagementProtocolMac::UpdateOutcomingFrame(), and ns3::EdcaTxopN::VerifyBlockAck().

Mac48Address ns3::WifiMacHeader::GetAddr4 ( void  ) const

Return the address in the Address 4 field.

Returns
the address in the Address 4 field

Definition at line 431 of file wifi-mac-header.cc.

References m_addr4.

Referenced by ns3::MeshWifiInterfaceMac::Receive(), and ns3::dot11s::HwmpProtocolMac::ReceiveData().

+ Here is the caller graph for this function:

Time ns3::WifiMacHeader::GetDuration ( void  ) const

Return the duration from the Duration/ID field (Time object).

Returns
the duration from the Duration/ID field (Time object)

Definition at line 707 of file wifi-mac-header.cc.

References m_duration.

Referenced by ns3::MacLow::ForwardDown(), ns3::MacLow::NotifyNav(), and ns3::MacLow::ReceiveOk().

+ Here is the caller graph for this function:

uint16_t ns3::WifiMacHeader::GetFragmentNumber ( void  ) const

Return the fragment number of the header.

Returns
the fragment number of the header

Definition at line 722 of file wifi-mac-header.cc.

References m_seqFrag.

Referenced by ns3::MacRxMiddle::HandleFragments(), ns3::MacRxMiddle::Receive(), and ns3::BlockAckCache::UpdateWithMpdu().

+ Here is the caller graph for this function:

uint16_t ns3::WifiMacHeader::GetFrameControl ( void  ) const
private

Return the raw Frame Control field.

Returns
the raw Frame Control field

Definition at line 803 of file wifi-mac-header.cc.

References m_ctrlFromDs, m_ctrlMoreData, m_ctrlMoreFrag, m_ctrlOrder, m_ctrlRetry, m_ctrlSubtype, m_ctrlToDs, m_ctrlType, and m_ctrlWep.

Referenced by Serialize().

+ Here is the caller graph for this function:

TypeId ns3::WifiMacHeader::GetInstanceTypeId ( void  ) const
virtual
Returns
the TypeId associated to the most-derived type of this instance.

This method is typically implemented by ns3::Object::GetInstanceTypeId but some classes which derive from ns3::ObjectBase directly have to implement it themselves.

Implements ns3::ObjectBase.

Definition at line 965 of file wifi-mac-header.cc.

References GetTypeId().

+ Here is the call graph for this function:

enum WifiMacHeader::QosAckPolicy ns3::WifiMacHeader::GetQosAckPolicy ( void  ) const

Return the QoS ACK Policy of a QoS header.

Returns
the QoS ACK Policy of a QoS header

Definition at line 773 of file wifi-mac-header.cc.

References BLOCK_ACK, m_qosAckPolicy, NO_ACK, NO_EXPLICIT_ACK, NORMAL_ACK, and NS_ASSERT.

uint16_t ns3::WifiMacHeader::GetQosControl ( void  ) const
private

Return the raw QoS Control field.

Returns
the raw QoS Control field

Definition at line 819 of file wifi-mac-header.cc.

References m_amsduPresent, m_qosAckPolicy, m_qosEosp, m_qosStuff, and m_qosTid.

Referenced by Serialize().

+ Here is the caller graph for this function:

uint8_t ns3::WifiMacHeader::GetQosTxopLimit ( void  ) const

Return the TXOP limit.

Returns
the TXOP limit

Definition at line 796 of file wifi-mac-header.cc.

References IsQosData(), m_qosStuff, and NS_ASSERT.

+ Here is the call graph for this function:

uint16_t ns3::WifiMacHeader::GetRawDuration ( void  ) const

Return the raw duration from the Duration/ID field.

Returns
the raw duration from the Duration/ID field

Definition at line 702 of file wifi-mac-header.cc.

References m_duration.

uint16_t ns3::WifiMacHeader::GetSequenceControl ( void  ) const

Return the raw Sequence Control field.

Returns
the raw Sequence Control field

Definition at line 712 of file wifi-mac-header.cc.

References m_seqFrag, and m_seqSeq.

Referenced by ns3::MacLow::ForwardDown(), ns3::MacRxMiddle::HandleFragments(), ns3::MacRxMiddle::IsDuplicate(), ns3::EdcaTxopN::NotifyAccessGranted(), ns3::DcaTxop::NotifyAccessGranted(), ns3::MacRxMiddle::Receive(), Serialize(), and ns3::MacLow::StoreMpduIfNeeded().

+ Here is the caller graph for this function:

uint16_t ns3::WifiMacHeader::GetSequenceNumber ( void  ) const

Return the sequence number of the header.

Returns
the sequence number of the header

Definition at line 717 of file wifi-mac-header.cc.

References m_seqSeq.

Referenced by ns3::BlockAckManager::GetNextPacket(), ns3::MacRxMiddle::HandleFragments(), ns3::BlockAckManager::HasOtherFragments(), ns3::MacRxMiddle::Receive(), ns3::BlockAckCache::UpdateWithMpdu(), and ns3::EdcaTxopN::VerifyBlockAck().

+ Here is the caller graph for this function:

uint32_t ns3::WifiMacHeader::GetSerializedSize ( void  ) const
virtual
Returns
the expected size of the header.

This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. This method should return the number of bytes which are needed to store the full header data by Serialize.

Implements ns3::Header.

Definition at line 1073 of file wifi-mac-header.cc.

References GetSize().

Referenced by ns3::MacLow::NotifyNav(), ns3::EdcaTxopN::PushFront(), ns3::DcaTxop::Queue(), and ns3::EdcaTxopN::Queue().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

enum WifiMacType ns3::WifiMacHeader::GetType ( void  ) const

Return the type (enum WifiMacType)

Returns
the type (enum WifiMacType)

Definition at line 437 of file wifi-mac-header.cc.

References m_ctrlSubtype, m_ctrlType, NS_ASSERT, ns3::SUBTYPE_CTL_ACK, ns3::SUBTYPE_CTL_BACKREQ, ns3::SUBTYPE_CTL_BACKRESP, ns3::SUBTYPE_CTL_CTS, ns3::SUBTYPE_CTL_RTS, ns3::TYPE_CTL, ns3::TYPE_DATA, ns3::TYPE_MGT, ns3::WIFI_MAC_CTL_ACK, ns3::WIFI_MAC_CTL_BACKREQ, ns3::WIFI_MAC_CTL_BACKRESP, ns3::WIFI_MAC_CTL_CTS, ns3::WIFI_MAC_CTL_RTS, ns3::WIFI_MAC_DATA, ns3::WIFI_MAC_DATA_CFACK, ns3::WIFI_MAC_DATA_CFACK_CFPOLL, ns3::WIFI_MAC_DATA_CFPOLL, ns3::WIFI_MAC_DATA_NULL, ns3::WIFI_MAC_DATA_NULL_CFACK, ns3::WIFI_MAC_DATA_NULL_CFACK_CFPOLL, ns3::WIFI_MAC_DATA_NULL_CFPOLL, ns3::WIFI_MAC_MGT_ACTION, ns3::WIFI_MAC_MGT_ACTION_NO_ACK, ns3::WIFI_MAC_MGT_ASSOCIATION_REQUEST, ns3::WIFI_MAC_MGT_ASSOCIATION_RESPONSE, ns3::WIFI_MAC_MGT_AUTHENTICATION, ns3::WIFI_MAC_MGT_BEACON, ns3::WIFI_MAC_MGT_DEAUTHENTICATION, ns3::WIFI_MAC_MGT_DISASSOCIATION, ns3::WIFI_MAC_MGT_MULTIHOP_ACTION, ns3::WIFI_MAC_MGT_PROBE_REQUEST, ns3::WIFI_MAC_MGT_PROBE_RESPONSE, ns3::WIFI_MAC_MGT_REASSOCIATION_REQUEST, ns3::WIFI_MAC_MGT_REASSOCIATION_RESPONSE, ns3::WIFI_MAC_QOSDATA, ns3::WIFI_MAC_QOSDATA_CFACK, ns3::WIFI_MAC_QOSDATA_CFACK_CFPOLL, ns3::WIFI_MAC_QOSDATA_CFPOLL, ns3::WIFI_MAC_QOSDATA_NULL, ns3::WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL, and ns3::WIFI_MAC_QOSDATA_NULL_CFPOLL.

Referenced by GetTypeString(), IsAck(), IsAction(), IsAssocReq(), IsAssocResp(), IsAuthentication(), IsBeacon(), IsBlockAck(), IsBlockAckReq(), IsCfpoll(), IsCts(), IsDeauthentication(), IsDisassociation(), IsMultihopAction(), IsProbeReq(), IsProbeResp(), IsReassocReq(), IsReassocResp(), IsRts(), ns3::EdcaTxopN::NotifyAccessGranted(), Print(), and ns3::RegularWifiMac::Receive().

+ Here is the caller graph for this function:

TypeId ns3::WifiMacHeader::GetTypeId ( void  )
static

Definition at line 955 of file wifi-mac-header.cc.

References ns3::TypeId::SetParent().

Referenced by GetInstanceTypeId().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const char * ns3::WifiMacHeader::GetTypeString ( void  ) const

Return a string corresponds to the header type.

Returns
a string corresponds to the header type.

Definition at line 902 of file wifi-mac-header.cc.

References ns3::DATA, FOO, and GetType().

Referenced by ns3::MacLow::ForwardDown(), Print(), and ns3::MacLow::ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsAck ( void  ) const

Return true if the header is an ACK header.

Returns
true if the header is an ACK header, false otherwise

Definition at line 625 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_CTL_ACK.

Referenced by ns3::MacLow::ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsAction ( void  ) const

Return true if the header is an Action header.

Returns
true if the header is an Action header, false otherwise

Definition at line 680 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_ACTION.

Referenced by ns3::EdcaTxopN::GotAck(), ns3::dot11s::PeerManagementProtocolMac::Receive(), ns3::dot11s::HwmpProtocolMac::Receive(), ns3::OcbWifiMac::Receive(), ns3::RegularWifiMac::Receive(), and ns3::dot11s::PeerManagementProtocolMac::UpdateOutcomingFrame().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsAssocReq ( void  ) const

Return true if the header is an Association Request header.

Returns
true if the header is an Association Request header, false otherwise

Definition at line 630 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_ASSOCIATION_REQUEST.

Referenced by ns3::ApWifiMac::Receive(), and ns3::StaWifiMac::Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsAssocResp ( void  ) const

Return true if the header is an Association Response header.

Returns
true if the header is an Association Response header, false otherwise

Definition at line 635 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_ASSOCIATION_RESPONSE.

Referenced by ns3::StaWifiMac::Receive(), ns3::ApWifiMac::TxFailed(), and ns3::ApWifiMac::TxOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsAuthentication ( void  ) const

Return true if the header is an Authentication header.

Returns
true if the header is an Authentication header, false otherwise

Definition at line 670 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_AUTHENTICATION.

+ Here is the call graph for this function:

bool ns3::WifiMacHeader::IsBeacon ( void  ) const

Return true if the header is a Beacon header.

Returns
true if the header is a Beacon header, false otherwise

Definition at line 660 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_BEACON.

Referenced by ns3::dot11s::PeerManagementProtocolMac::Receive(), ns3::StaWifiMac::Receive(), and ns3::MeshWifiInterfaceMac::Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsBlockAck ( void  ) const

Return true if the header is a Block ACK header.

Returns
true if the header is a Block ACK header, false otherwise

Definition at line 695 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_CTL_BACKRESP.

Referenced by ns3::MacLow::ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsBlockAckReq ( void  ) const

Return true if the header is a Block ACK Request header.

Returns
true if the header is a Block ACK Request header, false otherwise

Definition at line 690 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_CTL_BACKREQ.

Referenced by ns3::MacLow::ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsCfpoll ( void  ) const

Return true if the Type/Subtype is one of the possible CF-Poll headers.

Returns
true if the Type/Subtype is one of the possible CF-Poll headers, false otherwise

Definition at line 595 of file wifi-mac-header.cc.

References GetType(), ns3::WIFI_MAC_DATA_CFACK_CFPOLL, ns3::WIFI_MAC_DATA_CFPOLL, ns3::WIFI_MAC_DATA_NULL_CFACK_CFPOLL, ns3::WIFI_MAC_DATA_NULL_CFPOLL, ns3::WIFI_MAC_QOSDATA_CFACK_CFPOLL, ns3::WIFI_MAC_QOSDATA_CFPOLL, ns3::WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL, and ns3::WIFI_MAC_QOSDATA_NULL_CFPOLL.

Referenced by ns3::MacLow::NotifyNav().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsCtl ( void  ) const

Return true if the Type is Control.

Returns
true if Type is Control, false otherwise

Definition at line 585 of file wifi-mac-header.cc.

References m_ctrlType, and ns3::TYPE_CTL.

Referenced by ns3::AdhocWifiMac::Receive(), ns3::StaWifiMac::Receive(), ns3::OcbWifiMac::Receive(), and ns3::MacLow::ReceiveOk().

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsCts ( void  ) const

Return true if the header is a CTS header.

Returns
true if the header is a CTS header, false otherwise

Definition at line 620 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_CTL_CTS.

Referenced by ns3::MacLow::ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsDeauthentication ( void  ) const

Return true if the header is a Deauthentication header.

Returns
true if the header is a Deauthentication header, false otherwise

Definition at line 675 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_DEAUTHENTICATION.

+ Here is the call graph for this function:

bool ns3::WifiMacHeader::IsDisassociation ( void  ) const

Return true if the header is a Disassociation header.

Returns
true if the header is a Disassociation header, false otherwise

Definition at line 665 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_DISASSOCIATION.

Referenced by ns3::ApWifiMac::Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsFromDs ( void  ) const
Returns
true if From DS bit is set, false otherwise

Definition at line 563 of file wifi-mac-header.cc.

References m_ctrlFromDs.

Referenced by ns3::ApWifiMac::Receive(), and ns3::StaWifiMac::Receive().

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsMgt ( void  ) const

Return true if the Type is Management.

Returns
true if Type is Management, false otherwise

Definition at line 590 of file wifi-mac-header.cc.

References m_ctrlType, and ns3::TYPE_MGT.

Referenced by ns3::MacRxMiddle::Receive(), ns3::ApWifiMac::Receive(), ns3::OcbWifiMac::Receive(), ns3::RegularWifiMac::Receive(), and ns3::MacLow::ReceiveOk().

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsMoreFragments ( void  ) const

Return if the More Fragment bit is set.

Returns
true if the More Fragment bit is set, false otherwise

Definition at line 732 of file wifi-mac-header.cc.

References m_ctrlMoreFrag.

Referenced by ns3::MacRxMiddle::HandleFragments().

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsMultihopAction ( void  ) const

Check if the header is a Multihop action header.

Returns
true if the header is a Multihop action header, false otherwise

Definition at line 685 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_MULTIHOP_ACTION.

+ Here is the call graph for this function:

bool ns3::WifiMacHeader::IsProbeReq ( void  ) const

Return true if the header is a Probe Request header.

Returns
true if the header is a Probe Request header, false otherwise

Definition at line 650 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_PROBE_REQUEST.

Referenced by ns3::ApWifiMac::Receive(), and ns3::StaWifiMac::Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsProbeResp ( void  ) const

Return true if the header is a Probe Response header.

Returns
true if the header is a Probe Response header, false otherwise

Definition at line 655 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_PROBE_RESPONSE.

Referenced by ns3::StaWifiMac::Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsQosAck ( void  ) const

Return if the QoS ACK policy is Normal ACK.

Returns
true if the QoS ACK policy is No ACK, false otherwise

Definition at line 749 of file wifi-mac-header.cc.

References IsQosData(), m_qosAckPolicy, and NS_ASSERT.

Referenced by ns3::MacLow::ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsQosAmsdu ( void  ) const

Check if the A-MSDU present bit is set in the QoS control field.

Returns
true if the A-MSDU present bit is set, false otherwise

Definition at line 761 of file wifi-mac-header.cc.

References IsQosData(), m_amsduPresent, and NS_ASSERT.

Referenced by ns3::EdcaTxopN::GotAck(), ns3::EdcaTxopN::NotifyAccessGranted(), ns3::AdhocWifiMac::Receive(), ns3::ApWifiMac::Receive(), ns3::StaWifiMac::Receive(), and ns3::OcbWifiMac::Receive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsQosBlockAck ( void  ) const

Return if the QoS ACK policy is Block ACK.

Returns
true if the QoS ACK policy is Block ACK, false otherwise

Definition at line 737 of file wifi-mac-header.cc.

References IsQosData(), m_qosAckPolicy, and NS_ASSERT.

Referenced by ns3::EdcaTxopN::CompleteTx(), ns3::EdcaTxopN::NotifyAccessGranted(), and ns3::MacLow::ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsQosEosp ( void  ) const

Return if the end of service period (EOSP) is set.

Returns
true if the end of service period (EOSP) is set, false otherwise

Definition at line 755 of file wifi-mac-header.cc.

References IsQosData(), m_qosEosp, and NS_ASSERT.

+ Here is the call graph for this function:

bool ns3::WifiMacHeader::IsQosNoAck ( void  ) const

Return if the QoS ACK policy is No ACK.

Returns
true if the QoS ACK policy is No ACK, false otherwise

Definition at line 743 of file wifi-mac-header.cc.

References IsQosData(), m_qosAckPolicy, and NS_ASSERT.

Referenced by ns3::MacLow::ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsReassocReq ( void  ) const

Return true if the header is a Reassociation Request header.

Returns
true if the header is a Reassociation Request header, false otherwise

Definition at line 640 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_REASSOCIATION_REQUEST.

+ Here is the call graph for this function:

bool ns3::WifiMacHeader::IsReassocResp ( void  ) const

Return true if the header is a Reassociation Response header.

Returns
true if the header is a Reassociation Response header, false otherwise

Definition at line 645 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_MGT_REASSOCIATION_RESPONSE.

+ Here is the call graph for this function:

bool ns3::WifiMacHeader::IsRetry ( void  ) const

Return if the Retry bit is set.

Returns
true if the Retry bit is set, false otherwise

Definition at line 727 of file wifi-mac-header.cc.

References m_ctrlRetry.

Referenced by ns3::EdcaTxopN::CompleteTx(), ns3::MacRxMiddle::IsDuplicate(), and ns3::EdcaTxopN::NotifyAccessGranted().

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsRts ( void  ) const

Return true if the header is a RTS header.

Returns
true if the header is a RTS header, false otherwise

Definition at line 615 of file wifi-mac-header.cc.

References GetType(), and ns3::WIFI_MAC_CTL_RTS.

Referenced by ns3::MacLow::NotifyNav(), and ns3::MacLow::ReceiveOk().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::WifiMacHeader::IsToDs ( void  ) const
Returns
true if To DS bit is set, false otherwise

Definition at line 568 of file wifi-mac-header.cc.

References m_ctrlToDs.

Referenced by ns3::ApWifiMac::Receive(), and ns3::StaWifiMac::Receive().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::Print ( std::ostream &  os) const
virtual
Parameters
osoutput stream This method is used by Packet::Print to print the content of a trailer as ascii data to a c++ output stream. Although the trailer is free to format its output as it wishes, it is recommended to follow a few rules to integrate with the packet pretty printer: start with flags, small field values located between a pair of parens. Values should be separated by whitespace. Follow the parens with the important fields, separated by whitespace. i.e.: (field1 val1 field2 val2 field3 val3) field4 val4 field5 val5

Implements ns3::Header.

Definition at line 980 of file wifi-mac-header.cc.

References GetType(), GetTypeString(), m_addr1, m_addr2, m_addr3, m_addr4, m_ctrlFromDs, m_ctrlToDs, m_duration, m_seqFrag, m_seqSeq, NS_FATAL_ERROR, PrintFrameControl(), ns3::WIFI_MAC_CTL_ACK, ns3::WIFI_MAC_CTL_BACKREQ, ns3::WIFI_MAC_CTL_BACKRESP, ns3::WIFI_MAC_CTL_CTLWRAPPER, ns3::WIFI_MAC_CTL_CTS, ns3::WIFI_MAC_CTL_RTS, ns3::WIFI_MAC_DATA, ns3::WIFI_MAC_DATA_CFACK, ns3::WIFI_MAC_DATA_CFACK_CFPOLL, ns3::WIFI_MAC_DATA_CFPOLL, ns3::WIFI_MAC_DATA_NULL, ns3::WIFI_MAC_DATA_NULL_CFACK, ns3::WIFI_MAC_DATA_NULL_CFACK_CFPOLL, ns3::WIFI_MAC_DATA_NULL_CFPOLL, ns3::WIFI_MAC_MGT_ACTION, ns3::WIFI_MAC_MGT_ACTION_NO_ACK, ns3::WIFI_MAC_MGT_ASSOCIATION_REQUEST, ns3::WIFI_MAC_MGT_ASSOCIATION_RESPONSE, ns3::WIFI_MAC_MGT_AUTHENTICATION, ns3::WIFI_MAC_MGT_BEACON, ns3::WIFI_MAC_MGT_DEAUTHENTICATION, ns3::WIFI_MAC_MGT_DISASSOCIATION, ns3::WIFI_MAC_MGT_MULTIHOP_ACTION, ns3::WIFI_MAC_MGT_PROBE_REQUEST, ns3::WIFI_MAC_MGT_PROBE_RESPONSE, ns3::WIFI_MAC_MGT_REASSOCIATION_REQUEST, ns3::WIFI_MAC_MGT_REASSOCIATION_RESPONSE, ns3::WIFI_MAC_QOSDATA, ns3::WIFI_MAC_QOSDATA_CFACK, ns3::WIFI_MAC_QOSDATA_CFACK_CFPOLL, ns3::WIFI_MAC_QOSDATA_CFPOLL, ns3::WIFI_MAC_QOSDATA_NULL, ns3::WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL, and ns3::WIFI_MAC_QOSDATA_NULL_CFPOLL.

+ Here is the call graph for this function:

void ns3::WifiMacHeader::PrintFrameControl ( std::ostream &  os) const
private

Print the Frame Control field to the output stream.

Parameters
osthe output stream to print to

Definition at line 971 of file wifi-mac-header.cc.

References m_ctrlFromDs, m_ctrlMoreData, m_ctrlMoreFrag, m_ctrlRetry, and m_ctrlToDs.

Referenced by Print().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::Serialize ( Buffer::Iterator  start) const
virtual
Parameters
startan iterator which points to where the header should be written.

This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. The data written is expected to match bit-for-bit the representation of this header in a real network.

Implements ns3::Header.

Definition at line 1078 of file wifi-mac-header.cc.

References GetFrameControl(), GetQosControl(), GetSequenceControl(), m_addr1, m_addr2, m_addr3, m_addr4, m_ctrlFromDs, m_ctrlSubtype, m_ctrlToDs, m_ctrlType, m_duration, NS_ASSERT, ns3::SUBTYPE_CTL_ACK, ns3::SUBTYPE_CTL_BACKREQ, ns3::SUBTYPE_CTL_BACKRESP, ns3::SUBTYPE_CTL_CTS, ns3::SUBTYPE_CTL_RTS, ns3::TYPE_CTL, ns3::TYPE_DATA, ns3::TYPE_MGT, ns3::Buffer::Iterator::WriteHtolsbU16(), and ns3::WriteTo().

+ Here is the call graph for this function:

void ns3::WifiMacHeader::SetAddr4 ( Mac48Address  address)

Fill the Address 4 field with the given address.

Parameters
addressthe address to be used in the Address 4 field

Definition at line 97 of file wifi-mac-header.cc.

References first::address, and m_addr4.

Referenced by ns3::MeshWifiInterfaceMac::ForwardDown().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetAssocReq ( void  )

Set Type/Subtype values for an association request header.

Definition at line 102 of file wifi-mac-header.cc.

References m_ctrlSubtype, m_ctrlType, and ns3::TYPE_MGT.

Referenced by ns3::StaWifiMac::SendAssociationRequest().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetAssocResp ( void  )

Set Type/Subtype values for an association response header.

Definition at line 108 of file wifi-mac-header.cc.

References m_ctrlSubtype, m_ctrlType, and ns3::TYPE_MGT.

Referenced by ns3::ApWifiMac::SendAssocResp().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetBeacon ( void  )

Set Type/Subtype values for a beacon header.

Definition at line 126 of file wifi-mac-header.cc.

References m_ctrlSubtype, m_ctrlType, and ns3::TYPE_MGT.

Referenced by ns3::MeshWifiBeacon::CreateHeader(), and ns3::ApWifiMac::SendOneBeacon().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetBlockAck ( void  )

Set Type/Subtype values for a Block Ack header.

Definition at line 138 of file wifi-mac-header.cc.

References m_ctrlSubtype, m_ctrlType, and ns3::TYPE_CTL.

void ns3::WifiMacHeader::SetBlockAckReq ( void  )

Set Type/Subtype values for a Block Ack Request header.

Definition at line 132 of file wifi-mac-header.cc.

References m_ctrlSubtype, m_ctrlType, and ns3::TYPE_CTL.

void ns3::WifiMacHeader::SetDsFrom ( void  )

Set the From DS bit in the Frame Control field.

Definition at line 61 of file wifi-mac-header.cc.

References m_ctrlFromDs.

Referenced by ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::ApWifiMac::ForwardDown(), and ns3::dot11s::AirtimeLinkMetricCalculator::SetHeaderTid().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetDsTo ( void  )

Set the To DS bit in the Frame Control field.

Definition at line 71 of file wifi-mac-header.cc.

References m_ctrlToDs.

Referenced by ns3::StaWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), and ns3::dot11s::AirtimeLinkMetricCalculator::SetHeaderTid().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetDuration ( Time  duration)

Set the Duration/ID field with the given duration (Time object).

The method converts the given time to microseconds.

Parameters
durationthe duration (Time object)

Definition at line 314 of file wifi-mac-header.cc.

References ns3::Time::GetMicroSeconds(), m_duration, and NS_ASSERT.

Referenced by ns3::MacLow::SendAckAfterData(), ns3::MacLow::SendBlockAckResponse(), ns3::MacLow::SendCtsAfterRts(), ns3::MacLow::SendCtsToSelf(), ns3::MacLow::SendDataAfterCts(), ns3::MacLow::SendDataPacket(), and ns3::MacLow::SendRtsForPacket().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetFragmentNumber ( uint8_t  frag)

Set the fragment number of the header.

Parameters
fragthe given fragment number

Definition at line 329 of file wifi-mac-header.cc.

References m_seqFrag.

Referenced by ns3::DcaTxop::GetFragmentPacket(), ns3::EdcaTxopN::GetFragmentPacket(), ns3::EdcaTxopN::NotifyAccessGranted(), ns3::DcaTxop::NotifyAccessGranted(), and ns3::EdcaTxopN::SendAddBaRequest().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetFrameControl ( uint16_t  control)
private

Set the Frame Control field with the given raw value.

Parameters
controlthe raw Frame Control field value

Definition at line 831 of file wifi-mac-header.cc.

References m_ctrlFromDs, m_ctrlMoreData, m_ctrlMoreFrag, m_ctrlOrder, m_ctrlRetry, m_ctrlSubtype, m_ctrlToDs, m_ctrlType, and m_ctrlWep.

Referenced by Deserialize().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetId ( uint16_t  id)

Set the Duration/ID field with the given ID.

Parameters
idthe ID

Definition at line 321 of file wifi-mac-header.cc.

References m_duration.

void ns3::WifiMacHeader::SetMoreFragments ( void  )

Set the More Fragment bit in the Frame Control field.

Definition at line 337 of file wifi-mac-header.cc.

References m_ctrlMoreFrag.

Referenced by ns3::DcaTxop::GetFragmentPacket(), and ns3::EdcaTxopN::GetFragmentPacket().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetMultihopAction ( void  )

Set Type/Subtype values for a multihop action header.

Definition at line 157 of file wifi-mac-header.cc.

References m_ctrlSubtype, m_ctrlType, and ns3::TYPE_MGT.

void ns3::WifiMacHeader::SetNoOrder ( void  )
void ns3::WifiMacHeader::SetNoRetry ( void  )
void ns3::WifiMacHeader::SetOrder ( void  )

Set order bit in the frame control field.

Definition at line 341 of file wifi-mac-header.cc.

References m_ctrlOrder.

void ns3::WifiMacHeader::SetProbeReq ( void  )

Set Type/Subtype values for a probe request header.

Definition at line 114 of file wifi-mac-header.cc.

References m_ctrlSubtype, m_ctrlType, and ns3::TYPE_MGT.

Referenced by ns3::StaWifiMac::SendProbeRequest().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetProbeResp ( void  )

Set Type/Subtype values for a probe response header.

Definition at line 120 of file wifi-mac-header.cc.

References m_ctrlSubtype, m_ctrlType, and ns3::TYPE_MGT.

Referenced by ns3::ApWifiMac::SendProbeResp().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetQosAckPolicy ( enum QosAckPolicy  policy)

Set the QoS ACK policy in the QoS control field.

Parameters
policy

Definition at line 369 of file wifi-mac-header.cc.

References BLOCK_ACK, m_qosAckPolicy, NO_ACK, NO_EXPLICIT_ACK, and NORMAL_ACK.

Referenced by ns3::StaWifiMac::Enqueue(), ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::ApWifiMac::ForwardDown(), ns3::BlockAckManager::GetNextPacket(), and ns3::EdcaTxopN::VerifyBlockAck().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetQosAmsdu ( void  )

Set that A-MSDU is present.

Definition at line 402 of file wifi-mac-header.cc.

References m_amsduPresent.

Referenced by ns3::EdcaTxopN::NotifyAccessGranted().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetQosBlockAck ( void  )

Set the QoS ACK policy in the QoS control field to block ACK.

Definition at line 393 of file wifi-mac-header.cc.

References m_qosAckPolicy.

void ns3::WifiMacHeader::SetQosControl ( uint16_t  qos)
private

Set the QoS Control field with the given raw value.

Parameters
qosthe raw QoS Control field value

Definition at line 850 of file wifi-mac-header.cc.

References m_amsduPresent, m_qosAckPolicy, m_qosEosp, m_qosStuff, and m_qosTid.

Referenced by Deserialize().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetQosEosp ( )

Set the end of service period (EOSP) bit in the QoS control field.

Definition at line 361 of file wifi-mac-header.cc.

References m_qosEosp.

void ns3::WifiMacHeader::SetQosNoAck ( void  )

Set the QoS ACK policy in the QoS control field to no ACK.

Definition at line 398 of file wifi-mac-header.cc.

References m_qosAckPolicy.

void ns3::WifiMacHeader::SetQosNoAmsdu ( void  )

Set that A-MSDU is not present.

Definition at line 406 of file wifi-mac-header.cc.

References m_amsduPresent.

Referenced by ns3::StaWifiMac::Enqueue(), ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), and ns3::ApWifiMac::ForwardDown().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetQosNoEosp ( )

Un-set the end of service period (EOSP) bit in the QoS control field.

Definition at line 365 of file wifi-mac-header.cc.

References m_qosEosp.

Referenced by ns3::StaWifiMac::Enqueue(), ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), and ns3::ApWifiMac::ForwardDown().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetQosNormalAck ( void  )

Set the QoS ACK policy in the QoS control field to normal ACK.

Definition at line 388 of file wifi-mac-header.cc.

References m_qosAckPolicy.

void ns3::WifiMacHeader::SetQosTid ( uint8_t  tid)

Set the TID for the QoS header.

Parameters
tidthe TID for the QoS header

Definition at line 357 of file wifi-mac-header.cc.

References m_qosTid.

Referenced by ns3::StaWifiMac::Enqueue(), ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::ApWifiMac::ForwardDown(), and ns3::dot11s::AirtimeLinkMetricCalculator::SetHeaderTid().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetQosTxopLimit ( uint8_t  txop)

Set TXOP limit in the QoS control field.

Parameters
txop

Definition at line 410 of file wifi-mac-header.cc.

References m_qosStuff.

Referenced by ns3::StaWifiMac::Enqueue(), ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), and ns3::ApWifiMac::ForwardDown().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetRawDuration ( uint16_t  duration)

Set the Duration/ID field with the given raw uint16_t value.

Parameters
durationthe raw duration in uint16_t

Definition at line 309 of file wifi-mac-header.cc.

References m_duration.

void ns3::WifiMacHeader::SetRetry ( void  )

Set the Retry bit in the Frame Control field.

Definition at line 349 of file wifi-mac-header.cc.

References m_ctrlRetry.

Referenced by ns3::BlockAckManager::GetNextPacket(), ns3::DcaTxop::MissedAck(), ns3::EdcaTxopN::MissedAck(), and ns3::EdcaTxopN::MissedBlockAck().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetSequenceControl ( uint16_t  seq)
private

Set the Sequence Control field with the given raw value.

Parameters
seqthe raw Sequence Control field value

Definition at line 844 of file wifi-mac-header.cc.

References m_seqFrag, and m_seqSeq.

Referenced by Deserialize().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetSequenceNumber ( uint16_t  seq)

Set the sequence number of the header.

Parameters
seqthe given sequence number

Definition at line 325 of file wifi-mac-header.cc.

References m_seqSeq.

Referenced by ns3::EdcaTxopN::NotifyAccessGranted(), ns3::DcaTxop::NotifyAccessGranted(), and ns3::EdcaTxopN::SendAddBaRequest().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetType ( enum WifiMacType  type)

Set Type/Subtype values with the correct values depending on the given type.

Parameters
typethe WifiMacType for the header

Definition at line 163 of file wifi-mac-header.cc.

References m_ctrlFromDs, m_ctrlSubtype, m_ctrlToDs, m_ctrlType, ns3::SUBTYPE_CTL_ACK, ns3::SUBTYPE_CTL_BACKREQ, ns3::SUBTYPE_CTL_BACKRESP, ns3::SUBTYPE_CTL_CTLWRAPPER, ns3::SUBTYPE_CTL_CTS, ns3::SUBTYPE_CTL_RTS, ns3::TYPE_CTL, ns3::TYPE_DATA, ns3::TYPE_MGT, ns3::WIFI_MAC_CTL_ACK, ns3::WIFI_MAC_CTL_BACKREQ, ns3::WIFI_MAC_CTL_BACKRESP, ns3::WIFI_MAC_CTL_CTLWRAPPER, ns3::WIFI_MAC_CTL_CTS, ns3::WIFI_MAC_CTL_RTS, ns3::WIFI_MAC_DATA, ns3::WIFI_MAC_DATA_CFACK, ns3::WIFI_MAC_DATA_CFACK_CFPOLL, ns3::WIFI_MAC_DATA_CFPOLL, ns3::WIFI_MAC_DATA_NULL, ns3::WIFI_MAC_DATA_NULL_CFACK, ns3::WIFI_MAC_DATA_NULL_CFACK_CFPOLL, ns3::WIFI_MAC_DATA_NULL_CFPOLL, ns3::WIFI_MAC_MGT_ACTION, ns3::WIFI_MAC_MGT_ACTION_NO_ACK, ns3::WIFI_MAC_MGT_ASSOCIATION_REQUEST, ns3::WIFI_MAC_MGT_ASSOCIATION_RESPONSE, ns3::WIFI_MAC_MGT_AUTHENTICATION, ns3::WIFI_MAC_MGT_BEACON, ns3::WIFI_MAC_MGT_DEAUTHENTICATION, ns3::WIFI_MAC_MGT_DISASSOCIATION, ns3::WIFI_MAC_MGT_MULTIHOP_ACTION, ns3::WIFI_MAC_MGT_PROBE_REQUEST, ns3::WIFI_MAC_MGT_PROBE_RESPONSE, ns3::WIFI_MAC_MGT_REASSOCIATION_REQUEST, ns3::WIFI_MAC_MGT_REASSOCIATION_RESPONSE, ns3::WIFI_MAC_QOSDATA, ns3::WIFI_MAC_QOSDATA_CFACK, ns3::WIFI_MAC_QOSDATA_CFACK_CFPOLL, ns3::WIFI_MAC_QOSDATA_CFPOLL, ns3::WIFI_MAC_QOSDATA_NULL, ns3::WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL, and ns3::WIFI_MAC_QOSDATA_NULL_CFPOLL.

Referenced by ns3::StaWifiMac::Enqueue(), ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::ApWifiMac::ForwardDown(), ns3::MacLow::GetAckSize(), ns3::MacLow::GetBlockAckSize(), ns3::MacLow::GetCtsSize(), ns3::MacLow::GetRtsSize(), ns3::MacLow::NotifyNav(), ns3::MacLow::SendAckAfterData(), ns3::EdcaTxopN::SendBlockAckRequest(), ns3::MacLow::SendBlockAckResponse(), ns3::MacLow::SendCtsAfterRts(), ns3::MacLow::SendCtsToSelf(), and ns3::MacLow::SendRtsForPacket().

+ Here is the caller graph for this function:

void ns3::WifiMacHeader::SetTypeData ( void  )

Set Type/Subtype values for a data packet with no subtype equal to 0.

Definition at line 145 of file wifi-mac-header.cc.

References m_ctrlSubtype, m_ctrlType, and ns3::TYPE_DATA.

Referenced by ns3::StaWifiMac::Enqueue(), ns3::AdhocWifiMac::Enqueue(), ns3::OcbWifiMac::Enqueue(), ns3::MeshWifiInterfaceMac::ForwardDown(), ns3::ApWifiMac::ForwardDown(), and ns3::dot11s::AirtimeLinkMetricCalculator::SetHeaderTid().

+ Here is the caller graph for this function:

Member Data Documentation

Mac48Address ns3::WifiMacHeader::m_addr1
private

Definition at line 634 of file wifi-mac-header.h.

Referenced by Deserialize(), GetAddr1(), Print(), Serialize(), and SetAddr1().

Mac48Address ns3::WifiMacHeader::m_addr2
private

Definition at line 635 of file wifi-mac-header.h.

Referenced by Deserialize(), GetAddr2(), Print(), Serialize(), and SetAddr2().

Mac48Address ns3::WifiMacHeader::m_addr3
private

Definition at line 636 of file wifi-mac-header.h.

Referenced by Deserialize(), GetAddr3(), Print(), Serialize(), and SetAddr3().

Mac48Address ns3::WifiMacHeader::m_addr4
private

Definition at line 639 of file wifi-mac-header.h.

Referenced by Deserialize(), GetAddr4(), Print(), Serialize(), and SetAddr4().

uint8_t ns3::WifiMacHeader::m_amsduPresent
private
uint8_t ns3::WifiMacHeader::m_ctrlFromDs
private
uint8_t ns3::WifiMacHeader::m_ctrlMoreData
private

Definition at line 630 of file wifi-mac-header.h.

Referenced by GetFrameControl(), PrintFrameControl(), and SetFrameControl().

uint8_t ns3::WifiMacHeader::m_ctrlMoreFrag
private
uint8_t ns3::WifiMacHeader::m_ctrlOrder
private

Definition at line 632 of file wifi-mac-header.h.

Referenced by GetFrameControl(), SetFrameControl(), SetNoOrder(), and SetOrder().

uint8_t ns3::WifiMacHeader::m_ctrlRetry
private
uint8_t ns3::WifiMacHeader::m_ctrlToDs
private
uint8_t ns3::WifiMacHeader::m_ctrlWep
private

Definition at line 631 of file wifi-mac-header.h.

Referenced by GetFrameControl(), and SetFrameControl().

uint16_t ns3::WifiMacHeader::m_duration
private
uint8_t ns3::WifiMacHeader::m_qosAckPolicy
private
uint8_t ns3::WifiMacHeader::m_qosEosp
private

Definition at line 641 of file wifi-mac-header.h.

Referenced by GetQosControl(), IsQosEosp(), SetQosControl(), SetQosEosp(), and SetQosNoEosp().

uint16_t ns3::WifiMacHeader::m_qosStuff
private

Definition at line 644 of file wifi-mac-header.h.

Referenced by GetQosControl(), GetQosTxopLimit(), SetQosControl(), and SetQosTxopLimit().

uint8_t ns3::WifiMacHeader::m_qosTid
private

Definition at line 640 of file wifi-mac-header.h.

Referenced by GetQosControl(), GetQosTid(), SetQosControl(), and SetQosTid().

uint8_t ns3::WifiMacHeader::m_seqFrag
private
uint16_t ns3::WifiMacHeader::m_seqSeq
private

The documentation for this class was generated from the following files: