diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2015-03-06 10:09:14 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2015-03-06 10:09:14 +0900 |
commit | ea6446b4ef6e461837ed4f94216fe4fadf2964fa (patch) | |
tree | 911c211c1de793b2ee7d489c254db2f5d07ec20f | |
parent | af7f4d5531f2116e01f36b99611ffdbcc19a8cdd (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.go | 5 | ||||
-rw-r--r-- | server/peer_test.go | 1 | ||||
-rw-r--r-- | server/server.go | 2 | ||||
-rw-r--r-- | table/destination.go | 1 | ||||
-rw-r--r-- | table/table_manager.go | 5 |
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) { |