Merge pull request #9673 from donaldsharp/bgp_paf

This commit is contained in:
David Lamparter 2021-09-27 15:37:43 +02:00 committed by GitHub
commit bd4aed8555
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 6 deletions

View File

@ -337,11 +337,13 @@ static void bgp_write_proceed_actions(struct peer *peer)
struct peer_af *paf;
struct bpacket *next_pkt;
struct update_subgroup *subgrp;
enum bgp_af_index index;
FOREACH_AFI_SAFI (afi, safi) {
paf = peer_af_find(peer, afi, safi);
for (index = BGP_AF_START; index < BGP_AF_MAX; index++) {
paf = peer->peer_af_array[index];
if (!paf)
continue;
subgrp = paf->subgroup;
if (!subgrp)
continue;
@ -364,6 +366,9 @@ static void bgp_write_proceed_actions(struct peer *peer)
return;
}
afi = paf->afi;
safi = paf->safi;
/* No packets to send, see if EOR is pending */
if (CHECK_FLAG(peer->cap, PEER_CAP_RESTART_RCV)) {
if (!subgrp->t_coalesce && peer->afc_nego[afi][safi]
@ -415,11 +420,16 @@ int bgp_generate_updgrp_packets(struct thread *thread)
return 0;
do {
enum bgp_af_index index;
s = NULL;
FOREACH_AFI_SAFI (afi, safi) {
paf = peer_af_find(peer, afi, safi);
for (index = BGP_AF_START; index < BGP_AF_MAX; index++) {
paf = peer->peer_af_array[index];
if (!paf || !PAF_SUBGRP(paf))
continue;
afi = paf->afi;
safi = paf->safi;
next_pkt = paf->next_pkt_to_send;
/*

View File

@ -912,13 +912,19 @@ static int bgp_peer_clear(struct peer *peer, afi_t afi, safi_t safi,
if ((afi == AFI_UNSPEC) && (safi == SAFI_UNSPEC)) {
afi_t tmp_afi;
safi_t tmp_safi;
enum bgp_af_index index;
for (index = BGP_AF_START; index < BGP_AF_MAX; index++) {
paf = peer->peer_af_array[index];
if (!paf)
continue;
FOREACH_AFI_SAFI (tmp_afi, tmp_safi) {
paf = peer_af_find(peer, tmp_afi, tmp_safi);
if (paf && paf->subgroup)
SET_FLAG(paf->subgroup->sflags,
SUBGRP_STATUS_FORCE_UPDATES);
tmp_afi = paf->afi;
tmp_safi = paf->safi;
if (!peer->afc[tmp_afi][tmp_safi])
continue;