This fixes bpf_redirect_peer stats accounting for veth and netkit, and adds tstats in the first place for the latter. Utilise indirect call wrapper for bpf_redirect_peer, and improve test coverage of the latter also for netkit devices. Details in the patches, thanks! The series was targeted at bpf originally, and is done here as well, so it can trigger BPF CI. Jakub, if you think directly going via net is better since the majority of the diff touches net anyway, that is fine, too. Thanks! v2 -> v3: - Add kdoc for pcpu_stat_type (Simon) - Reject invalid type value in netdev_do_alloc_pcpu_stats (Simon) - Add Reviewed-by tags from list v1 -> v2: - Move stats allocation/freeing into net core (Jakub) - As prepwork for the above, move vrf's dstats over into the core - Add a check into stats alloc to enforce tstats upon implementing ndo_get_peer_dev - Add Acked-by tags from list Daniel Borkmann (6): net, vrf: Move dstats structure to core net: Move {l,t,d}stats allocation to core and convert veth & vrf netkit: Add tstats per-CPU traffic counters bpf, netkit: Add indirect call wrapper for fetching peer dev selftests/bpf: De-veth-ize the tc_redirect test case selftests/bpf: Add netkit to tc_redirect selftest Peilin Ye (2): veth: Use tstats per-CPU traffic counters bpf: Fix dev's rx stats for bpf_redirect_peer traffic drivers/net/netkit.c | 22 +- drivers/net/veth.c | 44 +-- drivers/net/vrf.c | 38 +-- include/linux/netdevice.h | 30 +- include/net/netkit.h | 6 + net/core/dev.c | 57 +++- net/core/filter.c | 19 +- .../selftests/bpf/prog_tests/tc_redirect.c | 317 +++++++++++------- 8 files changed, 334 insertions(+), 199 deletions(-) -- 2.34.1