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. > + } > + > 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
