mirror of
https://github.com/torvalds/linux.git
synced 2024-11-13 07:31:45 +00:00
mlxsw: spectrum_router: Refresh offload indication upon group refresh
Now that we provide offload indication using the nexthop's flags we must refresh the offload indication whenever the offload state within the group changes. This didn't matter until now, as offload indication was provided using the FIB info flags and multipath routes were marked as offloaded as long as one of the nexthops was offloaded. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Tested-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1353ee7073
commit
77d964e66c
@ -1652,6 +1652,24 @@ mlxsw_sp_nexthop_fib_entries_update(struct mlxsw_sp *mlxsw_sp,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
mlxsw_sp_fib_entry_offload_refresh(struct mlxsw_sp_fib_entry *fib_entry,
|
||||
enum mlxsw_reg_ralue_op op, int err);
|
||||
|
||||
static void
|
||||
mlxsw_sp_nexthop_fib_entries_refresh(struct mlxsw_sp_nexthop_group *nh_grp)
|
||||
{
|
||||
enum mlxsw_reg_ralue_op op = MLXSW_REG_RALUE_OP_WRITE_WRITE;
|
||||
struct mlxsw_sp_fib_entry *fib_entry;
|
||||
|
||||
list_for_each_entry(fib_entry, &nh_grp->fib_list, nexthop_group_node) {
|
||||
if (!mlxsw_sp_fib_node_entry_is_first(fib_entry->fib_node,
|
||||
fib_entry))
|
||||
continue;
|
||||
mlxsw_sp_fib_entry_offload_refresh(fib_entry, op, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
mlxsw_sp_nexthop_group_refresh(struct mlxsw_sp *mlxsw_sp,
|
||||
struct mlxsw_sp_nexthop_group *nh_grp)
|
||||
@ -1739,6 +1757,10 @@ mlxsw_sp_nexthop_group_refresh(struct mlxsw_sp *mlxsw_sp,
|
||||
dev_warn(mlxsw_sp->bus_info->dev, "Failed to mass-update adjacency index for nexthop group.\n");
|
||||
goto set_trap;
|
||||
}
|
||||
|
||||
/* Offload state within the group changed, so update the flags. */
|
||||
mlxsw_sp_nexthop_fib_entries_refresh(nh_grp);
|
||||
|
||||
return;
|
||||
|
||||
set_trap:
|
||||
|
Loading…
Reference in New Issue
Block a user