diff options
-rw-r--r-- | server/rpki.go | 2 | ||||
-rw-r--r-- | server/rpki_test.go | 26 | ||||
-rw-r--r-- | table/destination.go | 12 | ||||
-rw-r--r-- | table/destination_test.go | 2 |
4 files changed, 17 insertions, 25 deletions
diff --git a/server/rpki.go b/server/rpki.go index a26f155f..e7775b2c 100644 --- a/server/rpki.go +++ b/server/rpki.go @@ -103,7 +103,7 @@ func (c *roaClient) handleRTRMsg(buf []byte) { received.CacheResponse++ case *bgp.RTRIPPrefix: var tree *radix.Tree - if net.IP(msg.Prefix).To4() != nil { + if msg.Type == bgp.RTR_IPV4_PREFIX { received.Ipv4Prefix++ tree = c.roas[bgp.RF_IPv4_UC] } else { diff --git a/server/rpki_test.go b/server/rpki_test.go index 3de06963..bb2cf088 100644 --- a/server/rpki_test.go +++ b/server/rpki_test.go @@ -60,8 +60,8 @@ func TestValidate0(t *testing.T) { assert := assert.New(t) tree := radix.New() - addROA(tree, 100, net.ParseIP("192.168.0.0"), 24, 32) - addROA(tree, 200, net.ParseIP("192.168.0.0"), 24, 24) + addROA(tree, 100, net.ParseIP("192.168.0.0").To4(), 24, 32) + addROA(tree, 200, net.ParseIP("192.168.0.0").To4(), 24, 24) var r config.RpkiValidationResultType @@ -88,7 +88,7 @@ func TestValidate1(t *testing.T) { assert := assert.New(t) tree := radix.New() - addROA(tree, 65000, net.ParseIP("10.0.0.0"), 16, 16) + addROA(tree, 65000, net.ParseIP("10.0.0.0").To4(), 16, 16) var r config.RpkiValidationResultType @@ -117,7 +117,7 @@ func TestValidate3(t *testing.T) { assert := assert.New(t) tree1 := radix.New() - addROA(tree1, 65000, net.ParseIP("10.0.0.0"), 16, 16) + addROA(tree1, 65000, net.ParseIP("10.0.0.0").To4(), 16, 16) var r config.RpkiValidationResultType @@ -128,7 +128,7 @@ func TestValidate3(t *testing.T) { assert.Equal(r, config.RPKI_VALIDATION_RESULT_TYPE_INVALID) tree2 := radix.New() - addROA(tree2, 65000, net.ParseIP("10.0.0.0"), 16, 24) + addROA(tree2, 65000, net.ParseIP("10.0.0.0").To4(), 16, 24) r = validateOne(tree2, "10.0.0.0/17", "65000") assert.Equal(r, config.RPKI_VALIDATION_RESULT_TYPE_VALID) @@ -138,8 +138,8 @@ func TestValidate4(t *testing.T) { assert := assert.New(t) tree := radix.New() - addROA(tree, 65000, net.ParseIP("10.0.0.0"), 16, 16) - addROA(tree, 65001, net.ParseIP("10.0.0.0"), 16, 16) + addROA(tree, 65000, net.ParseIP("10.0.0.0").To4(), 16, 16) + addROA(tree, 65001, net.ParseIP("10.0.0.0").To4(), 16, 16) var r config.RpkiValidationResultType @@ -154,8 +154,8 @@ func TestValidate5(t *testing.T) { assert := assert.New(t) tree := radix.New() - addROA(tree, 65000, net.ParseIP("10.0.0.0"), 17, 17) - addROA(tree, 65000, net.ParseIP("10.0.128.0"), 17, 17) + addROA(tree, 65000, net.ParseIP("10.0.0.0").To4(), 17, 17) + addROA(tree, 65000, net.ParseIP("10.0.128.0").To4(), 17, 17) var r config.RpkiValidationResultType @@ -167,7 +167,7 @@ func TestValidate6(t *testing.T) { assert := assert.New(t) tree := radix.New() - addROA(tree, 0, net.ParseIP("10.0.0.0"), 8, 32) + addROA(tree, 0, net.ParseIP("10.0.0.0").To4(), 8, 32) var r config.RpkiValidationResultType @@ -185,7 +185,7 @@ func TestValidate7(t *testing.T) { assert := assert.New(t) tree := radix.New() - addROA(tree, 65000, net.ParseIP("10.0.0.0"), 16, 24) + addROA(tree, 65000, net.ParseIP("10.0.0.0").To4(), 16, 24) var r config.RpkiValidationResultType @@ -203,8 +203,8 @@ func TestValidate8(t *testing.T) { assert := assert.New(t) tree := radix.New() - addROA(tree, 0, net.ParseIP("10.0.0.0"), 16, 24) - addROA(tree, 65000, net.ParseIP("10.0.0.0"), 16, 24) + addROA(tree, 0, net.ParseIP("10.0.0.0").To4(), 16, 24) + addROA(tree, 65000, net.ParseIP("10.0.0.0").To4(), 16, 24) var r config.RpkiValidationResultType diff --git a/table/destination.go b/table/destination.go index 9c7b4f91..c2794a6a 100644 --- a/table/destination.go +++ b/table/destination.go @@ -42,7 +42,7 @@ const ( BPR_ROUTER_ID = "Router ID" ) -func toRadixkey(b []byte, max uint8) string { +func IpToRadixkey(b []byte, max uint8) string { var buffer bytes.Buffer for i := 0; i < len(b) && i < int(max); i++ { buffer.WriteString(fmt.Sprintf("%08b", b[i])) @@ -50,18 +50,10 @@ func toRadixkey(b []byte, max uint8) string { return buffer.String()[:max] } -func IpToRadixkey(prefix net.IP, prefixLen uint8) string { - b := prefix.To4() - if b == nil { - b = prefix.To16() - } - return toRadixkey(b, prefixLen) -} - func CidrToRadixkey(cidr string) string { _, n, _ := net.ParseCIDR(cidr) ones, _ := n.Mask.Size() - return toRadixkey(n.IP, uint8(ones)) + return IpToRadixkey(n.IP, uint8(ones)) } type PeerInfo struct { diff --git a/table/destination_test.go b/table/destination_test.go index e8edf562..8624bc8d 100644 --- a/table/destination_test.go +++ b/table/destination_test.go @@ -194,6 +194,6 @@ func updateMsgD3() *bgp.BGPMessage { func TestRadixkey(t *testing.T) { assert.Equal(t, "000010100000001100100000", CidrToRadixkey("10.3.32.0/24")) - assert.Equal(t, "000010100000001100100000", IpToRadixkey(net.ParseIP("10.3.32.0"), 24)) + assert.Equal(t, "000010100000001100100000", IpToRadixkey(net.ParseIP("10.3.32.0").To4(), 24)) assert.Equal(t, "000010100000001100100000", IpToRadixkey(net.ParseIP("10.3.32.0").To4(), 24)) } |