mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-28 14:21:45 +00:00
Merge pull request #13247 from donaldsharp/evpn_crashes_and_other_ilk
Evpn crashes and other ilk
This commit is contained in:
commit
59cb833f6a
@ -6235,6 +6235,14 @@ int bgp_evpn_local_l3vni_add(vni_t l3vni, vrf_id_t vrf_id,
|
||||
l3vni);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (CHECK_FLAG(bgp_evpn->flags, BGP_FLAG_DELETE_IN_PROGRESS)) {
|
||||
flog_err(EC_BGP_NO_DFLT,
|
||||
"Cannot process L3VNI %u ADD - EVPN BGP instance is shutting down",
|
||||
l3vni);
|
||||
return -1;
|
||||
}
|
||||
|
||||
as = bgp_evpn->as;
|
||||
|
||||
/* if the BGP vrf instance doesn't exist - create one */
|
||||
@ -6377,6 +6385,13 @@ int bgp_evpn_local_l3vni_del(vni_t l3vni, vrf_id_t vrf_id)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (CHECK_FLAG(bgp_evpn->flags, BGP_FLAG_DELETE_IN_PROGRESS)) {
|
||||
flog_err(EC_BGP_NO_DFLT,
|
||||
"Cannot process L3VNI %u ADD - EVPN BGP instance is shutting down",
|
||||
l3vni);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Remove remote routes from BGT VRF even if BGP_VRF_AUTO is configured,
|
||||
* bgp_delete would not remove/decrement bgp_path_info of the ip_prefix
|
||||
* routes. This will uninstalling the routes from zebra and decremnt the
|
||||
|
@ -1103,7 +1103,7 @@ leak_update(struct bgp *to_bgp, struct bgp_dest *bn,
|
||||
struct bgp_path_info *new;
|
||||
struct bgp_path_info_extra *extra;
|
||||
uint32_t num_sids = 0;
|
||||
void *parent = source_bpi;
|
||||
struct bgp_path_info *parent = source_bpi;
|
||||
|
||||
if (new_attr->srv6_l3vpn || new_attr->srv6_vpn)
|
||||
num_sids = 1;
|
||||
@ -1311,7 +1311,7 @@ leak_update(struct bgp *to_bgp, struct bgp_dest *bn,
|
||||
|
||||
new->extra->parent = bgp_path_info_lock(parent);
|
||||
bgp_dest_lock_node(
|
||||
(struct bgp_dest *)((struct bgp_path_info *)parent)->net);
|
||||
(struct bgp_dest *)parent->net);
|
||||
if (bgp_orig)
|
||||
new->extra->bgp_orig = bgp_lock(bgp_orig);
|
||||
if (nexthop_orig)
|
||||
|
@ -1675,28 +1675,46 @@ DEFUN (no_router_bgp,
|
||||
for (ALL_LIST_ELEMENTS_RO(bm->bgp, node, tmp_bgp)) {
|
||||
if (tmp_bgp->inst_type != BGP_INSTANCE_TYPE_VRF)
|
||||
continue;
|
||||
if (CHECK_FLAG(tmp_bgp->af_flags[AFI_IP][SAFI_UNICAST],
|
||||
BGP_CONFIG_MPLSVPN_TO_VRF_IMPORT) ||
|
||||
CHECK_FLAG(tmp_bgp->af_flags[AFI_IP6][SAFI_UNICAST],
|
||||
BGP_CONFIG_MPLSVPN_TO_VRF_IMPORT) ||
|
||||
CHECK_FLAG(tmp_bgp->af_flags[AFI_IP][SAFI_UNICAST],
|
||||
BGP_CONFIG_VRF_TO_MPLSVPN_EXPORT) ||
|
||||
CHECK_FLAG(tmp_bgp->af_flags[AFI_IP6][SAFI_UNICAST],
|
||||
BGP_CONFIG_VRF_TO_MPLSVPN_EXPORT) ||
|
||||
CHECK_FLAG(tmp_bgp->af_flags[AFI_IP][SAFI_UNICAST],
|
||||
if (CHECK_FLAG(
|
||||
tmp_bgp->af_flags[AFI_IP]
|
||||
[SAFI_UNICAST],
|
||||
BGP_CONFIG_MPLSVPN_TO_VRF_IMPORT) ||
|
||||
CHECK_FLAG(
|
||||
tmp_bgp->af_flags[AFI_IP6]
|
||||
[SAFI_UNICAST],
|
||||
BGP_CONFIG_MPLSVPN_TO_VRF_IMPORT) ||
|
||||
CHECK_FLAG(
|
||||
tmp_bgp->af_flags[AFI_IP]
|
||||
[SAFI_UNICAST],
|
||||
BGP_CONFIG_VRF_TO_MPLSVPN_EXPORT) ||
|
||||
CHECK_FLAG(
|
||||
tmp_bgp->af_flags[AFI_IP6]
|
||||
[SAFI_UNICAST],
|
||||
BGP_CONFIG_VRF_TO_MPLSVPN_EXPORT) ||
|
||||
CHECK_FLAG(tmp_bgp->af_flags[AFI_IP]
|
||||
[SAFI_UNICAST],
|
||||
BGP_CONFIG_VRF_TO_VRF_EXPORT) ||
|
||||
CHECK_FLAG(tmp_bgp->af_flags[AFI_IP6][SAFI_UNICAST],
|
||||
CHECK_FLAG(tmp_bgp->af_flags[AFI_IP6]
|
||||
[SAFI_UNICAST],
|
||||
BGP_CONFIG_VRF_TO_VRF_EXPORT) ||
|
||||
(bgp == bgp_get_evpn() &&
|
||||
(CHECK_FLAG(tmp_bgp->af_flags[AFI_L2VPN][SAFI_EVPN],
|
||||
BGP_L2VPN_EVPN_ADV_IPV4_UNICAST) ||
|
||||
CHECK_FLAG(tmp_bgp->af_flags[AFI_L2VPN][SAFI_EVPN],
|
||||
BGP_L2VPN_EVPN_ADV_IPV4_UNICAST_GW_IP) ||
|
||||
CHECK_FLAG(tmp_bgp->af_flags[AFI_L2VPN][SAFI_EVPN],
|
||||
BGP_L2VPN_EVPN_ADV_IPV6_UNICAST) ||
|
||||
CHECK_FLAG(tmp_bgp->af_flags[AFI_L2VPN][SAFI_EVPN],
|
||||
BGP_L2VPN_EVPN_ADV_IPV6_UNICAST_GW_IP))) ||
|
||||
(hashcount(tmp_bgp->vnihash))) {
|
||||
(CHECK_FLAG(
|
||||
tmp_bgp->af_flags[AFI_L2VPN]
|
||||
[SAFI_EVPN],
|
||||
BGP_L2VPN_EVPN_ADV_IPV4_UNICAST) ||
|
||||
CHECK_FLAG(
|
||||
tmp_bgp->af_flags[AFI_L2VPN]
|
||||
[SAFI_EVPN],
|
||||
BGP_L2VPN_EVPN_ADV_IPV4_UNICAST_GW_IP) ||
|
||||
CHECK_FLAG(
|
||||
tmp_bgp->af_flags[AFI_L2VPN]
|
||||
[SAFI_EVPN],
|
||||
BGP_L2VPN_EVPN_ADV_IPV6_UNICAST) ||
|
||||
CHECK_FLAG(
|
||||
tmp_bgp->af_flags[AFI_L2VPN]
|
||||
[SAFI_EVPN],
|
||||
BGP_L2VPN_EVPN_ADV_IPV6_UNICAST_GW_IP))) ||
|
||||
(tmp_bgp->l3vni)) {
|
||||
vty_out(vty,
|
||||
"%% Cannot delete default BGP instance. Dependent VRF instances exist\n");
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
Loading…
Reference in New Issue
Block a user