On Wed, Dec 17, 2025 at 10:29 AM Eelco Chaudron <[email protected]> wrote:
>
>
>
> On 29 Nov 2025, at 0:07, [email protected] wrote:
>
> > From: Numan Siddique <[email protected]>
> >
> > Kernel reserves the highest nibble of TCA_CHAIN for extended action
> > types.  This means we can't offload the recirculations with values
> > greater than 2^28.  Instead of kernel tc returning the error,
> > netdev_tc_flow_put() does the check and returns the error.
> >
> > Reported-at: 
> > https://mail.openvswitch.org/pipermail/ovs-dev/2025-November/427485.html
> > Suggested-by: Ilya Maximets <[email protected]>
> > Signed-off-by: Numan Siddique <[email protected]>
> > ---
> >  lib/netdev-offload-tc.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/lib/netdev-offload-tc.c b/lib/netdev-offload-tc.c
> > index 9491dc90ea..d4b6e72f0a 100644
> > --- a/lib/netdev-offload-tc.c
> > +++ b/lib/netdev-offload-tc.c
> > @@ -2329,6 +2329,12 @@ netdev_tc_flow_put(struct netdev *netdev, struct 
> > match *match,
> >          return -ifindex;
> >      }
> >
> > +    if (key->recirc_id > TC_ACT_EXT_VAL_MASK) {
> > +        VLOG_ERR_RL(&error_rl, "flow recirc_id %u can't be used as chain 
> > id. "
> > +                    "It exceeds upper limit", key->recirc_id);
> > +        return -EINVAL;
>
> I think we should EOPNOTSUPP here, as we do for all things we can’t offload.

Thanks for the reviews.

Ack.  I'll address it in v2.

Numan

>
>
> > +    }
> > +
> >      memset(&flower, 0, sizeof flower);
> >
> >      exact_match_on_dl_type = mask->dl_type == htons(0xffff);
> > --
> > 2.52.0
> >
> > _______________________________________________
> > dev mailing list
> > [email protected]
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to