jamal wrote:
I dont have time, but please double check that the following still
applies:
1) A qdisc receiving a STOLEN/QUEUED/SHOT signal from the classification
result MUST free the packet and immediately stop processing that packet.
The infrastructure code will clone packets if they want to steal or
queue it.
It does now. Before there were things like "unsigned int len = skb->len"
after the call to tc_classify.
2) Return code of qdisc from enqueue function need to be dealt with
care. For example if the packet is localy generated and it is a TCP
packet you could confuse the stack by telling it the packet was dropped
because it will retransmit (and some things will happen with the window
adjustments).
TC_ACT_SHOT => NET_XMIT_DROP
TC_ACT_STOLEN | TC_ACT_QUEUED => NET_XMIT_SUCCESS
3) packets that are dropped because of a full Q should continue to
return a XMIT_DROP (you want TCP for example to know about this)
They do.
|