summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--server/rpki.go2
-rw-r--r--server/rpki_test.go26
-rw-r--r--table/destination.go12
-rw-r--r--table/destination_test.go2
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))
}