diff options
author | Wataru Ishida <ishida.wataru@lab.ntt.co.jp> | 2016-09-16 09:45:24 +0000 |
---|---|---|
committer | Wataru Ishida <ishida.wataru@lab.ntt.co.jp> | 2016-09-16 09:45:24 +0000 |
commit | c790472dad116de02fc9471147bb9efa85db75d0 (patch) | |
tree | d9a17824339f8bf6fe87fc617b9dcd0897b4f63e /server/peer.go | |
parent | 0db1cd4af26a2c5025517ae30c9c16b11d5bb8d6 (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/peer.go')
-rw-r--r-- | server/peer.go | 2 |
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 |