From b36571665bd9213fc54942cc9d893e9b77652832 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Tue, 19 May 2015 18:04:05 -0700 Subject: [PATCH] 'neighbor x.x.x.x default-originate' is not honored while servicing ROUTE_REFRESH --- bgpd/bgp_packet.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index 9930163ef7..c827245c37 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -1724,6 +1724,7 @@ bgp_route_refresh_receive (struct peer *peer, bgp_size_t size) safi_t safi; u_char reserved; struct stream *s; + struct peer_af *paf; /* If peer does not have the capability, send notification. */ if (! CHECK_FLAG (peer->cap, PEER_CAP_REFRESH_ADV)) @@ -1916,6 +1917,15 @@ bgp_route_refresh_receive (struct peer *peer, bgp_size_t size) if (CHECK_FLAG (peer->af_sflags[afi][safi], PEER_STATUS_ORF_WAIT_REFRESH)) UNSET_FLAG (peer->af_sflags[afi][safi], PEER_STATUS_ORF_WAIT_REFRESH); + /* If the peer is configured for default-originate clear the + * SUBGRP_STATUS_DEFAULT_ORIGINATE flag so that we will re-advertise the + * default + */ + paf = peer_af_find (peer, afi, safi); + if (paf && paf->subgroup && + CHECK_FLAG (paf->subgroup->sflags, SUBGRP_STATUS_DEFAULT_ORIGINATE)) + UNSET_FLAG (paf->subgroup->sflags, SUBGRP_STATUS_DEFAULT_ORIGINATE); + /* Perform route refreshment to the peer */ bgp_announce_route (peer, afi, safi); } -- 2.39.5