summaryrefslogtreecommitdiffhomepage
path: root/server
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-10-21 18:55:53 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-10-21 18:55:53 +0900
commit46231a72017a6d669e29ec80557ac89bdf220099 (patch)
treeee7add75aecad764189f23637bd8a8129e1cf757 /server
parentf561312ceb92e85f0aa89b5c92cb04f0bb97f389 (diff)
server: fix ROUTE_REFRESH handling
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Diffstat (limited to 'server')
-rw-r--r--server/peer.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/server/peer.go b/server/peer.go
index c9c6e61e..f21ed0bd 100644
--- a/server/peer.go
+++ b/server/peer.go
@@ -205,8 +205,9 @@ func (peer *Peer) handleBGPmessage(m *bgp.BGPMessage) ([]*table.Path, bool, []*b
if _, ok := peer.capMap[bgp.BGP_CAP_ROUTE_REFRESH]; ok {
rfList := []bgp.RouteFamily{rf}
peer.adjRib.DropOut(rfList)
- pathList, filtered := peer.getBestFromLocal(rfList)
- peer.adjRib.UpdateOut(pathList)
+ accepted, filtered := peer.getBestFromLocal(rfList)
+ peer.adjRib.UpdateOut(accepted)
+ pathList = append(pathList, accepted...)
for _, path := range filtered {
path.IsWithdraw = true
pathList = append(pathList, path)