Forbid user to sent add-lsp if the instantiation capability is missing 60/12160/3
authorDana Kutenicsova <dkutenic@cisco.com>
Wed, 22 Oct 2014 13:51:36 +0000 (15:51 +0200)
committerMilos Fabian <milfabia@cisco.com>
Wed, 22 Oct 2014 15:33:26 +0000 (15:33 +0000)
Change-Id: I91eeb6793fcfeabd6731d6dd9d59c36d4843f9be
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListener.java
pcep/topology-provider/src/test/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListenerTest.java

index 64ada921bb1a631323b4b1701af42e07a6729b48..1fa30d9f1c4197c861257433cf7b7317a4de3ad9 100644 (file)
@@ -226,6 +226,9 @@ final class Stateful07TopologySessionListener extends AbstractTopologySessionLis
                     LOG.debug("Node {} already contains lsp {} at {}", input.getNode(), input.getName(), lsp);
                     return OperationResults.UNSENT.future();
                 }
+                if (!getPeerCapabilities().getInstantiation()) {
+                    return OperationResults.UNSENT.future();
+                }
 
                 // Build the request
                 final RequestsBuilder rb = new RequestsBuilder();
index 5c94d726b354afbf40497d35860aa4c040eb25ca..e1e365c0c0c3e1aa4965494c8513b41e99e75bc4 100644 (file)
@@ -34,6 +34,8 @@ import org.opendaylight.protocol.pcep.spi.PCEPErrors;
 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.network.topology.rev140113.NetworkTopologyRef;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev131126.Pcinitiate;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev131126.Stateful1;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev131126.Stateful1Builder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev131126.pcinitiate.message.pcinitiate.message.Requests;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Arguments1;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Arguments1Builder;
@@ -96,6 +98,7 @@ public class Stateful07TopologySessionListenerTest extends AbstractPCEPSessionTe
 
     private Stateful07TopologySessionListener listener;
 
+    @Override
     @Before
     public void setUp() throws Exception {
         super.setUp();
@@ -163,7 +166,7 @@ public class Stateful07TopologySessionListenerTest extends AbstractPCEPSessionTe
         assertNotNull(this.listener.getSessionState());
 
         // update-lsp
-        org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.update.lsp.args.ArgumentsBuilder updArgsBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.update.lsp.args.ArgumentsBuilder();
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.update.lsp.args.ArgumentsBuilder updArgsBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.update.lsp.args.ArgumentsBuilder();
         updArgsBuilder.setEro(createEroWithIpPrefixes(Lists.newArrayList(ERO_IP_PREFIX, DST_IP_PREFIX)));
         updArgsBuilder.addAugmentation(Arguments3.class, new Arguments3Builder().setLsp(new LspBuilder().setDelegate(true).setAdministrative(true).build()).build());
         final UpdateLspInput update = new UpdateLspInputBuilder().setArguments(updArgsBuilder.build()).setName(TUNNEL_NAME).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(NODE_ID).build();
@@ -197,7 +200,7 @@ public class Stateful07TopologySessionListenerTest extends AbstractPCEPSessionTe
         assertTrue(this.listener.getReplyTime().getAverageTime() > 0);
         assertTrue(this.listener.getReplyTime().getMaxTime() > 0);
         assertFalse(this.listener.getPeerCapabilities().getActive());
-        assertFalse(this.listener.getPeerCapabilities().getInstantiation());
+        assertTrue(this.listener.getPeerCapabilities().getInstantiation());
         assertTrue(this.listener.getPeerCapabilities().getStateful());
 
         // ensure-operational
@@ -310,7 +313,7 @@ public class Stateful07TopologySessionListenerTest extends AbstractPCEPSessionTe
 
     @Override
     protected Open getLocalPref() {
-        return new OpenBuilder(super.getLocalPref()).setTlvs(new TlvsBuilder().addAugmentation(Tlvs1.class, new Tlvs1Builder().setStateful(new StatefulBuilder().build()).build()).build()).build();
+        return new OpenBuilder(super.getLocalPref()).setTlvs(new TlvsBuilder().addAugmentation(Tlvs1.class, new Tlvs1Builder().setStateful(new StatefulBuilder().addAugmentation(Stateful1.class, new Stateful1Builder().setInitiation(Boolean.TRUE).build()).build()).build()).build()).build();
     }
 
     private AddLspInput createAddLspInput() {