net/mlx5: Set term table as an unmanaged flow table
commit6ff51ab8aaupstream. Termination tables are restricted to have the default miss action and cannot be set to forward to another table in case of a miss. If the fs prio of the termination table is not the last one in the list, fs_core will attempt to attach it to another table. Set the unmanaged ft flag when creating the termination table ft and select the tc offload prio for it to prevent fs_core from selecting the forwarding to next ft miss action and use the default one. In addition, set the flow that forwards to the termination table to ignore ft level restrictions since the ft level is not set by fs_core for unamanged fts. Fixes:249ccc3c95("net/mlx5e: Add support for offloading traffic from uplink to uplink") Signed-off-by: Ariel Levkovich <lariel@nvidia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
143154a151
commit
5dc905501f
1 changed files with 5 additions and 2 deletions
|
|
@ -76,10 +76,11 @@ mlx5_eswitch_termtbl_create(struct mlx5_core_dev *dev,
|
|||
/* As this is the terminating action then the termination table is the
|
||||
* same prio as the slow path
|
||||
*/
|
||||
ft_attr.flags = MLX5_FLOW_TABLE_TERMINATION |
|
||||
ft_attr.flags = MLX5_FLOW_TABLE_TERMINATION | MLX5_FLOW_TABLE_UNMANAGED |
|
||||
MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT;
|
||||
ft_attr.prio = FDB_SLOW_PATH;
|
||||
ft_attr.prio = FDB_TC_OFFLOAD;
|
||||
ft_attr.max_fte = 1;
|
||||
ft_attr.level = 1;
|
||||
ft_attr.autogroup.max_num_groups = 1;
|
||||
tt->termtbl = mlx5_create_auto_grouped_flow_table(root_ns, &ft_attr);
|
||||
if (IS_ERR(tt->termtbl)) {
|
||||
|
|
@ -216,6 +217,7 @@ mlx5_eswitch_termtbl_required(struct mlx5_eswitch *esw,
|
|||
int i;
|
||||
|
||||
if (!MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, termination_table) ||
|
||||
!MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, ignore_flow_level) ||
|
||||
attr->flags & MLX5_ESW_ATTR_FLAG_SLOW_PATH ||
|
||||
!mlx5_eswitch_offload_is_uplink_port(esw, spec))
|
||||
return false;
|
||||
|
|
@ -288,6 +290,7 @@ mlx5_eswitch_add_termtbl_rule(struct mlx5_eswitch *esw,
|
|||
/* create the FTE */
|
||||
flow_act->action &= ~MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT;
|
||||
flow_act->pkt_reformat = NULL;
|
||||
flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;
|
||||
rule = mlx5_add_flow_rules(fdb, spec, flow_act, dest, num_dest);
|
||||
if (IS_ERR(rule))
|
||||
goto revert_changes;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue