On Fri, 9 Oct 2020 11:33:33 -0700 Maciej Żenczykowski <maze@xxxxxxxxxx> wrote: > > > This change makes it possible to identify SKBs that have been redirected > > > by TC-BPF (cls_act). This is needed for a number of cases. > > > > > > (1) For collaborating with driver ifb net_devices. > > > (2) For avoiding starting generic-XDP prog on TC ingress redirect. > > > > > > Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx> > > > > Not sure if anyone actually cares about ifb devices, but my worry is that the > > generic XDP vs tc interaction has been as-is for quite some time so this change > > in behavior could break in the wild. No, I believe this happened as recent at kernel v5.2, when Stephen Hemminger changed this in commit 458bf2f224f0 ("net: core: support XDP generic on stacked devices."). And for the record I think that patch/change was a mistake, as people should not use generic-XDP for these kind of stacked devices (they should really use TC-BPF as that is the right tool for the job). > I'm not at all sure of the interactions/implications here. > But I do have a request to enable ifb on Android for ingress rate > limiting and separately we're trying to make XDP work... > So we might at some point end up with cellular interfaces with xdp > ebpf (redirect for forwarding/nat/tethering) + ifb + tc ebpf (for > device local stuff). To me I was very surprised when I discovered tc-redirect didn't work with ifb driver. And it sounds like you have an actual use-case for this on Android. > But this is still all very vague and 'ideas only' level. > (and in general I think I'd like to get rid of the redirect in tc > ebpf, and leave only xlat64 translation for to-the-device traffic in > there, so maybe there's no problem anyway??) I know it sounds strange coming from me "Mr.XDP", but I actaully think that in many cases you will be better off with using TC-BPF. Especially on Android, as it will be very hard to get native-XDP implemented in all these different drivers. (And you don't want to use generic-XDP, because there is a high chance it causes a reallocation of the SKB, which is a huge performance hit). -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer