Handles sequence numbering of IEEE 802.11 data frames. More...
#include "mac-tx-middle.h"
Public Member Functions | |
MacTxMiddle () | |
~MacTxMiddle () | |
uint16_t | GetNextSeqNumberByTidAndAddress (uint8_t tid, Mac48Address addr) const |
Return the next sequence number for the Traffic ID and destination. | |
uint16_t | GetNextSequenceNumberFor (const WifiMacHeader *hdr) |
Return the next sequence number for the given header. | |
uint16_t | PeekNextSequenceNumberFor (const WifiMacHeader *hdr) |
Return the next sequence number for the Traffic ID and destination, but do not pick it (i.e. | |
void | SetSequenceNumberFor (const WifiMacHeader *hdr) |
Set the sequence number of the given MAC header as the next sequence number for the Traffic ID and destination of the given MAC header. | |
Public Member Functions inherited from ns3::SimpleRefCount< MacTxMiddle > | |
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 | |
std::map< Mac48Address, uint16_t * > | m_qosSequences |
QOS sequences. | |
uint16_t | m_sequence |
current sequence number | |
Handles sequence numbering of IEEE 802.11 data frames.
Definition at line 40 of file mac-tx-middle.h.
ns3::MacTxMiddle::MacTxMiddle | ( | ) |
Definition at line 34 of file mac-tx-middle.cc.
References NS_LOG_FUNCTION.
ns3::MacTxMiddle::~MacTxMiddle | ( | ) |
Definition at line 40 of file mac-tx-middle.cc.
References m_qosSequences, and NS_LOG_FUNCTION.
uint16_t ns3::MacTxMiddle::GetNextSeqNumberByTidAndAddress | ( | uint8_t | tid, |
Mac48Address | addr | ||
) | const |
Return the next sequence number for the Traffic ID and destination.
tid | Traffic ID |
addr | destination address |
Definition at line 117 of file mac-tx-middle.cc.
References m_qosSequences, NS_ASSERT, and NS_LOG_FUNCTION.
uint16_t ns3::MacTxMiddle::GetNextSequenceNumberFor | ( | const WifiMacHeader * | hdr | ) |
Return the next sequence number for the given header.
hdr | Wi-Fi header |
Definition at line 52 of file mac-tx-middle.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetQosTid(), ns3::Mac48Address::IsGroup(), ns3::WifiMacHeader::IsQosData(), m_qosSequences, m_sequence, NS_ASSERT, and NS_LOG_FUNCTION.
uint16_t ns3::MacTxMiddle::PeekNextSequenceNumberFor | ( | const WifiMacHeader * | hdr | ) |
Return the next sequence number for the Traffic ID and destination, but do not pick it (i.e.
the current sequence number remains unchanged). This functions is used for A-MPDU aggregation.
hdr | Wi-Fi header |
Definition at line 91 of file mac-tx-middle.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetQosTid(), ns3::Mac48Address::IsGroup(), ns3::WifiMacHeader::IsQosData(), m_qosSequences, m_sequence, NS_ASSERT, and NS_LOG_FUNCTION.
void ns3::MacTxMiddle::SetSequenceNumberFor | ( | const WifiMacHeader * | hdr | ) |
Set the sequence number of the given MAC header as the next sequence number for the Traffic ID and destination of the given MAC header.
hdr | the given MAC header |
Definition at line 131 of file mac-tx-middle.cc.
References ns3::WifiMacHeader::GetAddr1(), ns3::WifiMacHeader::GetQosTid(), ns3::WifiMacHeader::GetSequenceNumber(), ns3::Mac48Address::IsGroup(), ns3::WifiMacHeader::IsQosData(), m_qosSequences, m_sequence, NS_ASSERT, and NS_LOG_FUNCTION.
|
private |
QOS sequences.
Definition at line 79 of file mac-tx-middle.h.
Referenced by ~MacTxMiddle(), GetNextSeqNumberByTidAndAddress(), GetNextSequenceNumberFor(), PeekNextSequenceNumberFor(), and SetSequenceNumberFor().
|
private |
current sequence number
Definition at line 80 of file mac-tx-middle.h.
Referenced by GetNextSequenceNumberFor(), PeekNextSequenceNumberFor(), and SetSequenceNumberFor().