Re: [PATCH net] veth: Fix RX stats for bpf_redirect_peer() traffic

From: Daniel Borkmann
Date: Sat Oct 28 2023 - 03:07:11 EST


Hi Peilin,

On 10/27/23 9:02 PM, Peilin Ye wrote:
On Fri, Oct 27, 2023 at 06:46:57PM +0000, Peilin Ye wrote:
diff --git a/net/core/filter.c b/net/core/filter.c
index 21d75108c2e9..7aca28b7d0fd 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -2492,6 +2492,7 @@ int skb_do_redirect(struct sk_buff *skb)
net_eq(net, dev_net(dev))))
goto out_drop;
skb->dev = dev;
+ dev_sw_netstats_rx_add(dev, skb->len);

This assumes that all devices that support BPF_F_PEER (currently only
veth) use tstats (instead of lstats, or dstats) - is that okay?

Dumb question, but why all this change and not simply just call ...

dev_lstats_add(dev, skb->len)

... on the host dev ?

If not, should I add another NDO e.g. ->ndo_stats_rx_add()?

Definitely no new stats ndo resp indirect call in fast path.

Thanks,
Daniel