summaryrefslogtreecommitdiffhomepage
path: root/server
diff options
context:
space:
mode:
authorWataru Ishida <ishida.wataru@lab.ntt.co.jp>2016-09-16 09:45:24 +0000
committerWataru Ishida <ishida.wataru@lab.ntt.co.jp>2016-09-16 09:45:24 +0000
commitc790472dad116de02fc9471147bb9efa85db75d0 (patch)
treed9a17824339f8bf6fe87fc617b9dcd0897b4f63e /server
parent0db1cd4af26a2c5025517ae30c9c16b11d5bb8d6 (diff)
server/table: don't modify/delete path attributes for route server client
RFC7947 2.2 says Optional recognized and unrecognized BGP attributes, whether transitive or non-transitive, SHOULD NOT be updated by the route server (unless enforced by local IXP operator configuration) and SHOULD be passed on to other route server clients Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
Diffstat (limited to 'server')
-rw-r--r--server/peer.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/server/peer.go b/server/peer.go
index f239033a..2feb4d86 100644
--- a/server/peer.go
+++ b/server/peer.go
@@ -162,7 +162,7 @@ func (peer *Peer) filterpath(path *table.Path, withdrawals []*table.Path) *table
// remove local-pref attribute
// we should do this after applying export policy since policy may
// set local-preference
- if path != nil && peer.fsm.pConf.Config.PeerType == config.PEER_TYPE_EXTERNAL {
+ if path != nil && !peer.isIBGPPeer() && !peer.isRouteServerClient() {
path.RemoveLocalPref()
}
return path