diff options
author | ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp> | 2016-05-21 11:49:00 +0000 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2016-05-23 09:46:53 +0900 |
commit | c5fae01b021924295f38ad4ab3a34e9f960d0200 (patch) | |
tree | 77c4f8847d6c5a14c769b2db3608e8c50f42788d /server/server.go | |
parent | a4c2ea3d18fcada66a1199ee7e17b30a0479f72b (diff) |
vrf: fix rtc withdraw handling
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Diffstat (limited to 'server/server.go')
-rw-r--r-- | server/server.go | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/server/server.go b/server/server.go index 9761fc28..97f9228c 100644 --- a/server/server.go +++ b/server/server.go @@ -683,12 +683,19 @@ func (server *BgpServer) propagateUpdate(peer *Peer, pathList []*table.Path) ([] for _, p := range candidates { for _, ext := range p.GetExtCommunities() { if ext.String() == rt.String() { + if path.IsWithdraw { + p = p.Clone(true) + } paths = append(paths, p) break } } } - paths = peer.processOutgoingPaths(paths, nil) + if path.IsWithdraw { + paths = peer.processOutgoingPaths(nil, paths) + } else { + paths = peer.processOutgoingPaths(paths, nil) + } msgs = append(msgs, newSenderMsg(peer, paths, nil, false)) } } |