Lines Matching refs:rve

118 	struct mlxsw_sp_mr_route_vif_entry *rve;  in mlxsw_sp_mr_route_valid_evifs_num()  local
122 list_for_each_entry(rve, &mr_route->evif_list, route_node) in mlxsw_sp_mr_route_valid_evifs_num()
123 if (mlxsw_sp_mr_vif_valid(rve->mr_vif)) in mlxsw_sp_mr_route_valid_evifs_num()
131 struct mlxsw_sp_mr_route_vif_entry *rve; in mlxsw_sp_mr_route_action() local
152 list_for_each_entry(rve, &mr_route->evif_list, route_node) in mlxsw_sp_mr_route_action()
153 if (mlxsw_sp_mr_vif_exists(rve->mr_vif) && !rve->mr_vif->rif) in mlxsw_sp_mr_route_action()
170 struct mlxsw_sp_mr_route_vif_entry *rve; in mlxsw_sp_mr_route_evif_link() local
172 rve = kzalloc(sizeof(*rve), GFP_KERNEL); in mlxsw_sp_mr_route_evif_link()
173 if (!rve) in mlxsw_sp_mr_route_evif_link()
175 rve->mr_route = mr_route; in mlxsw_sp_mr_route_evif_link()
176 rve->mr_vif = mr_vif; in mlxsw_sp_mr_route_evif_link()
177 list_add_tail(&rve->route_node, &mr_route->evif_list); in mlxsw_sp_mr_route_evif_link()
178 list_add_tail(&rve->vif_node, &mr_vif->route_evif_list); in mlxsw_sp_mr_route_evif_link()
183 mlxsw_sp_mr_route_evif_unlink(struct mlxsw_sp_mr_route_vif_entry *rve) in mlxsw_sp_mr_route_evif_unlink() argument
185 list_del(&rve->route_node); in mlxsw_sp_mr_route_evif_unlink()
186 list_del(&rve->vif_node); in mlxsw_sp_mr_route_evif_unlink()
187 kfree(rve); in mlxsw_sp_mr_route_evif_unlink()
208 struct mlxsw_sp_mr_route_vif_entry *rve; in mlxsw_sp_mr_route_info_create() local
218 list_for_each_entry(rve, &mr_route->evif_list, route_node) { in mlxsw_sp_mr_route_info_create()
219 if (mlxsw_sp_mr_vif_valid(rve->mr_vif)) { in mlxsw_sp_mr_route_info_create()
220 u16 rifi = mlxsw_sp_rif_index(rve->mr_vif->rif); in mlxsw_sp_mr_route_info_create()
299 struct mlxsw_sp_mr_route_vif_entry *rve, *tmp; in mlxsw_sp_mr_route_create() local
335 list_for_each_entry_safe(rve, tmp, &mr_route->evif_list, route_node) in mlxsw_sp_mr_route_create()
336 mlxsw_sp_mr_route_evif_unlink(rve); in mlxsw_sp_mr_route_create()
344 struct mlxsw_sp_mr_route_vif_entry *rve, *tmp; in mlxsw_sp_mr_route_destroy() local
348 list_for_each_entry_safe(rve, tmp, &mr_route->evif_list, route_node) in mlxsw_sp_mr_route_destroy()
349 mlxsw_sp_mr_route_evif_unlink(rve); in mlxsw_sp_mr_route_destroy()
470 struct mlxsw_sp_mr_route_vif_entry *rve) in mlxsw_sp_mr_route_ivif_resolve() argument
478 route_action = mlxsw_sp_mr_route_action(rve->mr_route); in mlxsw_sp_mr_route_ivif_resolve()
483 irif_index = mlxsw_sp_rif_index(rve->mr_vif->rif); in mlxsw_sp_mr_route_ivif_resolve()
484 err = mr->mr_ops->route_irif_update(mlxsw_sp, rve->mr_route->route_priv, in mlxsw_sp_mr_route_ivif_resolve()
490 rve->mr_route->route_priv, in mlxsw_sp_mr_route_ivif_resolve()
498 rve->mr_route->route_action = route_action; in mlxsw_sp_mr_route_ivif_resolve()
499 mlxsw_sp_mr_mfc_offload_update(rve->mr_route); in mlxsw_sp_mr_route_ivif_resolve()
505 struct mlxsw_sp_mr_route_vif_entry *rve) in mlxsw_sp_mr_route_ivif_unresolve() argument
510 mr->mr_ops->route_action_update(mlxsw_sp, rve->mr_route->route_priv, in mlxsw_sp_mr_route_ivif_unresolve()
512 rve->mr_route->route_action = MLXSW_SP_MR_ROUTE_ACTION_TRAP; in mlxsw_sp_mr_route_ivif_unresolve()
513 mlxsw_sp_mr_mfc_offload_update(rve->mr_route); in mlxsw_sp_mr_route_ivif_unresolve()
519 struct mlxsw_sp_mr_route_vif_entry *rve) in mlxsw_sp_mr_route_evif_resolve() argument
530 route_action = mlxsw_sp_mr_route_action(rve->mr_route); in mlxsw_sp_mr_route_evif_resolve()
531 if (route_action != rve->mr_route->route_action) { in mlxsw_sp_mr_route_evif_resolve()
533 rve->mr_route->route_priv, in mlxsw_sp_mr_route_evif_resolve()
540 if (mlxsw_sp_mr_vif_valid(rve->mr_vif)) { in mlxsw_sp_mr_route_evif_resolve()
541 erif_index = mlxsw_sp_rif_index(rve->mr_vif->rif); in mlxsw_sp_mr_route_evif_resolve()
543 rve->mr_route->route_priv, in mlxsw_sp_mr_route_evif_resolve()
550 if (rve->mr_vif->dev->mtu < rve->mr_route->min_mtu) { in mlxsw_sp_mr_route_evif_resolve()
551 rve->mr_route->min_mtu = rve->mr_vif->dev->mtu; in mlxsw_sp_mr_route_evif_resolve()
553 rve->mr_route->route_priv, in mlxsw_sp_mr_route_evif_resolve()
554 rve->mr_route->min_mtu); in mlxsw_sp_mr_route_evif_resolve()
559 rve->mr_route->route_action = route_action; in mlxsw_sp_mr_route_evif_resolve()
560 mlxsw_sp_mr_mfc_offload_update(rve->mr_route); in mlxsw_sp_mr_route_evif_resolve()
564 if (mlxsw_sp_mr_vif_valid(rve->mr_vif)) in mlxsw_sp_mr_route_evif_resolve()
565 mr->mr_ops->route_erif_del(mlxsw_sp, rve->mr_route->route_priv, in mlxsw_sp_mr_route_evif_resolve()
568 if (route_action != rve->mr_route->route_action) in mlxsw_sp_mr_route_evif_resolve()
570 rve->mr_route->route_priv, in mlxsw_sp_mr_route_evif_resolve()
571 rve->mr_route->route_action); in mlxsw_sp_mr_route_evif_resolve()
578 struct mlxsw_sp_mr_route_vif_entry *rve) in mlxsw_sp_mr_route_evif_unresolve() argument
586 if (!mlxsw_sp_mr_vif_valid(rve->mr_vif)) in mlxsw_sp_mr_route_evif_unresolve()
594 if (mlxsw_sp_mr_route_valid_evifs_num(rve->mr_route) == 1) in mlxsw_sp_mr_route_evif_unresolve()
597 route_action = mlxsw_sp_mr_route_action(rve->mr_route); in mlxsw_sp_mr_route_evif_unresolve()
598 if (route_action != rve->mr_route->route_action) in mlxsw_sp_mr_route_evif_unresolve()
600 rve->mr_route->route_priv, in mlxsw_sp_mr_route_evif_unresolve()
604 rifi = mlxsw_sp_rif_index(rve->mr_vif->rif); in mlxsw_sp_mr_route_evif_unresolve()
605 mr->mr_ops->route_erif_del(mlxsw_sp, rve->mr_route->route_priv, rifi); in mlxsw_sp_mr_route_evif_unresolve()
606 rve->mr_route->route_action = route_action; in mlxsw_sp_mr_route_evif_unresolve()
607 mlxsw_sp_mr_mfc_offload_update(rve->mr_route); in mlxsw_sp_mr_route_evif_unresolve()
655 struct mlxsw_sp_mr_route_vif_entry *rve; in mlxsw_sp_mr_vif_unresolve() local
658 list_for_each_entry(rve, &mr_vif->route_evif_list, vif_node) in mlxsw_sp_mr_vif_unresolve()
659 mlxsw_sp_mr_route_evif_unresolve(mr_table, rve); in mlxsw_sp_mr_vif_unresolve()
662 list_for_each_entry(rve, &mr_vif->route_ivif_list, vif_node) in mlxsw_sp_mr_vif_unresolve()
663 mlxsw_sp_mr_route_ivif_unresolve(mr_table, rve); in mlxsw_sp_mr_vif_unresolve()
742 struct mlxsw_sp_mr_route_vif_entry *rve; in mlxsw_sp_mr_rif_mtu_update() local
755 list_for_each_entry(rve, &mr_vif->route_evif_list, vif_node) { in mlxsw_sp_mr_rif_mtu_update()
756 if (mtu < rve->mr_route->min_mtu) { in mlxsw_sp_mr_rif_mtu_update()
757 rve->mr_route->min_mtu = mtu; in mlxsw_sp_mr_rif_mtu_update()
759 rve->mr_route->route_priv, in mlxsw_sp_mr_rif_mtu_update()