BUG-130 : introduced ObjectUtil. 07/3707/1
authorDana Kutenicsova <dkutenic@cisco.com>
Fri, 13 Dec 2013 14:54:58 +0000 (15:54 +0100)
committerDana Kutenicsova <dkutenic@cisco.com>
Fri, 13 Dec 2013 14:55:29 +0000 (15:55 +0100)
Change-Id: I5f323f4e404e522dae6d3d7fb7cfb29bf36242f5
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
58 files changed:
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/AbstractMessageParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/AbstractBandwidthParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/ObjectUtil.java [new file with mode: 0644]
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPBandwidthObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPClassTypeObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPCloseObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPEndPointsIpv4ObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPEndPointsIpv6ObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPErrorObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPExcludeRouteObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPExistingBandwidthObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPExplicitRouteObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPGlobalConstraintsObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPIncludeRouteObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPLoadBalancingObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPLspObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPLspaObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPMetricObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPNoPathObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPNotificationObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPObjectiveFunctionObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPOpenObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPPathKeyObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPReportedRouteObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPRequestParameterObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPSrpObjectParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPSvecObjectParser.java
pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPObjectParserTest.java
pcep/impl/src/test/resources/PCEPBandwidthObject1LowerBounds.bin
pcep/impl/src/test/resources/PCEPBandwidthObject2UpperBounds.bin
pcep/impl/src/test/resources/PCEPCloseObject1.bin
pcep/impl/src/test/resources/PCEPEndPointsObject1IPv4.bin
pcep/impl/src/test/resources/PCEPEndPointsObject2IPv6.bin
pcep/impl/src/test/resources/PCEPErrorObject1.bin
pcep/impl/src/test/resources/PCEPErrorObject3.bin
pcep/impl/src/test/resources/PCEPExcludeRouteObject.1.bin
pcep/impl/src/test/resources/PCEPExplicitRouteObject1PackOfSubobjects.bin
pcep/impl/src/test/resources/PCEPGlobalConstraintsObject.1.bin
pcep/impl/src/test/resources/PCEPIncludeRouteObject1PackOfSubobjects.bin
pcep/impl/src/test/resources/PCEPLoadBalancingObject1.bin
pcep/impl/src/test/resources/PCEPLspObject1WithTLV.bin
pcep/impl/src/test/resources/PCEPLspaObject1LowerBounds.bin
pcep/impl/src/test/resources/PCEPLspaObject2UpperBounds.bin
pcep/impl/src/test/resources/PCEPLspaObject3RandVals.bin
pcep/impl/src/test/resources/PCEPMetricObject1LowerBounds.bin
pcep/impl/src/test/resources/PCEPMetricObject2UpperBounds.bin
pcep/impl/src/test/resources/PCEPNoPathObject1WithoutTLV.bin
pcep/impl/src/test/resources/PCEPNoPathObject2WithTLV.bin
pcep/impl/src/test/resources/PCEPNotificationObject1WithTlv.bin
pcep/impl/src/test/resources/PCEPNotificationObject2WithoutTlv.bin
pcep/impl/src/test/resources/PCEPObjectiveFunctionObject.1.bin
pcep/impl/src/test/resources/PCEPOpenObject1.bin
pcep/impl/src/test/resources/PCEPPathKeyObject.bin
pcep/impl/src/test/resources/PCEPRPObject1.bin
pcep/impl/src/test/resources/PCEPRPObject2.bin
pcep/impl/src/test/resources/PCEPReportedRouteObject1PackOfSubobjects.bin
pcep/impl/src/test/resources/PCEPSvecObject1_10ReqIDs.bin
pcep/impl/src/test/resources/PCEPSvecObject2.bin

index 258ab21f3f4ce28328ce7258b0eb32aff4e38b23..76bf79d9e33e8f65cf3800aeecca6b2e7eb5dded 100644 (file)
@@ -37,19 +37,13 @@ abstract class AbstractMessageParser implements MessageParser, MessageSerializer
        private static final int OT_FLAGS_MF_LENGTH = 1;
        private static final int OBJ_LENGTH_F_LENGTH = 2;
 
-       private static final int OC_F_OFFSET = 0;
-       private static final int OT_FLAGS_MF_OFFSET = OC_F_OFFSET + OC_F_LENGTH;
-       private static final int OBJ_LENGTH_F_OFFSET = OT_FLAGS_MF_OFFSET + OT_FLAGS_MF_LENGTH;
-
        private static final int OT_SF_LENGTH = 4;
        private static final int FLAGS_SF_LENGTH = 4;
-
        /*
         * offsets of fields inside of multi-field in bits
         */
        private static final int OT_SF_OFFSET = 0;
        private static final int FLAGS_SF_OFFSET = OT_SF_OFFSET + OT_SF_LENGTH;
-
        /*
         * flags offsets inside multi-filed
         */
@@ -69,27 +63,7 @@ abstract class AbstractMessageParser implements MessageParser, MessageSerializer
 
                final ObjectSerializer serializer = this.registry.getObjectSerializer(object);
 
-               final byte[] valueBytes = serializer.serializeObject(object);
-
-               final byte[] retBytes = new byte[COMMON_OBJECT_HEADER_LENGTH + valueBytes.length];
-
-               // objClass
-               retBytes[OC_F_OFFSET] = UnsignedBytes.checkedCast(serializer.getObjectClass());
-
-               // objType_flags multi-field
-               retBytes[OT_FLAGS_MF_OFFSET] = UnsignedBytes.checkedCast(serializer.getObjectType() << (Byte.SIZE - OT_SF_LENGTH));
-               if (object.isProcessingRule() != null && object.isProcessingRule()) {
-                       retBytes[OT_FLAGS_MF_OFFSET] |= 1 << Byte.SIZE - (P_FLAG_OFFSET) - 1;
-               }
-               if (object.isIgnore() != null && object.isIgnore()) {
-                       retBytes[OT_FLAGS_MF_OFFSET] |= 1 << Byte.SIZE - (I_FLAG_OFFSET) - 1;
-               }
-
-               // objLength
-               System.arraycopy(ByteArray.intToBytes(valueBytes.length + COMMON_OBJECT_HEADER_LENGTH, OBJ_LENGTH_F_LENGTH), 0, retBytes,
-                               OBJ_LENGTH_F_OFFSET, OBJ_LENGTH_F_LENGTH);
-
-               ByteArray.copyWhole(valueBytes, retBytes, COMMON_OBJECT_HEADER_LENGTH);
+               final byte[] retBytes = serializer.serializeObject(object);
                return retBytes;
        }
 
