[LARTC] Question on prio qdisc

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have been doing some experiments with the 
prio qdisc. I haven't tried to understand the
code, but the behavior I have observed in the
experiments leads me to believe that the prio
qdisc operates in the following manner when the
interface queue is full:
1) Suppose that we are operating with the default
3 priority bands and the interface queue is full
of packets of the lowest priority (indicated by the
TOS byte).
2) Then suppose a new packet of highest priority is to be 
sent to the interface for queuing.
3) It appears to me that the newly arriving packet of 
highest priority will be dropped because the queue is
full. Prio does not appear to drop one of the lower priority
packets waiting in the queue to make room for the 
higher priority packet.

The evidence for this conclusion is that I can set the
"txqueuelen" to a large value to make ample room for 
queuing high priority packets. Then if the interface 
is sent a mixture of an overload of low priority
packets and a small load of high priority packets, the
high priority packet suffer just as high a packet loss
percentage as the low priority packets. To me this indicates
that they are getting dropped at the interface because the
queue is full.

Can anyone with knowledge of the code or more knowledge
of the proper operation of the prio qdisc verify that this
is indeed what is happening?

Also, the way I would really like prio to operate is that when
the queue is full, I want it not to drop a newly arriving packet
unless there are no lower priority packets waiting in the queue.
If there is a lower priority packets waiting in the queue, I would
like this packet to be dropped to make room for the higher priority packet.
Does anyone know if there is a version of prio that operates this way, or
if there is another qdisc that provides this capability?

Thanks,
Bibb Cain


[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux