From: Dana Kutenicsova Date: Tue, 19 Nov 2013 10:47:58 +0000 (+0100) Subject: BUG-50 : fixed several bugs in parsing. X-Git-Tag: jenkins-bgpcep-bulk-release-prepare-only-1~237^2~15^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=a81ddeb0e0c095e90b22ac439e5cddee2655f480;p=bgpcep.git BUG-50 : fixed several bugs in parsing. Change-Id: Ibf7836d1909c44c7efb4defdc7912fdaf4ec86f4 Signed-off-by: Dana Kutenicsova --- diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPErrorMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPErrorMessageParser.java index e2abbb2499..3091a9c7a8 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPErrorMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPErrorMessageParser.java @@ -102,13 +102,29 @@ public class PCEPErrorMessageParser extends AbstractMessageParser { throw new IllegalArgumentException("Passed list can't be null."); } - Open openObj = null; final List requestParameters = Lists.newArrayList(); final List errorObjects = Lists.newArrayList(); final PcerrMessageBuilder b = new PcerrMessageBuilder(); Object obj; - int state = 0; + State state = State.Init; + obj = objects.get(0); + + if (obj instanceof ErrorObject) { + final ErrorObject o = (ErrorObject) obj; + errorObjects.add(new ErrorsBuilder().setErrorObject(o).build()); + state = State.ErrorIn; + objects.remove(0); + } else if (obj instanceof Rp) { + final Rp o = ((Rp) obj); + if (o.isProcessingRule()) { + throw new PCEPDocumentedException("Invalid setting of P flag.", PCEPErrors.P_FLAG_NOT_SET); + } + requestParameters.add(new RpsBuilder().setRp(o).build()); + state = State.RpIn; + objects.remove(0); + } + while (!objects.isEmpty()) { obj = objects.get(0); @@ -116,66 +132,51 @@ public class PCEPErrorMessageParser extends AbstractMessageParser { return new PcerrBuilder().setPcerrMessage(b.setErrors(((UnknownObject) obj).getErrors()).build()).build(); } - if (state == 0) { - if (obj instanceof ErrorObject) { - final ErrorObject o = (ErrorObject) obj; - errorObjects.add(new ErrorsBuilder().setErrorObject(o).build()); - state = 1; - objects.remove(0); - continue; - } else if (obj instanceof Rp) { - final Rp o = ((Rp) obj); - if (o.isProcessingRule()) { - throw new PCEPDocumentedException("Invalid setting of P flag.", PCEPErrors.P_FLAG_NOT_SET); - } - requestParameters.add(new RpsBuilder().setRp(o).build()); - state = 2; - objects.remove(0); - continue; - } - } - switch (state) { - case 1: + case ErrorIn: + state = State.Open; if (obj instanceof ErrorObject) { final ErrorObject o = (ErrorObject) obj; errorObjects.add(new ErrorsBuilder().setErrorObject(o).build()); - state = 1; + state = State.ErrorIn; break; } - state = 3; - case 2: + case RpIn: + state = State.Error; if (obj instanceof Rp) { final Rp o = ((Rp) obj); if (o.isProcessingRule()) { throw new PCEPDocumentedException("Invalid setting of P flag.", PCEPErrors.P_FLAG_NOT_SET); } requestParameters.add(new RpsBuilder().setRp(o).build()); - state = 2; + state = State.RpIn; break; } - state = 4; - case 3: + case Open: + state = State.OpenIn; if (obj instanceof Open) { - openObj = (Open) obj; - state = 5; + b.setErrorType(new SessionBuilder().setOpen((Open) obj).build()); break; } - case 4: + case Error: + state = State.OpenIn; if (obj instanceof ErrorObject) { final ErrorObject o = (ErrorObject) obj; errorObjects.add(new ErrorsBuilder().setErrorObject(o).build()); - state = 4; - break; - } - state = 5; - - if (state == 5) { + state = State.Error; break; } + case OpenIn: + state = State.End; + break; + case End: + break; + default: + break; + } + if (!state.equals(State.End)) { + objects.remove(0); } - - objects.remove(0); } if (errorObjects.isEmpty() && errorObjects.isEmpty()) { @@ -185,16 +186,17 @@ public class PCEPErrorMessageParser extends AbstractMessageParser { if (!objects.isEmpty()) { throw new PCEPDeserializerException("Unprocessed Objects: " + objects); } - if (requestParameters != null) { + if (requestParameters != null && !requestParameters.isEmpty()) { b.setErrorType(new RequestBuilder().setRps(requestParameters).build()); } - if (openObj != null) { - b.setErrorType(new SessionBuilder().setOpen(openObj).build()); - } return new PcerrBuilder().setPcerrMessage(b.setErrors(errorObjects).build()).build(); } + private enum State { + Init, ErrorIn, RpIn, Open, Error, OpenIn, End + } + @Override public int getMessageType() { return TYPE; diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPNotificationMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPNotificationMessageParser.java index 760b1a5e5c..248869dcf9 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPNotificationMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPNotificationMessageParser.java @@ -126,8 +126,8 @@ public class PCEPNotificationMessageParser extends AbstractMessageParser { final List notifications = Lists.newArrayList(); Object obj; - int state = 1; - while (!objects.isEmpty()) { + State state = State.Init; + while (!objects.isEmpty() && !state.equals(State.End)) { obj = objects.get(0); if (obj instanceof UnknownObject) { @@ -135,32 +135,34 @@ public class PCEPNotificationMessageParser extends AbstractMessageParser { } switch (state) { - case 1: - state = 2; + case Init: + state = State.RpIn; if (obj instanceof Rp) { final Rp rp = (Rp) obj; if (rp.isProcessingRule()) { throw new PCEPDocumentedException("Invalid setting of P flag.", PCEPErrors.P_FLAG_NOT_SET); } requestParameters.add(new RpsBuilder().setRp(rp).build()); - state = 1; + state = State.Init; break; } - case 2: + case RpIn: + state = State.NotificationIn; if (obj instanceof CNotification) { final CNotification n = (CNotification) obj; notifications.add(new NotificationsBuilder().setCNotification(n).build()); - state = 2; + state = State.RpIn; break; } - state = 3; - } - - if (state == 3) { + case NotificationIn: + state = State.End; + break; + case End: break; } - - objects.remove(obj); + if (!state.equals(State.End)) { + objects.remove(0); + } } if (notifications.isEmpty()) { @@ -171,6 +173,10 @@ public class PCEPNotificationMessageParser extends AbstractMessageParser { notifications).setRps(requestParameters).build(); } + private enum State { + Init, RpIn, NotificationIn, End + } + @Override public int getMessageType() { return TYPE; diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReplyMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReplyMessageParser.java index bee6a16717..3ef912b51d 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReplyMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReplyMessageParser.java @@ -189,7 +189,7 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { Object obj; State state = State.Init; - while (!objects.isEmpty()) { + while (!objects.isEmpty() && !state.equals(State.End)) { obj = objects.get(0); switch (state) { @@ -213,17 +213,22 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { break; } case MetricIn: - state = State.End; + state = State.IroIn; if (obj instanceof Iro) { builder.setIro((Iro) obj); break; } + case IroIn: + state = State.End; + break; case End: break; default: throw new PCEPDocumentedException("Unknown object", ((UnknownObject) obj).getError()); } - objects.remove(0); + if (!state.equals(State.End)) { + objects.remove(0); + } } builder.setMetrics(pathMetrics); } @@ -233,7 +238,7 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { Object obj; State state = State.Init; - while (!objects.isEmpty()) { + while (!objects.isEmpty() && !state.equals(State.End)) { obj = objects.get(0); switch (state) { @@ -263,23 +268,28 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { break; } case MetricIn: - state = State.End; + state = State.IroIn; if (obj instanceof Iro) { builder.setIro((Iro) obj); break; } + case IroIn: + state = State.End; + break; case End: break; default: throw new PCEPDocumentedException("Unknown object", ((UnknownObject) obj).getError()); } - objects.remove(0); + if (!state.equals(State.End)) { + objects.remove(0); + } } builder.setMetrics(pathMetrics); } private enum State { - Init, LspaIn, OfIn, BandwidthIn, MetricIn, End + Init, LspaIn, OfIn, BandwidthIn, MetricIn, IroIn, End } @Override diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReportMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReportMessageParser.java index 998bca0d5d..66a9f725b7 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReportMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReportMessageParser.java @@ -67,6 +67,9 @@ public class PCEPReportMessageParser extends AbstractMessageParser { if (p.getEro() != null) { buffer.writeBytes(serializeObject(p.getEro())); } + if (p.getLspa() != null) { + buffer.writeBytes(serializeObject(p.getLspa())); + } if (p.getBandwidth() != null) { buffer.writeBytes(serializeObject(p.getBandwidth())); } @@ -98,16 +101,17 @@ public class PCEPReportMessageParser extends AbstractMessageParser { } } - public Pcrpt validate(final List objects) throws PCEPDeserializerException, PCEPDocumentedException { + public Message validate(final List objects) throws PCEPDeserializerException, PCEPDocumentedException { if (objects == null) { throw new IllegalArgumentException("Passed list can't be null."); } - final List reports = Lists.newArrayList(); while (!objects.isEmpty()) { final Reports report = getValidReports(objects); - reports.add(report); + if (reports != null) { + reports.add(report); + } } if (!objects.isEmpty()) { @@ -143,9 +147,8 @@ public class PCEPReportMessageParser extends AbstractMessageParser { final List pathMetrics = Lists.newArrayList(); Object obj; State state = State.Init; - while (!objects.isEmpty()) { + while (!objects.isEmpty() && !state.equals(State.End)) { obj = objects.get(0); - switch (state) { case Init: state = State.EroIn; @@ -179,11 +182,14 @@ public class PCEPReportMessageParser extends AbstractMessageParser { break; } case IroIn: - state = State.End; + state = State.RroIn; if (obj instanceof Rro) { builder.setRro((Rro) obj); break; } + case RroIn: + state = State.End; + break; case End: break; default: @@ -191,12 +197,17 @@ public class PCEPReportMessageParser extends AbstractMessageParser { throw new PCEPDocumentedException("Unknown object", ((UnknownObject) obj).getError()); } } - objects.remove(0); + if (!state.equals(State.End)) { + objects.remove(0); + } + } + if (!pathMetrics.isEmpty()) { + builder.setMetrics(pathMetrics); } } private enum State { - Init, SrpIn, LspIn, EroIn, LspaIn, BandwidthIn, MetricIn, IroIn, End + Init, EroIn, LspaIn, BandwidthIn, MetricIn, IroIn, RroIn, End } @Override diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPUpdateRequestMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPUpdateRequestMessageParser.java index cda985260b..d8f636938a 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPUpdateRequestMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPUpdateRequestMessageParser.java @@ -61,17 +61,22 @@ public class PCEPUpdateRequestMessageParser extends AbstractMessageParser { buffer.writeBytes(serializeObject(update.getSrp())); buffer.writeBytes(serializeObject(update.getLsp())); final Path p = update.getPath(); - buffer.writeBytes(serializeObject(p.getEro())); - if (p.getBandwidth() != null) { - buffer.writeBytes(serializeObject(p.getBandwidth())); - } - if (p.getMetrics() != null && !p.getMetrics().isEmpty()) { - for (final Metrics m : p.getMetrics()) { - buffer.writeBytes(serializeObject(m.getMetric())); + if (p != null) { + buffer.writeBytes(serializeObject(p.getEro())); + if (p.getLspa() != null) { + buffer.writeBytes(serializeObject(p.getLspa())); + } + if (p.getBandwidth() != null) { + buffer.writeBytes(serializeObject(p.getBandwidth())); + } + if (p.getMetrics() != null && !p.getMetrics().isEmpty()) { + for (final Metrics m : p.getMetrics()) { + buffer.writeBytes(serializeObject(m.getMetric())); + } + } + if (p.getIro() != null) { + buffer.writeBytes(serializeObject(p.getIro())); } - } - if (p.getIro() != null) { - buffer.writeBytes(serializeObject(p.getIro())); } } } @@ -96,69 +101,83 @@ public class PCEPUpdateRequestMessageParser extends AbstractMessageParser { final List updateRequests = Lists.newArrayList(); while (!objects.isEmpty()) { - final Updates update = this.getValidUpdates(objects); + final Updates update = getValidUpdates(objects); if (update != null) { updateRequests.add(update); } - if (objects.isEmpty()) { - break; + } + if (!objects.isEmpty()) { + if (objects.get(0) instanceof UnknownObject) { + throw new PCEPDocumentedException("Unknown object encountered", ((UnknownObject) objects.get(0)).getError()); } + throw new PCEPDeserializerException("Unprocessed Objects: " + objects); } return new PcupdBuilder().setPcupdMessage(new PcupdMessageBuilder().setUpdates(updateRequests).build()).build(); } private Updates getValidUpdates(final List objects) throws PCEPDocumentedException { - if (!(objects.get(0) instanceof Srp)) { + final UpdatesBuilder builder = new UpdatesBuilder(); + if (objects.get(0) instanceof Srp) { + builder.setSrp((Srp) objects.get(0)); + objects.remove(0); + } else { throw new PCEPDocumentedException("Srp object missing.", PCEPErrors.SRP_MISSING); } - final Srp srp = (Srp) objects.get(0); - objects.remove(0); - if (!(objects.get(0) instanceof Lsp)) { + if (objects.get(0) instanceof Lsp) { + builder.setLsp((Lsp) objects.get(0)); + objects.remove(0); + } else { throw new PCEPDocumentedException("Lsp object missing.", PCEPErrors.LSP_MISSING); } - final Lsp lsp = (Lsp) objects.get(0); - objects.remove(0); - if (!(objects.get(0) instanceof Ero)) { - throw new PCEPDocumentedException("Ero object missing.", PCEPErrors.ERO_MISSING); + if (!objects.isEmpty()) { + final PathBuilder pBuilder = new PathBuilder(); + if (objects.get(0) instanceof Ero) { + pBuilder.setEro((Ero) objects.get(0)); + objects.remove(0); + } else { + throw new PCEPDocumentedException("Ero object missing.", PCEPErrors.ERO_MISSING); + } + parsePath(objects, pBuilder); + builder.setPath(pBuilder.build()); } - final Ero ero = (Ero) objects.get(0); - objects.remove(0); + return builder.build(); + } - Lspa pathLspa = null; - Bandwidth pathBandwidth = null; - Iro pathIro = null; + private void parsePath(final List objects, final PathBuilder pBuilder) throws PCEPDocumentedException { final List pathMetrics = Lists.newArrayList(); - Object obj; State state = State.Init; - while (!objects.isEmpty()) { + while (!objects.isEmpty() && !state.equals(State.End)) { obj = objects.get(0); switch (state) { - case LspaIn: - state = State.BandwidthIn; + case Init: + state = State.LspaIn; if (obj instanceof Lspa) { - pathLspa = (Lspa) obj; + pBuilder.setLspa((Lspa) obj); break; } - case BandwidthIn: - state = State.MetricIn; + case LspaIn: + state = State.BandwidthIn; if (obj instanceof Bandwidth) { - pathBandwidth = (Bandwidth) obj; + pBuilder.setBandwidth((Bandwidth) obj); break; } - case MetricIn: - state = State.IroIn; + case BandwidthIn: + state = State.MetricIn; if (obj instanceof Metric) { pathMetrics.add(new MetricsBuilder().setMetric((Metric) obj).build()); state = State.BandwidthIn; break; } - case IroIn: - state = State.End; + case MetricIn: + state = State.IroIn; if (obj instanceof Iro) { - pathIro = (Iro) obj; + pBuilder.setIro((Iro) obj); break; } + case IroIn: + state = State.End; + break; case End: break; default: @@ -166,15 +185,13 @@ public class PCEPUpdateRequestMessageParser extends AbstractMessageParser { throw new PCEPDocumentedException("Unknown object", ((UnknownObject) obj).getError()); } } - objects.remove(0); + if (!state.equals(State.End)) { + objects.remove(0); + } + } + if (!pathMetrics.isEmpty()) { + pBuilder.setMetrics(pathMetrics); } - final PathBuilder builder = new PathBuilder(); - builder.setEro(ero); - builder.setLspa(pathLspa); - builder.setBandwidth(pathBandwidth); - builder.setMetrics(pathMetrics); - builder.setIro(pathIro); - return new UpdatesBuilder().setSrp(srp).setLsp(lsp).setPath(builder.build()).build(); } private enum State { diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PcinitiateMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PcinitiateMessageParser.java index 51ec4dcadd..544b1dc059 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PcinitiateMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PcinitiateMessageParser.java @@ -133,7 +133,7 @@ public class PcinitiateMessageParser extends AbstractMessageParser { Object obj; State state = State.Init; - while (!objects.isEmpty()) { + while (!objects.isEmpty() && !state.equals(State.End)) { obj = objects.get(0); switch (state) { @@ -169,24 +169,29 @@ public class PcinitiateMessageParser extends AbstractMessageParser { break; } case MetricIn: - state = State.End; + state = State.IroIn; if (obj instanceof Iro) { builder.setIro((Iro) obj); break; } + case IroIn: + state = State.End; + break; case End: break; default: throw new PCEPDocumentedException("Unknown object", ((UnknownObject) obj).getError()); } - objects.remove(0); + if (!state.equals(State.End)) { + objects.remove(0); + } } builder.setMetrics(metrics); return builder.build(); } private enum State { - Init, EndpointsIn, EroIn, LspaIn, BandwidthIn, MetricIn, End + Init, EndpointsIn, EroIn, LspaIn, BandwidthIn, MetricIn, IroIn, End } @Override diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/AbstractRROWithSubobjectsParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/AbstractRROWithSubobjectsParser.java index 7aea374909..57755d97a8 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/AbstractRROWithSubobjectsParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/AbstractRROWithSubobjectsParser.java @@ -21,6 +21,7 @@ import org.slf4j.LoggerFactory; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; +import com.google.common.primitives.UnsignedBytes; public abstract class AbstractRROWithSubobjectsParser implements ObjectParser, ObjectSerializer { @@ -92,8 +93,8 @@ public abstract class AbstractRROWithSubobjectsParser implements ObjectParser, O final byte[] bytes = new byte[SUB_HEADER_LENGTH + valueBytes.length]; - final byte typeBytes = (ByteArray.cutBytes(ByteArray.intToBytes(serializer.getType()), (Integer.SIZE / 8) - 1)[0]); - final byte lengthBytes = ByteArray.cutBytes(ByteArray.intToBytes(valueBytes.length), (Integer.SIZE / 8) - 1)[0]; + final byte typeBytes = UnsignedBytes.checkedCast(serializer.getType()); + final byte lengthBytes = UnsignedBytes.checkedCast(valueBytes.length + SUB_HEADER_LENGTH); bytes[0] = typeBytes; bytes[1] = lengthBytes; diff --git a/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPValidatorTest.java b/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPValidatorTest.java index 5351905f43..b24083a3b3 100644 --- a/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPValidatorTest.java +++ b/pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPValidatorTest.java @@ -27,6 +27,7 @@ import org.opendaylight.protocol.pcep.impl.message.PCEPNotificationMessageParser import org.opendaylight.protocol.pcep.impl.message.PCEPOpenMessageParser; import org.opendaylight.protocol.pcep.impl.message.PCEPReplyMessageParser; import org.opendaylight.protocol.pcep.impl.message.PCEPReportMessageParser; +import org.opendaylight.protocol.pcep.impl.message.PCEPUpdateRequestMessageParser; import org.opendaylight.protocol.pcep.impl.message.PcinitiateMessageParser; import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; import org.opendaylight.protocol.pcep.spi.pojo.PCEPExtensionProviderContextImpl; @@ -40,6 +41,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.mes import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.PcntfBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.PcrepBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.PcrptBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.PcupdBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OfId; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OperationalStatus; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PlspId; @@ -99,6 +101,12 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcrpt.message.PcrptMessageBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcrpt.message.pcrpt.message.Reports; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcrpt.message.pcrpt.message.ReportsBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcrpt.message.pcrpt.message.reports.PathBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcupd.message.PcupdMessageBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcupd.message.pcupd.message.Updates; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcupd.message.pcupd.message.UpdatesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.reported.route.object.Rro; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.reported.route.object.RroBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.rp.object.Rp; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.rp.object.RpBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.srp.object.Srp; @@ -109,6 +117,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev130820.AttributeFilter; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev130820.basic.explicit.route.subobjects.subobject.type.AsNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev130820.basic.explicit.route.subobjects.subobject.type.AsNumberBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev130820.record.route.subobjects.subobject.type.Unnumbered; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev130820.record.route.subobjects.subobject.type.UnnumberedBuilder; import com.google.common.collect.Lists; @@ -124,11 +134,13 @@ public class PCEPValidatorTest { private Metrics metrics; private Iro iro; private Ero ero; + private Rro rro; private Of of; private Srp srp; private Lsp lsp; private AsNumber eroASSubobject; + private Unnumbered rroUnnumberedSub; @Before public void setUp() throws Exception { @@ -152,8 +164,8 @@ public class PCEPValidatorTest { final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder openBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder(); openBuilder.setProcessingRule(false); openBuilder.setIgnore(false); - openBuilder.setDeadTimer((short) 0); - openBuilder.setKeepalive((short) 0); + openBuilder.setDeadTimer((short) 1); + openBuilder.setKeepalive((short) 1); openBuilder.setSessionId((short) 0); openBuilder.setVersion(new ProtocolVersion((short) 1)); openBuilder.setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder().build()); @@ -195,6 +207,8 @@ public class PCEPValidatorTest { this.eroASSubobject = new AsNumberBuilder().setAsNumber( new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber(0xFFFFL)).build(); + this.rroUnnumberedSub = new UnnumberedBuilder().setRouterId(0x00112233L).setInterfaceId(0x00ff00ffL).build(); + final IroBuilder iroBuilder = new IroBuilder(); iroBuilder.setIgnore(false); iroBuilder.setProcessingRule(false); @@ -212,6 +226,15 @@ public class PCEPValidatorTest { eroBuilder.setSubobjects(eroSubs); this.ero = eroBuilder.build(); + final RroBuilder rroBuilder = new RroBuilder(); + rroBuilder.setIgnore(false); + rroBuilder.setProcessingRule(false); + final List rroSubs = Lists.newArrayList(); + rroSubs.add(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.reported.route.object.rro.SubobjectsBuilder().setSubobjectType( + this.rroUnnumberedSub).setProtectionAvailable(false).setProtectionInUse(false).build()); + rroBuilder.setSubobjects(rroSubs); + this.rro = rroBuilder.build(); + final OfBuilder ofBuilder = new OfBuilder(); ofBuilder.setIgnore(false); ofBuilder.setProcessingRule(false); @@ -237,35 +260,6 @@ public class PCEPValidatorTest { this.lsp = lspBuilder.build(); } - // private static final LspaObject lspa = new PCEPLspaObject(0L, 0L, 0L, (short) 0, (short) 0, false, false, false, - // false); - // - // private final List eroSubobjects = asList( - // new EROAsNumberSubobject(new AsNumber(0xFFFFL), false), - // new EROUnnumberedInterfaceSubobject(new IPv4Address(new byte[] { (byte) 0x00, (byte) 0x11, (byte) 0x22, (byte) - // 0x33 }), new UnnumberedInterfaceIdentifier(0x00FF00FF), false)); - // - // private final List rroSubobjects = asList((ReportedRouteSubobject) new - // RROUnnumberedInterfaceSubobject(new IPv4Address(new byte[] { - // (byte) 0x00, (byte) 0x11, (byte) 0x22, (byte) 0x33 }), new UnnumberedInterfaceIdentifier(0x00FF00FF))); - // - // private final List requestIds = asList(0x000001L); - // - // private final IPv4Address ip4addr = new IPv4Address(new byte[] { (byte) 0xFF, 0x00, 0x00, 0x01 }); - // - // private final PCEPSvecObject svecObj = new PCEPSvecObject(true, true, true, false, false, - // PCEPValidatorTest.this.requestIds, true); - // - // private final PCEPRequestParameterObject requestParameter = new PCEPRequestParameterObject(true, false, false, - // false, false, false, false, false, (short) 3, 1, true, false); - // - // // private final PCEPEndPointsObject endPoints = new - // // PCEPEndPointsObject(this.ip4addr, this.ip4addr); - // - // private final PCEPEndPointsObject endPoints = new PCEPEndPointsObject(this.ip4addr, - // this.ip4addr); - // - @Test public void testOpenMsg() throws IOException, PCEPDeserializerException, PCEPDocumentedException { final byte[] result = ByteArray.fileToBytes("src/test/resources/PCEPOpenMessage1.bin"); @@ -618,189 +612,102 @@ public class PCEPValidatorTest { assertArrayEquals(result, buf.array()); } - // - // @Test - // public void testUpdMessageValidatorFromBin() throws IOException, PCEPDeserializerException, - // PCEPDocumentedException, - // DeserializerException, DocumentedException { - // List specMessages = Lists.newArrayList(); - // - // List requests = new ArrayList(); - // requests.add(new CompositeUpdateRequestObject(new PCEPLspObject(1, true, false, true, true))); - // - // specMessages.add(new PCEPUpdateRequestMessage(requests)); - // assertEquals(deserMsg("src/test/resources/PCUpd.1.bin").toString(), specMessages.toString()); - // - // specMessages = Lists.newArrayList(); - // List paths = new ArrayList(); - // paths.add(new CompositeUpdPathObject(new PCEPExplicitRouteObject(this.eroSubobjects, false), - // PCEPValidatorTest.lspa, null, null)); - // requests = new ArrayList(); - // requests.add(new CompositeUpdateRequestObject(new PCEPLspObject(1, true, false, true, true), paths)); - // specMessages.add(new PCEPUpdateRequestMessage(requests)); - // assertEquals(deserMsg("src/test/resources/PCUpd.2.bin").toString(), specMessages.toString()); - // - // specMessages = Lists.newArrayList(); - // paths = new ArrayList(); - // paths.add(new CompositeUpdPathObject(new PCEPExplicitRouteObject(this.eroSubobjects, false), - // PCEPValidatorTest.lspa, new PCEPRequestedPathBandwidthObject(new Bandwidth(ByteArray.floatToBytes(5353)), false, - // false), new ArrayList() { - // private static final long serialVersionUID = 1L; - // - // { - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // } - // })); - // requests = new ArrayList(); - // requests.add(new CompositeUpdateRequestObject(new PCEPLspObject(1, true, false, true, true), paths)); - // specMessages.add(new PCEPUpdateRequestMessage(requests)); - // assertEquals(deserMsg("src/test/resources/PCUpd.3.bin").toString(), specMessages.toString()); - // - // specMessages = Lists.newArrayList(); - // requests = new ArrayList(); - // requests.add(new CompositeUpdateRequestObject(new PCEPLspObject(1, true, false, true, true))); - // requests.add(new CompositeUpdateRequestObject(new PCEPLspObject(1, true, false, true, true))); - // specMessages.add(new PCEPUpdateRequestMessage(requests)); - // assertEquals(deserMsg("src/test/resources/PCUpd.4.bin").toString(), specMessages.toString()); - // - // specMessages = Lists.newArrayList(); - // requests = new ArrayList(); - // requests.add(new CompositeUpdateRequestObject(new PCEPLspObject(1, true, false, true, true))); - // paths = new ArrayList(); - // paths.add(new CompositeUpdPathObject(new PCEPExplicitRouteObject(this.eroSubobjects, false), - // PCEPValidatorTest.lspa, new PCEPRequestedPathBandwidthObject(new Bandwidth(ByteArray.floatToBytes(5353)), false, - // false), new ArrayList() { - // private static final long serialVersionUID = 1L; - // - // { - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // } - // })); - // requests.add(new CompositeUpdateRequestObject(new PCEPLspObject(1, true, false, true, true), paths)); - // paths = new ArrayList(); - // paths.add(new CompositeUpdPathObject(new PCEPExplicitRouteObject(this.eroSubobjects, false), - // PCEPValidatorTest.lspa, new PCEPRequestedPathBandwidthObject(new Bandwidth(ByteArray.floatToBytes(5353)), false, - // false), new ArrayList() { - // private static final long serialVersionUID = 1L; - // - // { - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // } - // })); - // paths.add(new CompositeUpdPathObject(new PCEPExplicitRouteObject(this.eroSubobjects, false), - // PCEPValidatorTest.lspa, new PCEPRequestedPathBandwidthObject(new Bandwidth(ByteArray.floatToBytes(5353)), false, - // false), new ArrayList() { - // private static final long serialVersionUID = 1L; - // - // { - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // } - // })); - // paths.add(new CompositeUpdPathObject(new PCEPExplicitRouteObject(this.eroSubobjects, false), - // PCEPValidatorTest.lspa, new PCEPRequestedPathBandwidthObject(new Bandwidth(ByteArray.floatToBytes(5353)), false, - // false), new ArrayList() { - // private static final long serialVersionUID = 1L; - // - // { - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // } - // })); - // requests.add(new CompositeUpdateRequestObject(new PCEPLspObject(1, true, false, true, true), paths)); - // specMessages.add(new PCEPUpdateRequestMessage(requests)); - // assertEquals(deserMsg("src/test/resources/PCUpd.5.bin").toString(), specMessages.toString()); - // } - // + @Test + public void testUpdMsg() throws IOException, PCEPDeserializerException, PCEPDocumentedException { + byte[] result = ByteArray.fileToBytes("src/test/resources/PCUpd.2.bin"); + + final PCEPUpdateRequestMessageParser parser = new PCEPUpdateRequestMessageParser(this.objectRegistry); + + final PcupdMessageBuilder builder = new PcupdMessageBuilder(); + + final List updates = Lists.newArrayList(); + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcupd.message.pcupd.message.updates.PathBuilder pBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcupd.message.pcupd.message.updates.PathBuilder(); + pBuilder.setEro(this.ero); + pBuilder.setLspa(this.lspa); + updates.add(new UpdatesBuilder().setSrp(this.srp).setLsp(this.lsp).setPath(pBuilder.build()).build()); + builder.setUpdates(updates); + + assertEquals(new PcupdBuilder().setPcupdMessage(builder.build()).build(), parser.parseMessage(result)); + ByteBuf buf = Unpooled.buffer(result.length); + parser.serializeMessage(new PcupdBuilder().setPcupdMessage(builder.build()).build(), buf); + assertArrayEquals(result, buf.array()); + + result = ByteArray.fileToBytes("src/test/resources/PCUpd.5.bin"); + + final List updates1 = Lists.newArrayList(); + final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcupd.message.pcupd.message.updates.PathBuilder pBuilder1 = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcupd.message.pcupd.message.updates.PathBuilder(); + pBuilder1.setEro(this.ero); + pBuilder1.setLspa(this.lspa); + updates1.add(new UpdatesBuilder().setSrp(this.srp).setLsp(this.lsp).setPath(pBuilder.build()).build()); + updates1.add(new UpdatesBuilder().setSrp(this.srp).setLsp(this.lsp).setPath(pBuilder1.build()).build()); + builder.setUpdates(updates1); + + assertEquals(new PcupdBuilder().setPcupdMessage(builder.build()).build(), parser.parseMessage(result)); + buf = Unpooled.buffer(result.length); + parser.serializeMessage(new PcupdBuilder().setPcupdMessage(builder.build()).build(), buf); + assertArrayEquals(result, buf.array()); + } + @Test public void testRptMsg() throws IOException, PCEPDeserializerException, PCEPDocumentedException { - final byte[] result = ByteArray.fileToBytes("src/test/resources/PCRpt.1.bin"); + byte[] result = ByteArray.fileToBytes("src/test/resources/PCRpt.1.bin"); final PCEPReportMessageParser parser = new PCEPReportMessageParser(this.objectRegistry); final PcrptMessageBuilder builder = new PcrptMessageBuilder(); + final List reports = Lists.newArrayList(); reports.add(new ReportsBuilder().setLsp(this.lsp).build()); builder.setReports(reports); assertEquals(new PcrptBuilder().setPcrptMessage(builder.build()).build(), parser.parseMessage(result)); - final ByteBuf buf = Unpooled.buffer(result.length); + ByteBuf buf = Unpooled.buffer(result.length); + parser.serializeMessage(new PcrptBuilder().setPcrptMessage(builder.build()).build(), buf); + assertArrayEquals(result, buf.array()); + + result = ByteArray.fileToBytes("src/test/resources/PCRpt.2.bin"); + + final List reports1 = Lists.newArrayList(); + reports1.add(new ReportsBuilder().setLsp(this.lsp).setPath(new PathBuilder().setEro(this.ero).setLspa(this.lspa).build()).build()); + builder.setReports(reports1); + + assertEquals(new PcrptBuilder().setPcrptMessage(builder.build()).build(), parser.parseMessage(result)); + buf = Unpooled.buffer(result.length); + parser.serializeMessage(new PcrptBuilder().setPcrptMessage(builder.build()).build(), buf); + assertArrayEquals(result, buf.array()); + + result = ByteArray.fileToBytes("src/test/resources/PCRpt.3.bin"); + + final List reports2 = Lists.newArrayList(); + final PathBuilder pBuilder = new PathBuilder(); + pBuilder.setEro(this.ero); + pBuilder.setLspa(this.lspa); + pBuilder.setMetrics(Lists.newArrayList(this.metrics, this.metrics)); + pBuilder.setRro(this.rro); + reports2.add(new ReportsBuilder().setSrp(this.srp).setLsp(this.lsp).setPath(pBuilder.build()).build()); + builder.setReports(reports2); + + assertEquals(new PcrptBuilder().setPcrptMessage(builder.build()).build(), parser.parseMessage(result)); + buf = Unpooled.buffer(result.length); parser.serializeMessage(new PcrptBuilder().setPcrptMessage(builder.build()).build(), buf); assertArrayEquals(result, buf.array()); - // specMessages = Lists.newArrayList(); - // List paths = new ArrayList(); - // paths.add(new CompositeRptPathObject(new PCEPExplicitRouteObject(this.eroSubobjects, false), - // PCEPValidatorTest.lspa, null, null, null)); - // reports = new ArrayList(); - // reports.add(new CompositeStateReportObject(new PCEPLspObject(1, true, false, true, true), paths)); - // specMessages.add(new PCEPReportMessage(reports)); - // assertEquals(deserMsg("src/test/resources/PCRpt.2.bin").toString(), specMessages.toString()); - // - // specMessages = Lists.newArrayList(); - // paths = new ArrayList(); - // paths.add(new CompositeRptPathObject(new PCEPExplicitRouteObject(this.eroSubobjects, false), - // PCEPValidatorTest.lspa, new PCEPExistingPathBandwidthObject(new Bandwidth(ByteArray.floatToBytes(5353)), - // false, false), new PCEPReportedRouteObject(this.rroSubobjects, false), new ArrayList() { - // private static final long serialVersionUID = 1L; - // - // { - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // } - // })); - // - // reports = new ArrayList(); - // reports.add(new CompositeStateReportObject(new PCEPLspObject(1, true, false, true, true), paths)); - // specMessages.add(new PCEPReportMessage(reports)); - // - // // FIXME - // // assertEquals(deserMsg("src/test/resources/PCRpt.3.bin"), specMessages); - // - // specMessages = Lists.newArrayList(); - // reports = new ArrayList(); - // reports.add(new CompositeStateReportObject(new PCEPLspObject(1, true, false, true, true))); - // reports.add(new CompositeStateReportObject(new PCEPLspObject(1, true, false, true, true))); - // reports.add(new CompositeStateReportObject(new PCEPLspObject(1, true, false, true, true))); - // specMessages.add(new PCEPReportMessage(reports)); - // assertEquals(deserMsg("src/test/resources/PCRpt.4.bin").toString(), specMessages.toString()); - // - // specMessages = Lists.newArrayList(); - // reports = new ArrayList(); - // paths = new ArrayList(); - // paths.add(new CompositeRptPathObject(new PCEPExplicitRouteObject(this.eroSubobjects, false), - // PCEPValidatorTest.lspa, new PCEPExistingPathBandwidthObject(new Bandwidth(ByteArray.floatToBytes(5353)), - // false, false), new PCEPReportedRouteObject(this.rroSubobjects, false), new ArrayList() { - // private static final long serialVersionUID = 1L; - // - // { - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // } - // })); - // reports.add(new CompositeStateReportObject(new PCEPLspObject(1, true, false, true, true), paths)); - // paths = new ArrayList(); - // paths.add(new CompositeRptPathObject(new PCEPExplicitRouteObject(this.eroSubobjects, false), - // PCEPValidatorTest.lspa, new PCEPExistingPathBandwidthObject(new Bandwidth(ByteArray.floatToBytes(5353)), - // false, false), new PCEPReportedRouteObject(this.rroSubobjects, false), new ArrayList() { - // private static final long serialVersionUID = 1L; - // - // { - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // } - // })); - // paths.add(new CompositeRptPathObject(new PCEPExplicitRouteObject(this.eroSubobjects, false), - // PCEPValidatorTest.lspa, new PCEPExistingPathBandwidthObject(new Bandwidth(ByteArray.floatToBytes(5353)), - // false, false), new PCEPReportedRouteObject(this.rroSubobjects, false), new ArrayList() { - // private static final long serialVersionUID = 1L; - // - // { - // this.add(new PCEPMetricObject(true, false, new IGPMetric(4L), false, false)); - // } - // })); - // reports.add(new CompositeStateReportObject(new PCEPLspObject(1, true, false, true, true), paths)); - // specMessages.add(new PCEPReportMessage(reports)); - // // FIXME - // // assertEquals(deserMsg("src/test/resources/PCRpt.5.bin").toString(), specMessages.toString()); + result = ByteArray.fileToBytes("src/test/resources/PCRpt.5.bin"); + + final List reports3 = Lists.newArrayList(); + final PathBuilder pBuilder1 = new PathBuilder(); + pBuilder1.setEro(this.ero); + pBuilder1.setLspa(this.lspa); + pBuilder1.setMetrics(Lists.newArrayList(this.metrics, this.metrics)); + pBuilder1.setRro(this.rro); + reports3.add(new ReportsBuilder().setSrp(this.srp).setLsp(this.lsp).setPath(pBuilder.build()).build()); + reports3.add(new ReportsBuilder().setSrp(this.srp).setLsp(this.lsp).setPath(pBuilder1.build()).build()); + builder.setReports(reports3); + + assertEquals(new PcrptBuilder().setPcrptMessage(builder.build()).build(), parser.parseMessage(result)); + buf = Unpooled.buffer(result.length); + parser.serializeMessage(new PcrptBuilder().setPcrptMessage(builder.build()).build(), buf); + assertArrayEquals(result, buf.array()); } @Test @@ -872,6 +779,8 @@ public class PCEPValidatorTest { @Test public void testErrorMsg() throws IOException, PCEPDeserializerException, PCEPDocumentedException { + byte[] result = ByteArray.fileToBytes("src/test/resources/PCErr.3.bin"); + final ErrorObject error1 = new ErrorObjectBuilder().setIgnore(false).setProcessingRule(false).setType((short) 3).setValue((short) 1).build(); final PCEPErrorMessageParser parser = new PCEPErrorMessageParser(this.objectRegistry); @@ -883,14 +792,12 @@ public class PCEPValidatorTest { builder.setErrors(innerErr); builder.setErrorType(new SessionBuilder().setOpen(this.open).build()); - final byte[] result = ByteArray.fileToBytes("src/test/resources/PCErr.3.bin"); - assertEquals(new PcerrBuilder().setPcerrMessage(builder.build()).build(), parser.parseMessage(result)); ByteBuf buf = Unpooled.buffer(result.length); parser.serializeMessage(new PcerrBuilder().setPcerrMessage(builder.build()).build(), buf); assertArrayEquals(result, buf.array()); - final byte[] result1 = ByteArray.fileToBytes("src/test/resources/PCErr.5.bin"); + result = ByteArray.fileToBytes("src/test/resources/PCErr.5.bin"); final List rps = Lists.newArrayList(); rps.add(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.request.RpsBuilder().setRp( @@ -902,9 +809,9 @@ public class PCEPValidatorTest { builder.setErrors(innerErr); builder.setErrorType(new RequestBuilder().setRps(rps).build()); - assertEquals(new PcerrBuilder().setPcerrMessage(builder.build()).build(), parser.parseMessage(result1)); - buf = Unpooled.buffer(result1.length); + assertEquals(new PcerrBuilder().setPcerrMessage(builder.build()).build(), parser.parseMessage(result)); + buf = Unpooled.buffer(result.length); parser.serializeMessage(new PcerrBuilder().setPcerrMessage(builder.build()).build(), buf); - assertArrayEquals(result1, buf.array()); + assertArrayEquals(result, buf.array()); } } diff --git a/pcep/impl/src/test/resources/PCErr.3.bin b/pcep/impl/src/test/resources/PCErr.3.bin index dcbed27d43..7b95d6b9f6 100644 Binary files a/pcep/impl/src/test/resources/PCErr.3.bin and b/pcep/impl/src/test/resources/PCErr.3.bin differ diff --git a/pcep/impl/src/test/resources/PCRpt.2.bin b/pcep/impl/src/test/resources/PCRpt.2.bin index 075677cd6f..8057aa3bc4 100644 Binary files a/pcep/impl/src/test/resources/PCRpt.2.bin and b/pcep/impl/src/test/resources/PCRpt.2.bin differ diff --git a/pcep/impl/src/test/resources/PCRpt.3.bin b/pcep/impl/src/test/resources/PCRpt.3.bin index 73a405684b..94a6443845 100644 Binary files a/pcep/impl/src/test/resources/PCRpt.3.bin and b/pcep/impl/src/test/resources/PCRpt.3.bin differ diff --git a/pcep/impl/src/test/resources/PCRpt.5.bin b/pcep/impl/src/test/resources/PCRpt.5.bin index 78f259472d..4ba5c9f437 100644 Binary files a/pcep/impl/src/test/resources/PCRpt.5.bin and b/pcep/impl/src/test/resources/PCRpt.5.bin differ diff --git a/pcep/impl/src/test/resources/PCUpd.2.bin b/pcep/impl/src/test/resources/PCUpd.2.bin index 49716e359a..dc5a3adcbf 100644 Binary files a/pcep/impl/src/test/resources/PCUpd.2.bin and b/pcep/impl/src/test/resources/PCUpd.2.bin differ diff --git a/pcep/impl/src/test/resources/PCUpd.5.bin b/pcep/impl/src/test/resources/PCUpd.5.bin index 4e2fdb7335..1b92799235 100644 Binary files a/pcep/impl/src/test/resources/PCUpd.5.bin and b/pcep/impl/src/test/resources/PCUpd.5.bin differ