Hi, I am redirecting ingress traffic from eth0 to ifb0 in order to do some ingress traffic shaping: $ tc qdisc add dev eth0 handle ffff: ingress $ tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 \ action mirred egress redirect dev ifb0 $ tc qdisc add dev ifb0 handle 1:0 root dsmark indices 4 default_index 0 $ tc qdisc add dev ifb0 handle 2:0 parent 1:0 htb r2q 2 ... etc. The ingress traffic shaping works but the stats don't seem to work correctly: $ nl-qdisc-list --stats qdisc ingress dev eth0 id ffff: parent ingress refcnt 1 no options Stats: bytes packets drops overlimits qlen backlog 305.15 MiB 223339 0 0 0 0 0.000000000 B/s 0 pps qdisc dsmark dev ifb0 id 1: parent root indices 0x0004 refcnt 2 default index 0x0000 Stats: bytes packets drops overlimits qlen backlog 0.000000000 B 0 0 0 0 0 0.000000000 B/s 0 pps indices 0x0004 qdisc htb dev ifb0 id 2: parent 1: r2q 2 default-class none refcnt 1 no options Stats: bytes packets drops overlimits qlen backlog 0.000000000 B 0 0 0 0 0 0.000000000 B/s 0 pps r2q 2 default-class none ... I am expecting to see as many bytes and packets in dsmark on ifb0 than ingress on eth0. The buffers are correctly accounted in the ingress qdisc, but after the redirection to ifb0, the counters remain at zero. - Do I miss something, like a kernel CONFIG to enable stats on ifb0? - Even on the ingress qdisc, the stats are partial: TCA_STATS2 contains TCA_STATS_BASIC and TCA_STATS_QUEUE but TCA_STATS_RATE_EST is missing. My tests are on a 3.8.0 kernel. As far as I understand, the skb in ifb0 is a clone from the initial skb: net/sched/act_mirred.c:tcf_mirred calls skb_act_clone. And cloning don't copy the control buffer (struct sk_buff)->cb where qdisc_skb_cb(skb)->pkt_len is stored. I am not sure where it is initialized in this case. Best regards, Alban -- To unsubscribe from this list: send the line "unsubscribe lartc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html