net/mlx5e: Use function to map aRFS into traffic type
authorTariq Toukan <tariqt@mellanox.com>
Sun, 21 May 2017 08:08:18 +0000 (11:08 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Thu, 15 Jun 2017 21:12:41 +0000 (00:12 +0300)
For a better code reuse and readability, use the existing
function arfs_get_tt() to map arfs_type into mlx5e_traffic_types,
instead of duplicating the switch-case logic.

Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c

index f4017c0..12d3ced 100644 (file)
@@ -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);