index b4d1f4a71126d45516b84f1d14bc6eef556fc92d..371bdc19a027303834f82872cb97fbff97cddf91 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.protocol.pcep.impl.object;
 
 import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException;
 import org.opendaylight.protocol.pcep.spi.TlvHandlerRegistry;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Object;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.ObjectHeader;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Tlv;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.bandwidth.object.Bandwidth;
@@ -43,12 +42,4 @@ abstract class AbstractBandwidthParser extends AbstractObjectWithTlvsParser<Band
        public void addTlv(final BandwidthBuilder builder, final Tlv tlv) {
                // No tlvs defined
        }
-
-       @Override
-       public byte[] serializeObject(final Object object) {
-               if (!(object instanceof Bandwidth)) {
-                       throw new IllegalArgumentException("Wrong instance of PCEPObject. Passed " + object.getClass() + ". Needed BandwidthObject.");
-               }
-               return ((Bandwidth) object).getBandwidth().getValue();
-       }
 }
diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/ObjectUtil.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/ObjectUtil.java
new file mode 100644 (file)
index 0000000..1220c8b
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.protocol.pcep.impl.object;
+
+import org.opendaylight.protocol.util.ByteArray;
+
+import com.google.common.primitives.UnsignedBytes;
+
+public final class ObjectUtil {
+
+       private static final int HEADER_SIZE = 4;
+
+       private static final int OC_F_LENGTH = 1;
+       private static final int OT_FLAGS_MF_LENGTH = 1;
+       private static final int OBJ_LENGTH_F_LENGTH = 2;
+
+       private static final int OC_F_OFFSET = 0;
+       private static final int OT_FLAGS_MF_OFFSET = OC_F_OFFSET + OC_F_LENGTH;
+       private static final int OBJ_LENGTH_F_OFFSET = OT_FLAGS_MF_OFFSET + OT_FLAGS_MF_LENGTH;
+
+       private static final int OT_SF_LENGTH = 4;
+       /*
+        * flags offsets inside multi-filed
+        */
+       private static final int P_FLAG_OFFSET = 6;
+       private static final int I_FLAG_OFFSET = 7;
+
+       private ObjectUtil() {
+       }
+
+       public static byte[] formatSubobject(final int objectType, final int objectClass, final Boolean processingRule, final Boolean ignore,
+                       final byte[] valueBytes) {
+
+               final byte[] bytes = new byte[HEADER_SIZE + valueBytes.length];
+
+               // objClass
+               bytes[0] = UnsignedBytes.checkedCast(objectClass);
+
+               // objType_flags multi-field
+               bytes[OT_FLAGS_MF_OFFSET] = UnsignedBytes.checkedCast(objectType << (Byte.SIZE - OT_SF_LENGTH));
+               if (processingRule != null && processingRule) {
+                       bytes[OT_FLAGS_MF_OFFSET] |= 1 << Byte.SIZE - (P_FLAG_OFFSET) - 1;
+               }
+               if (ignore != null && ignore) {
+                       bytes[OT_FLAGS_MF_OFFSET] |= 1 << Byte.SIZE - (I_FLAG_OFFSET) - 1;
+               }
+
+               // objLength
+               System.arraycopy(ByteArray.intToBytes(valueBytes.length + HEADER_SIZE, OBJ_LENGTH_F_LENGTH), 0, bytes, OBJ_LENGTH_F_OFFSET,
+                               OBJ_LENGTH_F_LENGTH);
+               System.arraycopy(valueBytes, 0, bytes, HEADER_SIZE, valueBytes.length);
+               return bytes;
+       }
+}
index e179ba693c4495c83d6d0b248228349c146c303c..14bef1d5b2e478ecd2ce9b35bd2afb48a0c9e0fe 100644 (file)
@@ -7,7 +7,10 @@
  */
 package org.opendaylight.protocol.pcep.impl.object;
 
