diff --git a/routingtable/locRIB/loc_rib_test.go b/routingtable/locRIB/loc_rib_test.go index beefc93d3b4e69e70be4e52f3508261b02c9cc02..6b3e24e0715ec5ec8a670c9d6bd94f1a28fab5ad 100644 --- a/routingtable/locRIB/loc_rib_test.go +++ b/routingtable/locRIB/loc_rib_test.go @@ -3,7 +3,6 @@ package locRIB import ( "testing" - "github.com/bio-routing/bio-rd/net" bnet "github.com/bio-routing/bio-rd/net" "github.com/bio-routing/bio-rd/route" @@ -11,7 +10,7 @@ import ( ) type pfxPath struct { - pfx net.Prefix + pfx bnet.Prefix path *route.Path } @@ -26,7 +25,7 @@ func TestContainsPfxPath(t *testing.T) { { in: []pfxPath{}, check: pfxPath{ - pfx: net.NewPfx(1, 32), + pfx: bnet.NewPfx(bnet.IPv4(1), 32), path: nil, }, expected: false, @@ -35,7 +34,7 @@ func TestContainsPfxPath(t *testing.T) { { in: []pfxPath{ { - pfx: net.NewPfx(1, 32), + pfx: bnet.NewPfx(bnet.IPv4(1), 32), path: &route.Path{ Type: route.StaticPathType, StaticPath: &route.StaticPath{ @@ -45,7 +44,7 @@ func TestContainsPfxPath(t *testing.T) { }, }, check: pfxPath{ - pfx: net.NewPfx(1, 32), + pfx: bnet.NewPfx(bnet.IPv4(1), 32), path: nil, }, expected: false, @@ -54,7 +53,7 @@ func TestContainsPfxPath(t *testing.T) { { in: []pfxPath{ { - pfx: net.NewPfx(1, 32), + pfx: bnet.NewPfx(bnet.IPv4(1), 32), path: &route.Path{ Type: route.StaticPathType, StaticPath: &route.StaticPath{ @@ -64,7 +63,7 @@ func TestContainsPfxPath(t *testing.T) { }, }, check: pfxPath{ - pfx: net.NewPfx(1, 32), + pfx: bnet.NewPfx(bnet.IPv4(1), 32), path: &route.Path{ Type: route.StaticPathType, StaticPath: &route.StaticPath{ @@ -88,7 +87,7 @@ func TestContainsPfxPath(t *testing.T) { func TestLocRIB_RemovePathUnknown(t *testing.T) { rib := New() - assert.True(t, rib.RemovePath(net.NewPfx(1, 32), + assert.True(t, rib.RemovePath(bnet.NewPfx(bnet.IPv4(1), 32), &route.Path{ Type: route.StaticPathType, StaticPath: &route.StaticPath{ diff --git a/routingtable/table_test.go b/routingtable/table_test.go index acc5373857e2a202a6874a7d39331edbad430fab..d0c00092f7750143c09ad2d2171eb4b3a23f8bcc 100644 --- a/routingtable/table_test.go +++ b/routingtable/table_test.go @@ -17,59 +17,59 @@ func TestAddPath(t *testing.T) { { name: "Insert first node", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), }, expected: &node{ - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), skip: 8, }, }, { name: "Insert duplicate node", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), }, expected: &node{ - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), skip: 8, }, }, { name: "Insert triangle", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 9), nil), - route.NewRoute(net.NewPfx(strAddr("10.128.0.0"), 9), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 9), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 128, 0, 0), 9), nil), }, expected: &node{ - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), skip: 8, l: &node{ - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 9), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 9), nil), }, h: &node{ - route: route.NewRoute(net.NewPfx(strAddr("10.128.0.0"), 9), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 128, 0, 0), 9), nil), }, }, }, { name: "Insert disjunct prefixes", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), }, expected: &node{ - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 7), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 7), nil), skip: 7, dummy: true, l: &node{ - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), }, h: &node{ - route: route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), skip: 16, }, }, @@ -77,28 +77,28 @@ func TestAddPath(t *testing.T) { { name: "Insert disjunct prefixes plus one child low", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), }, expected: &node{ - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 7), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 7), nil), skip: 7, dummy: true, l: &node{ - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), l: &node{ skip: 1, - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), l: &node{ skip: 1, - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), }, }, }, h: &node{ - route: route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), skip: 16, }, }, @@ -106,32 +106,32 @@ func TestAddPath(t *testing.T) { { name: "Insert disjunct prefixes plus one child high", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.128"), 25), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 128), 25), nil), }, expected: &node{ - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 7), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 7), nil), skip: 7, dummy: true, l: &node{ - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), l: &node{ skip: 1, - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), l: &node{ skip: 1, - route: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), }, }, }, h: &node{ - route: route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), skip: 16, h: &node{ - route: route.NewRoute(net.NewPfx(strAddr("11.100.123.128"), 25), nil), + route: route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 128), 25), nil), }, }, }, @@ -158,67 +158,67 @@ func TestGet(t *testing.T) { { name: "Test 1: Search pfx and dump route + more specifics", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), }, - needle: net.NewPfx(strAddr("10.0.0.0"), 8), - expected: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), + needle: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), + expected: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), }, { name: "Test 2: Search pfx and don't dump more specifics", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), }, - needle: net.NewPfx(strAddr("10.0.0.0"), 8), - expected: route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), + needle: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), + expected: route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), }, { name: "Test 3: Empty table", routes: []*route.Route{}, - needle: net.NewPfx(strAddr("10.0.0.0"), 32), + needle: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 32), expected: nil, }, { name: "Test 4: Get Dummy", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), }, - needle: net.NewPfx(strAddr("10.0.0.0"), 7), + needle: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 7), expected: nil, }, { name: "Test 5", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), }, - needle: net.NewPfx(strAddr("11.100.123.0"), 24), - expected: route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), + needle: net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), + expected: route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), }, { name: "Test 4: Get nonexistent #1", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), }, - needle: net.NewPfx(strAddr("10.0.0.0"), 10), + needle: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), expected: nil, }, { name: "Test 4: Get nonexistent #2", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), }, - needle: net.NewPfx(strAddr("10.0.0.0"), 10), + needle: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), expected: nil, }, } @@ -250,22 +250,22 @@ func TestGetLonger(t *testing.T) { { name: "Test 1: Search pfx and dump route + more specifics", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), }, - needle: net.NewPfx(strAddr("10.0.0.0"), 8), + needle: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), }, }, { name: "Test 2: Empty root", routes: nil, - needle: net.NewPfx(strAddr("10.0.0.0"), 8), + needle: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), expected: []*route.Route{}, }, } @@ -297,36 +297,36 @@ func TestLPM(t *testing.T) { { name: "LPM for non-existent route", routes: []*route.Route{}, - needle: net.NewPfx(strAddr("10.0.0.0"), 32), + needle: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 32), expected: nil, }, { name: "Positive LPM test", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), }, - needle: net.NewPfx(167772160, 32), // 10.0.0.0/32 + needle: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 32), expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), }, }, { name: "Exact match", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("11.100.123.0"), 24), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 12), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 100, 123, 0), 24), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 12), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), }, - needle: net.NewPfx(strAddr("10.0.0.0"), 10), + needle: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), nil), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 10), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), nil), + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 10), nil), }, }, } @@ -351,30 +351,30 @@ func TestRemovePath(t *testing.T) { { name: "Remove a path that is the only one for a prefix", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 9), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 9), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }), - route.NewRoute(net.NewPfx(strAddr("10.128.0.0"), 9), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 128, 0, 0), 9), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }), }, - removePfx: net.NewPfx(strAddr("10.0.0.0"), 8), + removePfx: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), removePath: &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }, expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 9), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 9), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }), - route.NewRoute(net.NewPfx(strAddr("10.128.0.0"), 9), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 128, 0, 0), 9), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }), @@ -383,28 +383,28 @@ func TestRemovePath(t *testing.T) { { name: "Remove a path that is one of two for a prefix", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1000, }, }), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 2000, }, }), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 9), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 9), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }), - route.NewRoute(net.NewPfx(strAddr("10.128.0.0"), 9), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 128, 0, 0), 9), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }), }, - removePfx: net.NewPfx(strAddr("10.0.0.0"), 8), + removePfx: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), removePath: &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ @@ -412,17 +412,17 @@ func TestRemovePath(t *testing.T) { }, }, expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 2000, }, }), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 9), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 9), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }), - route.NewRoute(net.NewPfx(strAddr("10.128.0.0"), 9), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 128, 0, 0), 9), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }), @@ -462,13 +462,13 @@ func TestReplacePath(t *testing.T) { }{ { name: "replace in empty table", - replacePfx: net.NewPfx(strAddr("10.0.0.0"), 8), + replacePfx: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), replacePath: &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }, expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{}, }), @@ -478,14 +478,14 @@ func TestReplacePath(t *testing.T) { { name: "replace not existing prefix with multiple paths", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1001, NextHop: net.IPv4(101), }, }), - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1002, @@ -493,7 +493,7 @@ func TestReplacePath(t *testing.T) { }, }), }, - replacePfx: net.NewPfx(strAddr("10.0.0.0"), 8), + replacePfx: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), replacePath: &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ @@ -501,13 +501,13 @@ func TestReplacePath(t *testing.T) { }, }, expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1000, }, }), - newMultiPathRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + newMultiPathRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1001, @@ -526,26 +526,26 @@ func TestReplacePath(t *testing.T) { { name: "replace existing prefix with multiple paths", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1, }, }), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 2, }, }), - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1001, NextHop: net.IPv4(101), }, }), - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1002, @@ -553,7 +553,7 @@ func TestReplacePath(t *testing.T) { }, }), }, - replacePfx: net.NewPfx(strAddr("10.0.0.0"), 8), + replacePfx: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), replacePath: &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ @@ -561,13 +561,13 @@ func TestReplacePath(t *testing.T) { }, }, expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1000, }, }), - newMultiPathRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + newMultiPathRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1001, @@ -624,21 +624,21 @@ func TestRemovePrefix(t *testing.T) { }{ { name: "remove in empty table", - removePfx: net.NewPfx(strAddr("10.0.0.0"), 8), + removePfx: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), expected: []*route.Route{}, expectedOld: nil, }, { name: "remove not exist prefix", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1, }, }), - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1002, @@ -646,16 +646,16 @@ func TestRemovePrefix(t *testing.T) { }, }), }, - removePfx: net.NewPfx(strAddr("12.0.0.0"), 8), + removePfx: net.NewPfx(net.IPv4FromOctets(12, 0, 0, 0), 8), expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1, }, }), - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1002, @@ -668,14 +668,14 @@ func TestRemovePrefix(t *testing.T) { { name: "remove not existing more specific prefix", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1, }, }), - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1002, @@ -683,16 +683,16 @@ func TestRemovePrefix(t *testing.T) { }, }), }, - removePfx: net.NewPfx(strAddr("10.0.0.0"), 9), + removePfx: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 9), expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1, }, }), - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1002, @@ -705,14 +705,14 @@ func TestRemovePrefix(t *testing.T) { { name: "remove not existing more less prefix", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1, }, }), - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1002, @@ -720,16 +720,16 @@ func TestRemovePrefix(t *testing.T) { }, }), }, - removePfx: net.NewPfx(strAddr("10.0.0.0"), 7), + removePfx: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 7), expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1, }, }), - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1002, @@ -742,19 +742,19 @@ func TestRemovePrefix(t *testing.T) { { name: "remove existing prefix", routes: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1, }, }), - route.NewRoute(net.NewPfx(strAddr("10.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 2, }, }), - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1002, @@ -762,9 +762,9 @@ func TestRemovePrefix(t *testing.T) { }, }), }, - removePfx: net.NewPfx(strAddr("10.0.0.0"), 8), + removePfx: net.NewPfx(net.IPv4FromOctets(10, 0, 0, 0), 8), expected: []*route.Route{ - route.NewRoute(net.NewPfx(strAddr("11.0.0.0"), 8), &route.Path{ + route.NewRoute(net.NewPfx(net.IPv4FromOctets(11, 0, 0, 0), 8), &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{ LocalPref: 1002, @@ -816,8 +816,3 @@ func newMultiPathRoute(pfx net.Prefix, paths ...*route.Path) *route.Route { return r } - -func strAddr(s string) uint32 { - ret, _ := net.StrToAddr(s) - return ret -} diff --git a/routingtable/update_helper_test.go b/routingtable/update_helper_test.go index 226be1b3c10c9fffe500aa48a1bccc14b018bf62..b6527e39c4180a6a7c2b7788793d8dcdfb6fc7d8 100644 --- a/routingtable/update_helper_test.go +++ b/routingtable/update_helper_test.go @@ -73,7 +73,7 @@ func TestShouldPropagateUpdate(t *testing.T) { comms = append(comms, com) } - pfx := bnet.NewPfx(0, 32) + pfx := bnet.NewPfx(bnet.IPv4(0), 32) pa := &route.Path{ Type: route.BGPPathType, BGPPath: &route.BGPPath{