summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--server/peer.go4
-rw-r--r--server/server.go2
2 files changed, 6 insertions, 0 deletions
diff --git a/server/peer.go b/server/peer.go
index ccb2538b..8687b106 100644
--- a/server/peer.go
+++ b/server/peer.go
@@ -167,6 +167,10 @@ func (peer *Peer) sendPathsToSiblings(pathList []table.Path) {
msgData: pathList,
}
for _, s := range peer.siblings {
+ if peer.peerConfig.RouteServer.RouteServerClient && peer.peerConfig.PeerAs == s.As {
+ // don't send to a peer having the same AS number.
+ continue
+ }
s.peerMsgCh <- pm
}
}
diff --git a/server/server.go b/server/server.go
index 5492cb1c..92b9b606 100644
--- a/server/server.go
+++ b/server/server.go
@@ -43,6 +43,7 @@ type serverMsg struct {
type serverMsgDataPeer struct {
peerMsgCh chan *peerMsg
address net.IP
+ As uint32
}
type peerMapInfo struct {
@@ -176,6 +177,7 @@ func (server *BgpServer) Serve() {
d := &serverMsgDataPeer{
address: peer.NeighborAddress,
peerMsgCh: pch,
+ As: peer.PeerAs,
}
msg := &serverMsg{
msgType: SRV_MSG_PEER_ADDED,