summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-03-06 10:09:14 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-03-06 10:09:14 +0900
commitea6446b4ef6e461837ed4f94216fe4fadf2964fa (patch)
tree911c211c1de793b2ee7d489c254db2f5d07ec20f
parentaf7f4d5531f2116e01f36b99611ffdbcc19a8cdd (diff)
table: remove RF from PeerInfo
Cleanup for supporting multiple route families. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--server/peer.go5
-rw-r--r--server/peer_test.go1
-rw-r--r--server/server.go2
-rw-r--r--table/destination.go1
-rw-r--r--table/table_manager.go5
5 files changed, 5 insertions, 9 deletions
diff --git a/server/peer.go b/server/peer.go
index 02956788..91d7894b 100644
--- a/server/peer.go
+++ b/server/peer.go
@@ -89,7 +89,6 @@ func NewPeer(g config.Global, peer config.Neighbor, serverMsgCh chan *serverMsg,
p.peerInfo = &table.PeerInfo{
AS: peer.PeerAs,
LocalID: g.RouterId,
- RF: p.rf,
Address: peer.NeighborAddress,
}
p.adjRib = table.NewAdjRib()
@@ -315,7 +314,7 @@ func (peer *Peer) handlePeerMsg(m *peerMsg) {
pList, wList, _ := peer.rib.ProcessPaths(m.msgData.([]table.Path))
peer.sendUpdateMsgFromPaths(pList, wList)
case PEER_MSG_PEER_DOWN:
- pList, wList, _ := peer.rib.DeletePathsforPeer(m.msgData.(*table.PeerInfo))
+ pList, wList, _ := peer.rib.DeletePathsforPeer(m.msgData.(*table.PeerInfo), peer.rf)
peer.sendUpdateMsgFromPaths(pList, wList)
}
}
@@ -344,7 +343,7 @@ func (peer *Peer) handleServerMsg(m *serverMsg) {
_, found := peer.siblings[d.Address.String()]
if found {
delete(peer.siblings, d.Address.String())
- pList, wList, _ := peer.rib.DeletePathsforPeer(d)
+ pList, wList, _ := peer.rib.DeletePathsforPeer(d, peer.rf)
peer.sendUpdateMsgFromPaths(pList, wList)
} else {
log.Warning("can not find peer: ", d.Address.String())
diff --git a/server/peer_test.go b/server/peer_test.go
index 09ded7c3..9c5a9452 100644
--- a/server/peer_test.go
+++ b/server/peer_test.go
@@ -521,7 +521,6 @@ func makePeer(globalConfig config.Global, peerConfig config.Neighbor) *Peer {
p.peerInfo = &table.PeerInfo{
AS: peerConfig.PeerAs,
LocalID: globalConfig.RouterId,
- RF: p.rf,
Address: peerConfig.NeighborAddress,
}
p.adjRib = table.NewAdjRib()
diff --git a/server/server.go b/server/server.go
index 39f5fe48..3d852cb8 100644
--- a/server/server.go
+++ b/server/server.go
@@ -162,7 +162,7 @@ func (server *BgpServer) Serve() {
d := &serverMsgDataPeer{
address: peer.NeighborAddress,
peerMsgCh: pch,
- rf: p.peerInfo.RF,
+ rf: p.rf,
}
msg := &serverMsg{
msgType: SRV_MSG_PEER_ADDED,
diff --git a/table/destination.go b/table/destination.go
index 769e6545..6734229a 100644
--- a/table/destination.go
+++ b/table/destination.go
@@ -44,7 +44,6 @@ type PeerInfo struct {
AS uint32
ID net.IP
LocalID net.IP
- RF bgp.RouteFamily
Address net.IP
}
diff --git a/table/table_manager.go b/table/table_manager.go
index 876ea331..be068e40 100644
--- a/table/table_manager.go
+++ b/table/table_manager.go
@@ -233,10 +233,9 @@ func (manager *TableManager) calculate(destinationList []Destination) ([]Path, [
return bestPaths, lostPaths, nil
}
-func (manager *TableManager) DeletePathsforPeer(peerInfo *PeerInfo) ([]Path, []Path, error) {
- destinationList := manager.Tables[peerInfo.RF].DeleteDestByPeer(peerInfo)
+func (manager *TableManager) DeletePathsforPeer(peerInfo *PeerInfo, rf bgp.RouteFamily) ([]Path, []Path, error) {
+ destinationList := manager.Tables[rf].DeleteDestByPeer(peerInfo)
return manager.calculate(destinationList)
-
}
func (manager *TableManager) ProcessPaths(pathList []Path) ([]Path, []Path, error) {