Decouple sero/srro subojects models from sero/srro objects models 13/77813/2
authorClaudio D. Gasparini <claudio.gasparini@pantheon.tech>
Thu, 8 Nov 2018 09:15:01 +0000 (10:15 +0100)
committerRobert Varga <nite@hq.sk>
Mon, 19 Nov 2018 18:55:37 +0000 (18:55 +0000)
JIRA: BGPCEP-406

Change-Id: I197735ed18278dec010f5e595c7619efb8c5d232
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
rsvp/api/src/main/yang/rsvp.yang
rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/RSVPActivator.java
rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/subobject/ero/SEROBasicProtectionSubobjectParser.java
rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/subobject/ero/SERODynamicProtectionSubobjectParser.java
rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/subobject/rro/SRROBasicProtectionSubobjectParser.java
rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/subobject/rro/SRRODynamicProtectionSubobjectParser.java
rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/te/SecondaryRecordRouteObjectParser.java
rsvp/impl/src/test/java/org/opendaylight/protocol/rsvp/parser/impl/te/TEObjectTest.java
rsvp/spi/src/main/java/org/opendaylight/protocol/rsvp/parser/spi/SRROSubobjectParser.java
rsvp/spi/src/main/java/org/opendaylight/protocol/rsvp/parser/spi/SRROSubobjectSerializer.java

