From: Petr Machata <pe...@mellanox.com>

To support IPIP, the driver needs to be able to construct an IPIP
adjacency. Change mlxsw_reg_ratr_pack to take an adjacency type as an
argument. Adjust the one existing caller.

Signed-off-by: Petr Machata <pe...@mellanox.com>
Reviewed-by: Ido Schimmel <ido...@mellanox.com>
Signed-off-by: Jiri Pirko <j...@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlxsw/reg.h             | 2 ++
 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/reg.h 
b/drivers/net/ethernet/mellanox/mlxsw/reg.h
index 27a378d..680bc7e 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/reg.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/reg.h
@@ -4482,11 +4482,13 @@ MLXSW_ITEM32(reg, ratr, ipip_ipv6_ptr, 0x1C, 0, 24);
 static inline void
 mlxsw_reg_ratr_pack(char *payload,
                    enum mlxsw_reg_ratr_op op, bool valid,
+                   enum mlxsw_reg_ratr_type type,
                    u32 adjacency_index, u16 egress_rif)
 {
        MLXSW_REG_ZERO(ratr, payload);
        mlxsw_reg_ratr_op_set(payload, op);
        mlxsw_reg_ratr_v_set(payload, valid);
+       mlxsw_reg_ratr_type_set(payload, type);
        mlxsw_reg_ratr_adjacency_index_low_set(payload, adjacency_index);
        mlxsw_reg_ratr_adjacency_index_high_set(payload, adjacency_index >> 16);
        mlxsw_reg_ratr_egress_router_interface_set(payload, egress_rif);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c 
b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
index 3ddfbe3..4e47d45 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
@@ -1928,7 +1928,8 @@ static int mlxsw_sp_nexthop_mac_update(struct mlxsw_sp 
*mlxsw_sp, u32 adj_index,
        char ratr_pl[MLXSW_REG_RATR_LEN];
 
        mlxsw_reg_ratr_pack(ratr_pl, MLXSW_REG_RATR_OP_WRITE_WRITE_ENTRY,
-                           true, adj_index, neigh_entry->rif);
+                           true, MLXSW_REG_RATR_TYPE_ETHERNET,
+                           adj_index, neigh_entry->rif);
        mlxsw_reg_ratr_eth_entry_pack(ratr_pl, neigh_entry->ha);
        return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(ratr), ratr_pl);
 }
-- 
2.9.3

Reply via email to