|
|
| 22 |
#include "ns3/simulator.h" |
22 |
#include "ns3/simulator.h" |
| 23 |
#include "ns3/packet.h" |
23 |
#include "ns3/packet.h" |
| 24 |
#include "ns3/uinteger.h" |
24 |
#include "ns3/uinteger.h" |
|
|
25 |
#include "ns3/trace-source-accessor.h" |
| 25 |
|
26 |
|
| 26 |
#include "wifi-mac-queue.h" |
27 |
#include "wifi-mac-queue.h" |
| 27 |
#include "qos-blocked-destinations.h" |
28 |
#include "qos-blocked-destinations.h" |
|
|
| 52 |
TimeValue (Seconds (10.0)), |
53 |
TimeValue (Seconds (10.0)), |
| 53 |
MakeTimeAccessor (&WifiMacQueue::m_maxDelay), |
54 |
MakeTimeAccessor (&WifiMacQueue::m_maxDelay), |
| 54 |
MakeTimeChecker ()) |
55 |
MakeTimeChecker ()) |
|
|
56 |
.AddTraceSource ("PacketDrop", "Triggered whenever a packet was drop from queue due to MaxPacketNumber/MaxDelay constraints.", |
| 57 |
MakeTraceSourceAccessor (&WifiMacQueue::m_packetDropTrace)) |
| 55 |
; |
58 |
; |
| 56 |
return tid; |
59 |
return tid; |
| 57 |
} |
60 |
} |
|
|
| 95 |
Cleanup (); |
98 |
Cleanup (); |
| 96 |
if (m_size == m_maxSize) |
99 |
if (m_size == m_maxSize) |
| 97 |
{ |
100 |
{ |
|
|
101 |
NotifyQueueDrop (packet); |
| 98 |
return; |
102 |
return; |
| 99 |
} |
103 |
} |
| 100 |
Time now = Simulator::Now (); |
104 |
Time now = Simulator::Now (); |
|
|
| 120 |
} |
124 |
} |
| 121 |
else |
125 |
else |
| 122 |
{ |
126 |
{ |
|
|
127 |
NotifyQueueDrop (i->packet); |
| 123 |
i = m_queue.erase (i); |
128 |
i = m_queue.erase (i); |
| 124 |
n++; |
129 |
n++; |
| 125 |
} |
130 |
} |
|
|
| 247 |
return 0; |
252 |
return 0; |
| 248 |
} |
253 |
} |
| 249 |
|
254 |
|
|
|
255 |
void |
| 256 |
WifiMacQueue::NotifyQueueDrop (Ptr<const Packet> pkt) const |
| 257 |
{ |
| 258 |
m_packetDropTrace (pkt); |
| 259 |
} |
| 260 |
|
| 250 |
bool |
261 |
bool |
| 251 |
WifiMacQueue::Remove (Ptr<const Packet> packet) |
262 |
WifiMacQueue::Remove (Ptr<const Packet> packet) |
| 252 |
{ |
263 |
{ |