On 15 Jan 2026, at 19:58, [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]>
> ---
Thanks for getting this done Numan! The change looks good to me.
Note that this might need a rebase if merged after the offload series.
Acked-by: Eelco Chaudron <[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 9491dc90e..566ae54eb 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_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);
> --
>
> v2 -> v3:
> -------
> - Changed the log to debug and rephrased the log as per Eelco's
> suggestion.
>
>
>
> 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