Subject: Re: [PATCH net-next v2] net: core: set and refine qdisc pkt len before tc_classify

From: Alexei Starovoitov <[email-masked]>
Date: Wed, 13 May 2015 15:27:09 -0700

On 5/13/15 2:38 PM, Eric Dumazet wrote:
>
> One possibility would be to set it in GRO engine.
>
> But then we would have to set qdisc_skb_cb(skb)->pkt_len = skb->len for
> non GRO packets.
>
> Also note the DODGY thing might be not needed for ingress,
> and I am not sure we can currently deliver UDP aggregated packets.

yeah, current qdisc_pkt_len_init() is certainly TX oriented.
I'm not sure we can use tcp_hdrlen(skb) on RX which is called as
part of qdisc_pkt_len_init().
I think it's probably better to take Florian's V1 with:
qdisc_skb_cb(skb)->pkt_len = skb->len;
to fix immediate breakage of act police and then proceed further?
Like doing qdisc_skb_cb(skb)->pkt_len = skb->len inside GRO engine
is probably not possible, since cb is used by napi_gro_cb ?