28 |
28 |
29 DropTailQueue::DropTailQueue () : |
29 DropTailQueue::DropTailQueue () : |
30 m_packets (), |
30 m_packets (), |
31 m_maxPackets(DTQ_NPACKETS_MAX_DEFAULT) |
31 m_maxPackets(DTQ_NPACKETS_MAX_DEFAULT) |
32 { |
32 { |
33 NS3_TRACE(dtqDebug, |
33 NS_DEBUG( |
34 "DropTailQueue::DropTailQueue ()") |
34 "DropTailQueue::DropTailQueue ()") |
35 } |
35 } |
36 |
36 |
37 DropTailQueue::DropTailQueue (TraceContainer &traceContainer) : |
37 DropTailQueue::DropTailQueue (TraceContainer &traceContainer) : |
38 m_packets(), |
38 m_packets(), |
39 m_maxPackets(DTQ_NPACKETS_MAX_DEFAULT) |
39 m_maxPackets(DTQ_NPACKETS_MAX_DEFAULT) |
40 { |
40 { |
41 NS3_TRACE(dtqDebug, |
41 NS_DEBUG( |
42 "DropTailQueue::DropTailQueue (" << &traceContainer << ")") |
42 "DropTailQueue::DropTailQueue (" << &traceContainer << ")") |
43 |
43 |
44 RegisterTraces(traceContainer); |
44 RegisterTraces(traceContainer); |
45 } |
45 } |
46 |
46 |
47 DropTailQueue::~DropTailQueue () |
47 DropTailQueue::~DropTailQueue () |
48 { |
48 { |
49 NS3_TRACE(dtqDebug, |
49 NS_DEBUG( |
50 "DropTailQueue::~DropTailQueue ()") |
50 "DropTailQueue::~DropTailQueue ()") |
51 } |
51 } |
52 |
52 |
53 void |
53 void |
54 DropTailQueue::SetMaxPackets (uint32_t npackets) |
54 DropTailQueue::SetMaxPackets (uint32_t npackets) |
55 { |
55 { |
56 NS3_TRACE(dtqDebug, |
56 NS_DEBUG( |
57 "DropTailQueue::SetMaxPackets (" << npackets << ")") |
57 "DropTailQueue::SetMaxPackets (" << npackets << ")") |
58 |
58 |
59 m_maxPackets = npackets; |
59 m_maxPackets = npackets; |
60 } |
60 } |
61 |
61 |
62 uint32_t |
62 uint32_t |
63 DropTailQueue::GetMaxPackets (void) |
63 DropTailQueue::GetMaxPackets (void) |
64 { |
64 { |
65 NS3_TRACE(dtqDebug, |
65 NS_DEBUG( |
66 "DropTailQueue::GetMaxPackets () <= " << m_maxPackets) |
66 "DropTailQueue::GetMaxPackets () <= " << m_maxPackets) |
67 |
67 |
68 return m_maxPackets; |
68 return m_maxPackets; |
69 } |
69 } |
70 |
70 |
71 bool |
71 bool |
72 DropTailQueue::DoEnque (const Packet& p) |
72 DropTailQueue::DoEnque (const Packet& p) |
73 { |
73 { |
74 NS3_TRACE(dtqDebug, |
74 NS_DEBUG( |
75 "DropTailQueue::DoEnque (" << &p << ")") |
75 "DropTailQueue::DoEnque (" << &p << ")") |
76 |
76 |
77 if (m_nPackets >= m_maxPackets) |
77 if (m_nPackets >= m_maxPackets) |
78 { |
78 { |
79 NS3_TRACE(dtqDebug, |
79 NS_DEBUG( |
80 "DropTailQueue::DoEnque (): Queue full -- droppping pkt") |
80 "DropTailQueue::DoEnque (): Queue full -- droppping pkt") |
81 Drop (p); |
81 Drop (p); |
82 return false; |
82 return false; |
83 } |
83 } |
84 |
84 |
87 } |
87 } |
88 |
88 |
89 bool |
89 bool |
90 DropTailQueue::DoDeque (Packet& p) |
90 DropTailQueue::DoDeque (Packet& p) |
91 { |
91 { |
92 NS3_TRACE(dtqDebug, |
92 NS_DEBUG( |
93 "DropTailQueue::DoDeque (" << &p << ")") |
93 "DropTailQueue::DoDeque (" << &p << ")") |
94 |
94 |
95 if (m_packets.empty()) |
95 if (m_packets.empty()) |
96 { |
96 { |
97 NS3_TRACE(dtqDebug, |
97 NS_DEBUG( |
98 "DropTailQueue::DoDeque (): Queue empty") |
98 "DropTailQueue::DoDeque (): Queue empty") |
99 return false; |
99 return false; |
100 } |
100 } |
101 |
101 |
102 p = m_packets.front (); |
102 p = m_packets.front (); |
103 m_packets.pop (); |
103 m_packets.pop (); |
104 |
104 |
105 NS3_TRACE(dtqDebug, |
105 NS_DEBUG( |
106 "DropTailQueue::DoDeque (): Popped " << &p << " <= true") |
106 "DropTailQueue::DoDeque (): Popped " << &p << " <= true") |
107 |
107 |
108 return true; |
108 return true; |
109 } |
109 } |
110 |
110 |