mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-04 04:28:10 -04:00
mlxsw: spectrum_router: Consolidate nexthop helpers
The helper mlxsw_sp_nexthop_offload() is actually interested in finding out if the nexthop is both written to the adjacency table and forwarding packets (as opposed to discarding them). Rename it to mlxsw_sp_nexthop_is_forward() and remove mlxsw_sp_nexthop_is_discard(). Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Petr Machata <petrm@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
08c99b92d7
commit
26df5acc27
@@ -912,9 +912,8 @@ static u64 mlxsw_sp_dpipe_table_adj_size(struct mlxsw_sp *mlxsw_sp)
|
||||
u64 size = 0;
|
||||
|
||||
mlxsw_sp_nexthop_for_each(nh, mlxsw_sp->router)
|
||||
if (mlxsw_sp_nexthop_offload(nh) &&
|
||||
!mlxsw_sp_nexthop_group_has_ipip(nh) &&
|
||||
!mlxsw_sp_nexthop_is_discard(nh))
|
||||
if (mlxsw_sp_nexthop_is_forward(nh) &&
|
||||
!mlxsw_sp_nexthop_group_has_ipip(nh))
|
||||
size++;
|
||||
return size;
|
||||
}
|
||||
@@ -1105,9 +1104,8 @@ mlxsw_sp_dpipe_table_adj_entries_get(struct mlxsw_sp *mlxsw_sp,
|
||||
nh_skip = nh_count;
|
||||
nh_count = 0;
|
||||
mlxsw_sp_nexthop_for_each(nh, mlxsw_sp->router) {
|
||||
if (!mlxsw_sp_nexthop_offload(nh) ||
|
||||
mlxsw_sp_nexthop_group_has_ipip(nh) ||
|
||||
mlxsw_sp_nexthop_is_discard(nh))
|
||||
if (!mlxsw_sp_nexthop_is_forward(nh) ||
|
||||
mlxsw_sp_nexthop_group_has_ipip(nh))
|
||||
continue;
|
||||
|
||||
if (nh_count < nh_skip)
|
||||
@@ -1187,9 +1185,8 @@ static int mlxsw_sp_dpipe_table_adj_counters_update(void *priv, bool enable)
|
||||
u32 adj_size = 0;
|
||||
|
||||
mlxsw_sp_nexthop_for_each(nh, mlxsw_sp->router) {
|
||||
if (!mlxsw_sp_nexthop_offload(nh) ||
|
||||
mlxsw_sp_nexthop_group_has_ipip(nh) ||
|
||||
mlxsw_sp_nexthop_is_discard(nh))
|
||||
if (!mlxsw_sp_nexthop_is_forward(nh) ||
|
||||
mlxsw_sp_nexthop_group_has_ipip(nh))
|
||||
continue;
|
||||
|
||||
mlxsw_sp_nexthop_indexes(nh, &adj_index, &adj_size,
|
||||
|
||||
@@ -2979,9 +2979,9 @@ struct mlxsw_sp_nexthop *mlxsw_sp_nexthop_next(struct mlxsw_sp_router *router,
|
||||
return list_next_entry(nh, router_list_node);
|
||||
}
|
||||
|
||||
bool mlxsw_sp_nexthop_offload(struct mlxsw_sp_nexthop *nh)
|
||||
bool mlxsw_sp_nexthop_is_forward(const struct mlxsw_sp_nexthop *nh)
|
||||
{
|
||||
return nh->offloaded;
|
||||
return nh->offloaded && !nh->discard;
|
||||
}
|
||||
|
||||
unsigned char *mlxsw_sp_nexthop_ha(struct mlxsw_sp_nexthop *nh)
|
||||
@@ -3036,11 +3036,6 @@ bool mlxsw_sp_nexthop_group_has_ipip(struct mlxsw_sp_nexthop *nh)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool mlxsw_sp_nexthop_is_discard(const struct mlxsw_sp_nexthop *nh)
|
||||
{
|
||||
return nh->discard;
|
||||
}
|
||||
|
||||
static const struct rhashtable_params mlxsw_sp_nexthop_group_vr_ht_params = {
|
||||
.key_offset = offsetof(struct mlxsw_sp_nexthop_group_vr_entry, key),
|
||||
.head_offset = offsetof(struct mlxsw_sp_nexthop_group_vr_entry, ht_node),
|
||||
|
||||
@@ -195,13 +195,12 @@ mlxsw_sp_ipip_demote_tunnel_by_saddr(struct mlxsw_sp *mlxsw_sp,
|
||||
const struct mlxsw_sp_ipip_entry *except);
|
||||
struct mlxsw_sp_nexthop *mlxsw_sp_nexthop_next(struct mlxsw_sp_router *router,
|
||||
struct mlxsw_sp_nexthop *nh);
|
||||
bool mlxsw_sp_nexthop_offload(struct mlxsw_sp_nexthop *nh);
|
||||
bool mlxsw_sp_nexthop_is_forward(const struct mlxsw_sp_nexthop *nh);
|
||||
unsigned char *mlxsw_sp_nexthop_ha(struct mlxsw_sp_nexthop *nh);
|
||||
int mlxsw_sp_nexthop_indexes(struct mlxsw_sp_nexthop *nh, u32 *p_adj_index,
|
||||
u32 *p_adj_size, u32 *p_adj_hash_index);
|
||||
struct mlxsw_sp_rif *mlxsw_sp_nexthop_rif(struct mlxsw_sp_nexthop *nh);
|
||||
bool mlxsw_sp_nexthop_group_has_ipip(struct mlxsw_sp_nexthop *nh);
|
||||
bool mlxsw_sp_nexthop_is_discard(const struct mlxsw_sp_nexthop *nh);
|
||||
#define mlxsw_sp_nexthop_for_each(nh, router) \
|
||||
for (nh = mlxsw_sp_nexthop_next(router, NULL); nh; \
|
||||
nh = mlxsw_sp_nexthop_next(router, nh))
|
||||
|
||||
Reference in New Issue
Block a user