+import java.util.Arrays;
+
 import org.opendaylight.protocol.pcep.spi.TlvHandlerRegistry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Object;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.bandwidth.object.Bandwidth;
 
 /**
@@ -19,10 +22,21 @@ public class PCEPBandwidthObjectParser extends AbstractBandwidthParser {
 
        public static final int TYPE = 1;
 
+       private static final int BANDWIDTH_LENGTH = 4;
+
        public PCEPBandwidthObjectParser(final TlvHandlerRegistry tlvReg) {
                super(tlvReg);
        }
 
+       @Override
+       public byte[] serializeObject(final Object object) {
+               if (!(object instanceof Bandwidth)) {
+                       throw new IllegalArgumentException("Wrong instance of PCEPObject. Passed " + object.getClass() + ". Needed BandwidthObject.");
+               }
+               final byte[] retBytes = Arrays.copyOf(((Bandwidth) object).getBandwidth().getValue(), BANDWIDTH_LENGTH);
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
+       }
+
        @Override
        public int getObjectType() {
                return TYPE;
index 8ecfbe4fd477e39cc642eb83fac8f9b4060bb8de..9c065be2745de9d8f5dd609d183d9241db4bfa9f 100644 (file)
@@ -60,7 +60,7 @@ public class PCEPClassTypeObjectParser extends AbstractObjectWithTlvsParser<Clas
                                        + bytes.length);
                }
                if (!header.isProcessingRule()) {
-                       //LOG.debug("Processed bit not set on CLASS TYPE OBJECT, ignoring it");
+                       // LOG.debug("Processed bit not set on CLASS TYPE OBJECT, ignoring it");
                        return null;
                }
                final ClassTypeBuilder builder = new ClassTypeBuilder();
@@ -91,7 +91,7 @@ public class PCEPClassTypeObjectParser extends AbstractObjectWithTlvsParser<Clas
                }
                final byte[] retBytes = new byte[SIZE];
                retBytes[SIZE - 1] = UnsignedBytes.checkedCast(((ClassType) object).getClassType().getValue());
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        @Override
index 87e3fd38ba40426e9fb20b60b5069ce5fec222f9..83fdbb83e9f185485866b2f8e8c17655b489e374 100644 (file)
@@ -85,7 +85,7 @@ public class PCEPCloseObjectParser extends AbstractObjectWithTlvsParser<CCloseBu
                        ByteArray.copyWhole(tlvs, retBytes, TLVS_OFFSET);
                }
                retBytes[REASON_F_OFFSET] = UnsignedBytes.checkedCast(obj.getReason());
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        public byte[] serializeTlvs(final Tlvs tlvs) {
index 63c0811f4e6469d1a3cac165fc4e4bf239342799..a699ff4b3a9a39ec4ea48bd4ca395f180bbd18dd 100644 (file)
@@ -90,7 +90,7 @@ public class PCEPEndPointsIpv4ObjectParser extends AbstractObjectWithTlvsParser<
                final byte[] retBytes = new byte[SRC4_F_LENGTH + DEST4_F_LENGTH];
                ByteArray.copyWhole(Ipv4Util.bytesForAddress((((Ipv4Case) afi).getIpv4()).getSourceIpv4Address()), retBytes, SRC4_F_OFFSET);
                ByteArray.copyWhole(Ipv4Util.bytesForAddress((((Ipv4Case) afi).getIpv4()).getDestinationIpv4Address()), retBytes, DEST4_F_OFFSET);
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        @Override
index 3ab96d2a5771fba7c9a60580ef421f19794aeb28..5c3c1f2b83fe82e9f95e1c481be3aad005f08ca3 100644 (file)
@@ -90,7 +90,7 @@ public class PCEPEndPointsIpv6ObjectParser extends AbstractObjectWithTlvsParser<
                final byte[] retBytes = new byte[SRC6_F_LENGTH + DEST6_F_LENGTH];
                ByteArray.copyWhole(Ipv6Util.bytesForAddress((((Ipv6Case) afi).getIpv6()).getSourceIpv6Address()), retBytes, SRC6_F_OFFSET);
                ByteArray.copyWhole(Ipv6Util.bytesForAddress((((Ipv6Case) afi).getIpv6()).getDestinationIpv6Address()), retBytes, DEST6_F_OFFSET);
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        @Override
index f4d03ed81ba60e90f0c1c00a21b3fce5860e9bab..8ba72fe01321d6e1debac3001a3b8099c1b7d6c7 100644 (file)
@@ -80,7 +80,7 @@ public class PCEPErrorObjectParser extends AbstractObjectWithTlvsParser<ErrorObj
                }
                retBytes[ET_F_OFFSET] = UnsignedBytes.checkedCast(errObj.getType());
                retBytes[EV_F_OFFSET] = UnsignedBytes.checkedCast(errObj.getValue());
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        public byte[] serializeTlvs(final Tlvs tlvs) {
index 2701148272f690f07d6dc44e86094dfe5230daa6..21e37526fe9e79acd7be5b160dd9c1b7f0fbeacf 100644 (file)
@@ -59,7 +59,7 @@ public final class PCEPExcludeRouteObjectParser extends AbstractXROWithSubobject
                        result[FLAGS_OFFSET] = 1;
                }
                ByteArray.copyWhole(bytes, result, FLAGS_OFFSET + 1);
-               return result;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), result);
        }
 
        @Override
index ffe15cfcc66781134c5bfff9c940f3de1440db86..d54c335c4daff91b781cc7c3a483f3db5dd7b39f 100644 (file)
@@ -7,7 +7,10 @@
  */
 package org.opendaylight.protocol.pcep.impl.object;
 
