Mailing List Archive

[PATCH 5/6] bgpd: support End-Of-Rib of VPNv4 address family
After graceful restart procedure, when BGP speaker has finished to send
its VPNv4 routes to the restarting peer, it also sends End-Of-Rib
message for afi=AFI_IPv4 safi=SAFI_MPLS_VPN.

Signed-off-by: Julien Courtat <julien.courtat@6wind.com>
---
bgpd/bgp_packet.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c
index f0f5273..08c8351 100644
--- a/bgpd/bgp_packet.c
+++ b/bgpd/bgp_packet.c
@@ -343,7 +343,7 @@ bgp_update_packet_eor (struct peer *peer, afi_t afi, safi_t safi)
stream_putc (s, BGP_ATTR_MP_UNREACH_NLRI);
stream_putc (s, 3);
stream_putw (s, afi);
- stream_putc (s, safi);
+ stream_putc (s, (safi == SAFI_MPLS_VPN) ? SAFI_MPLS_LABELED_VPN : safi);
}

bgp_packet_set_size (s);
@@ -798,8 +798,7 @@ bgp_write_packet (struct peer *peer)
PEER_CAP_RESTART_BIT_RCV) &&
CHECK_FLAG (adv->binfo->peer->cap,
PEER_CAP_RESTART_BIT_ADV))
- && ! CHECK_FLAG (adv->binfo->flags, BGP_INFO_STALE)
- && safi != SAFI_MPLS_VPN)
+ && ! CHECK_FLAG (adv->binfo->flags, BGP_INFO_STALE))
{
if (CHECK_FLAG (adv->binfo->peer->af_sflags[afi][safi],
PEER_STATUS_EOR_RECEIVED))
@@ -816,8 +815,7 @@ bgp_write_packet (struct peer *peer)
if (CHECK_FLAG (peer->cap, PEER_CAP_RESTART_RCV))
{
if (peer->afc_nego[afi][safi] && peer->synctime
- && ! CHECK_FLAG (peer->af_sflags[afi][safi], PEER_STATUS_EOR_SEND)
- && safi != SAFI_MPLS_VPN)
+ && ! CHECK_FLAG (peer->af_sflags[afi][safi], PEER_STATUS_EOR_SEND))
{
SET_FLAG (peer->af_sflags[afi][safi], PEER_STATUS_EOR_SEND);
return bgp_update_packet_eor (peer, afi, safi);
--
2.1.4


_______________________________________________
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev