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
