summaryrefslogtreecommitdiffhomepage
path: root/table/table_manager.go
diff options
context:
space:
mode:
authorIWASE Yusuke <iwase.yusuke0@gmail.com>2018-01-23 17:00:44 +0900
committerIWASE Yusuke <iwase.yusuke0@gmail.com>2018-02-08 15:33:34 +0900
commit1fd46103728f0ed421a74a5fd6b96cb74b44bb38 (patch)
treed57428c3e439cfa63c6f6b60153b40c0913e29d5 /table/table_manager.go
parent5322e63522e9320bc460f5a68538d24d11c5a0ef (diff)
config: Option to disable best path selection
Note: When this option is specified, no path will be redistributed to any peer, because there is no best path. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Diffstat (limited to 'table/table_manager.go')
-rw-r--r--table/table_manager.go11
1 files changed, 9 insertions, 2 deletions
diff --git a/table/table_manager.go b/table/table_manager.go
index b94b546e..498aabad 100644
--- a/table/table_manager.go
+++ b/table/table_manager.go
@@ -22,8 +22,9 @@ import (
"time"
farm "github.com/dgryski/go-farm"
- "github.com/osrg/gobgp/packet/bgp"
log "github.com/sirupsen/logrus"
+
+ "github.com/osrg/gobgp/packet/bgp"
)
const (
@@ -306,6 +307,10 @@ func (manager *TableManager) getDestinationCount(rfList []bgp.RouteFamily) int {
}
func (manager *TableManager) GetBestPathList(id string, rfList []bgp.RouteFamily) []*Path {
+ if SelectionOptions.DisableBestPathSelection {
+ // Note: If best path selection disabled, there is no best path.
+ return nil
+ }
paths := make([]*Path, 0, manager.getDestinationCount(rfList))
for _, t := range manager.tables(rfList...) {
paths = append(paths, t.Bests(id)...)
@@ -314,7 +319,9 @@ func (manager *TableManager) GetBestPathList(id string, rfList []bgp.RouteFamily
}
func (manager *TableManager) GetBestMultiPathList(id string, rfList []bgp.RouteFamily) [][]*Path {
- if !UseMultiplePaths.Enabled {
+ if !UseMultiplePaths.Enabled || SelectionOptions.DisableBestPathSelection {
+ // Note: If multi path not enabled or best path selection disabled,
+ // there is no best multi path.
return nil
}
paths := make([][]*Path, 0, manager.getDestinationCount(rfList))