BUG-50 : adjusted LSP object. 89/2389/1
authorDana Kutenicsova <dkutenic@cisco.com>
Tue, 5 Nov 2013 13:37:54 +0000 (14:37 +0100)
committerDana Kutenicsova <dkutenic@cisco.com>
Tue, 5 Nov 2013 13:38:51 +0000 (14:38 +0100)
Change-Id: I614a818178007b686fecfaa44764237e8f943f5c
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
pcep/api/src/main/yang/pcep-types.yang
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/Activator.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPLspObjectParser.java
pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPObjectParserTest.java
pcep/topology-api/src/main/yang/network-topology-pcep.yang
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/ServerSessionManager.java

index 991fcadebc608cb9d61db1a8f6ec42e779b2b30a..118943e5e45678a678bc4be39419a6fe84979f1d 100644 (file)
@@ -834,45 +834,47 @@ module pcep-types {
                description "LSP Object";
                reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-05#section-7.3";
 
-               uses object;
-               container "tlvs" {
-                       uses lsp-error-code-tlv;
-
-                       uses lsp-identifiers-tlv;
-
-                       uses rsvp-error-spec-tlv;
-
-                       uses symbolic-path-name-tlv;
-               }
-
-               leaf plsp-id {
-                       type plsp-id;
-                       mandatory true;
-               }
-
-               leaf delegate {
-                       type boolean;
-                       default false;
-               }
-
-               leaf sync {
-                       type boolean;
-                       default false;
-               }
-
-               leaf remove {
-                       type boolean;
-                       default false;
-               }
-
-               leaf administrative {
-                       type boolean;
-                       default false;
-               }
-
-               leaf operational {
-                       type operational-status;
-                       mandatory true;
+               container lsp {
+                       uses object;
+                       container "tlvs" {
+                               uses lsp-error-code-tlv;
+       
+                               uses lsp-identifiers-tlv;
+       
+                               uses rsvp-error-spec-tlv;
+       
+                               uses symbolic-path-name-tlv;
+                       }
+       
+                       leaf plsp-id {
+                               type plsp-id;
+                               mandatory true;
+                       }
+       
+                       leaf delegate {
+                               type boolean;
+                               default false;
+                       }
+       
+                       leaf sync {
+                               type boolean;
+                               default false;
+                       }
+       
+                       leaf remove {
+                               type boolean;
+                               default false;
+                       }
+       
+                       leaf administrative {
+                               type boolean;
+                               default false;
+                       }
+       
+                       leaf operational {
+                               type operational-status;
+                               mandatory true;
+                       }
                }
        }
 
@@ -1054,10 +1056,7 @@ module pcep-types {
 
                                                uses lsp-attributes;
 
-                                               container lsp {
-                                                       reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-05#section-6.4";
-                                                       uses lsp-object;
-                                               }
+                                               uses lsp-object;
                                        }
                                }
                        }