+import java.util.Arrays;
+
 import org.opendaylight.protocol.pcep.spi.TlvHandlerRegistry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Object;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.bandwidth.object.Bandwidth;
 
 /**
@@ -19,10 +22,21 @@ public class PCEPExistingBandwidthObjectParser extends AbstractBandwidthParser {
 
        public static final int TYPE = 2;
 
+       private static final int BANDWIDTH_LENGTH = 4;
+
        public PCEPExistingBandwidthObjectParser(final TlvHandlerRegistry tlvReg) {
                super(tlvReg);
        }
 
+       @Override
+       public byte[] serializeObject(final Object object) {
+               if (!(object instanceof Bandwidth)) {
+                       throw new IllegalArgumentException("Wrong instance of PCEPObject. Passed " + object.getClass() + ". Needed BandwidthObject.");
+               }
+               final byte[] retBytes = Arrays.copyOf(((Bandwidth) object).getBandwidth().getValue(), BANDWIDTH_LENGTH);
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
+       }
+
        @Override
        public int getObjectType() {
                return TYPE;
index 15821a84508990446ef7e7a53b7173f22f17bfad..387634c73ee755e3c7969289db73969a3d3c507d 100644 (file)
@@ -49,7 +49,8 @@ public class PCEPExplicitRouteObjectParser extends AbstractEROWithSubobjectsPars
 
                assert !(ero.getSubobjects().isEmpty()) : "Empty Explicit Route Object.";
 
-               return serializeSubobject(ero.getSubobjects());
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(),
+                               serializeSubobject(ero.getSubobjects()));
        }
 
        @Override
index cf70799e7f1a06d475da492cbf02d6ce2684a756..b3455fc9198fdb963a856e68ea9f9e5db93bb74c 100644 (file)
@@ -75,7 +75,7 @@ public class PCEPGlobalConstraintsObjectParser extends AbstractObjectWithTlvsPar
                retBytes[MAX_UTIL_F_OFFSET] = UnsignedBytes.checkedCast(specObj.getMaxUtilization());
                retBytes[MIN_UTIL_F_OFFSET] = UnsignedBytes.checkedCast(specObj.getMinUtilization());
                retBytes[OVER_BOOKING_FACTOR_F_OFFSET] = UnsignedBytes.checkedCast(specObj.getOverBookingFactor());
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        @Override
index fe76fa871c69b6efc6c966cbae6e7687404586a7..23add83a03e317c113a05117ad2ccb4bca718c55 100644 (file)
@@ -67,8 +67,7 @@ public class PCEPIncludeRouteObjectParser extends AbstractEROWithSubobjectsParse
                        subs.add(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.explicit.route.object.ero.SubobjectsBuilder().setLoose(
                                        false).setSubobjectType(s.getSubobjectType()).build());
                }
-
-               return serializeSubobject(subs);
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), serializeSubobject(subs));
        }
 
        @Override
index 63104d276403bb603cbc1499cecd94e39e32e621..f626d144abce0cc2f1faaabe38dcb5faedadc78f 100644 (file)
@@ -73,7 +73,7 @@ public class PCEPLoadBalancingObjectParser extends AbstractObjectWithTlvsParser<
                final byte[] retBytes = new byte[SIZE];
                retBytes[MAX_LSP_F_OFFSET] = UnsignedBytes.checkedCast(specObj.getMaxLsp());
                ByteArray.copyWhole(specObj.getMinBandwidth().getValue(), retBytes, MIN_BAND_F_OFFSET);
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        @Override
index f0fe3cd4f8ae121c03328b1f6da5d66844ff49eb..b6dc9ddde6547f38f1d9a73be8d51d9f946d7e47 100644 (file)
@@ -123,7 +123,7 @@ public class PCEPLspObjectParser extends AbstractObjectWithTlvsParser<TlvsBuilde
                final int op = specObj.getOperational().getIntValue();
                retBytes[3] |= (op & 7) << 4;
                ByteArray.copyWhole(tlvs, retBytes, TLVS_OFFSET);
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        public byte[] serializeTlvs(final Tlvs tlvs) {
index fe501ca3ab7016a0ae63918c305c8a8319024ceb..e25c37198b6766708542c9806aaa90a1df4df126 100644 (file)
@@ -108,7 +108,7 @@ public class PCEPLspaObjectParser extends AbstractObjectWithTlvsParser<LspaBuild
                final BitSet flags = new BitSet(FLAGS_F_LENGTH * Byte.SIZE);
                flags.set(L_FLAG_OFFSET, lspaObj.isLocalProtectionDesired());
                ByteArray.copyWhole(ByteArray.bitSetToBytes(flags, FLAGS_F_LENGTH), retBytes, FLAGS_F_OFFSET);
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        @Override
index 2ce2899ff9099a43f593efa0b1ec764b3714c24c..d8d9dcac3707e39b6c534dde83fbb0df2950881b 100644 (file)
@@ -94,7 +94,7 @@ public class PCEPMetricObjectParser extends AbstractObjectWithTlvsParser<MetricB
                ByteArray.copyWhole(ByteArray.bitSetToBytes(flags, FLAGS_F_LENGTH), retBytes, FLAGS_F_OFFSET);
                retBytes[TYPE_F_OFFSET] = UnsignedBytes.checkedCast(mObj.getMetricType());
                System.arraycopy(mObj.getValue().getValue(), 0, retBytes, METRIC_VALUE_F_OFFSET, METRIC_VALUE_F_LENGTH);
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        @Override
index b34128b9dab377c1820ef7c3cd37fc77eca4f286..cca33656393b9bd6e432b319b00ed334c222e2e5 100644 (file)
@@ -97,7 +97,7 @@ public class PCEPNoPathObjectParser extends AbstractObjectWithTlvsParser<NoPathB
                retBytes[NI_F_OFFSET] = UnsignedBytes.checkedCast(nPObj.getNatureOfIssue());
                ByteArray.copyWhole(ByteArray.bitSetToBytes(flags, FLAGS_F_LENGTH), retBytes, FLAGS_F_OFFSET);
                ByteArray.copyWhole(tlvs, retBytes, TLVS_OFFSET);
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        public byte[] serializeTlvs(final Tlvs tlvs) {
index dafc676616ee7174873613831261f95c094f1af4..362fc28e0f2e3032389da2e78381bd9119bdaa99 100644 (file)
@@ -85,7 +85,7 @@ public class PCEPNotificationObjectParser extends AbstractObjectWithTlvsParser<C
                }
                retBytes[NT_F_OFFSET] = UnsignedBytes.checkedCast(notObj.getType());
                retBytes[NV_F_OFFSET] = UnsignedBytes.checkedCast(notObj.getValue());
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        public byte[] serializeTlvs(final Tlvs tlvs) {
index 5d5ad794e8a1a9db9d8d85432490c28043b0a638..c659f79eec6ff39617975a1fb38a921ef35cbf95 100644 (file)
@@ -66,7 +66,7 @@ public class PCEPObjectiveFunctionObjectParser extends AbstractObjectWithTlvsPar
                final Of specObj = (Of) object;
                final byte[] retBytes = new byte[TLVS_OFFSET + 0];
                ByteArray.copyWhole(ByteArray.shortToBytes(specObj.getCode().getValue().shortValue()), retBytes, OF_CODE_F_OFFSET);
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        @Override
index 5d51aaf05e47237205e77c00e77419fe4192d474..e78b61c54ba3f28de6d091d16c45b57f031fced8 100644 (file)
@@ -33,7 +33,6 @@ import com.google.common.primitives.UnsignedBytes;
 /**
  * Parser for {@link Open}
  */
