Bug 5453 - PCEP-SR capability is not send in Open Message 08/35708/1
authorMilos Fabian <milfabia@cisco.com>
Thu, 3 Mar 2016 11:32:33 +0000 (12:32 +0100)
committerRobert Varga <nite@hq.sk>
Fri, 4 Mar 2016 01:10:34 +0000 (01:10 +0000)
The PCEP-SR has to extend latest stateful Open Message handler,
which has changed since Lithium.

An appraoch of overriding parsers seems to be fragile, think about
something more flexible for Boron release (at leat for
capabilities - Open Message TLVs).

Change-Id: I42795a796e163722cf00066b64b83551051ab28b
Signed-off-by: Milos Fabian <milfabia@cisco.com>
(cherry picked from commit d3f723e81e2878b81d11b5c1d5e1e4aa3c462564)

pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/PcepOpenObjectWithSpcTlvParser.java
pcep/segment-routing/src/test/java/org/opendaylight/protocol/pcep/segment/routing/SrObjectParserTest.java

index 15d86038774b835f652c39a564517178035cb392..467b7624a573265405323afede3f8f5645037982 100644 (file)
@@ -8,9 +8,9 @@
 package org.opendaylight.protocol.pcep.segment.routing;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.protocol.pcep.ietf.stateful07.Stateful07OpenObjectParser;
 import org.opendaylight.protocol.pcep.spi.TlvRegistry;
 import org.opendaylight.protocol.pcep.spi.VendorInformationTlvRegistry;
+import org.opendaylight.protocol.pcep.sync.optimizations.SyncOptimizationsOpenObjectParser;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.segment.routing.rev150112.Tlvs1;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.segment.routing.rev150112.Tlvs1Builder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.segment.routing.rev150112.sr.pce.capability.tlv.SrPceCapability;
@@ -18,7 +18,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.open.object.open.Tlvs;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder;
 
-public class PcepOpenObjectWithSpcTlvParser extends Stateful07OpenObjectParser {
+public class PcepOpenObjectWithSpcTlvParser extends SyncOptimizationsOpenObjectParser {
 
     public PcepOpenObjectWithSpcTlvParser(final TlvRegistry tlvReg, final VendorInformationTlvRegistry viTlvReg) {
         super(tlvReg, viTlvReg);
index 9e12ba771d9fc9bb87fdf19461a9c400f06efc00..cdeccd445b7718e086eafb54f3d339cad8edd167 100644 (file)
@@ -26,6 +26,8 @@ import org.opendaylight.protocol.pcep.spi.pojo.SimplePCEPExtensionProviderContex
 import org.opendaylight.protocol.util.ByteArray;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev150714.Tlvs3;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev150714.Tlvs3Builder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.segment.routing.rev150112.SidType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.segment.routing.rev150112.Tlvs1;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.segment.routing.rev150112.Tlvs1Builder;
@@ -85,7 +87,12 @@ public class SrObjectParserTest {
 
         final Tlvs1 tlv = new Tlvs1Builder().setSrPceCapability(new SrPceCapabilityBuilder().setMsd((short) 1).build())
                 .build();
-        builder.setTlvs(new TlvsBuilder().addAugmentation(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Tlvs1.class, new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Tlvs1Builder().build()).addAugmentation(Tlvs1.class, tlv).build());
+        builder.setTlvs(new TlvsBuilder()
+                .addAugmentation(
+                        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Tlvs1.class,
+                        new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Tlvs1Builder()
+                                .build()).addAugmentation(Tlvs1.class, tlv)
+                .addAugmentation(Tlvs3.class, new Tlvs3Builder().build()).build());
 
         final ByteBuf result = Unpooled.wrappedBuffer(openObjectBytes);
         assertEquals(builder.build(),