OSDN Git Service

net/mlx5: Define fdb tc levels per prio
authorPaul Blakey <paulb@mellanox.com>
Mon, 11 Nov 2019 23:34:26 +0000 (00:34 +0100)
committerSaeed Mahameed <saeedm@mellanox.com>
Wed, 13 Nov 2019 21:49:32 +0000 (13:49 -0800)
Define FDB_TC_LEVELS_PER_PRIO instead of magic number 2.
This is the number of levels used by each tc prio table in the fdb.

Signed-off-by: Paul Blakey <paulb@mellanox.com>
Reviewed-by: Mark Bloch <markb@mellanox.com>
Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c

index d73187b..8c9d8dc 100644 (file)
@@ -46,6 +46,7 @@
 #define FDB_TC_MAX_CHAIN 3
 #define FDB_TC_SLOW_PATH_CHAIN (FDB_TC_MAX_CHAIN + 1)
 #define FDB_TC_MAX_PRIO 16
+#define FDB_TC_LEVELS_PER_PRIO 2
 
 #ifdef CONFIG_MLX5_ESWITCH
 
@@ -146,7 +147,6 @@ enum offloads_fdb_flags {
 
 extern const unsigned int ESW_POOLS[4];
 
-#define PRIO_LEVELS 2
 struct mlx5_eswitch_fdb {
        union {
                struct legacy_fdb {
@@ -173,7 +173,7 @@ struct mlx5_eswitch_fdb {
                        struct {
                                struct mlx5_flow_table *fdb;
                                u32 num_rules;
-                       } fdb_prio[FDB_TC_MAX_CHAIN + 1][FDB_TC_MAX_PRIO + 1][PRIO_LEVELS];
+                       } fdb_prio[FDB_TC_MAX_CHAIN + 1][FDB_TC_MAX_PRIO + 1][FDB_TC_LEVELS_PER_PRIO];
                        /* Protects fdb_prio table */
                        struct mutex fdb_prio_lock;
 
index b33f778..190c5c7 100644 (file)
@@ -2576,7 +2576,8 @@ static int init_fdb_root_ns(struct mlx5_flow_steering *steering)
                goto out_err;
        }
 
-       levels = 2 * FDB_TC_MAX_PRIO * (FDB_TC_MAX_CHAIN + 1);
+       levels = FDB_TC_LEVELS_PER_PRIO *
+                FDB_TC_MAX_PRIO * (FDB_TC_MAX_CHAIN + 1);
        maj_prio = fs_create_prio_chained(&steering->fdb_root_ns->ns,
                                          FDB_FAST_PATH,
                                          levels);
@@ -2593,7 +2594,8 @@ static int init_fdb_root_ns(struct mlx5_flow_steering *steering)
                }
 
                for (prio = 0; prio < FDB_TC_MAX_PRIO * (chain + 1); prio++) {
-                       min_prio = fs_create_prio(ns, prio, 2);
+                       min_prio = fs_create_prio(ns, prio,
+                                                 FDB_TC_LEVELS_PER_PRIO);
                        if (IS_ERR(min_prio)) {
                                err = PTR_ERR(min_prio);
                                goto out_err;