index e703c29988755af48f4c3d8413e10d6a2e07beee..117e31bbbb0fc17082ebc9d4544d65067079ae54 100644 (file)
@@ -565,18 +565,30 @@ module rsvp {
             reference "http://tools.ietf.org/html/rfc4873#section-4.1";
 
             uses rsvp-te-object;
-            uses explicit-route-subobjects-list {
-                augment "subobject-container/subobject-type" {
-                    case basic-protection-case {
-                        container basic-protection {
-                            uses protection-subobject;
-                        }
+            list subobject-container {
+                leaf loose {
+                    type boolean;
+                    mandatory true;
+                }
+
+                uses secondary-explicit-route-subobjects;
+                ordered-by user;
+            }
+        }
+    }
+
+    grouping secondary-explicit-route-subobjects {
+        uses explicit-route-subobjects {
+            augment "subobject-type" {
+                case basic-protection-case {
+                    container basic-protection {
+                        uses protection-subobject;
                     }
+                }
 
-                    case dynamic-control-protection-case {
-                        container dynamic-control-protection {
-                            uses protection-subobject;
-                        }
+                case dynamic-control-protection-case {
+                    container dynamic-control-protection {
+                        uses protection-subobject;
                     }
                 }
             }
@@ -586,18 +598,25 @@ module rsvp {
     grouping secondary-record-route-object {
         container secondary-record-route-object {
             uses rsvp-te-object;
-            uses record-route-subobjects-list {
-                augment "subobject-container/subobject-type" {
-                    case basic-protection-case {
-                        container basic-protection {
-                            uses protection-subobject;
-                        }
+            list subobject-container {
+                uses secondary-record-route-subobjects;
+                ordered-by user;
+            }
+        }
+    }
+
+    grouping secondary-record-route-subobjects {
+        uses record-route-subobjects {
+            augment "subobject-type" {
+                case basic-protection-case {
+                    container basic-protection {
+                        uses protection-subobject;
                     }
+                }
 
-                    case dynamic-control-protection-case {
-                        container dynamic-control-protection {
-                            uses protection-subobject;
-                        }
+                case dynamic-control-protection-case {
+                    container dynamic-control-protection {
+                        uses protection-subobject;
                     }
                 }
             }
index 4744be476a6ebc4446f452d74e32b06924ca2bd8..834a000ad5cfe8d8df3c09b07baa0c7d08ab0ed9 100644 (file)
@@ -92,8 +92,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.protection.object.protection.object.dynamic.control.protection.object._case.DynamicControlProtectionObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.object.RecordRouteObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.object.SecondaryExplicitRouteObject;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.object.secondary.explicit.route.object.subobject.container.subobject.type.BasicProtectionCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.object.secondary.explicit.route.object.subobject.container.subobject.type.DynamicControlProtectionCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.subobjects.subobject.type.BasicProtectionCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.subobjects.subobject.type.DynamicControlProtectionCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.SecondaryRecordRouteObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.session.attribute.object.session.attribute.object.BasicSessionAttributeObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.session.attribute.object.session.attribute.object.SessionAttributeObjectWithResourcesAffinities;
@@ -279,12 +279,12 @@ public class RSVPActivator extends AbstractRSVPExtensionProviderActivator {
         final SRROBasicProtectionSubobjectParser srroBasicParser = new SRROBasicProtectionSubobjectParser();
         final SRRODynamicProtectionSubobjectParser srroDynamicParser = new SRRODynamicProtectionSubobjectParser();
         regs.add(context.registerRROSubobjectParser(SRROBasicProtectionSubobjectParser.TYPE, srroBasicParser));
-        regs.add(context.registerRROSubobjectSerializer(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns
-            .yang.rsvp.rev150820.secondary.record.route.object.secondary.record.route.object.subobject.container
-            .subobject.type.BasicProtectionCase.class, srroBasicParser));
-        regs.add(context.registerRROSubobjectSerializer(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns
-            .yang.rsvp.rev150820.secondary.record.route.object.secondary.record.route.object.subobject.container
-            .subobject.type.DynamicControlProtectionCase.class, srroDynamicParser));
+        regs.add(context.registerRROSubobjectSerializer(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang
+            .rsvp.rev150820.secondary.record.route.subobjects.subobject.type
+            .BasicProtectionCase.class, srroBasicParser));
+        regs.add(context.registerRROSubobjectSerializer(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang
+            .rsvp.rev150820.secondary.record.route.subobjects.subobject.type
+            .DynamicControlProtectionCase.class, srroDynamicParser));
     }
 
     private static void registerXROParsers(final List<AutoCloseable> regs, final RSVPExtensionProviderContext context) {
index 889e2922e109922dce2d26d54b7de75ff91b4aac..d7c7a13232da112cc103074109c88ed89cc13786 100644 (file)
@@ -19,11 +19,11 @@ import org.opendaylight.protocol.rsvp.parser.spi.RSVPParsingException;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.explicit.route.subobjects.list.SubobjectContainer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.explicit.route.subobjects.list.SubobjectContainerBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.protection.subobject.ProtectionSubobject;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.object.secondary.explicit.route.object.subobject.container.subobject.type.BasicProtectionCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.object.secondary.explicit.route.object.subobject.container.subobject.type.BasicProtectionCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.object.secondary.explicit.route.object.subobject.container.subobject.type.DynamicControlProtectionCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.object.secondary.explicit.route.object.subobject.container.subobject.type.basic.protection._case.BasicProtectionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.object.secondary.explicit.route.object.subobject.container.subobject.type.dynamic.control.protection._case.DynamicControlProtectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.subobjects.subobject.type.BasicProtectionCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.subobjects.subobject.type.BasicProtectionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.subobjects.subobject.type.DynamicControlProtectionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.subobjects.subobject.type.basic.protection._case.BasicProtectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.subobjects.subobject.type.dynamic.control.protection._case.DynamicControlProtectionBuilder;
 
 public class SEROBasicProtectionSubobjectParser extends ProtectionCommonParser implements EROSubobjectParser,
     EROSubobjectSerializer {
index 13eebb2db2263bfe33bc70e9fe9b2aca5b055cef..4bbbcdbe302d7939f0382281774daf8115e3567b 100644 (file)
@@ -16,7 +16,7 @@ import org.opendaylight.protocol.rsvp.parser.spi.EROSubobjectSerializer;
 import org.opendaylight.protocol.rsvp.parser.spi.EROSubobjectUtil;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.explicit.route.subobjects.list.SubobjectContainer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.protection.subobject.ProtectionSubobject;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.object.secondary.explicit.route.object.subobject.container.subobject.type.DynamicControlProtectionCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.subobjects.subobject.type.DynamicControlProtectionCase;
 
 /**
  * Parser for {@link DynamicControlProtectionCase}.
index 3bdbe558b6e1b61f8bd72ec85e450d1bb052d38f..cfce282be21df3594566f949c505117907126fb0 100644 (file)
@@ -18,11 +18,11 @@ import org.opendaylight.protocol.rsvp.parser.spi.RSVPParsingException;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.protection.subobject.ProtectionSubobject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.list.SubobjectContainer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.list.SubobjectContainerBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.secondary.record.route.object.subobject.container.subobject.type.BasicProtectionCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.secondary.record.route.object.subobject.container.subobject.type.BasicProtectionCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.secondary.record.route.object.subobject.container.subobject.type.DynamicControlProtectionCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.secondary.record.route.object.subobject.container.subobject.type.basic.protection._case.BasicProtectionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.secondary.record.route.object.subobject.container.subobject.type.dynamic.control.protection._case.DynamicControlProtectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.subobjects.subobject.type.BasicProtectionCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.subobjects.subobject.type.BasicProtectionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.subobjects.subobject.type.DynamicControlProtectionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.subobjects.subobject.type.basic.protection._case.BasicProtectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.subobjects.subobject.type.dynamic.control.protection._case.DynamicControlProtectionBuilder;
 
 /**
  * Parser for {@link BasicProtectionCase}.
index 2f66a0c91379f3e43b6f92e2d89557f3136b83ab..9e538c44d6212d366417db3f2ab6ee37ce5b0f83 100644 (file)
@@ -15,7 +15,7 @@ import org.opendaylight.protocol.rsvp.parser.impl.te.ProtectionCommonParser;
 import org.opendaylight.protocol.rsvp.parser.spi.RROSubobjectSerializer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.protection.subobject.ProtectionSubobject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.list.SubobjectContainer;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.secondary.record.route.object.subobject.container.subobject.type.DynamicControlProtectionCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.subobjects.subobject.type.DynamicControlProtectionCase;
 
 public class SRRODynamicProtectionSubobjectParser extends ProtectionCommonParser implements RROSubobjectSerializer {
     public static final int TYPE = 37;
index 5d8734aa51e41a4165c1471338ffc546a4fdfad5..889e8e9b839e07466ab3706c4ede86f4851560f7 100644 (file)
@@ -11,10 +11,14 @@ package org.opendaylight.protocol.rsvp.parser.impl.te;
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
+import java.util.List;
+import java.util.stream.Collectors;
 import org.opendaylight.protocol.rsvp.parser.spi.RROSubobjectRegistry;
 import org.opendaylight.protocol.rsvp.parser.spi.RSVPParsingException;
 import org.opendaylight.protocol.rsvp.parser.spi.subobjects.RROSubobjectListParser;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.RsvpTeObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.list.SubobjectContainer;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.list.SubobjectContainerBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.SecondaryRecordRouteObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.SecondaryRecordRouteObjectBuilder;
 
@@ -29,7 +33,18 @@ public final class SecondaryRecordRouteObjectParser extends RROSubobjectListPars
     @Override
     protected RsvpTeObject localParseObject(final ByteBuf byteBuf) throws RSVPParsingException {
         final SecondaryRecordRouteObjectBuilder srro = new SecondaryRecordRouteObjectBuilder();
-        return srro.setSubobjectContainer(parseList(byteBuf)).build();
+
+        final List<SubobjectContainer> sbo = parseList(byteBuf);
+        final List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record
+            .route.object.secondary.record.route.object.SubobjectContainer> srroSbo = sbo.stream()
+            .map(so -> new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary
+                .record.route.object.secondary.record.route.object.SubobjectContainerBuilder()
+                .setProtectionAvailable(so.isProtectionAvailable())
+                .setProtectionInUse(so.isProtectionInUse())
+                .setSubobjectType(so.getSubobjectType())
+                .build()
+            ).collect(Collectors.toList());
+        return srro.setSubobjectContainer(srroSbo).build();
     }
 
     @Override
@@ -38,7 +53,13 @@ public final class SecondaryRecordRouteObjectParser extends RROSubobjectListPars
             "RecordRouteObject is mandatory.");
         final SecondaryRecordRouteObject srro = (SecondaryRecordRouteObject) teLspObject;
         final ByteBuf bufferAux = Unpooled.buffer();
-        serializeList(srro.getSubobjectContainer(), bufferAux);
+        final List<SubobjectContainer> srroSbo = srro.getSubobjectContainer()
+            .stream().map(so -> new SubobjectContainerBuilder()
+                .setProtectionAvailable(so.isProtectionAvailable())
+                .setProtectionInUse(so.isProtectionInUse())
+                .setSubobjectType(so.getSubobjectType())
+                .build()).collect(Collectors.toList());
+        serializeList(srroSbo, bufferAux);
         serializeAttributeHeader(bufferAux.readableBytes(), CLASS_NUM, CTYPE, output);
         output.writeBytes(bufferAux);
     }
index ea9e01690be29fda2fd92cf5a8fea23cfee90a2c..27263655ad42b9d49b0a1cd897b804462ba8f5b5 100644 (file)
@@ -26,7 +26,8 @@ import org.opendaylight.protocol.util.ByteArray;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.RsvpTeObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.explicit.route.subobjects.list.SubobjectContainerBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.list.SubobjectContainer;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.object.secondary.explicit.route.object.subobject.container.subobject.type.DynamicControlProtectionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.explicit.route.subobjects.subobject.type.DynamicControlProtectionCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.subobjects.subobject.type.DynamicControlProtectionCase;
 
 public class TEObjectTest {
     private RSVPActivator act;
@@ -266,11 +267,9 @@ public class TEObjectTest {
 
     @Test(expected = IllegalArgumentException.class)
     public void testWrongSerializeSRRO() throws RSVPParsingException {
-        final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route
-            .object.secondary.record.route.object.subobject.container.subobject.type
-            .DynamicControlProtectionCase dynamicProtection = new org.opendaylight.yang.gen.v1.urn
-            .opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.secondary.record.route
-            .object.subobject.container.subobject.type.DynamicControlProtectionCaseBuilder().build();
+        final DynamicControlProtectionCase dynamicProtection = new org.opendaylight.yang.gen.v1.urn.opendaylight.params
+            .xml.ns.yang.rsvp.rev150820.secondary.record.route.subobjects.subobject.type
+            .DynamicControlProtectionCaseBuilder().build();
         final SRROBasicProtectionSubobjectParser parser = new SRROBasicProtectionSubobjectParser();
         final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects
             .list.SubobjectContainer subContainer = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang
index 504e2df3c8b56919e83d2536bacd3477b4958129..b5beb4d1ae889f06b8bfaaab3f8d69e04cf95b45 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.protocol.rsvp.parser.spi;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.list.SubobjectContainer;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.secondary.record.route.object.SubobjectContainer;
 
 public interface SRROSubobjectParser {
     SubobjectContainer parseSubobject(ByteBuf buffer) throws RSVPParsingException;
index f7042d71963bebd7f91b0f87e0066b95c397f169..19a18794a638007b3bba4657c3b25fa2e9c779a2 100644 (file)
@@ -9,7 +9,7 @@
 package org.opendaylight.protocol.rsvp.parser.spi;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects.list.SubobjectContainer;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.secondary.record.route.object.secondary.record.route.object.SubobjectContainer;
 
 public interface SRROSubobjectSerializer {
     void serializeSubobject(SubobjectContainer subobject, ByteBuf buffer);