@@ -1101,10 +1100,7 @@ module pcep-types {
                        list replies {
                                uses rp-object;
 
-                               container lsp {
-                                       reference "https://tools.ietf.org/html/draft-ietf-pce-stateful-pce-05#section-6.5";
-                                       uses lsp-object;
-                               }
+                               uses lsp-object;
 
                                choice result {
                                        case success {
@@ -1207,9 +1203,7 @@ module pcep-types {
                        list updates {
                                uses srp-object;
 
-                               container lsp {
-                                       uses lsp-object;
-                               }
+                               uses lsp-object;
 
                                container path {
                                        uses path-definition;
@@ -1230,9 +1224,7 @@ module pcep-types {
                        list reports {
                                uses srp-object;
 
-                               container lsp {
-                                       uses lsp-object;
-                               }
+                               uses lsp-object;
 
                                container path {
                                        uses path-definition;
@@ -1253,9 +1245,7 @@ module pcep-types {
                        list requests {
                                uses srp-object;
 
-                               container lsp {
-                                       uses lsp-object;
-                               }
+                               uses lsp-object;
 
                                container endpoints {
                                        uses endpoints-object;
index e4b38e2becf4eee3dac987635e13f0da0ad5b649..b9fddfb122848d8151f998c8f363cd0582fdcb9c 100644 (file)
@@ -89,7 +89,6 @@ 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.IncludeRouteObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.KeepaliveMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.LoadBalancingObject;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.LspObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.LspaObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.MetricObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.NoPathObject;
@@ -110,6 +109,7 @@ 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.lsp.db.version.tlv.LspDbVersion;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.error.code.tlv.LspErrorCode;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.identifiers.tlv.LspIdentifiers;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.Lsp;
 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.of.list.tlv.OfList;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
@@ -294,7 +294,7 @@ public final class Activator implements PCEPExtensionProviderActivator {
                context.registerObjectSerializer(OfObject.class, new PCEPObjectiveFunctionObjectParser(tlvReg));
                context.registerObjectSerializer(ClasstypeObject.class, new PCEPClassTypeObjectParser(tlvReg));
                context.registerObjectSerializer(GcObject.class, new PCEPGlobalConstraintsObjectParser(tlvReg));
-               context.registerObjectSerializer(LspObject.class, new PCEPLspObjectParser(tlvReg));
+               context.registerObjectSerializer(Lsp.class, new PCEPLspObjectParser(tlvReg));
                context.registerObjectSerializer(Srp.class, new PCEPSrpObjectParser(tlvReg));
                context.registerObjectSerializer(ExcludeRouteObject.class, new PCEPExcludeRouteObjectParser(xroSubReg));
 
index b562d2c3cfbac329b6ca7fa9a9d30d0c20aac48c..695591c6ffeca5c3e80c5b7926ff50112cd2f643 100644 (file)
@@ -21,9 +21,10 @@ 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.Tlv;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.error.code.tlv.LspErrorCode;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.identifiers.tlv.LspIdentifiers;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.Tlvs;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.TlvsBuilder;
-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.lsp.object.Lsp;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.LspBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.lsp.Tlvs;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.lsp.TlvsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.rsvp.error.spec.tlv.RsvpErrorSpec;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.symbolic.path.name.tlv.SymbolicPathName;
 
@@ -56,7 +57,7 @@ public class PCEPLspObjectParser extends AbstractObjectWithTlvsParser<TlvsBuilde
        }
 
        @Override
-       public LspObject parseObject(final ObjectHeader header, final byte[] bytes) throws PCEPDeserializerException, PCEPDocumentedException {
+       public Lsp parseObject(final ObjectHeader header, final byte[] bytes) throws PCEPDeserializerException, PCEPDocumentedException {
                if (bytes == null || bytes.length == 0) {
                        throw new IllegalArgumentException("Array of bytes is mandatory. Can't be null or empty.");
                }
@@ -97,10 +98,10 @@ public class PCEPLspObjectParser extends AbstractObjectWithTlvsParser<TlvsBuilde
 
        @Override
        public byte[] serializeObject(final Object object) {
-               if (!(object instanceof LspObject)) {
+               if (!(object instanceof Lsp)) {
                        throw new IllegalArgumentException("Wrong instance of PCEPObject. Passed " + object.getClass() + ". Needed LspObject.");
                }
-               final LspObject specObj = (LspObject) object;
+               final Lsp specObj = (Lsp) object;
 
                final byte[] tlvs = serializeTlvs(specObj.getTlvs());
                final byte[] retBytes = new byte[TLVS_OFFSET + tlvs.length + getPadding(TLVS_OFFSET + tlvs.length, PADDED_TO)];
index d56b55627c38f58a41fcae94197ca20c11a6b190..d6e3564f74d2ceb85af21a69807633b9e813c03e 100644 (file)
@@ -72,6 +72,7 @@ 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.lsp.db.version.tlv.LspDbVersionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.error.code.tlv.LspErrorCode;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.error.code.tlv.LspErrorCodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.LspBuilder;
 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.object.OpenBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.order.tlv.OrderBuilder;
@@ -82,7 +83,6 @@ 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.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.pcrep.message.pcrep.message.replies.result.failure.NoPathBuilder;
 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.NoPathVectorBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcreq.message.pcreq.message.SvecBuilder;
@@ -194,7 +194,7 @@ public class PCEPObjectParserTest {
                final LspErrorCode tlv1 = new LspErrorCodeBuilder().setErrorCode(627610883L).build();
                final SymbolicPathName tlv2 = new SymbolicPathNameBuilder().setPathName(
                                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.TlvsBuilder().setLspErrorCode(
+               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));
                assertArrayEquals(result, parser.serializeObject(builder.build()));
index 0a2adc92693ab49628079d81b67efd182ac5dbc9..a4e3ac5de98481416f741054eb26d94c41b4f16a 100644 (file)
@@ -71,9 +71,7 @@ module network-topology-pcep {
                 }
                 key name;
 
-                container lsp {
-                    uses pcep:lsp-object;
-                }
+                uses pcep:lsp-object;
 
                 container path {
                     uses pcep:path-definition;
index 899ba641ce0713ca0d9f3402fd7e23d6362003f9..a88621c4edb89fe6cfe766e5eb767580dffec25b 100644 (file)
@@ -43,14 +43,14 @@ 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.PlspId;
 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.SrpIdNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.TlvsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.Lsp;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.LspBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.lsp.TlvsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.Tlvs;
 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.pcinitiate.message.PcinitiateMessageBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcinitiate.message.pcinitiate.message.RequestsBuilder;
-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.pcrpt.message.pcrpt.message.Reports;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcrpt.message.pcrpt.message.reports.Lsp;
 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.UpdatesBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcupd.message.pcupd.message.updates.PathBuilder;
@@ -306,7 +306,7 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
                                        if (!this.lsps.containsKey(id)) {
                                                LOG.debug("PLSPID {} not known yet, looking for a symbolic name", id);
 
-                                               final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.Tlvs tlvs = r.getLsp().getTlvs();
+                                               final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.object.lsp.Tlvs tlvs = r.getLsp().getTlvs();
                                                final SymbolicPathName name = tlvs.getSymbolicPathName();
                                                if (name == null) {
                                                        LOG.error("PLSPID {} seen for the first time, not reporting the LSP");
@@ -471,8 +471,7 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
 
                final UpdatesBuilder rb = new UpdatesBuilder();
                rb.setSrp(new SrpBuilder().setOperationId(l.nextRequest()).setProcessingRule(Boolean.TRUE).build());
-               rb.setLsp(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcupd.message.pcupd.message.updates.LspBuilder().setPlspId(
-                               rep.getLsp().getPlspId()).setDelegate(Boolean.TRUE).build());
+               rb.setLsp(new LspBuilder().setPlspId(rep.getLsp().getPlspId()).setDelegate(Boolean.TRUE).build());
                rb.setPath(new PathBuilder(input.getArguments()).build());
 
                final PcupdMessageBuilder ub = new PcupdMessageBuilder(messageHeader);