-
 public class PCEPOpenObjectParser extends AbstractObjectWithTlvsParser<TlvsBuilder> {
        private static final Logger LOG = LoggerFactory.getLogger(PCEPOpenObjectParser.class);
 
@@ -136,7 +135,7 @@ public class PCEPOpenObjectParser extends AbstractObjectWithTlvsParser<TlvsBuild
                if (tlvs.length != 0) {
                        ByteArray.copyWhole(tlvs, bytes, TLVS_OFFSET);
                }
-               return bytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), bytes);
        }
 
        public byte[] serializeTlvs(final Tlvs tlvs) {
index 117676b6a619f4ac444ee22fcc1a5d7f6d3bf9ba..427953dfe6265aeba5c95d1b684f79b183c4779b 100644 (file)
@@ -64,7 +64,7 @@ public class PCEPPathKeyObjectParser extends AbstractEROWithSubobjectsParser {
                                                        new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.explicit.route.object.ero.subobjects.subobject.type.path.key._case.PathKeyBuilder().setPathKey(
                                                                        p.getPathKey()).setPceId(p.getPceId()).build()).build()).build());
                }
-               return serializeSubobject(subs);
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), serializeSubobject(subs));
        }
 
        @Override
index d2c526a07898a4289a2eef3e396559c8f9bed4e3..bfee4bbbd321f9e6e4a92b2a538b2e68409aa617 100644 (file)
@@ -46,10 +46,10 @@ public class PCEPReportedRouteObjectParser extends AbstractRROWithSubobjectsPars
                        throw new IllegalArgumentException("Wrong instance of PCEPObject. Passed " + object.getClass()
                                        + ". Needed ReportedRouteObject.");
                }
-
                final Rro obj = (Rro) object;
                assert !(obj.getSubobjects().isEmpty()) : "Empty Reported Route Object.";
-               return serializeSubobject(obj.getSubobjects());
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(),
+                               serializeSubobject(obj.getSubobjects()));
        }
 
        @Override
index 90c92bb2ba185066a411693163702f3b8a3c61cf..7f37000df912942f52c9e0a602e7618f85ab79b7 100644 (file)
@@ -167,7 +167,7 @@ public class PCEPRequestParameterObjectParser extends AbstractObjectWithTlvsPars
                if (tlvs.length != 0) {
                        ByteArray.copyWhole(tlvs, retBytes, TLVS_OFFSET);
                }
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        public byte[] serializeTlvs(final Tlvs tlvs) {
index 252d63eeaaee6d600d7dc2c223a7f12389d79a68..da57b822a3a8bdffb60dcec87dde24f148d1431f 100644 (file)
@@ -78,7 +78,7 @@ public final class PCEPSrpObjectParser extends AbstractObjectWithTlvsParser<SrpB
                }
                final byte[] retBytes = new byte[MIN_SIZE];
                System.arraycopy(ByteArray.intToBytes(id.intValue(), SRP_ID_SIZE), 0, retBytes, FLAGS_SIZE, SRP_ID_SIZE);
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        @Override
index 32f4c3562aaa35821c77b6b01adc0c2f374a3d5e..b64a6a4cc047f7de4158cd984cad638df4e82b3b 100644 (file)
@@ -115,7 +115,7 @@ public class PCEPSvecObjectParser extends AbstractObjectWithTlvsParser<SvecBuild
                                        * i + REQ_ID_LIST_OFFSET, REQ_LIST_ITEM_LENGTH);
                }
                assert !(requestIDs.isEmpty()) : "Empty Svec Object - no request ids.";
-               return retBytes;
+               return ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), retBytes);
        }
 
        @Override
index d6ee915263b65f5f8ed64a90def19f052e4c992f..c01a3b7ae14c51e20be5e85566c7958eb3a544fe 100644 (file)
@@ -12,7 +12,6 @@ import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
 import java.math.BigInteger;
-import java.util.Arrays;
 import java.util.List;
 
 import org.junit.Before;
@@ -27,6 +26,7 @@ import org.opendaylight.protocol.pcep.impl.object.PCEPEndPointsIpv4ObjectParser;
 import org.opendaylight.protocol.pcep.impl.object.PCEPEndPointsIpv6ObjectParser;
 import org.opendaylight.protocol.pcep.impl.object.PCEPErrorObjectParser;
 import org.opendaylight.protocol.pcep.impl.object.PCEPExcludeRouteObjectParser;
+import org.opendaylight.protocol.pcep.impl.object.PCEPExistingBandwidthObjectParser;
 import org.opendaylight.protocol.pcep.impl.object.PCEPExplicitRouteObjectParser;
 import org.opendaylight.protocol.pcep.impl.object.PCEPGlobalConstraintsObjectParser;
 import org.opendaylight.protocol.pcep.impl.object.PCEPIncludeRouteObjectParser;
@@ -149,7 +149,7 @@ public class PCEPObjectParserTest {
                builder.setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder().setStateful(
                                tlv1).setPredundancyGroupId(tlv3).setLspDbVersion(tlv2).build());
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -163,7 +163,7 @@ public class PCEPObjectParserTest {
                builder.setIgnore(false);
                builder.setReason((short) 5);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -178,7 +178,7 @@ public class PCEPObjectParserTest {
                builder.setMaxLsp((short) UnsignedBytes.toInt((byte) 0xf1));
                builder.setMinBandwidth(new Bandwidth(new byte[] { (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF }));
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -202,7 +202,7 @@ public class PCEPObjectParserTest {
                                new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.SymbolicPathName("Med".getBytes())).build();
                builder.setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.lsp.TlvsBuilder().setLspErrorCode(
                                tlv1).setSymbolicPathName(tlv2).build());
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -228,7 +228,7 @@ public class PCEPObjectParserTest {
                                                new UnnumberedBuilder().setRouterId(0xffffffffL).setInterfaceId(0xffffffffL).build()).build()).build());
                builder.setSubobjects(subs);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -256,9 +256,8 @@ public class PCEPObjectParserTest {
                                                new UnnumberedBuilder().setRouterId(0x1245678L).setInterfaceId(0x9abcdef0L).build()).build()).build());
                builder.setSubobjects(subs);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), result));
