Message ID | a6b33109dea5e82d975ea1ee229f7714d0ffdf77.1639162846.git.lorenzo@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | BPF |
Headers | show |
Series | mvneta: introduce XDP multi-buffer support | expand |
On 10/12/2021 20.14, Lorenzo Bianconi wrote: > XDP_REDIRECT is not fully supported yet for xdp multi-buff since not > all XDP capable drivers can map non-linear xdp_frame in ndo_xdp_xmit > so disable it for the moment. > > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> > --- LGTM you addressed my last review comments. Acked-by: Jesper Dangaard Brouer <brouer@redhat.com> I do expect followup patches that add support for ndo_xdp_xmit in drivers... > net/core/filter.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/net/core/filter.c b/net/core/filter.c > index 14860931733d..def6e9f451a7 100644 > --- a/net/core/filter.c > +++ b/net/core/filter.c > @@ -4186,6 +4186,13 @@ int xdp_do_redirect(struct net_device *dev, struct xdp_buff *xdp, > struct bpf_map *map; > int err; > > + /* XDP_REDIRECT is not fully supported yet for xdp multi-buff since > + * not all XDP capable drivers can map non-linear xdp_frame in > + * ndo_xdp_xmit. > + */ > + if (unlikely(xdp_buff_is_mb(xdp) && map_type != BPF_MAP_TYPE_CPUMAP)) > + return -EOPNOTSUPP; > + > ri->map_id = 0; /* Valid map id idr range: [1,INT_MAX[ */ > ri->map_type = BPF_MAP_TYPE_UNSPEC; > >
diff --git a/net/core/filter.c b/net/core/filter.c index 14860931733d..def6e9f451a7 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -4186,6 +4186,13 @@ int xdp_do_redirect(struct net_device *dev, struct xdp_buff *xdp, struct bpf_map *map; int err; + /* XDP_REDIRECT is not fully supported yet for xdp multi-buff since + * not all XDP capable drivers can map non-linear xdp_frame in + * ndo_xdp_xmit. + */ + if (unlikely(xdp_buff_is_mb(xdp) && map_type != BPF_MAP_TYPE_CPUMAP)) + return -EOPNOTSUPP; + ri->map_id = 0; /* Valid map id idr range: [1,INT_MAX[ */ ri->map_type = BPF_MAP_TYPE_UNSPEC;
XDP_REDIRECT is not fully supported yet for xdp multi-buff since not all XDP capable drivers can map non-linear xdp_frame in ndo_xdp_xmit so disable it for the moment. Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> --- net/core/filter.c | 7 +++++++ 1 file changed, 7 insertions(+)