From bd8424e6d57691b2ed68aa2949effe4089e1baff Mon Sep 17 00:00:00 2001 From: IWASE Yusuke Date: Wed, 15 Feb 2017 10:35:34 +0900 Subject: [PATCH] table/table_manager: Enable to select paths with nexthop Signed-off-by: IWASE Yusuke --- table/table_manager.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/table/table_manager.go b/table/table_manager.go index 15caa924..32531056 100644 --- a/table/table_manager.go +++ b/table/table_manager.go @@ -350,6 +350,20 @@ func (manager *TableManager) GetPathList(id string, rfList []bgp.RouteFamily) [] return paths } +func (manager *TableManager) GetPathListWithNexthop(id string, rfList []bgp.RouteFamily, nexthop net.IP) []*Path { + paths := make([]*Path, 0, manager.getDestinationCount(rfList)) + for _, rf := range rfList { + if t, ok := manager.Tables[rf]; ok { + for _, path := range t.GetKnownPathList(id) { + if path.GetNexthop().Equal(nexthop) { + paths = append(paths, path) + } + } + } + } + return paths +} + func (manager *TableManager) GetDestination(path *Path) *Destination { if path == nil { return nil