From b49cdf4c379bb7b4059faea4ce4582e6ab29ce50 Mon Sep 17 00:00:00 2001 From: Don Slice Date: Thu, 27 Sep 2018 16:51:59 +0000 Subject: [PATCH 1/2] bgpd: enable aggregation in evpn Problem encountered where using the aggregate-address command in an evpn environment did not work properly. Depending on the order of actions, the aggregate may not be created or removed when either the commands were issued or routes come and go. Ticket: CM-20585 Signed-off-by: Don Slice --- bgpd/bgp_evpn.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bgpd/bgp_evpn.c b/bgpd/bgp_evpn.c index 41aceae9f..744f07d86 100644 --- a/bgpd/bgp_evpn.c +++ b/bgpd/bgp_evpn.c @@ -2428,6 +2428,8 @@ static int install_evpn_route_entry_in_vrf(struct bgp *bgp_vrf, ri->uptime = bgp_clock(); } + bgp_aggregate_increment(bgp_vrf, &rn->p, ri, afi, safi); + /* Perform route selection and update zebra, if required. */ bgp_process(bgp_vrf, rn, afi, safi); @@ -2600,6 +2602,8 @@ static int uninstall_evpn_route_entry_in_vrf(struct bgp *bgp_vrf, /* Mark entry for deletion */ bgp_info_delete(rn, ri); + bgp_aggregate_decrement(bgp_vrf, &rn->p, ri, afi, safi); + /* Perform route selection and update zebra, if required. */ bgp_process(bgp_vrf, rn, afi, safi); From 4c7a11d5f2c82c9fd477e95dd822d12ce2c3d01b Mon Sep 17 00:00:00 2001 From: Don Slice Date: Fri, 28 Sep 2018 17:29:18 +0000 Subject: [PATCH 2/2] bgpd: resolve change required in pull review for evpn aggregates Signed-off-by: Don Slice --- bgpd/bgp_evpn.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bgpd/bgp_evpn.c b/bgpd/bgp_evpn.c index 744f07d86..8002ebe1c 100644 --- a/bgpd/bgp_evpn.c +++ b/bgpd/bgp_evpn.c @@ -2599,11 +2599,11 @@ static int uninstall_evpn_route_entry_in_vrf(struct bgp *bgp_vrf, if (!ri) return 0; + bgp_aggregate_decrement(bgp_vrf, &rn->p, ri, afi, safi); + /* Mark entry for deletion */ bgp_info_delete(rn, ri); - bgp_aggregate_decrement(bgp_vrf, &rn->p, ri, afi, safi); - /* Perform route selection and update zebra, if required. */ bgp_process(bgp_vrf, rn, afi, safi);