23 #include "ns3/assert.h"
25 #include "mac-tx-middle.h"
26 #include "wifi-mac-header.h"
30 MacTxMiddle::MacTxMiddle ()
35 MacTxMiddle::~MacTxMiddle ()
37 for (std::map<Mac48Address,uint16_t*>::iterator i = m_qosSequences.begin (); i != m_qosSequences.end (); i++)
44 MacTxMiddle::GetNextSequenceNumberfor (
const WifiMacHeader *hdr)
48 && !hdr->GetAddr1 ().IsGroup ())
50 uint8_t tid = hdr->GetQosTid ();
52 std::map<Mac48Address, uint16_t*>::iterator it = m_qosSequences.find (hdr->GetAddr1 ());
53 if (it != m_qosSequences.end ())
55 retval = it->second[tid];
57 it->second[tid] %= 4096;
62 std::pair <Mac48Address,uint16_t*> newSeq (hdr->GetAddr1 (),
new uint16_t[16]);
63 std::pair <std::map<Mac48Address,uint16_t*>::iterator,
bool> newIns = m_qosSequences.insert (newSeq);
65 for (uint8_t i = 0; i < 16; i++)
67 newIns.first->second[i] = 0;
69 newIns.first->second[tid]++;
82 MacTxMiddle::GetNextSeqNumberByTidAndAddress (uint8_t tid, Mac48Address addr)
const
86 std::map <Mac48Address,uint16_t*>::const_iterator it = m_qosSequences.find (addr);
87 if (it != m_qosSequences.end ())
89 return it->second[tid];
#define NS_ASSERT(condition)