Bug-5571: The IRO sub-objects should support loose bit 92/37992/2
authorAjay L <ajayl.bro@gmail.com>
Thu, 21 Apr 2016 20:58:03 +0000 (13:58 -0700)
committerMilos Fabian <milfabia@cisco.com>
Tue, 26 Apr 2016 06:43:11 +0000 (06:43 +0000)
Change-Id: I4e87553eb019de6c3f2fbcf48b394537d897cce8
Signed-off-by: Ajay L <ajayl.bro@gmail.com>
pcep/api/src/main/yang/pcep-types.yang
pcep/ietf-stateful07/src/test/java/org/opendaylight/protocol/pcep/ietf/PCEPValidatorTest.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPIncludeRouteObjectParser.java
pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPObjectParserTest.java
pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPValidatorTest.java
pcep/impl/src/test/resources/PCEPIncludeRouteObject1PackOfSubobjects.bin

index 714cc7fb0c885d56d42865937e510bb60db8bc44..6f06e5c995767e4122655627a5e463fd740b1670 100644 (file)
@@ -512,6 +512,11 @@ module pcep-types {
             uses object;
 
             list subobject {
+                leaf loose {
+                    type boolean;
+                    mandatory true;
+                }
+
                 uses rsvp:explicit-route-subobjects;
                 ordered-by user;
             }
index 61b5f592790076cc8c846d50e0dcf28d9bf1af24..abc49d6877390606676ab6e18e5abe85b3405746 100644 (file)
@@ -157,7 +157,7 @@ public class PCEPValidatorTest {
         iroBuilder.setIgnore(false);
         iroBuilder.setProcessingRule(false);
         final List<Subobject> iroSubs = Lists.newArrayList();
-        iroSubs.add(new SubobjectBuilder().setSubobjectType(this.eroASSubobject).build());
+        iroSubs.add(new SubobjectBuilder().setSubobjectType(this.eroASSubobject).setLoose(false).build());
         iroBuilder.setSubobject(iroSubs);
         this.iro = iroBuilder.build();
 
index a2d01536947310b73affa84289825caf7b5a2593..5d141a175076d452b3a717bb4fe15fc0b9c30248 100644 (file)
@@ -46,7 +46,7 @@ public class PCEPIncludeRouteObjectParser extends AbstractEROWithSubobjectsParse
         builder.setProcessingRule(header.isProcessingRule());
         final List<Subobject> subs = new ArrayList<>();
         for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.explicit.route.object.ero.Subobject s : parseSubobjects(bytes)) {
-            subs.add(new SubobjectBuilder().setSubobjectType(s.getSubobjectType()).build());
+            subs.add(new SubobjectBuilder().setLoose(s.isLoose()).setSubobjectType(s.getSubobjectType()).build());
         }
         builder.setSubobject(subs);
         return builder.build();
@@ -60,7 +60,7 @@ public class PCEPIncludeRouteObjectParser extends AbstractEROWithSubobjectsParse
         final List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.explicit.route.object.ero.Subobject> subs = new ArrayList<>();
         for (final Subobject s : iro.getSubobject()) {
             subs.add(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.explicit.route.object.ero.SubobjectBuilder().setLoose(
-                    false).setSubobjectType(s.getSubobjectType()).build());
+                    s.isLoose()).setSubobjectType(s.getSubobjectType()).build());
         }
         serializeSubobject(subs, body);
         ObjectUtil.formatSubobject(TYPE, CLASS, object.isProcessingRule(), object.isIgnore(), body, buffer);
index 89803d825fa3e533a5d22dbafd7f8fa5e38ca4fb..b580f5ea1a9689438cbcce5dc9a75f89b1a4530e 100644 (file)
@@ -297,16 +297,16 @@ public class PCEPObjectParserTest {
         builder.setIgnore(false);
         final List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.include.route.object.iro.Subobject> subs = Lists.newArrayList();
         subs.add(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.include.route.object.iro.SubobjectBuilder().setSubobjectType(
-                new AsNumberCaseBuilder().setAsNumber(new AsNumberBuilder().setAsNumber(new AsNumber(0x10L)).build()).build()).build());
+                new AsNumberCaseBuilder().setAsNumber(new AsNumberBuilder().setAsNumber(new AsNumber(0x10L)).build()).build()).setLoose(true).build());
         subs.add(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.include.route.object.iro.SubobjectBuilder().setSubobjectType(
                 new IpPrefixCaseBuilder().setIpPrefix(
-                        new IpPrefixBuilder().setIpPrefix(new IpPrefix(new Ipv4Prefix("18.52.80.0/21"))).build()).build()).build());
+                        new IpPrefixBuilder().setIpPrefix(new IpPrefix(new Ipv4Prefix("18.52.80.0/21"))).build()).build()).setLoose(true).build());
         subs.add(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.include.route.object.iro.SubobjectBuilder().setSubobjectType(
                 new IpPrefixCaseBuilder().setIpPrefix(
-                        new IpPrefixBuilder().setIpPrefix(new IpPrefix(Ipv6Util.prefixForBytes(ip6PrefixBytes, 22))).build()).build()).build());
+                        new IpPrefixBuilder().setIpPrefix(new IpPrefix(Ipv6Util.prefixForBytes(ip6PrefixBytes, 22))).build()).build()).setLoose(true).build());
         subs.add(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.include.route.object.iro.SubobjectBuilder().setSubobjectType(
                 new UnnumberedCaseBuilder().setUnnumbered(
-                        new UnnumberedBuilder().setRouterId(0x1245678L).setInterfaceId(0x9abcdef0L).build()).build()).build());
+                        new UnnumberedBuilder().setRouterId(0x1245678L).setInterfaceId(0x9abcdef0L).build()).build()).setLoose(true).build());
         builder.setSubobject(subs);
 
         assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), result.slice(4, result.readableBytes() - 4)));
index 82617df700c2bfefe8e327f035c052ba9e1f17b0..e3cd82343bd612b65d925aaa487366721b176406 100644 (file)
@@ -244,7 +244,7 @@ public class PCEPValidatorTest {
         iroBuilder.setIgnore(false);
         iroBuilder.setProcessingRule(false);
         final List<Subobject> iroSubs = Lists.newArrayList();
-        iroSubs.add(new SubobjectBuilder().setSubobjectType(this.eroASSubobject).build());
+        iroSubs.add(new SubobjectBuilder().setSubobjectType(this.eroASSubobject).setLoose(false).build());
         iroBuilder.setSubobject(iroSubs);
         this.iro = iroBuilder.build();
 
index b2282cd189e9c2505b40cf393b170e9997fcdd4e..43ff6669e446e4c916a3e5baeead608a0e1bf6c9 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPIncludeRouteObject1PackOfSubobjects.bin and b/pcep/impl/src/test/resources/PCEPIncludeRouteObject1PackOfSubobjects.bin differ