|
@@ -178,6 +178,7 @@ static int arfs_add_default_rule(struct mlx5e_priv *priv,
|
|
|
struct mlx5_flow_destination dest;
|
|
|
MLX5_DECLARE_FLOW_ACT(flow_act);
|
|
|
struct mlx5_flow_spec *spec;
|
|
|
+ enum mlx5e_traffic_types tt;
|
|
|
int err = 0;
|
|
|
|
|
|
spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
|
|
@@ -187,24 +188,16 @@ static int arfs_add_default_rule(struct mlx5e_priv *priv,
|
|
|
}
|
|
|
|
|
|
dest.type = MLX5_FLOW_DESTINATION_TYPE_TIR;
|
|
|
- switch (type) {
|
|
|
- case ARFS_IPV4_TCP:
|
|
|
- dest.tir_num = tir[MLX5E_TT_IPV4_TCP].tirn;
|
|
|
- break;
|
|
|
- case ARFS_IPV4_UDP:
|
|
|
- dest.tir_num = tir[MLX5E_TT_IPV4_UDP].tirn;
|
|
|
- break;
|
|
|
- case ARFS_IPV6_TCP:
|
|
|
- dest.tir_num = tir[MLX5E_TT_IPV6_TCP].tirn;
|
|
|
- break;
|
|
|
- case ARFS_IPV6_UDP:
|
|
|
- dest.tir_num = tir[MLX5E_TT_IPV6_UDP].tirn;
|
|
|
- break;
|
|
|
- default:
|
|
|
+ tt = arfs_get_tt(type);
|
|
|
+ if (tt == -EINVAL) {
|
|
|
+ netdev_err(priv->netdev, "%s: bad arfs_type: %d\n",
|
|
|
+ __func__, type);
|
|
|
err = -EINVAL;
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
+ dest.tir_num = tir[tt].tirn;
|
|
|
+
|
|
|
arfs_t->default_rule = mlx5_add_flow_rules(arfs_t->ft.t, spec,
|
|
|
&flow_act,
|
|
|
&dest, 1);
|