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. More... | |
uint16_t | GetNextSequenceNumberFor (const WifiMacHeader *hdr) |
Return the next sequence number for the given header. More... | |
uint16_t | PeekNextSequenceNumberFor (const WifiMacHeader *hdr) |
Return the next sequence number for the Traffic ID and destination, but do not pick it (i.e. More... | |
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. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< MacTxMiddle > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= ([[maybe_unused]] const SimpleRefCount &o) |
Assignment operator. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
Private Attributes | |
std::map< Mac48Address, uint16_t * > | m_qosSequences |
QOS sequences. More... | |
uint16_t | m_sequence |
current sequence number More... | |
Handles sequence numbering of IEEE 802.11 data frames.
Definition at line 39 of file mac-tx-middle.h.
ns3::MacTxMiddle::MacTxMiddle | ( | ) |
Definition at line 32 of file mac-tx-middle.cc.
References NS_LOG_FUNCTION.
ns3::MacTxMiddle::~MacTxMiddle | ( | ) |
Definition at line 38 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 114 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 48 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 87 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 128 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 77 of file mac-tx-middle.h.
Referenced by ~MacTxMiddle(), GetNextSeqNumberByTidAndAddress(), GetNextSequenceNumberFor(), PeekNextSequenceNumberFor(), and SetSequenceNumberFor().
|
private |
current sequence number
Definition at line 78 of file mac-tx-middle.h.
Referenced by GetNextSequenceNumberFor(), PeekNextSequenceNumberFor(), and SetSequenceNumberFor().