aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIdo Schimmel <idosch@mellanox.com>2018-10-11 03:47:55 -0400
committerDavid S. Miller <davem@davemloft.net>2018-10-11 13:08:22 -0400
commit90ea0bb551155dccb93158637edea4db5feffabd (patch)
tree04bffaa077d371a72a94e58af70aa8cc86463d59
parent12066d612b22001829fa378ca127956ee72e13c1 (diff)
mlxsw: spectrum: Add a new type of KVD linear record
When the device needs to flood an overlay packet to remote VTEPs it retrieves a pointer to the head of a linked-list of records that store the IP addresses of these VTEPs. These records are stored in the KVD linear memory and configured via the Tunneling NVE Underlay Multicast Table (TNUMT) register. Add a new KVD linear entry type for these records, so that we will be able to allocate and free them. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Reviewed-by: Petr Machata <petrm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/mellanox/mlxsw/spectrum.h2
-rw-r--r--drivers/net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h
index 534a8be6a6db..1f68ac2a20f4 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h
@@ -438,6 +438,7 @@ enum mlxsw_sp_kvdl_entry_type {
438 MLXSW_SP_KVDL_ENTRY_TYPE_ACTSET, 438 MLXSW_SP_KVDL_ENTRY_TYPE_ACTSET,
439 MLXSW_SP_KVDL_ENTRY_TYPE_PBS, 439 MLXSW_SP_KVDL_ENTRY_TYPE_PBS,
440 MLXSW_SP_KVDL_ENTRY_TYPE_MCRIGR, 440 MLXSW_SP_KVDL_ENTRY_TYPE_MCRIGR,
441 MLXSW_SP_KVDL_ENTRY_TYPE_TNUMT,
441}; 442};
442 443
443static inline unsigned int 444static inline unsigned int
@@ -448,6 +449,7 @@ mlxsw_sp_kvdl_entry_size(enum mlxsw_sp_kvdl_entry_type type)
448 case MLXSW_SP_KVDL_ENTRY_TYPE_ACTSET: /* fall through */ 449 case MLXSW_SP_KVDL_ENTRY_TYPE_ACTSET: /* fall through */
449 case MLXSW_SP_KVDL_ENTRY_TYPE_PBS: /* fall through */ 450 case MLXSW_SP_KVDL_ENTRY_TYPE_PBS: /* fall through */
450 case MLXSW_SP_KVDL_ENTRY_TYPE_MCRIGR: /* fall through */ 451 case MLXSW_SP_KVDL_ENTRY_TYPE_MCRIGR: /* fall through */
452 case MLXSW_SP_KVDL_ENTRY_TYPE_TNUMT: /* fall through */
451 default: 453 default:
452 return 1; 454 return 1;
453 } 455 }
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c
index 68c8b148bef2..8d14770766b4 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c
@@ -35,6 +35,7 @@ static const struct mlxsw_sp2_kvdl_part_info mlxsw_sp2_kvdl_parts_info[] = {
35 MAX_KVD_ACTION_SETS), 35 MAX_KVD_ACTION_SETS),
36 MLXSW_SP2_KVDL_PART_INFO(PBS, 0x24, KVD_SIZE, KVD_SIZE), 36 MLXSW_SP2_KVDL_PART_INFO(PBS, 0x24, KVD_SIZE, KVD_SIZE),
37 MLXSW_SP2_KVDL_PART_INFO(MCRIGR, 0x26, KVD_SIZE, KVD_SIZE), 37 MLXSW_SP2_KVDL_PART_INFO(MCRIGR, 0x26, KVD_SIZE, KVD_SIZE),
38 MLXSW_SP2_KVDL_PART_INFO(TNUMT, 0x29, KVD_SIZE, KVD_SIZE),
38}; 39};
39 40
40#define MLXSW_SP2_KVDL_PARTS_INFO_LEN ARRAY_SIZE(mlxsw_sp2_kvdl_parts_info) 41#define MLXSW_SP2_KVDL_PARTS_INFO_LEN ARRAY_SIZE(mlxsw_sp2_kvdl_parts_info)