Queues NS3

69 views
Skip to first unread message

abdelkader ralem

unread,
Apr 20, 2024, 10:16:17 AM4/20/24
to ns-3-users
Hi, 
In the documentation it is stated that : 
// If the size of the DropTail queue of the netdevice were increased from 1
// to a large number (e.g. 1000), one would observe that the number of dropped
// packets goes to zero, but the latency grows in an uncontrolled manner. This
// is the so-called bufferbloat problem, and illustrates the importance of
// having a small device queue, so that the standing queues build in the traffic
// control layer where they can be managed by advanced queue discs rather than
// in the device layer.

After dumping the config paths i found these values :

value /$ns3::NodeListPriv/NodeList/0/$ns3::Node/DeviceList/0/$ns3::WifiNetDevice/Mac/$ns3::OcbWifiMac/Txop/$ns3::Txop/Queue/$ns3::WifiMacQueue/MaxSize "500p"

value /$ns3::NodeListPriv/NodeList/0/$ns3::Node/$ns3::Ipv4L3Protocol/InterfaceList/1/$ns3::Ipv4Interface/ArpCache/$ns3::ArpCache/PendingQueueSize "3"

value /$ns3::NodeListPriv/NodeList/0/$ns3::Node/$ns3::TrafficControlLayer/RootQueueDiscList/0/$ns3::FqCoDelQueueDisc/MaxSize "10240p"

Does this configuration respect the statement above. 

I guess the default droptail queue size at the netdevice is 100 packets but i see it 500 packets here. im using ns3.38. is this config correct.


Tom Henderson

unread,
Apr 20, 2024, 11:34:48 AM4/20/24
to ns-3-...@googlegroups.com, abdelkader ralem
There are different queues with different architectures/approaches in
different NetDevice types.

When using internet models, there is a traffic control sublayer that
exists between the IP layer and the devices. This also adds another
queue. In terms of layered model, it looks like this:

IP
Traffic Control Layer (has a queue)
NetDevice (has a queue)
Channel

It is this layered model that the documentation you cite is referring to.

The WifiMacQueue, in particular, has a default queue depth of 500
packets, but it is not a simple DropTail queue but a more complicated
architecture.

DropTail queues are typically installed in the SimpleNetDevice,
CsmaNetDevice, and PointToPointNetDevice types. Other NetDevices and
the traffic control layer use different types of queues.

- Tom

abdelkader ralem

unread,
Apr 20, 2024, 12:07:44 PM4/20/24
to ns-3-users
Thank you Tom.

In my case i think the default root qdisc is Mq with as many FqCoDel child queue discs as the number of device queues.
from the docs it is said : It has as many child queue discs as the number of device transmission queues. Packets are directly enqueued into and dequeued from child queue discs.

Does Transmission Queues here means that for every type of packet there is a queue in the netdevice (for example : RTS, CTS, AODV, TCP). 
 
How to get the InternalQueueList attribute from the Queue. 
Any examples on how to get the different traces exposed by the parent class ns3::QueueDisc.



Tom Henderson

unread,
Apr 20, 2024, 3:08:25 PM4/20/24
to ns-3-...@googlegroups.com, abdelkader ralem
On 4/20/24 09:07, abdelkader ralem wrote:
> Thank you Tom.
>
> In my case i think the default root qdisc is Mq with as many FqCoDel
> child queue discs as the number of device queues.
> from the docs it is said : It has as many child queue discs as the
> number of device transmission queues. Packets are directly enqueued into
> and dequeued from child queue discs.

Please be aware that the ns-3 mq queue disc for Wi-Fi configurations is
just a pass-through to the WifiMacQueue until that queue is completely
full. There is some more discussion about this here:

https://www.nsnam.org/docs/release/3.41/models/html/wifi-design.html#mac-queues

>
> Does Transmission Queues here means that for every type of packet there
> is a queue in the netdevice (for example : RTS, CTS, AODV, TCP).

See also the above documentation-- in general, there are separate
subqueues for each WifiMacQueue that are separated by type of frame,
destination, and TID, and then a scheduler that selects the next
eligible packets from these subqueues once a TXOP is obtained.

> How to get the InternalQueueList attribute from the Queue.

I don't know this offhand; they do not appear to be connected to Config
trace paths.

> Any examples on how to get the different traces exposed by the parent
> class ns3::QueueDisc

In file examples/traffic-control/traffic-control.cc, look at how
PacketsInQueue trace is accessed.

> <https://www.nsnam.org/docs/release/3.38/doxygen/d5/d52/classns3_1_1_queue_disc.html>.
>

abdelkader ralem

unread,
Apr 20, 2024, 3:32:06 PM4/20/24
to ns-3-users
Thank you very much Tom. Highly Appreciate it.
Reply all
Reply to author
Forward
0 new messages