Subject: Re: HTB/act_mirred problem [was: one more... iproute commands lockup whole system]

From: Patrick McHardy <[email-masked]>
Date: Wed, 04 Apr 2007 16:50:11 +0200

jamal wrote:
> On Wed, 2007-04-04 at 16:13 +0200, Patrick McHardy wrote:
> 
>>This seems to be due to be caused by act_mirred returning TC_ACT_STOLEN,
>>which is translated to NET_XMIT_SUCCESS within prio, causing HTB to
>>increase the q.qlen counter and activating the class despite no packet
>>beeing queued.
>>
>>Jamal, we can't return NET_XMIT_SUCCESS unless we've really queued the
>>packet. I can't remeber the reason why this is done, could you remind
>>me?
> 
> 
> IIRC, It had to do with not confusing TCP to try and retransmit. 

No, that was the default return code which applies to TC_ACT_SHOT
and unclassified packets (29f1df6cc1c3ee3530939f0e38d80a9b50645ba5).
Returning NET_XMIT_SUCCESS for TC_ACT_STOLEN/TC_ACT_QUEUED has always
been done.

Anyway, we can't return NET_XMIT_SUCCESS, so how about just returning
NET_XMIT_BYPASS in all cases where the packet was stolen/dropped/...
by TC actions?

> I can
> go back and look at my notes to be certain. At one point i posted those
> notes, it maybe time to add them to the kernel code or doc somewhere.

In case they're still up to date, adding them somewhere under
Documentation/ sounds good.