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 83ab1ea92d319433005de0162dfe0e5c79065eea..0ebbd9b04b891d60be23677b3b1622c0ac821576 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 3a73d654017fe50a8106aeedada52bf394785efa..10ae1115de6c84e6809254310bdabbcf165e5cee 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),
 };