diff options
| -rw-r--r-- | bgpd/bgp_conditional_adv.c | 1 | ||||
| -rw-r--r-- | bgpd/bgp_evpn.c | 5 | ||||
| -rw-r--r-- | bgpd/bgp_evpn_mh.c | 3 | ||||
| -rw-r--r-- | bgpd/bgp_route.c | 3 | ||||
| -rw-r--r-- | bgpd/bgp_updgrp_adv.c | 4 | ||||
| -rw-r--r-- | doc/user/bgp.rst | 4 | ||||
| -rw-r--r-- | lib/skiplist.c | 6 |
7 files changed, 19 insertions, 7 deletions
diff --git a/bgpd/bgp_conditional_adv.c b/bgpd/bgp_conditional_adv.c index 0731adcb84..ca67d49c8a 100644 --- a/bgpd/bgp_conditional_adv.c +++ b/bgpd/bgp_conditional_adv.c @@ -51,6 +51,7 @@ bgp_check_rmap_prefixes_in_bgp_table(struct bgp_table *table, if (ret != RMAP_PERMITMATCH) bgp_attr_flush(&dummy_attr); else { + bgp_dest_unlock_node(dest); if (BGP_DEBUG(update, UPDATE_OUT)) zlog_debug( "%s: Condition map routes present in BGP table", diff --git a/bgpd/bgp_evpn.c b/bgpd/bgp_evpn.c index 67d0a95cb6..2fae10e24c 100644 --- a/bgpd/bgp_evpn.c +++ b/bgpd/bgp_evpn.c @@ -2930,6 +2930,8 @@ static int install_uninstall_routes_for_vrf(struct bgp *bgp_vrf, int install) evp, vrf_id_to_name( bgp_vrf->vrf_id)); + bgp_dest_unlock_node(rd_dest); + bgp_dest_unlock_node(dest); return ret; } } @@ -3009,6 +3011,9 @@ static int install_uninstall_routes_for_vni(struct bgp *bgp, ? "MACIP" : "IMET", vpn->vni); + + bgp_dest_unlock_node(rd_dest); + bgp_dest_unlock_node(dest); return ret; } } diff --git a/bgpd/bgp_evpn_mh.c b/bgpd/bgp_evpn_mh.c index 021e811147..bf9a2f849a 100644 --- a/bgpd/bgp_evpn_mh.c +++ b/bgpd/bgp_evpn_mh.c @@ -763,6 +763,9 @@ static int bgp_evpn_type4_remote_routes_import(struct bgp *bgp, install ? "install" : "uninstall", evp, es->esi_str); + + bgp_dest_unlock_node(rd_dest); + bgp_dest_unlock_node(dest); return ret; } } diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 9873057fa2..5e7bf3f626 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -3538,6 +3538,9 @@ int bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id, else has_valid_label = bgp_is_valid_label(label); + if (has_valid_label) + assert(label != NULL); + /* The flag BGP_NODE_FIB_INSTALL_PENDING is for the following * condition : * Suppress fib is enabled diff --git a/bgpd/bgp_updgrp_adv.c b/bgpd/bgp_updgrp_adv.c index a03232466c..6793fa1ca3 100644 --- a/bgpd/bgp_updgrp_adv.c +++ b/bgpd/bgp_updgrp_adv.c @@ -842,8 +842,10 @@ void subgroup_default_originate(struct update_subgroup *subgrp, int withdraw) break; } } - if (ret == RMAP_PERMITMATCH) + if (ret == RMAP_PERMITMATCH) { + bgp_dest_unlock_node(dest); break; + } } bgp->peer_self->rmap_type = 0; diff --git a/doc/user/bgp.rst b/doc/user/bgp.rst index 00ae4c082e..4f036ee709 100644 --- a/doc/user/bgp.rst +++ b/doc/user/bgp.rst @@ -962,7 +962,7 @@ Networks traditional did not check for existence. For versions 7.4 and beyond both traditional and datacenter the network must exist. -.. _ipv6-support: +.. _bgp-ipv6-support: IPv6 Support ------------ @@ -970,7 +970,7 @@ IPv6 Support .. index:: [no] neighbor A.B.C.D activate .. clicmd:: [no] neighbor A.B.C.D activate - This coonfiguration modifies whether to enable an address family for a + This configuration modifies whether to enable an address family for a specific neighbor. By default only the IPv4 unicast address family is enabled. diff --git a/lib/skiplist.c b/lib/skiplist.c index 2bef18f525..b79dfa6772 100644 --- a/lib/skiplist.c +++ b/lib/skiplist.c @@ -74,7 +74,6 @@ DEFINE_MTYPE_STATIC(LIB, SKIP_LIST_NODE, "Skip Node") static int randomsLeft; static int randomBits; -static struct skiplist *skiplist_last_created; /* debugging hack */ #if 1 #define CHECKLAST(sl) \ @@ -150,8 +149,6 @@ struct skiplist *skiplist_new(int flags, if (del) new->del = del; - skiplist_last_created = new; /* debug */ - return new; } @@ -586,7 +583,8 @@ void skiplist_debug(struct vty *vty, struct skiplist *l) int i; if (!l) - l = skiplist_last_created; + return; + vty_out(vty, "Skiplist %p has max level %d\n", l, l->level); for (i = l->level; i >= 0; --i) vty_out(vty, " @%d: %ld\n", i, |
