Add Ipv4Util.prefixForByteBuf(ByteBuf, int) 48/78348/1
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 2 Dec 2018 23:42:20 +0000 (00:42 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 2 Dec 2018 23:43:10 +0000 (00:43 +0100)
This utility method is needed to parse the IPv4 prefix in two separate
validation steps.

Change-Id: I43f05987222c2cd953760d0b57c3f73240d75f1b
JIRA: BGPCEP-359
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
util/src/main/java/org/opendaylight/protocol/util/Ipv4Util.java

index cced9ba6cb2575f637e692c2556f13ac2da4fe79..db027416986dde7d9428c37ba7c4ec5632e3e9dc 100644 (file)
@@ -131,6 +131,17 @@ public final class Ipv4Util {
      */
     public static Ipv4Prefix prefixForByteBuf(final ByteBuf buf) {
         final int prefixLength = UnsignedBytes.toInt(buf.readByte());
+        return prefixForByteBuf(buf, prefixLength);
+    }
+
+    /**
+     * Creates an Ipv4Prefix object from given ByteBuf with specified NLRI length.
+     *
+     * @param buf Buffer containing serialized prefix
+     * @param prefixLength Prefix length
+     * @return Ipv4Prefix object
+     */
+    public static Ipv4Prefix prefixForByteBuf(final ByteBuf buf, final int prefixLength) {
         final int size = prefixLength / Byte.SIZE + (prefixLength % Byte.SIZE == 0 ? 0 : 1);
         final int readable = buf.readableBytes();
         Preconditions.checkArgument(size <= readable, "Illegal length of IP prefix: %s/%s", size, readable);