mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-24 23:00:37 +00:00
Merge pull request #4245 from mjstapp/fix_vrf_lsps
zebra: remove vrf LSPs when vrf is deleted
This commit is contained in:
commit
3409538e6f
@ -2874,7 +2874,11 @@ void zebra_mpls_print_lsp_table(struct vty *vty, struct zebra_vrf *zvrf,
|
|||||||
ifp = if_lookup_by_index_per_ns(
|
ifp = if_lookup_by_index_per_ns(
|
||||||
zns,
|
zns,
|
||||||
nexthop->ifindex);
|
nexthop->ifindex);
|
||||||
vty_out(vty, "%15s", ifp->name);
|
if (ifp)
|
||||||
|
vty_out(vty, "%15s", ifp->name);
|
||||||
|
else
|
||||||
|
vty_out(vty, "%15s", "Null");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case NEXTHOP_TYPE_IPV4:
|
case NEXTHOP_TYPE_IPV4:
|
||||||
@ -2999,11 +3003,30 @@ int zebra_mpls_write_label_block_config(struct vty *vty, struct zebra_vrf *zvrf)
|
|||||||
/*
|
/*
|
||||||
* Called when VRF becomes inactive, cleans up information but keeps
|
* Called when VRF becomes inactive, cleans up information but keeps
|
||||||
* the table itself.
|
* the table itself.
|
||||||
* NOTE: Currently supported only for default VRF.
|
|
||||||
*/
|
*/
|
||||||
void zebra_mpls_cleanup_tables(struct zebra_vrf *zvrf)
|
void zebra_mpls_cleanup_tables(struct zebra_vrf *zvrf)
|
||||||
{
|
{
|
||||||
hash_iterate(zvrf->lsp_table, lsp_uninstall_from_kernel, NULL);
|
struct zebra_vrf *def_zvrf;
|
||||||
|
afi_t afi;
|
||||||
|
|
||||||
|
if (zvrf_id(zvrf) == VRF_DEFAULT)
|
||||||
|
hash_iterate(zvrf->lsp_table, lsp_uninstall_from_kernel, NULL);
|
||||||
|
else {
|
||||||
|
/*
|
||||||
|
* For other vrfs, we try to remove associated LSPs; we locate
|
||||||
|
* the LSPs in the default vrf.
|
||||||
|
*/
|
||||||
|
def_zvrf = zebra_vrf_lookup_by_id(VRF_DEFAULT);
|
||||||
|
|
||||||
|
/* At shutdown, the default may be gone already */
|
||||||
|
if (def_zvrf == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (afi = AFI_IP; afi < AFI_MAX; afi++) {
|
||||||
|
if (zvrf->label[afi] != MPLS_LABEL_NONE)
|
||||||
|
lsp_uninstall(def_zvrf, zvrf->label[afi]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user