mlxsw: Add IPV6_ADDRESS kvdl entry type
authorAmit Cohen <amcohen@nvidia.com>
Thu, 23 Sep 2021 12:36:58 +0000 (15:36 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 24 Sep 2021 09:26:52 +0000 (10:26 +0100)
Add support for allocating and freeing KVD entries for IPv6 addresses.

These addresses are programmed by the RIPS register and referenced by
the RATR and RTDP registers for IPv6 underlay encapsulation and
decapsulation, respectively.

Signed-off-by: Amit Cohen <amcohen@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum.h
drivers/net/ethernet/mellanox/mlxsw/spectrum2_kvdl.c

index 83ab1ea..0ebbd9b 100644 (file)
@@ -747,6 +747,7 @@ enum mlxsw_sp_kvdl_entry_type {
        MLXSW_SP_KVDL_ENTRY_TYPE_ACTSET,
        MLXSW_SP_KVDL_ENTRY_TYPE_PBS,
        MLXSW_SP_KVDL_ENTRY_TYPE_MCRIGR,
+       MLXSW_SP_KVDL_ENTRY_TYPE_IPV6_ADDRESS,
        MLXSW_SP_KVDL_ENTRY_TYPE_TNUMT,
 };
 
@@ -758,6 +759,7 @@ mlxsw_sp_kvdl_entry_size(enum mlxsw_sp_kvdl_entry_type type)
        case MLXSW_SP_KVDL_ENTRY_TYPE_ACTSET:
        case MLXSW_SP_KVDL_ENTRY_TYPE_PBS:
        case MLXSW_SP_KVDL_ENTRY_TYPE_MCRIGR:
+       case MLXSW_SP_KVDL_ENTRY_TYPE_IPV6_ADDRESS:
        case MLXSW_SP_KVDL_ENTRY_TYPE_TNUMT:
        default:
                return 1;
index 3a73d65..10ae111 100644 (file)
@@ -35,6 +35,7 @@ static const struct mlxsw_sp2_kvdl_part_info mlxsw_sp2_kvdl_parts_info[] = {
                                 MAX_KVD_ACTION_SETS),
        MLXSW_SP2_KVDL_PART_INFO(PBS, 0x24, KVD_SIZE, KVD_SIZE),
        MLXSW_SP2_KVDL_PART_INFO(MCRIGR, 0x26, KVD_SIZE, KVD_SIZE),
+       MLXSW_SP2_KVDL_PART_INFO(IPV6_ADDRESS, 0x28, KVD_SIZE, KVD_SIZE),
        MLXSW_SP2_KVDL_PART_INFO(TNUMT, 0x29, KVD_SIZE, KVD_SIZE),
 };