summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-08-28 15:12:20 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-08-29 22:50:40 +0900
commit53f7e5add711efa58771030443bf3faa9f9e244d (patch)
tree69edc2e42f8cffd4e79a84c5686e5da8442f023f
parent4f3f0468a1d32e3dc1a18d18601c4c9867e4f377 (diff)
Revert "table: increase the possibiliby of many NLRIs in one update message"
This reverts commit 51494759aded7098e151869e66dd5b2c4d96ecfd. gobgpd still sends too more updates rather than Quagga. Revert this.
-rw-r--r--table/table_manager.go36
1 files changed, 3 insertions, 33 deletions
diff --git a/table/table_manager.go b/table/table_manager.go
index 6943101c..75b68b03 100644
--- a/table/table_manager.go
+++ b/table/table_manager.go
@@ -22,7 +22,6 @@ import (
"github.com/osrg/gobgp/packet"
"net"
"reflect"
- "sort"
"time"
)
@@ -357,45 +356,16 @@ func (manager *TableManager) GetPathList(rf bgp.RouteFamily) []*Path {
return paths
}
-type paths []*Path
-
-func (p paths) Len() int {
- return len(p)
-}
-
-func (p paths) Swap(i, j int) {
- p[i], p[j] = p[j], p[i]
-}
-
-func (p paths) Less(i, j int) bool {
- l0 := len(p[i].GetPathAttrs())
- l1 := len(p[j].GetPathAttrs())
- if l0 < l1 {
- return true
- }
- if l0 == l1 {
- return p[i].GetAsPathLen() < p[j].GetAsPathLen()
- }
- return false
-}
-
func (manager *TableManager) GetBestPathList(rf bgp.RouteFamily) []*Path {
if _, ok := manager.Tables[rf]; !ok {
return []*Path{}
}
destinations := manager.Tables[rf].GetDestinations()
- plist := make([]*Path, 0, len(destinations))
- pathsByPeer := make(map[uint32]paths)
+ paths := make([]*Path, 0, len(destinations))
for _, dest := range destinations {
- path := dest.GetBestPath()
- key := path.GetSourceAs()
- pathsByPeer[key] = append(pathsByPeer[key], path)
- }
- for _, v := range pathsByPeer {
- sort.Sort(v)
- plist = append(plist, v...)
+ paths = append(paths, dest.GetBestPath())
}
- return plist
+ return paths
}
// process BGPUpdate message