-               // FIXME: BUG-130: fix Ipv6Serializers (getType)
-               // assertArrayEquals(result, parser.serializeObject(builder.build()));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), ByteArray.cutBytes(result, 4)));
+               assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
        @Test
@@ -289,29 +288,35 @@ public class PCEPObjectParserTest {
                                false).build());
                builder.setSubobjects(subs);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), result));
-               // FIXME: BUG-130: fix Ipv6Serializers (getType)
-               // assertArrayEquals(result, parser.serializeObject(builder.build()));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), ByteArray.cutBytes(result, 4)));
+               assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
        @Test
        public void testBandwidthObject() throws IOException, PCEPDeserializerException {
                final PCEPBandwidthObjectParser parser = new PCEPBandwidthObjectParser(this.tlvRegistry);
-               byte[] result = ByteArray.fileToBytes("src/test/resources/PCEPBandwidthObject1LowerBounds.bin");
+               final byte[] result = ByteArray.fileToBytes("src/test/resources/PCEPBandwidthObject1LowerBounds.bin");
 
                final BandwidthBuilder builder = new BandwidthBuilder();
                builder.setProcessingRule(true);
                builder.setIgnore(true);
-               builder.setBandwidth(new Bandwidth(result));
+               builder.setBandwidth(new Bandwidth(new byte[] { (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00 }));
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
+       }
 
-               result = ByteArray.fileToBytes("src/test/resources/PCEPBandwidthObject2UpperBounds.bin");
+       @Test
+       public void testExistingBandwidthObject() throws IOException, PCEPDeserializerException {
+               final PCEPExistingBandwidthObjectParser parser = new PCEPExistingBandwidthObjectParser(this.tlvRegistry);
+               final byte[] result = ByteArray.fileToBytes("src/test/resources/PCEPBandwidthObject2UpperBounds.bin");
 
-               builder.setBandwidth(new Bandwidth(result));
+               final BandwidthBuilder builder = new BandwidthBuilder();
+               builder.setProcessingRule(true);
+               builder.setIgnore(true);
+               builder.setBandwidth(new Bandwidth(new byte[] { (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF }));
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -330,8 +335,7 @@ public class PCEPObjectParserTest {
                                new Ipv4Builder().setSourceIpv4Address(Ipv4Util.addressForBytes(srcIPBytes)).setDestinationIpv4Address(
                                                Ipv4Util.addressForBytes(destIPBytes)).build()).build());
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), result));
-               System.out.println(Arrays.toString(parser.serializeObject(builder.build())));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -352,7 +356,7 @@ public class PCEPObjectParserTest {
                                new Ipv6Builder().setSourceIpv6Address(Ipv6Util.addressForBytes(srcIPBytes)).setDestinationIpv6Address(
                                                Ipv6Util.addressForBytes(destIPBytes)).build()).build());
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -367,7 +371,7 @@ public class PCEPObjectParserTest {
                builder.setType((short) 1);
                builder.setValue((short) 1);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
 
                result = ByteArray.fileToBytes("src/test/resources/PCEPErrorObject3.bin");
@@ -376,7 +380,7 @@ public class PCEPObjectParserTest {
                builder.setValue((short) 0);
                builder.setTlvs(new TlvsBuilder().setReqMissing(new ReqMissingBuilder().setRequestId(new RequestId(0x00001155L)).build()).build());
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -395,7 +399,7 @@ public class PCEPObjectParserTest {
                builder.setSetupPriority((short) 0);
                builder.setLocalProtectionDesired(false);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
 
                result = ByteArray.fileToBytes("src/test/resources/PCEPLspaObject2UpperBounds.bin");
@@ -407,7 +411,7 @@ public class PCEPObjectParserTest {
                builder.setSetupPriority((short) 0xFF);
                builder.setLocalProtectionDesired(true);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
 
                result = ByteArray.fileToBytes("src/test/resources/PCEPLspaObject3RandVals.bin");
@@ -419,7 +423,7 @@ public class PCEPObjectParserTest {
                builder.setSetupPriority((short) 0x03);
                builder.setLocalProtectionDesired(true);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -436,7 +440,7 @@ public class PCEPObjectParserTest {
                builder.setMetricType((short) 1);
                builder.setValue(new Float32(new byte[] { 0, 0, 0, 0 }));
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
 
                result = ByteArray.fileToBytes("src/test/resources/PCEPMetricObject2UpperBounds.bin");
@@ -446,7 +450,7 @@ public class PCEPObjectParserTest {
                builder.setMetricType((short) 2);
                builder.setValue(new Float32(new byte[] { (byte) 0x4f, (byte) 0x70, (byte) 0x00, (byte) 0x00 }));
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -461,7 +465,7 @@ public class PCEPObjectParserTest {
                builder.setNatureOfIssue((short) 1);
                builder.setUnsatisfiedConstraints(true);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
 
                result = ByteArray.fileToBytes("src/test/resources/PCEPNoPathObject2WithTLV.bin");
@@ -474,7 +478,7 @@ public class PCEPObjectParserTest {
                builder.setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcrep.message.pcrep.message.replies.result.failure._case.no.path.TlvsBuilder().setNoPathVector(
                                b.build()).build());
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -489,7 +493,7 @@ public class PCEPObjectParserTest {
                builder.setType((short) 0xff);
                builder.setValue((short) 0xff);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
 
                result = ByteArray.fileToBytes("src/test/resources/PCEPNotificationObject1WithTlv.bin");
@@ -499,7 +503,7 @@ public class PCEPObjectParserTest {
                builder.setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.notification.object.c.notification.TlvsBuilder().setOverloadDuration(
                                new OverloadDurationBuilder().setDuration(0xff0000a2L).build()).build());
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -524,7 +528,7 @@ public class PCEPObjectParserTest {
                builder.setPriority((short) 5);
                builder.setRequestId(new RequestId(0xdeadbeefL));
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
 
                result = ByteArray.fileToBytes("src/test/resources/PCEPRPObject2.bin");
@@ -540,7 +544,7 @@ public class PCEPObjectParserTest {
                builder.setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.rp.object.rp.TlvsBuilder().setOrder(
                                b.build()).build());
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, true), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -557,7 +561,7 @@ public class PCEPObjectParserTest {
                builder.setSrlgDiverse(false);
                builder.setRequestsIds(Lists.newArrayList(new RequestId(0xFFL)));
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
 
                result = ByteArray.fileToBytes("src/test/resources/PCEPSvecObject1_10ReqIDs.bin");
@@ -580,21 +584,21 @@ public class PCEPObjectParserTest {
 
                builder.setRequestsIds(requestIDs);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
        @Test
        public void testClassTypeObject() throws PCEPDeserializerException {
                final PCEPClassTypeObjectParser parser = new PCEPClassTypeObjectParser(this.tlvRegistry);
-               final byte[] result = new byte[] { 0, 0, 0, (byte) 0x04 };
+               final byte[] result = new byte[] { (byte) 0x16, (byte) 0x12, (byte) 0x00, (byte) 0x08, 0, 0, 0, (byte) 0x04 };
 
                final ClassTypeBuilder builder = new ClassTypeBuilder();
                builder.setProcessingRule(true);
                builder.setIgnore(false);
                builder.setClassType(new ClassType((short) 4));
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -616,7 +620,7 @@ public class PCEPObjectParserTest {
                                new AsNumberCaseBuilder().setAsNumber(new AsNumberBuilder().setAsNumber(new AsNumber(0x1234L)).build()).build()).build());
                builder.setSubobjects(subs);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -633,21 +637,21 @@ public class PCEPObjectParserTest {
                                new PceId(new byte[] { (byte) 0x12, (byte) 0x34, (byte) 0x50, (byte) 0x00 })).build());
                builder.setPathKeys(list);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
        @Test
        public void testSrpObject() throws IOException, PCEPDeserializerException {
                final PCEPSrpObjectParser parser = new PCEPSrpObjectParser(this.tlvRegistry);
-               final byte[] result = new byte[] { 0, 0, 0, 0, 0, 0, 0, (byte) 0x01 };
+               final byte[] result = new byte[] { (byte) 0x21, (byte) 0x10, (byte) 0x00, (byte) 0x0c, 0, 0, 0, 0, 0, 0, 0, (byte) 0x01 };
 
                final SrpBuilder builder = new SrpBuilder();
                builder.setProcessingRule(false);
                builder.setIgnore(false);
                builder.setOperationId(new SrpIdNumber(1L));
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -661,7 +665,7 @@ public class PCEPObjectParserTest {
                builder.setIgnore(false);
                builder.setCode(new OfId(4));
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 
@@ -678,7 +682,7 @@ public class PCEPObjectParserTest {
                builder.setMinUtilization((short) 100);
                builder.setOverBookingFactor((short) 99);
 
-               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), result));
+               assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(true, false), ByteArray.cutBytes(result, 4)));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
        }
 }
index 593f4708db84ac8fd0f5cc47c634f38c013fe9e4..e6a25a7df6bac76d14f0b8eb04ec42e92a0689bc 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPBandwidthObject1LowerBounds.bin and b/pcep/impl/src/test/resources/PCEPBandwidthObject1LowerBounds.bin differ
index 7bde8641b93c7c55f7365596085b0ce811d0b6c8..9aedbe6f087f8495e4ceca2dd602aaf7c9b7eb4b 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPBandwidthObject2UpperBounds.bin and b/pcep/impl/src/test/resources/PCEPBandwidthObject2UpperBounds.bin differ
index 3b6fc84f4eecaa6f1b4fc34beba7e3a80f68e98d..29dab1a54dd6109d95c9753026bfdf9e6dfb027d 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPCloseObject1.bin and b/pcep/impl/src/test/resources/PCEPCloseObject1.bin differ
index 7a693eab89653098d1d7d5ede44d510c9ccdb67f..addad73ab0ada5b949e04c33512845212d41af94 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPEndPointsObject1IPv4.bin and b/pcep/impl/src/test/resources/PCEPEndPointsObject1IPv4.bin differ
index 4f41aa403a819924ab2307ba8b567a07dcbace51..9470b7cfa7080a0ef8d36b928c1bde3fc4837ab5 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPEndPointsObject2IPv6.bin and b/pcep/impl/src/test/resources/PCEPEndPointsObject2IPv6.bin differ
index dee9c4c8adafc2e6af2ee0379ef082b7b43cd95f..1e01ce9bd54c6097c3435d5fe5ce6c3f464e5869 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPErrorObject1.bin and b/pcep/impl/src/test/resources/PCEPErrorObject1.bin differ
index a47bbd18d0626bdaacfa7cc589895b351cd8b022..d8c1e4022eeb1cce4cbdfda0b7ea19e49727853e 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPErrorObject3.bin and b/pcep/impl/src/test/resources/PCEPErrorObject3.bin differ
index 994e2b6ad981e69abc5e058e49fac747dd2d1a26..e9377446e84cf2422aa9e1089afeaa48fe9e288d 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPExcludeRouteObject.1.bin and b/pcep/impl/src/test/resources/PCEPExcludeRouteObject.1.bin differ
index 9b7cead89183d3b9472fb609b7cd324009b56332..04a22f7068520d98de4c0f75e7caf871fdf6a767 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPExplicitRouteObject1PackOfSubobjects.bin and b/pcep/impl/src/test/resources/PCEPExplicitRouteObject1PackOfSubobjects.bin differ
index af26de8a9a8103aa73eee8c7e6910f5fd3b565ba..e276b7d460c6f43c8bfa842d27311377ba27c84f 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPGlobalConstraintsObject.1.bin and b/pcep/impl/src/test/resources/PCEPGlobalConstraintsObject.1.bin differ
index d8bcbfae9ef14b8a30a59ef68be6a551e6c3e05c..b2282cd189e9c2505b40cf393b170e9997fcdd4e 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPIncludeRouteObject1PackOfSubobjects.bin and b/pcep/impl/src/test/resources/PCEPIncludeRouteObject1PackOfSubobjects.bin differ
index 357cfbf279ac888dfda8e381a525330484ba456b..7070f4b587282755f86e0cfa9b4326f5a3defe51 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPLoadBalancingObject1.bin and b/pcep/impl/src/test/resources/PCEPLoadBalancingObject1.bin differ
index 74115f5e7c0b2639d740eb6cb1af3ffc7a9af0d2..0b28aae333ea2afe04eab810f9f4050ed7bad2de 100755 (executable)
Binary files a/pcep/impl/src/test/resources/PCEPLspObject1WithTLV.bin and b/pcep/impl/src/test/resources/PCEPLspObject1WithTLV.bin differ
index 01d633b27e8ea9b17084fc911d0c8cc43a4170a9..38c3d837b1027f84bd3af66b0444a2a4f77d54e7 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPLspaObject1LowerBounds.bin and b/pcep/impl/src/test/resources/PCEPLspaObject1LowerBounds.bin differ
index d3ee142bdbfc6fff6dfbba0b8b56dbab4909a7d4..de8441e5d1e66174926c93b45b87b9757e7d59eb 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPLspaObject2UpperBounds.bin and b/pcep/impl/src/test/resources/PCEPLspaObject2UpperBounds.bin differ
index 2834c257a40e76eca8841735486c56afb1217f24..4d1562902065f0b40bdf69966fb5a7569c63ec74 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPLspaObject3RandVals.bin and b/pcep/impl/src/test/resources/PCEPLspaObject3RandVals.bin differ
index 46426b1617fe258a6500bfba3eb6daea70933b74..bb6c3a766f7e85a0c2a7b90548825752586f6839 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPMetricObject1LowerBounds.bin and b/pcep/impl/src/test/resources/PCEPMetricObject1LowerBounds.bin differ
index 49eee514f7f37d55224e45fac18a78c7ebe5fdea..4b80f385591b40a8b1a8270c0c79262869a2f54b 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPMetricObject2UpperBounds.bin and b/pcep/impl/src/test/resources/PCEPMetricObject2UpperBounds.bin differ
index 009d73a31973e2082917509b8596bb343d4265ab..e71b4b8d494cf8fb33d83ce9b55e8612b2bd4b77 100755 (executable)
Binary files a/pcep/impl/src/test/resources/PCEPNoPathObject1WithoutTLV.bin and b/pcep/impl/src/test/resources/PCEPNoPathObject1WithoutTLV.bin differ
index 3e41319a4e064966ec6087d9cd69221288b61ef5..a35207959c8903c8a2c9954ae384121af3945daa 100755 (executable)
Binary files a/pcep/impl/src/test/resources/PCEPNoPathObject2WithTLV.bin and b/pcep/impl/src/test/resources/PCEPNoPathObject2WithTLV.bin differ
index 7247848c86ee1a1365c65101185db4543cf2fffb..c12ddb218cf0f1ae71fbffb210bc630a3b48c083 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPNotificationObject1WithTlv.bin and b/pcep/impl/src/test/resources/PCEPNotificationObject1WithTlv.bin differ
index 0a2d4bbb32ffb3c9d4afe2f5a04463a67653e8af..8a902ccaca82007390cdd8648de3a82ea0964555 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPNotificationObject2WithoutTlv.bin and b/pcep/impl/src/test/resources/PCEPNotificationObject2WithoutTlv.bin differ
index 0357d47a88433c9240547f8ff3f5a52f3f9528c3..45094a11dc6785f34a173486118688180223bc5e 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPObjectiveFunctionObject.1.bin and b/pcep/impl/src/test/resources/PCEPObjectiveFunctionObject.1.bin differ
index 669df5b4cc6010148fe222a3a95708cc92709513..58f380f21160f45b20aee319978e68d0f9935076 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPOpenObject1.bin and b/pcep/impl/src/test/resources/PCEPOpenObject1.bin differ
index 0b98826eac493e071e4e53dc8212238dcf6d99cc..a78ce97d2368dc306e8b00b3047774e001121002 100755 (executable)
Binary files a/pcep/impl/src/test/resources/PCEPPathKeyObject.bin and b/pcep/impl/src/test/resources/PCEPPathKeyObject.bin differ
index d2be7873c2ddfc222d621990e7298cccfa361bc4..722914101a4f5b6d72ee3dbb591e377a5b5d407e 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPRPObject1.bin and b/pcep/impl/src/test/resources/PCEPRPObject1.bin differ
index 6086a8d6edd17675a7883df38eaa9c6aa6d69de4..e609052e88d9d94319b6342b3c7329328c8fc27c 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPRPObject2.bin and b/pcep/impl/src/test/resources/PCEPRPObject2.bin differ
index fcd275ea45d0d0f1c339cb43c5320a4ea4cfadde..f97e6454a83a4e0e6352cbf429061c02f48b7992 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPReportedRouteObject1PackOfSubobjects.bin and b/pcep/impl/src/test/resources/PCEPReportedRouteObject1PackOfSubobjects.bin differ
index 315d6ae45230c2ca03e5e27f29517bf50a64b41c..89e79eb9ca1d0a196daf0216292ad2f621476350 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPSvecObject1_10ReqIDs.bin and b/pcep/impl/src/test/resources/PCEPSvecObject1_10ReqIDs.bin differ
index b59255eabed35cfb91819f1a7e31ef2cfbbe519a..7f21270f24cb5f2395893b3e75949053f6dac87c 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPSvecObject2.bin and b/pcep/impl/src/test/resources/PCEPSvecObject2.bin differ