Subject: Re: Packetlost when "tc qdisc del dev eth0 root"

From: Jarek Poplawski <[email-masked]>
Date: Tue, 15 Jan 2008 22:15:26 +0100

Patrick McHardy wrote, On 01/15/2008 05:05 PM:

> Badalian Vyacheslav wrote:

...

> Yes, packets in the old qdisc are lost.
> 
>> Maybe if tc do changes - need create second queue (hash of rules or how 
>> you named it?) and do changes at it. Then replace old queue rules by 
>> created new.
>> Logic -
>> 1. Do snapshot
>> 2. Do changes in shapshot
>> 3. All new packets go to snapshot
>> 4. If old queue not have packets - delete it.
>> 5. Snapshot its default.
> 
> 
> That doesn't really work since qdiscs keep internal state that
> in large parts depends on the packets queued. Take the qlen as
> a simple example, the new qdisc doesn't know about the packets
> in the old one and will exceed the limit.

But, some similar alternative to killing packets 'to death' could
be imagined, I suppose (in the future, of course!). So, e.g. doing
the switch automatically after last packet has been dequeued (maybe
even with some 'special' function/mode for this). After all even
with accuracy lost, it could be less visible for clients than
current way?

Regards,
Jarek P.