On 1/16/26 6:12 PM, [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]> > Acked-by: Eelco Chaudron <[email protected]> > Signed-off-by: Numan Siddique <[email protected]> > --- > > v3 -> v4 > ------ > - Rebased (there were no conflicts) > - Added Eelco's Ack. > > v2 -> v3 > ------- > - Changed the log to debug and rephrased the log as per Eelco's > suggestion. > > > lib/dpif-offload-tc-netdev.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/lib/dpif-offload-tc-netdev.c b/lib/dpif-offload-tc-netdev.c > index dd63f7cfd..f40cf7342 100644 > --- a/lib/dpif-offload-tc-netdev.c > +++ b/lib/dpif-offload-tc-netdev.c > @@ -2341,6 +2341,12 @@ netdev_offload_tc_flow_put(struct dpif *dpif, struct > netdev *netdev, > return -ifindex; > } > > + if (key->recirc_id > TC_ACT_EXT_VAL_MASK) { > + VLOG_DBG_RL(&rl, "flow recirc_id %u exceeds the chain id upper > limit", > + key->recirc_id); > + return EOPNOTSUPP; > + } > + > memset(&flower, 0, sizeof flower); > > exact_match_on_dl_type = mask->dl_type == htons(0xffff);
Thanks, Numan and Eelco! Applied and backported down to 3.3. Best regards, Ilya Maximets. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
