diff options
-rw-r--r-- | server/server.go | 2 | ||||
-rw-r--r-- | table/table_manager.go | 9 | ||||
-rw-r--r-- | table/table_manager_test.go | 77 | ||||
-rw-r--r-- | test/performance_test/main.go | 2 |
4 files changed, 27 insertions, 63 deletions
diff --git a/server/server.go b/server/server.go index ed57b42e..c8764587 100644 --- a/server/server.go +++ b/server/server.go @@ -216,7 +216,7 @@ func (server *BgpServer) Serve() { }(broadcastCh) rfs, _ := g.AfiSafis.ToRfList() - server.globalRib = table.NewTableManager(table.GLOBAL_RIB_NAME, rfs, g.MplsLabelRange.MinLabel, g.MplsLabelRange.MaxLabel) + server.globalRib = table.NewTableManager(rfs, g.MplsLabelRange.MinLabel, g.MplsLabelRange.MaxLabel) server.listenerMap = make(map[string]*net.TCPListener) acceptCh := make(chan *net.TCPConn) l4, err1 := listenAndAccept("tcp4", server.listenPort, acceptCh) diff --git a/table/table_manager.go b/table/table_manager.go index 518b961e..31c46b6b 100644 --- a/table/table_manager.go +++ b/table/table_manager.go @@ -111,18 +111,16 @@ func ProcessMessage(m *bgp.BGPMessage, peerInfo *PeerInfo, timestamp time.Time) type TableManager struct { Tables map[bgp.RouteFamily]*Table Vrfs map[string]*Vrf - owner string minLabel uint32 maxLabel uint32 nextLabel uint32 rfList []bgp.RouteFamily } -func NewTableManager(owner string, rfList []bgp.RouteFamily, minLabel, maxLabel uint32) *TableManager { +func NewTableManager(rfList []bgp.RouteFamily, minLabel, maxLabel uint32) *TableManager { t := &TableManager{ Tables: make(map[bgp.RouteFamily]*Table), Vrfs: make(map[string]*Vrf), - owner: owner, minLabel: minLabel, maxLabel: maxLabel, nextLabel: minLabel, @@ -163,10 +161,6 @@ func (manager *TableManager) getNextLabel() (uint32, error) { return label, nil } -func (manager *TableManager) OwnerName() string { - return manager.owner -} - func (manager *TableManager) AddVrf(name string, rd bgp.RouteDistinguisherInterface, importRt, exportRt []bgp.ExtendedCommunityInterface, info *PeerInfo) ([]*Path, error) { if _, ok := manager.Vrfs[name]; ok { return nil, fmt.Errorf("vrf %s already exists", name) @@ -223,7 +217,6 @@ func (manager *TableManager) calculate(destinations []*Destination) { for _, destination := range destinations { log.WithFields(log.Fields{ "Topic": "table", - "Owner": manager.owner, "Key": destination.GetNlri().String(), }).Debug("Processing destination") destination.Calculate() diff --git a/table/table_manager_test.go b/table/table_manager_test.go index e441fb97..791c6c48 100644 --- a/table/table_manager_test.go +++ b/table/table_manager_test.go @@ -85,7 +85,7 @@ func peerR3() *PeerInfo { // test best path calculation and check the result path is from R1 func TestProcessBGPUpdate_0_select_onlypath_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_0_select_onlypath_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) bgpMessage := update_fromR1() peer := peerR1() @@ -135,7 +135,7 @@ func TestProcessBGPUpdate_0_select_onlypath_ipv4(t *testing.T) { // test best path calculation and check the result path is from R1 func TestProcessBGPUpdate_0_select_onlypath_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_0_select_onlypath_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) bgpMessage := update_fromR1_ipv6() peer := peerR1() @@ -186,8 +186,7 @@ func TestProcessBGPUpdate_0_select_onlypath_ipv6(t *testing.T) { // test: compare localpref func TestProcessBGPUpdate_1_select_high_localpref_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_1_select_high_localpref_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) // low localpref message origin1 := bgp.NewPathAttributeOrigin(0) @@ -267,8 +266,7 @@ func TestProcessBGPUpdate_1_select_high_localpref_ipv4(t *testing.T) { func TestProcessBGPUpdate_1_select_high_localpref_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_1_select_high_localpref_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) origin1 := bgp.NewPathAttributeOrigin(0) aspath1 := createAsPathAttribute([]uint32{65000}) @@ -350,8 +348,7 @@ func TestProcessBGPUpdate_1_select_high_localpref_ipv6(t *testing.T) { // test: compare localOrigin func TestProcessBGPUpdate_2_select_local_origin_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_2_select_local_origin_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) // low localpref message origin1 := bgp.NewPathAttributeOrigin(0) @@ -433,8 +430,7 @@ func TestProcessBGPUpdate_2_select_local_origin_ipv4(t *testing.T) { func TestProcessBGPUpdate_2_select_local_origin_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_2_select_local_origin_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) origin1 := bgp.NewPathAttributeOrigin(0) aspath1 := createAsPathAttribute([]uint32{65000}) @@ -519,8 +515,7 @@ func TestProcessBGPUpdate_2_select_local_origin_ipv6(t *testing.T) { // test: compare AS_PATH func TestProcessBGPUpdate_3_select_aspath_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_3_select_aspath_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) bgpMessage1 := update_fromR2viaR1() peer1 := peerR1() @@ -575,8 +570,7 @@ func TestProcessBGPUpdate_3_select_aspath_ipv4(t *testing.T) { func TestProcessBGPUpdate_3_select_aspath_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_3_select_aspath_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) bgpMessage1 := update_fromR2viaR1_ipv6() peer1 := peerR1() @@ -633,8 +627,7 @@ func TestProcessBGPUpdate_3_select_aspath_ipv6(t *testing.T) { // test: compare Origin func TestProcessBGPUpdate_4_select_low_origin_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_4_select_low_origin_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) // low origin message origin1 := bgp.NewPathAttributeOrigin(1) @@ -714,8 +707,7 @@ func TestProcessBGPUpdate_4_select_low_origin_ipv4(t *testing.T) { func TestProcessBGPUpdate_4_select_low_origin_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_4_select_low_origin_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) origin1 := bgp.NewPathAttributeOrigin(1) aspath1 := createAsPathAttribute([]uint32{65200, 65000}) @@ -797,8 +789,7 @@ func TestProcessBGPUpdate_4_select_low_origin_ipv6(t *testing.T) { // test: compare MED func TestProcessBGPUpdate_5_select_low_med_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_5_select_low_med_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) // low origin message origin1 := bgp.NewPathAttributeOrigin(0) @@ -878,8 +869,7 @@ func TestProcessBGPUpdate_5_select_low_med_ipv4(t *testing.T) { func TestProcessBGPUpdate_5_select_low_med_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_5_select_low_med_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) origin1 := bgp.NewPathAttributeOrigin(0) aspath1 := createAsPathAttribute([]uint32{65200, 65000}) @@ -961,9 +951,7 @@ func TestProcessBGPUpdate_5_select_low_med_ipv6(t *testing.T) { // test: compare AS_NUMBER(prefer eBGP path) func TestProcessBGPUpdate_6_select_ebgp_path_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_6_select_ebgp_path_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) - - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) // low origin message origin1 := bgp.NewPathAttributeOrigin(0) @@ -1043,8 +1031,7 @@ func TestProcessBGPUpdate_6_select_ebgp_path_ipv4(t *testing.T) { func TestProcessBGPUpdate_6_select_ebgp_path_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_6_select_ebgp_path_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) origin1 := bgp.NewPathAttributeOrigin(0) aspath1 := createAsPathAttribute([]uint32{65000, 65200}) @@ -1128,9 +1115,7 @@ func TestProcessBGPUpdate_6_select_ebgp_path_ipv6(t *testing.T) { // test: compare Router ID func TestProcessBGPUpdate_7_select_low_routerid_path_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_7_select_low_routerid_path_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) - - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) // low origin message origin1 := bgp.NewPathAttributeOrigin(0) @@ -1210,8 +1195,7 @@ func TestProcessBGPUpdate_7_select_low_routerid_path_ipv4(t *testing.T) { func TestProcessBGPUpdate_7_select_low_routerid_path_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_7_select_low_routerid_path_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) origin1 := bgp.NewPathAttributeOrigin(0) aspath1 := createAsPathAttribute([]uint32{65000, 65200}) @@ -1293,9 +1277,7 @@ func TestProcessBGPUpdate_7_select_low_routerid_path_ipv6(t *testing.T) { // test: withdraw and mpunreach path func TestProcessBGPUpdate_8_withdraw_path_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_8_withdraw_path_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) - //setLogger(getLogger(log.DebugLevel)) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) // path1 origin1 := bgp.NewPathAttributeOrigin(0) @@ -1398,8 +1380,7 @@ func TestProcessBGPUpdate_8_withdraw_path_ipv4(t *testing.T) { // TODO MP_UNREACH func TestProcessBGPUpdate_8_mpunreach_path_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_8_mpunreach_path_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) origin1 := bgp.NewPathAttributeOrigin(0) aspath1 := createAsPathAttribute([]uint32{65000}) @@ -1527,9 +1508,7 @@ func TestProcessBGPUpdate_8_mpunreach_path_ipv6(t *testing.T) { // handle bestpath lost func TestProcessBGPUpdate_bestpath_lost_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_bestpath_lost_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) - //setLogger(getLogger(log.DebugLevel)) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) // path1 origin1 := bgp.NewPathAttributeOrigin(0) @@ -1599,8 +1578,7 @@ func TestProcessBGPUpdate_bestpath_lost_ipv4(t *testing.T) { func TestProcessBGPUpdate_bestpath_lost_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_bestpath_lost_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) origin1 := bgp.NewPathAttributeOrigin(0) aspath1 := createAsPathAttribute([]uint32{65000}) @@ -1671,9 +1649,7 @@ func TestProcessBGPUpdate_bestpath_lost_ipv6(t *testing.T) { // test: implicit withdrawal case func TestProcessBGPUpdate_implicit_withdrwal_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_implicit_withdrwal_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) - //setLogger(getLogger(log.DebugLevel)) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) // path1 origin1 := bgp.NewPathAttributeOrigin(0) @@ -1754,8 +1730,7 @@ func TestProcessBGPUpdate_implicit_withdrwal_ipv4(t *testing.T) { func TestProcessBGPUpdate_implicit_withdrwal_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_implicit_withdrwal_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) origin1 := bgp.NewPathAttributeOrigin(0) aspath1 := createAsPathAttribute([]uint32{65000, 65100, 65200}) @@ -1862,9 +1837,7 @@ func TestProcessBGPUpdate_implicit_withdrwal_ipv6(t *testing.T) { // check multiple paths func TestProcessBGPUpdate_multiple_nlri_ipv4(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_multiple_nlri_ipv4", []bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) - //setLogger(getLogger(log.DebugLevel)) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC}, 0, 0) createPathAttr := func(aspaths []uint32, nh string) []bgp.PathAttributeInterface { origin := bgp.NewPathAttributeOrigin(0) @@ -1997,9 +1970,7 @@ func TestProcessBGPUpdate_multiple_nlri_ipv4(t *testing.T) { // check multiple paths func TestProcessBGPUpdate_multiple_nlri_ipv6(t *testing.T) { - tm := NewTableManager("TestProcessBGPUpdate_multiple_nlri_ipv6", []bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) - //setLogger(getLogger(log.DebugLevel)) - var err error + tm := NewTableManager([]bgp.RouteFamily{bgp.RF_IPv6_UC}, 0, 0) createPathAttr := func(aspaths []uint32) []bgp.PathAttributeInterface { origin := bgp.NewPathAttributeOrigin(0) diff --git a/test/performance_test/main.go b/test/performance_test/main.go index b7c92a94..b439c9a8 100644 --- a/test/performance_test/main.go +++ b/test/performance_test/main.go @@ -30,7 +30,7 @@ import ( ) func newPeer(g config.Global, p config.Neighbor, incoming chan *server.FsmMsg) *server.Peer { - tbl := table.NewTableManager(g.GlobalConfig.RouterId.String(), []bgp.RouteFamily{bgp.RF_IPv4_UC, bgp.RF_IPv6_UC}, 0, 0) + tbl := table.NewTableManager([]bgp.RouteFamily{bgp.RF_IPv4_UC, bgp.RF_IPv6_UC}, 0, 0) peer := server.NewPeer(g, p, tbl, table.NewRoutingPolicy()) server.NewFSMHandler(peer.Fsm(), incoming, peer.Outgoing()) return peer |