OSDN Git Service

net/mlx5e: Use correct enum to determine uplink port
authorDmytro Linkin <dmitrolin@mellanox.com>
Tue, 29 Oct 2019 09:44:24 +0000 (11:44 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Wed, 6 Nov 2019 22:03:55 +0000 (14:03 -0800)
For vlan push action, if eswitch flow source capability is enabled, flow
source value compared with MLX5_VPORT_UPLINK enum, to determine uplink
port. This lead to syndrome in dmesg if try to add vlan push action.
For example:
 $ tc filter add dev vxlan0 ingress protocol ip prio 1 flower \
       enc_dst_port 4789 \
       action tunnel_key unset pipe \
       action vlan push id 20 pipe \
       action mirred egress redirect dev ens1f0_0
 $ dmesg
 ...
 [ 2456.883693] mlx5_core 0000:82:00.0: mlx5_cmd_check:756:(pid 5273): SET_FLOW_TABLE_ENTRY(0x936) op_mod(0x0) failed, status bad parameter(0x3), syndrome (0xa9c090)
Use the correct enum value MLX5_FLOW_CONTEXT_FLOW_SOURCE_UPLINK.

Fixes: bb204dcf39fe ("net/mlx5e: Determine source port properly for vlan push action")
Signed-off-by: Dmytro Linkin <dmitrolin@mellanox.com>
Reviewed-by: Vlad Buslov <vladbu@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c

index 7879e17..366bda1 100644 (file)
@@ -183,7 +183,8 @@ static bool mlx5_eswitch_offload_is_uplink_port(const struct mlx5_eswitch *esw,
        u32 port_mask, port_value;
 
        if (MLX5_CAP_ESW_FLOWTABLE(esw->dev, flow_source))
-               return spec->flow_context.flow_source == MLX5_VPORT_UPLINK;
+               return spec->flow_context.flow_source ==
+                                       MLX5_FLOW_CONTEXT_FLOW_SOURCE_UPLINK;
 
        port_mask = MLX5_GET(fte_match_param, spec->match_criteria,
                             misc_parameters.source_port);