Merge pull request #6872 from vincentbernat/fix/bgp4mib-vrf

bgpd: implement bgpPeerTable accross VRFs
This commit is contained in:
Donatas Abraitis 2020-08-07 18:04:47 +03:00 committed by GitHub
commit 940bb755fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -356,11 +356,9 @@ static struct peer *peer_lookup_addr_ipv4(struct in_addr *src)
struct bgp *bgp;
struct peer *peer;
struct listnode *node;
struct listnode *bgpnode;
bgp = bgp_get_default();
if (!bgp)
return NULL;
for (ALL_LIST_ELEMENTS_RO(bm->bgp, bgpnode, bgp)) {
for (ALL_LIST_ELEMENTS_RO(bgp->peer, node, peer)) {
if (sockunion_family(&peer->su) != AF_INET)
continue;
@ -368,6 +366,7 @@ static struct peer *peer_lookup_addr_ipv4(struct in_addr *src)
if (sockunion2ip(&peer->su) == src->s_addr)
return peer;
}
}
return NULL;
}
@ -378,11 +377,9 @@ static struct peer *bgp_peer_lookup_next(struct in_addr *src)
struct peer *peer;
struct peer *next_peer = NULL;
struct listnode *node;
struct listnode *bgpnode;
bgp = bgp_get_default();
if (!bgp)
return NULL;
for (ALL_LIST_ELEMENTS_RO(bm->bgp, bgpnode, bgp)) {
for (ALL_LIST_ELEMENTS_RO(bgp->peer, node, peer)) {
if (sockunion_family(&peer->su) != AF_INET)
continue;
@ -395,6 +392,7 @@ static struct peer *bgp_peer_lookup_next(struct in_addr *src)
next_peer = peer;
}
}
}
if (next_peer) {
src->s_addr = sockunion2ip(&next_peer->su);