diff options
| -rw-r--r-- | bgpd/bgp_evpn.c | 7 | ||||
| -rw-r--r-- | doc/user/overview.rst | 2 | ||||
| -rw-r--r-- | isisd/isis_northbound.c | 41 | ||||
| -rw-r--r-- | vrrpd/vrrp.c | 20 |
4 files changed, 27 insertions, 43 deletions
diff --git a/bgpd/bgp_evpn.c b/bgpd/bgp_evpn.c index 3f2f11dbe2..07d3f7b31e 100644 --- a/bgpd/bgp_evpn.c +++ b/bgpd/bgp_evpn.c @@ -2608,9 +2608,10 @@ static int install_evpn_route_entry(struct bgp *bgp, struct bgpevpn *vpn, && (struct bgp_path_info *)pi->extra->parent == parent_pi) break; - if (!pi) - pi = bgp_create_evpn_bgp_path_info(parent_pi, rn); - else { + if (!pi) { + /* Create an info */ + (void)bgp_create_evpn_bgp_path_info(parent_pi, rn); + } else { if (attrhash_cmp(pi->attr, parent_pi->attr) && !CHECK_FLAG(pi->flags, BGP_PATH_REMOVED)) { bgp_unlock_node(rn); diff --git a/doc/user/overview.rst b/doc/user/overview.rst index 5f9a7b937e..24d9ece93b 100644 --- a/doc/user/overview.rst +++ b/doc/user/overview.rst @@ -230,6 +230,8 @@ features with system dependencies are included here. +-----------------------------------+----------------+--------------+------------+------------+------------+ | EVPN BUM Forwarding | :mark:`≥5.0` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` | +-----------------------------------+----------------+--------------+------------+------------+------------+ +| `vrrpd` (VRRP) | :mark:`≥5.1` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` | ++-----------------------------------+----------------+--------------+------------+------------+------------+ The indicators have the following semantics: diff --git a/isisd/isis_northbound.c b/isisd/isis_northbound.c index 1e21efa7ce..97b7ae4f7e 100644 --- a/isisd/isis_northbound.c +++ b/isisd/isis_northbound.c @@ -1418,29 +1418,12 @@ static int isis_instance_mpls_te_create(enum nb_event event, area->mta->status = enable; } - /* - * Following code is intended to handle two cases; - * - * 1) MPLS-TE was disabled at startup time, but now become enabled. - * In this case, we must enable MPLS-TE Circuit regarding interface - * MPLS_TE flag - * 2) MPLS-TE was once enabled then disabled, and now enabled again. - */ - for (ALL_LIST_ELEMENTS_RO(area->circuit_list, node, circuit)) { - if (circuit->ext == NULL) - continue; - - if (!IS_EXT_TE(circuit->ext) - && HAS_LINK_PARAMS(circuit->interface)) - isis_link_params_update(circuit, circuit->interface); - else - continue; + /* Update Extended TLVs according to Interface link parameters */ + for (ALL_LIST_ELEMENTS_RO(area->circuit_list, node, circuit)) + isis_link_params_update(circuit, circuit->interface); - /* Reoriginate STD_TE & GMPLS circuits */ - if (circuit->area) - lsp_regenerate_schedule(circuit->area, circuit->is_type, - 0); - } + /* Reoriginate STD_TE & GMPLS circuits */ + lsp_regenerate_schedule(area, area->is_type, 0); return NB_OK; } @@ -1473,13 +1456,11 @@ static int isis_instance_mpls_te_destroy(enum nb_event event, circuit->ext->status = EXT_LAN_ADJ_SID; else circuit->ext->status = 0; - - /* Re-originate circuit without STD_TE & GMPLS parameters */ - if (circuit->area) - lsp_regenerate_schedule(circuit->area, circuit->is_type, - 0); } + /* Reoriginate STD_TE & GMPLS circuits */ + lsp_regenerate_schedule(area, area->is_type, 0); + zlog_debug("ISIS-TE(%s): Disabled MPLS Traffic Engineering", area->area_tag); @@ -1509,8 +1490,7 @@ static int isis_instance_mpls_te_router_address_modify(enum nb_event event, area->mta->router_id.s_addr = value.s_addr; /* And re-schedule LSP update */ - if (listcount(area->area_addrs) > 0) - lsp_regenerate_schedule(area, area->is_type, 0); + lsp_regenerate_schedule(area, area->is_type, 0); return NB_OK; } @@ -1532,8 +1512,7 @@ static int isis_instance_mpls_te_router_address_destroy(enum nb_event event, area->mta->router_id.s_addr = INADDR_ANY; /* And re-schedule LSP update */ - if (listcount(area->area_addrs) > 0) - lsp_regenerate_schedule(area, area->is_type, 0); + lsp_regenerate_schedule(area, area->is_type, 0); return NB_OK; } diff --git a/vrrpd/vrrp.c b/vrrpd/vrrp.c index 819a06e99a..54089b3612 100644 --- a/vrrpd/vrrp.c +++ b/vrrpd/vrrp.c @@ -281,7 +281,7 @@ void vrrp_check_start(struct vrrp_vrouter *vr) { struct vrrp_router *r; bool start; - const char *whynot = NULL; + const char *whynot; if (vr->shutdown || vr->ifp == NULL) return; @@ -289,27 +289,28 @@ void vrrp_check_start(struct vrrp_vrouter *vr) r = vr->v4; /* Must not already be started */ start = r->fsm.state == VRRP_STATE_INITIALIZE; + whynot = NULL; /* Must have a parent interface */ start = start && (vr->ifp != NULL); - whynot = (!start && !whynot) ? "No base interface" : NULL; + whynot = (!start && !whynot) ? "No base interface" : whynot; #if 0 /* Parent interface must be up */ start = start && if_is_operative(vr->ifp); #endif /* Parent interface must have at least one v4 */ start = start && vr->ifp->connected->count > 1; - whynot = (!start && !whynot) ? "No primary IPv4 address" : NULL; + whynot = (!start && !whynot) ? "No primary IPv4 address" : whynot; /* Must have a macvlan interface */ start = start && (r->mvl_ifp != NULL); - whynot = (!start && !whynot) ? "No VRRP interface" : NULL; + whynot = (!start && !whynot) ? "No VRRP interface" : whynot; #if 0 /* Macvlan interface must be admin up */ start = start && CHECK_FLAG(r->mvl_ifp->flags, IFF_UP); #endif /* Must have at least one VIP configured */ start = start && r->addrs->count > 0; - whynot = - (!start && !whynot) ? "No Virtual IP address configured" : NULL; + whynot = (!start && !whynot) ? "No Virtual IP address configured" + : whynot; if (start) vrrp_event(r, VRRP_EVENT_STARTUP); else if (whynot) @@ -320,19 +321,20 @@ void vrrp_check_start(struct vrrp_vrouter *vr) r = vr->v6; /* Must not already be started */ start = r->fsm.state == VRRP_STATE_INITIALIZE; + whynot = NULL; /* Must not be v2 */ start = start && vr->version != 2; - whynot = (!start && !whynot) ? "VRRPv2 does not support v6" : NULL; + whynot = (!start && !whynot) ? "VRRPv2 does not support v6" : whynot; /* Must have a parent interface */ start = start && (vr->ifp != NULL); - whynot = (!start && !whynot) ? "No base interface" : NULL; + whynot = (!start && !whynot) ? "No base interface" : whynot; #if 0 /* Parent interface must be up */ start = start && if_is_operative(vr->ifp); #endif /* Must have a macvlan interface */ start = start && (r->mvl_ifp != NULL); - whynot = (!start && !whynot) ? "No VRRP interface" : NULL; + whynot = (!start && !whynot) ? "No VRRP interface" : whynot; #if 0 /* Macvlan interface must be admin up */ start = start && CHECK_FLAG(r->mvl_ifp->flags, IFF_UP); |
