diff options
author | Ashlee Young <ashlee@wildernessvoice.com> | 2015-12-01 05:49:27 -0800 |
---|---|---|
committer | Ashlee Young <ashlee@wildernessvoice.com> | 2015-12-01 05:49:27 -0800 |
commit | e63291850fd0795c5700e25e67e5dee89ba54c5f (patch) | |
tree | 9707289536ad95bb739c9856761ad43275e07d8c /framework/src/onos/apps/routing-api | |
parent | 671823e12bc13be9a8b87a5d7de33da1bb7a44e8 (diff) |
onos commit hash c2999f30c69e50df905a9d175ef80b3f23a98514
Change-Id: I2bb8562c4942b6d6a6d60b663db2e17540477b81
Signed-off-by: Ashlee Young <ashlee@wildernessvoice.com>
Diffstat (limited to 'framework/src/onos/apps/routing-api')
2 files changed, 18 insertions, 14 deletions
diff --git a/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/RouteEntry.java b/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/RouteEntry.java index 2b0ef989..8204a109 100644 --- a/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/RouteEntry.java +++ b/framework/src/onos/apps/routing-api/src/main/java/org/onosproject/routing/RouteEntry.java @@ -89,14 +89,17 @@ public class RouteEntry { /** * Creates the binary string representation of an IP prefix. * The prefix can be either IPv4 or IPv6. - * The string length is equal to the prefix length. + * The string length is equal to the prefix length + 1. + * + * For each string, we put a extra "0" in the front. The purpose of + * doing this is to store the default route inside InvertedRadixTree. * * @param ipPrefix the IP prefix to use * @return the binary string representation */ public static String createBinaryString(IpPrefix ipPrefix) { if (ipPrefix.prefixLength() == 0) { - return ""; + return "0"; } byte[] octets = ipPrefix.address().toOctets(); @@ -109,7 +112,8 @@ public class RouteEntry { boolean isSet = ((value & mask) != 0); result.append(isSet ? "1" : "0"); } - return result.toString(); + + return "0" + result.toString(); } @Override diff --git a/framework/src/onos/apps/routing-api/src/test/java/org/onosproject/routing/RouteEntryTest.java b/framework/src/onos/apps/routing-api/src/test/java/org/onosproject/routing/RouteEntryTest.java index b89eb2d1..981d6a09 100644 --- a/framework/src/onos/apps/routing-api/src/test/java/org/onosproject/routing/RouteEntryTest.java +++ b/framework/src/onos/apps/routing-api/src/test/java/org/onosproject/routing/RouteEntryTest.java @@ -121,52 +121,52 @@ public class RouteEntryTest { Ip4Prefix prefix; prefix = Ip4Prefix.valueOf("0.0.0.0/0"); - assertThat(RouteEntry.createBinaryString(prefix), is("")); + assertThat(RouteEntry.createBinaryString(prefix), is("0")); prefix = Ip4Prefix.valueOf("192.168.166.0/22"); assertThat(RouteEntry.createBinaryString(prefix), - is("1100000010101000101001")); + is("0" + "1100000010101000101001")); prefix = Ip4Prefix.valueOf("192.168.166.0/23"); assertThat(RouteEntry.createBinaryString(prefix), - is("11000000101010001010011")); + is("0" + "11000000101010001010011")); prefix = Ip4Prefix.valueOf("192.168.166.0/24"); assertThat(RouteEntry.createBinaryString(prefix), - is("110000001010100010100110")); + is("0" + "110000001010100010100110")); prefix = Ip4Prefix.valueOf("130.162.10.1/25"); assertThat(RouteEntry.createBinaryString(prefix), - is("1000001010100010000010100")); + is("0" + "1000001010100010000010100")); prefix = Ip4Prefix.valueOf("255.255.255.255/32"); assertThat(RouteEntry.createBinaryString(prefix), - is("11111111111111111111111111111111")); + is("0" + "11111111111111111111111111111111")); Ip6Prefix prefix6; Pattern pattern; Matcher matcher; prefix6 = Ip6Prefix.valueOf("::/0"); - assertThat(RouteEntry.createBinaryString(prefix6), is("")); + assertThat(RouteEntry.createBinaryString(prefix6), is("0")); prefix6 = Ip6Prefix.valueOf("2000::1000/112"); - pattern = Pattern.compile("00100{108}"); + pattern = Pattern.compile("0" + "00100{108}"); matcher = pattern.matcher(RouteEntry.createBinaryString(prefix6)); assertTrue(matcher.matches()); prefix6 = Ip6Prefix.valueOf("2000::1000/116"); - pattern = Pattern.compile("00100{108}0001"); + pattern = Pattern.compile("0" + "00100{108}0001"); matcher = pattern.matcher(RouteEntry.createBinaryString(prefix6)); assertTrue(matcher.matches()); prefix6 = Ip6Prefix.valueOf("2000::2000/116"); - pattern = Pattern.compile("00100{108}0010"); + pattern = Pattern.compile("0" + "00100{108}0010"); matcher = pattern.matcher(RouteEntry.createBinaryString(prefix6)); assertTrue(matcher.matches()); prefix6 = Ip6Prefix.valueOf("2000::1234/128"); - pattern = Pattern.compile("00100{108}0001001000110100"); + pattern = Pattern.compile("0" + "00100{108}0001001000110100"); matcher = pattern.matcher(RouteEntry.createBinaryString(prefix6)); assertTrue(matcher.matches()); } |