On 10/5/2026 1:16 AM, Julius Bairaktaris wrote:
The next patch makes the flowtable emit FLOW_ACTION_PRIORITY for flows
with a non-zero skb->priority, which on IPv4 includes the priority
ip_forward() derives from the TOS by default. mlx5 would reject these
rules and stop offloading flows it offloads today.
[...]
+ /* The eswitch does not apply skb->priority to flowtable flows. */
+ if (mlx5e_is_ft_flow(parse_state->flow))
+ return 0;
The handler is only in tc_acts_fdb[] and only accepts flowtable flows,
so NIC mode and tc flower rules are rejected as before. Looks good.
The comment says what the code does, but the consequence is worth a line
in the commit message. Because the action is ignored, the priority only
reaches packets still on the software fast path, where
nf_flow_offload_forward() sets skb->priority. Once the flow is offloaded
to the FDB, mlx5 forwards it without touching skb->priority, so the
offloaded packets do not carry it. Refusing the flow to honor the
priority would keep it in software, so ignoring the action and keeping
the offload is the better tradeoff, it is just not obvious from the code.
I checked this on ConnectX-7: with the series the priority-carrying
flows stay offloaded to the FDB like plain flows, and without patch 1/3
they fallback to software.
Nit: "prio" already means flow table priority in mlx5; skbedit_prio
would be clearer. Not a blocker.
Reviewed-by: Jianbo Liu <[email protected]>