import java.util.List;
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.pcep.error.object.ErrorObjectBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.Errors;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder;
import org.opendaylight.yangtools.yang.binding.DataContainer;
public UnknownObject(final PCEPErrors error) {
final PCEPErrorMapping mapping = PCEPErrorMapping.getInstance();
this.e = error;
- this.error = new ErrorsBuilder().setType(mapping.getFromErrorsEnum(error).type).setValue(mapping.getFromErrorsEnum(error).value).build();
+ this.error = new ErrorsBuilder().setErrorObject(
+ new ErrorObjectBuilder().setType(mapping.getFromErrorsEnum(error).type).setValue(mapping.getFromErrorsEnum(error).value).build()).build();
}
public List<Errors> getErrors() {
grouping pcep-error-object {
description "PCEP-ERROR Object";
reference "https://tools.ietf.org/html/rfc5440#section-7.15";
-
- uses object;
- container "tlvs" {
- when "../type = 7";
- uses req-missing-tlv;
- }
-
- leaf type {
- type uint8;
- mandatory true;
- }
-
- leaf value {
- type uint8;
- mandatory true;
+ container error-object {
+ uses object;
+ container "tlvs" {
+ when "../type = 7";
+ uses req-missing-tlv;
+ }
+
+ leaf type {
+ type uint8;
+ mandatory true;
+ }
+
+ leaf value {
+ type uint8;
+ mandatory true;
+ }
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OfObject;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PathKeyObject;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcepErrorObject;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcerrMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcinitiateMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcntfMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.order.tlv.Order;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.overload.duration.tlv.OverloadDuration;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObject;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcrep.message.pcrep.message.replies.result.failure.no.path.tlvs.NoPathVector;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.predundancy.group.id.tlv.PredundancyGroupId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.req.missing.tlv.ReqMissing;
context.registerObjectSerializer(IncludeRouteObject.class, new PCEPIncludeRouteObjectParser(eroSubReg));
context.registerObjectSerializer(SvecObject.class, new PCEPSvecObjectParser(tlvReg));
context.registerObjectSerializer(CNotification.class, new PCEPNotificationObjectParser(tlvReg));
- context.registerObjectSerializer(PcepErrorObject.class, new PCEPErrorObjectParser(tlvReg));
+ context.registerObjectSerializer(ErrorObject.class, new PCEPErrorObjectParser(tlvReg));
context.registerObjectSerializer(LoadBalancingObject.class, new PCEPLoadBalancingObjectParser(tlvReg));
context.registerObjectSerializer(CClose.class, new PCEPCloseObjectParser(tlvReg));
context.registerObjectSerializer(PathKeyObject.class, new PCEPPathKeyObjectParser(eroSubReg));
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.endpoints.AddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.endpoints.address.family.Ipv4;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObjectBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.PcerrMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.Errors;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.SessionBuilder;
final PcerrBuilder errMessageBuilder = new PcerrBuilder();
final PCEPErrorMapping mapping = PCEPErrorMapping.getInstance();
final PCEPErrorIdentifier id = mapping.getFromErrorsEnum(e);
- final Errors err = new ErrorsBuilder().setType(id.type).setValue(id.value).build();
+ final ErrorObject err = new ErrorObjectBuilder().setType(id.type).setValue(id.value).build();
if (t == null) {
- return errMessageBuilder.setPcerrMessage(new PcerrMessageBuilder().setErrors(Arrays.asList(err)).build()).build();
+ return errMessageBuilder.setPcerrMessage(
+ new PcerrMessageBuilder().setErrors(Arrays.asList(new ErrorsBuilder().setErrorObject(err).build())).build()).build();
} else {
final ErrorType type = new SessionBuilder().setOpen(t).build();
- return errMessageBuilder.setPcerrMessage(new PcerrMessageBuilder().setErrors(Arrays.asList(err)).setErrorType(type).build()).build();
+ return errMessageBuilder.setPcerrMessage(
+ new PcerrMessageBuilder().setErrors(Arrays.asList(new ErrorsBuilder().setErrorObject(err).build())).setErrorType(type).build()).build();
}
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.PcerrBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
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.OpenObject;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcepErrorObject;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcerrMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObjectBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.PcerrMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.Errors;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder;
}
for (final Errors e : err.getErrors()) {
- buffer.writeBytes(serializeObject(e));
+ buffer.writeBytes(serializeObject(e.getErrorObject()));
}
if (err.getErrorType() instanceof Session) {
}
@Override
- public PcerrMessage parseMessage(final byte[] buffer) throws PCEPDeserializerException, PCEPDocumentedException {
+ public Message parseMessage(final byte[] buffer) throws PCEPDeserializerException, PCEPDocumentedException {
if (buffer == null || buffer.length == 0) {
throw new PCEPDeserializerException("Error message is empty.");
}
final PCEPErrorMapping maping = PCEPErrorMapping.getInstance();
return new PcerrBuilder().setPcerrMessage(
new PcerrMessageBuilder().setErrors(
- Arrays.asList(new ErrorsBuilder().setType(maping.getFromErrorsEnum(e.getError()).type).setValue(
- maping.getFromErrorsEnum(e.getError()).value).build())).build()).build();
+ Arrays.asList(new ErrorsBuilder().setErrorObject(
+ new ErrorObjectBuilder().setType(maping.getFromErrorsEnum(e.getError()).type).setValue(
+ maping.getFromErrorsEnum(e.getError()).value).build()).build())).build()).build();
}
return m;
}
final PcerrMessageBuilder b = new PcerrMessageBuilder();
Object obj;
- int state = 1;
+ int state = 0;
while (!objects.isEmpty()) {
obj = objects.get(0);
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:
- if (obj instanceof PcepErrorObject) {
- final PcepErrorObject o = (PcepErrorObject) obj;
- errorObjects.add((Errors) o);
+ if (obj instanceof ErrorObject) {
+ final ErrorObject o = (ErrorObject) obj;
+ errorObjects.add(new ErrorsBuilder().setErrorObject(o).build());
+ state = 1;
break;
}
- state = 2;
- case 2:
state = 3;
- if (obj instanceof OpenObject) {
- openObj = (Open) obj;
+ case 2:
+ 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;
break;
}
+ state = 4;
case 3:
- while (!objects.isEmpty()) {
- switch (state) {
- case 1:
- state = 2;
- 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 = 1;
- break;
- }
- case 2:
- if (obj instanceof PcepErrorObject) {
- final PcepErrorObject o = (PcepErrorObject) obj;
- errorObjects.add((Errors) o);
- state = 2;
- break;
- }
- state = 3;
- }
-
- if (state == 3) {
- break;
- }
-
- objects.remove(0);
+ if (obj instanceof Open) {
+ openObj = (Open) obj;
+ state = 5;
+ break;
}
+ case 4:
+ if (obj instanceof ErrorObject) {
+ final ErrorObject o = (ErrorObject) obj;
+ errorObjects.add(new ErrorsBuilder().setErrorObject(o).build());
+ state = 4;
+ break;
+ }
+ state = 5;
- state = 4;
- break;
- }
-
- if (state == 4) {
- break;
+ if (state == 5) {
+ break;
+ }
}
objects.remove(0);
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.PcntfMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.notification.object.CNotification;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObjectBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.PcerrMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcntf.message.PcntfMessageBuilder;
comObj = getValidNotificationComposite(objects);
} catch (final PCEPDocumentedException e) {
final PcerrMessageBuilder b = new PcerrMessageBuilder();
- b.setErrors(Arrays.asList(new ErrorsBuilder().setType(maping.getFromErrorsEnum(e.getError()).type).setValue(
- maping.getFromErrorsEnum(e.getError()).value).build()));
+ b.setErrors(Arrays.asList(new ErrorsBuilder().setErrorObject(
+ new ErrorObjectBuilder().setType(maping.getFromErrorsEnum(e.getError()).type).setValue(
+ maping.getFromErrorsEnum(e.getError()).value).build()).build()));
return new PcerrBuilder().setPcerrMessage(b.build()).build();
}
import org.opendaylight.protocol.util.ByteArray;
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.PcepErrorObject;
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.pcep.error.object.Tlvs;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.TlvsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.Errors;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObjectBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.error.object.Tlvs;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.error.object.TlvsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.req.missing.tlv.ReqMissing;
import com.google.common.primitives.UnsignedBytes;
/**
- * Parser for {@link org.opendaylight.protocol.pcep.object.PCEPErrorObject PCEPErrorObject}
+ * Parser for {@link ErrorObject}
*/
-public class PCEPErrorObjectParser extends AbstractObjectWithTlvsParser<ErrorsBuilder> {
+public class PCEPErrorObjectParser extends AbstractObjectWithTlvsParser<ErrorObjectBuilder> {
public static final int CLASS = 13;
}
@Override
- public PcepErrorObject parseObject(final ObjectHeader header, final byte[] bytes) throws PCEPDeserializerException,
- PCEPDocumentedException {
+ public ErrorObject parseObject(final ObjectHeader header, final byte[] bytes) throws PCEPDeserializerException, PCEPDocumentedException {
if (bytes == null) {
throw new IllegalArgumentException("Array of bytes is mandatory.");
}
- final ErrorsBuilder builder = new ErrorsBuilder();
+ final ErrorObjectBuilder builder = new ErrorObjectBuilder();
builder.setIgnore(header.isIgnore());
builder.setProcessingRule(header.isProcessingRule());
builder.setType((short) UnsignedBytes.toInt(bytes[ET_F_OFFSET]));
}
@Override
- public void addTlv(final ErrorsBuilder builder, final Tlv tlv) {
+ public void addTlv(final ErrorObjectBuilder builder, final Tlv tlv) {
if (tlv instanceof ReqMissing && builder.getType() == 7) {
builder.setTlvs(new TlvsBuilder().setReqMissing((ReqMissing) tlv).build());
}
@Override
public byte[] serializeObject(final Object object) {
- if (!(object instanceof PcepErrorObject)) {
+ if (!(object instanceof ErrorObject)) {
throw new IllegalArgumentException("Wrong instance of PCEPObject. Passed " + object.getClass() + ". Needed PcepErrorObject.");
}
- final PcepErrorObject errObj = (PcepErrorObject) object;
+ final ErrorObject errObj = (ErrorObject) object;
- final byte[] tlvs = serializeTlvs(((Errors) errObj).getTlvs());
+ final byte[] tlvs = serializeTlvs(errObj.getTlvs());
final byte[] retBytes = new byte[TLVS_OFFSET + tlvs.length + getPadding(TLVS_OFFSET + tlvs.length, PADDED_TO)];
if (tlvs.length != 0) {
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.path.definition.ExplicitRouteBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.path.key.object.PathKeys;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.path.key.object.PathKeysBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.TlvsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObjectBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.error.object.TlvsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcinitiate.message.pcinitiate.message.requests.EndpointsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcinitiate.message.pcinitiate.message.requests.LspBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcinitiate.message.pcinitiate.message.requests.SrpBuilder;
final PCEPErrorObjectParser parser = new PCEPErrorObjectParser(this.tlvRegistry);
byte[] result = ByteArray.fileToBytes("src/test/resources/PCEPErrorObject1.bin");
- final ErrorsBuilder builder = new ErrorsBuilder();
+ final ErrorObjectBuilder builder = new ErrorObjectBuilder();
builder.setProcessingRule(true);
builder.setIgnore(true);
builder.setType((short) 1);
import org.opendaylight.protocol.pcep.PCEPDeserializerException;
import org.opendaylight.protocol.pcep.PCEPDocumentedException;
import org.opendaylight.protocol.pcep.impl.message.PCEPCloseMessageParser;
+import org.opendaylight.protocol.pcep.impl.message.PCEPErrorMessageParser;
import org.opendaylight.protocol.pcep.impl.message.PCEPKeepAliveMessageParser;
import org.opendaylight.protocol.pcep.impl.message.PCEPNotificationMessageParser;
import org.opendaylight.protocol.pcep.impl.message.PCEPOpenMessageParser;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.CloseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.KeepaliveBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.OpenBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.PcerrBuilder;
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.types.rev131005.ProtocolVersion;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.RequestId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.notification.object.CNotification;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.notification.object.CNotificationBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.OpenMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObjectBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.PcerrMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.Errors;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.RequestBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.SessionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcntf.message.PcntfMessageBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcntf.message.pcntf.message.Notifications;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcntf.message.pcntf.message.NotificationsBuilder;
private Rp rp;
+ private Open open;
+
@Before
public void setUp() throws Exception {
this.objectRegistry = PCEPExtensionProviderContextImpl.create().getObjectHandlerRegistry();
rpBuilder.setPriority((short) 1);
rpBuilder.setRequestId(new RequestId(10L));
this.rp = rpBuilder.build();
+
+ 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.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());
+ this.open = openBuilder.build();
}
// private static final LspaObject lspa = new PCEPLspaObject(0L, 0L, 0L, (short) 0, (short) 0, false, false, false,
parser.serializeMessage(new PcntfBuilder().setPcntfMessage(builder.build()).build(), buf);
assertArrayEquals(result, buf.array());
}
- //
- // @Test
- // public void testErrorMessageValidatoinFromBin() throws IOException, PCEPDeserializerException,
- // PCEPDocumentedException,
- // DeserializerException, DocumentedException {
- // List<PCEPErrorObject> errorsList = new ArrayList<PCEPErrorObject>();
- // errorsList.add(new PCEPErrorObject(PCEPErrors.UNRECOGNIZED_OBJ_CLASS));
- //
- // PCEPErrorMessage specMessage = new PCEPErrorMessage(errorsList);
- // assertEquals(deserMsg("src/test/resources/PCErr.1.bin").toString(), asList((Message) specMessage).toString());
- //
- // List<PCEPRequestParameterObject> requests = new ArrayList<PCEPRequestParameterObject>();
- // requests.add(new PCEPRequestParameterObject(true, false, false, false, false, false, false, false, (short) 3, 1,
- // false, false));
- //
- // List<CompositeErrorObject> errors = new ArrayList<CompositeErrorObject>();
- // errors.add(new CompositeErrorObject(requests, errorsList));
- //
- // specMessage = new PCEPErrorMessage(errors);
- // assertEquals(deserMsg("src/test/resources/PCErr.2.bin").toString(), asList((Message) specMessage).toString());
- //
- // specMessage = new PCEPErrorMessage(new PCEPOpenObject(0, 0, 0), errorsList, null);
- // assertEquals(deserMsg("src/test/resources/PCErr.3.bin").toString(), asList((Message) specMessage).toString());
- //
- // requests = new ArrayList<PCEPRequestParameterObject>();
- // requests.add(new PCEPRequestParameterObject(true, false, false, false, false, false, false, false, (short) 1, 53,
- // false, false));
- //
- // errors = new ArrayList<CompositeErrorObject>();
- // errors.add(new CompositeErrorObject(requests, errorsList));
- //
- // specMessage = new PCEPErrorMessage(errors);
- // assertEquals(deserMsg("src/test/resources/PCErr.3b.bin").toString(), asList((Message) specMessage).toString());
- //
- // errorsList = new ArrayList<PCEPErrorObject>();
- // errorsList.add(new PCEPErrorObject(PCEPErrors.UNRECOGNIZED_OBJ_CLASS));
- // errorsList.add(new PCEPErrorObject(PCEPErrors.UNRECOGNIZED_OBJ_CLASS));
- // errorsList.add(new PCEPErrorObject(PCEPErrors.UNRECOGNIZED_OBJ_CLASS));
- //
- // specMessage = new PCEPErrorMessage(null, errorsList, null);
- // assertEquals(deserMsg("src/test/resources/PCErr.4.bin").toString(), asList((Message) specMessage).toString());
- //
- // requests = new ArrayList<PCEPRequestParameterObject>();
- // requests.add(new PCEPRequestParameterObject(true, false, false, false, false, false, false, false, (short) 1, 53,
- // false, false));
- //
- // errorsList = new ArrayList<PCEPErrorObject>();
- // errorsList.add(new PCEPErrorObject(PCEPErrors.UNRECOGNIZED_OBJ_CLASS));
- //
- // errors = new ArrayList<CompositeErrorObject>();
- // errors.add(new CompositeErrorObject(requests, errorsList));
- // errors.add(new CompositeErrorObject(requests, errorsList));
- //
- // specMessage = new PCEPErrorMessage(errors);
- // assertEquals(deserMsg("src/test/resources/PCErr.5.bin").toString(), asList((Message) specMessage).toString());
- // }
+
+ @Test
+ public void testErrorMsg() throws IOException, PCEPDeserializerException, PCEPDocumentedException {
+ final ErrorObject error1 = new ErrorObjectBuilder().setIgnore(false).setProcessingRule(false).setType((short) 3).setValue((short) 1).build();
+
+ final PCEPErrorMessageParser parser = new PCEPErrorMessageParser(this.objectRegistry);
+
+ List<Errors> innerErr = Lists.newArrayList();
+ innerErr.add(new ErrorsBuilder().setErrorObject(error1).build());
+
+ final PcerrMessageBuilder builder = new PcerrMessageBuilder();
+ 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");
+
+ final List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.request.Rps> 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(
+ this.rp).build());
+
+ innerErr = Lists.newArrayList();
+ innerErr.add(new ErrorsBuilder().setErrorObject(error1).build());
+
+ 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);
+ parser.serializeMessage(new PcerrBuilder().setPcerrMessage(builder.build()).build(), buf);
+ assertArrayEquals(result1, buf.array());
+ }
}