mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
mlxsw: spectrum_ipip: Use common hash table for IPv6 address mapping
Use the common hash table introduced by the previous patch instead of the IP-in-IP specific implementation. Signed-off-by: Amit Cohen <amcohen@nvidia.com> Signed-off-by: Ido Schimmel <idosch@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e846efe273
commit
cf42911523
1 changed files with 6 additions and 22 deletions
|
@ -568,37 +568,21 @@ static int
|
||||||
mlxsw_sp2_ipip_rem_addr_set_gre6(struct mlxsw_sp *mlxsw_sp,
|
mlxsw_sp2_ipip_rem_addr_set_gre6(struct mlxsw_sp *mlxsw_sp,
|
||||||
struct mlxsw_sp_ipip_entry *ipip_entry)
|
struct mlxsw_sp_ipip_entry *ipip_entry)
|
||||||
{
|
{
|
||||||
char rips_pl[MLXSW_REG_RIPS_LEN];
|
|
||||||
struct __ip6_tnl_parm parms6;
|
struct __ip6_tnl_parm parms6;
|
||||||
int err;
|
|
||||||
|
|
||||||
err = mlxsw_sp_kvdl_alloc(mlxsw_sp,
|
|
||||||
MLXSW_SP_KVDL_ENTRY_TYPE_IPV6_ADDRESS, 1,
|
|
||||||
&ipip_entry->dip_kvdl_index);
|
|
||||||
if (err)
|
|
||||||
return err;
|
|
||||||
|
|
||||||
parms6 = mlxsw_sp_ipip_netdev_parms6(ipip_entry->ol_dev);
|
parms6 = mlxsw_sp_ipip_netdev_parms6(ipip_entry->ol_dev);
|
||||||
mlxsw_reg_rips_pack(rips_pl, ipip_entry->dip_kvdl_index,
|
return mlxsw_sp_ipv6_addr_kvdl_index_get(mlxsw_sp, &parms6.raddr,
|
||||||
&parms6.raddr);
|
&ipip_entry->dip_kvdl_index);
|
||||||
err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(rips), rips_pl);
|
|
||||||
if (err)
|
|
||||||
goto err_rips_write;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
err_rips_write:
|
|
||||||
mlxsw_sp_kvdl_free(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_IPV6_ADDRESS, 1,
|
|
||||||
ipip_entry->dip_kvdl_index);
|
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mlxsw_sp2_ipip_rem_addr_unset_gre6(struct mlxsw_sp *mlxsw_sp,
|
mlxsw_sp2_ipip_rem_addr_unset_gre6(struct mlxsw_sp *mlxsw_sp,
|
||||||
const struct mlxsw_sp_ipip_entry *ipip_entry)
|
const struct mlxsw_sp_ipip_entry *ipip_entry)
|
||||||
{
|
{
|
||||||
mlxsw_sp_kvdl_free(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_IPV6_ADDRESS, 1,
|
struct __ip6_tnl_parm parms6;
|
||||||
ipip_entry->dip_kvdl_index);
|
|
||||||
|
parms6 = mlxsw_sp_ipip_netdev_parms6(ipip_entry->ol_dev);
|
||||||
|
mlxsw_sp_ipv6_addr_put(mlxsw_sp, &parms6.raddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct mlxsw_sp_ipip_ops mlxsw_sp2_ipip_gre6_ops = {
|
static const struct mlxsw_sp_ipip_ops mlxsw_sp2_ipip_gre6_ops = {
|
||||||
|
|
Loading…
Add table
Reference in a new issue