import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
import static org.opendaylight.protocol.pcep.pcc.mock.spi.MsgBuilderUtil.createLspTlvs;
import static org.opendaylight.protocol.util.CheckUtil.checkEquals;
import static org.opendaylight.protocol.util.CheckUtil.checkNotPresentOperational;
import static org.opendaylight.protocol.util.CheckUtil.readDataOperational;
+
import com.google.common.base.Optional;
import com.google.common.collect.Lists;
import java.net.UnknownHostException;
import java.util.concurrent.TimeoutException;
import org.junit.Before;
import org.junit.Test;
-import org.opendaylight.controller.config.yang.pcep.topology.provider.SessionState;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.protocol.pcep.PCEPCloseTermination;
import org.opendaylight.protocol.pcep.spi.AbstractMessageParser;
import org.opendaylight.protocol.pcep.spi.PCEPErrors;
import org.opendaylight.protocol.util.CheckUtil;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone;
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.rev171025.Pcinitiate;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev171025.Stateful1;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev171025.stateful.capability.tlv.StatefulBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev171025.symbolic.path.name.tlv.SymbolicPathNameBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.Close;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.stateful.stats.rev171113.StatefulCapabilitiesStatsAug;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.stateful.stats.rev171113.StatefulMessagesStatsAug;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.stats.rev171113.PcepSessionState;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.stats.rev171113.pcep.session.state.LocalPref;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.stats.rev171113.pcep.session.state.PeerPref;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.stats.rev171113.reply.time.grouping.ReplyTime;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.endpoints.address.family.Ipv4CaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.endpoints.address.family.ipv4._case.Ipv4Builder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev171025.pcep.client.attributes.path.computation.client.reported.lsp.Path;
import org.opendaylight.yangtools.yang.common.RpcResult;
-public class Stateful07TopologySessionListenerTest extends AbstractPCEPSessionTest<Stateful07TopologySessionListenerFactory> {
+public class Stateful07TopologySessionListenerTest
+ extends AbstractPCEPSessionTest<Stateful07TopologySessionListenerFactory> {
- private final String TUNNEL_NAME = "pcc_" + this.testAddress + "_tunnel_0";
+ private final String tunnelName = "pcc_" + this.testAddress + "_tunnel_0";
private Stateful07TopologySessionListener listener;
@Test
public void testStateful07TopologySessionListener() throws Exception {
this.listener.onSessionUp(this.session);
-
- assertEquals(this.testAddress, this.listener.getPeerId());
- final SessionState state = this.listener.getSessionState();
+ final PcepSessionState listenerState = this.listener.listenerState;
+ assertEquals(this.testAddress, listenerState.getPeerPref().getIpAddress());
+ final LocalPref state = this.listener.listenerState.getLocalPref();
assertNotNull(state);
- assertEquals(DEAD_TIMER, state.getLocalPref().getDeadtimer().shortValue());
- assertEquals(KEEP_ALIVE, state.getLocalPref().getKeepalive().shortValue());
- assertEquals(0, state.getLocalPref().getSessionId().intValue());
- assertEquals(this.testAddress, state.getLocalPref().getIpAddress());
- assertEquals(DEAD_TIMER, state.getPeerPref().getDeadtimer().shortValue());
- assertEquals(KEEP_ALIVE, state.getPeerPref().getKeepalive().shortValue());
- assertEquals(0, state.getPeerPref().getSessionId().intValue());
- assertEquals(this.testAddress, state.getPeerPref().getIpAddress());
+ assertEquals(DEAD_TIMER, state.getDeadtimer().shortValue());
+ assertEquals(KEEP_ALIVE, state.getKeepalive().shortValue());
+ assertEquals(0, state.getSessionId().intValue());
+ assertEquals(this.testAddress, state.getIpAddress());
+
+ final PeerPref peerState = listenerState.getPeerPref();
+
+ assertEquals(DEAD_TIMER, peerState.getDeadtimer().shortValue());
+ assertEquals(KEEP_ALIVE, peerState.getKeepalive().shortValue());
+ assertEquals(0, peerState.getSessionId().intValue());
+ assertEquals(this.testAddress, peerState.getIpAddress());
// add-lsp
this.topologyRpcs.addLsp(createAddLspInput());
final Requests req = pcinitiate.getPcinitiateMessage().getRequests().get(0);
final long srpId = req.getSrp().getOperationId().getValue();
final Tlvs tlvs = createLspTlvs(req.getLsp().getPlspId().getValue(), true,
- this.testAddress, this.testAddress, this.testAddress, Optional.absent());
+ this.testAddress, this.testAddress, this.testAddress, Optional.absent());
final Pcrpt pcRpt = MsgBuilderUtil.createPcRtpMessage(new LspBuilder(req.getLsp())
- .setTlvs(tlvs).setPlspId(new PlspId(1L)).setSync(false).setRemove(false)
- .setOperational(OperationalStatus.Active).build(), Optional.of(MsgBuilderUtil.createSrp(srpId)),
- MsgBuilderUtil.createPath(req.getEro().getSubobject()));
+ .setTlvs(tlvs).setPlspId(new PlspId(1L)).setSync(false).setRemove(false)
+ .setOperational(OperationalStatus.Active).build(), Optional.of(MsgBuilderUtil.createSrp(srpId)),
+ MsgBuilderUtil.createPath(req.getEro().getSubobject()));
final Pcrpt esm = MsgBuilderUtil.createPcRtpMessage(new LspBuilder().setSync(false).build(),
- Optional.of(MsgBuilderUtil.createSrp(0L)), null);
+ Optional.of(MsgBuilderUtil.createSrp(0L)), null);
this.listener.onMessage(this.session, esm);
readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
assertEquals(this.testAddress, pcc.getIpAddress().getIpv4Address().getValue());
readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
assertEquals(1, pcc.getReportedLsp().size());
final ReportedLsp reportedLsp = pcc.getReportedLsp().get(0);
- assertEquals(this.TUNNEL_NAME, reportedLsp.getName());
+ assertEquals(this.tunnelName, reportedLsp.getName());
assertEquals(1, reportedLsp.getPath().size());
final Path path = reportedLsp.getPath().get(0);
assertEquals(1, path.getEro().getSubobject().size());
});
// check stats
- checkEquals(()->assertEquals(1, this.listener.getDelegatedLspsCount().intValue()));
- checkEquals(()->assertTrue(this.listener.getSynchronized()));
- checkEquals(()->assertTrue(this.listener.getStatefulMessages().getLastReceivedRptMsgTimestamp() > 0));
- checkEquals(()->assertEquals(2, this.listener.getStatefulMessages().getReceivedRptMsgCount().intValue()));
- checkEquals(()->assertEquals(1, this.listener.getStatefulMessages().getSentInitMsgCount().intValue()));
- checkEquals(()->assertEquals(0, this.listener.getStatefulMessages().getSentUpdMsgCount().intValue()));
- checkEquals(()->assertNotNull(this.listener.getSessionState()));
+ checkEquals(() -> assertEquals(1, listenerState.getDelegatedLspsCount().intValue()));
+ checkEquals(() -> assertTrue(this.listener.isSessionSynchronized()));
+ checkEquals(() -> assertTrue(listenerState.getMessages()
+ .augmentation(StatefulMessagesStatsAug.class).getLastReceivedRptMsgTimestamp() > 0));
+ checkEquals(() -> assertEquals(2, listenerState.getMessages()
+ .augmentation(StatefulMessagesStatsAug.class).getReceivedRptMsgCount().intValue()));
+ checkEquals(() -> assertEquals(1, listenerState.getMessages()
+ .augmentation(StatefulMessagesStatsAug.class).getSentInitMsgCount().intValue()));
+ checkEquals(() -> assertEquals(0, listenerState.getMessages()
+ .augmentation(StatefulMessagesStatsAug.class).getSentUpdMsgCount().intValue()));
// update-lsp
final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev171025.update.lsp.args
- .ArgumentsBuilder updArgsBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.
- topology.pcep.rev171025.update.lsp.args.ArgumentsBuilder();
+ .ArgumentsBuilder updArgsBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang
+ .topology.pcep.rev171025.update.lsp.args.ArgumentsBuilder();
updArgsBuilder.setEro(createEroWithIpPrefixes(Lists.newArrayList(this.eroIpPrefix, this.dstIpPrefix)));
updArgsBuilder.addAugmentation(Arguments3.class, new Arguments3Builder().setLsp(new LspBuilder()
- .setDelegate(true).setAdministrative(true).build()).build());
+ .setDelegate(true).setAdministrative(true).build()).build());
final UpdateLspInput update = new UpdateLspInputBuilder().setArguments(updArgsBuilder.build())
- .setName(this.TUNNEL_NAME).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID))
- .setNode(this.nodeId).build();
+ .setName(this.tunnelName).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID))
+ .setNode(this.nodeId).build();
this.topologyRpcs.updateLsp(update);
assertEquals(2, this.receivedMsgs.size());
assertTrue(this.receivedMsgs.get(1) instanceof Pcupd);
final Updates upd = updateMsg.getPcupdMessage().getUpdates().get(0);
final long srpId2 = upd.getSrp().getOperationId().getValue();
final Tlvs tlvs2 = createLspTlvs(upd.getLsp().getPlspId().getValue(), false,
- this.newDestinationAddress, this.testAddress, this.testAddress, Optional.absent());
+ this.newDestinationAddress, this.testAddress, this.testAddress, Optional.absent());
final Pcrpt pcRpt2 = MsgBuilderUtil.createPcRtpMessage(new LspBuilder(upd.getLsp()).setTlvs(tlvs2)
- .setSync(true).setRemove(false).setOperational(OperationalStatus.Active).build(),
- Optional.of(MsgBuilderUtil.createSrp(srpId2)), MsgBuilderUtil.createPath(upd.getPath()
- .getEro().getSubobject()));
+ .setSync(true).setRemove(false).setOperational(OperationalStatus.Active).build(),
+ Optional.of(MsgBuilderUtil.createSrp(srpId2)), MsgBuilderUtil.createPath(upd.getPath()
+ .getEro().getSubobject()));
this.listener.onMessage(this.session, pcRpt2);
//check updated lsp
readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
assertEquals(1, pcc.getReportedLsp().size());
final ReportedLsp reportedLsp = pcc.getReportedLsp().get(0);
- assertEquals(this.TUNNEL_NAME, reportedLsp.getName());
+ assertEquals(this.tunnelName, reportedLsp.getName());
assertEquals(1, reportedLsp.getPath().size());
final Path path = reportedLsp.getPath().get(0);
assertEquals(2, path.getEro().getSubobject().size());
assertEquals(this.dstIpPrefix, getLastEroIpPrefix(path.getEro()));
- assertEquals(1, this.listener.getDelegatedLspsCount().intValue());
- assertTrue(this.listener.getSynchronized());
- assertTrue(this.listener.getStatefulMessages().getLastReceivedRptMsgTimestamp() > 0);
- assertEquals(3, this.listener.getStatefulMessages().getReceivedRptMsgCount().intValue());
- assertEquals(1, this.listener.getStatefulMessages().getSentInitMsgCount().intValue());
- assertEquals(1, this.listener.getStatefulMessages().getSentUpdMsgCount().intValue());
- assertTrue(this.listener.getReplyTime().getAverageTime() > 0);
- assertTrue(this.listener.getReplyTime().getMaxTime() > 0);
- assertFalse(this.listener.getPeerCapabilities().getActive());
- assertTrue(this.listener.getPeerCapabilities().getInstantiation());
- assertTrue(this.listener.getPeerCapabilities().getStateful());
+ assertEquals(1, listenerState.getDelegatedLspsCount().intValue());
+ assertTrue(this.listener.isSessionSynchronized());
+ final StatefulMessagesStatsAug statefulstate = listenerState.getMessages()
+ .augmentation(StatefulMessagesStatsAug.class);
+ assertTrue(statefulstate.getLastReceivedRptMsgTimestamp() > 0);
+ assertEquals(3, statefulstate.getReceivedRptMsgCount().intValue());
+ assertEquals(1, statefulstate.getSentInitMsgCount().intValue());
+ assertEquals(1, statefulstate.getSentUpdMsgCount().intValue());
+ final ReplyTime replyTime = listenerState.getMessages().getReplyTime();
+ assertTrue(replyTime.getAverageTime() > 0);
+ assertTrue(replyTime.getMaxTime() > 0);
+ final StatefulCapabilitiesStatsAug statefulCapabilities = listenerState
+ .getPeerCapabilities().augmentation(StatefulCapabilitiesStatsAug.class);
+ assertFalse(statefulCapabilities.isActive());
+ assertTrue(statefulCapabilities.isInstantiation());
+ assertTrue(statefulCapabilities.isStateful());
return pcc;
});
// ensure-operational
- final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev171025.ensure.lsp.
- operational.args.ArgumentsBuilder ensureArgs = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.
- xml.ns.yang.topology.pcep.rev171025.ensure.lsp.operational.args.ArgumentsBuilder();
+ final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev171025.ensure.lsp
+ .operational.args.ArgumentsBuilder ensureArgs = new org.opendaylight.yang.gen.v1.urn.opendaylight.params
+ .xml.ns.yang.topology.pcep.rev171025.ensure.lsp.operational.args.ArgumentsBuilder();
ensureArgs.addAugmentation(Arguments1.class, new Arguments1Builder().setOperational(OperationalStatus.Active)
- .build());
+ .build());
final EnsureLspOperationalInput ensure = new EnsureLspOperationalInputBuilder().setArguments(ensureArgs.build())
- .setName(this.TUNNEL_NAME).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID))
- .setNode(this.nodeId).build();
+ .setName(this.tunnelName).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID))
+ .setNode(this.nodeId).build();
final OperationResult result = this.topologyRpcs.ensureLspOperational(ensure).get().getResult();
//check result
assertNull(result.getFailure());
// remove-lsp
- final RemoveLspInput remove = new RemoveLspInputBuilder().setName(this.TUNNEL_NAME)
- .setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(this.nodeId).build();
+ final RemoveLspInput remove = new RemoveLspInputBuilder().setName(this.tunnelName)
+ .setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(this.nodeId).build();
this.topologyRpcs.removeLsp(remove);
assertEquals(3, this.receivedMsgs.size());
assertTrue(this.receivedMsgs.get(2) instanceof Pcinitiate);
final Requests req2 = pcinitiate2.getPcinitiateMessage().getRequests().get(0);
final long srpId3 = req2.getSrp().getOperationId().getValue();
final Tlvs tlvs3 = createLspTlvs(req2.getLsp().getPlspId().getValue(), false,
- this.testAddress, this.testAddress, this.testAddress, Optional.absent());
+ this.testAddress, this.testAddress, this.testAddress, Optional.absent());
final Pcrpt pcRpt3 = MsgBuilderUtil.createPcRtpMessage(new LspBuilder(req2.getLsp()).setTlvs(tlvs3)
- .setRemove(true).setSync(true).setOperational(OperationalStatus.Down).build(),
- Optional.of(MsgBuilderUtil.createSrp(srpId3)), MsgBuilderUtil.createPath(Collections.emptyList()));
+ .setRemove(true).setSync(true).setOperational(OperationalStatus.Down).build(),
+ Optional.of(MsgBuilderUtil.createSrp(srpId3)), MsgBuilderUtil.createPath(Collections.emptyList()));
this.listener.onMessage(this.session, pcRpt3);
// check if lsp was removed
return pcc;
});
// check stats
- checkEquals(()->assertEquals(0, this.listener.getDelegatedLspsCount().intValue()));
- checkEquals(()->assertTrue(this.listener.getSynchronized()));
- checkEquals(()->assertTrue(this.listener.getStatefulMessages().getLastReceivedRptMsgTimestamp() > 0));
- checkEquals(()->assertEquals(4, this.listener.getStatefulMessages().getReceivedRptMsgCount().intValue()));
- checkEquals(()->assertEquals(2, this.listener.getStatefulMessages().getSentInitMsgCount().intValue()));
- checkEquals(()->assertEquals(1, this.listener.getStatefulMessages().getSentUpdMsgCount().intValue()));
+ checkEquals(() -> assertEquals(0, listenerState.getDelegatedLspsCount().intValue()));
+ checkEquals(() -> assertTrue(this.listener.isSessionSynchronized()));
+ checkEquals(() -> assertTrue(listenerState.getMessages()
+ .augmentation(StatefulMessagesStatsAug.class).getLastReceivedRptMsgTimestamp() > 0));
+ checkEquals(() -> assertEquals(4, listenerState.getMessages()
+ .augmentation(StatefulMessagesStatsAug.class).getReceivedRptMsgCount().intValue()));
+ checkEquals(() -> assertEquals(2, listenerState.getMessages()
+ .augmentation(StatefulMessagesStatsAug.class).getSentInitMsgCount().intValue()));
+ checkEquals(() -> assertEquals(1, listenerState.getMessages()
+ .augmentation(StatefulMessagesStatsAug.class).getSentUpdMsgCount().intValue()));
}
@Test
public void testOnUnhandledErrorMessage() {
final Message errorMsg = AbstractMessageParser.createErrorMsg(PCEPErrors.NON_ZERO_PLSPID, Optional.absent());
this.listener.onSessionUp(this.session);
- assertTrue(this.listener.onMessage(Optional.<AbstractTopologySessionListener.MessageContext>absent().orNull(), errorMsg));
+ assertTrue(this.listener.onMessage(Optional.<AbstractTopologySessionListener.MessageContext>absent().orNull(),
+ errorMsg));
}
@Test
this.listener.onMessage(this.session, errorMsg);
final AddLspOutput output = futureOutput.get().getResult();
- assertEquals(FailureType.Failed ,output.getFailure());
+ assertEquals(FailureType.Failed, output.getFailure());
assertEquals(1, output.getError().size());
final ErrorObject err = output.getError().get(0).getErrorObject();
assertEquals(PCEPErrors.NON_ZERO_PLSPID.getErrorType(), err.getType().shortValue());
}
/**
- * All the pcep session registration should be closed when the session manager is closed
- * @throws InterruptedException
- * @throws ExecutionException
- * @throws TransactionCommitFailedException
+ * All the pcep session registration should be closed when the session manager is closed.
*/
@Test
public void testOnServerSessionManagerDown() throws InterruptedException, ExecutionException,
- TransactionCommitFailedException {
+ TransactionCommitFailedException {
this.listener.onSessionUp(this.session);
// the session should not be closed when session manager is up
assertFalse(this.session.isClosed());
/**
* Verify the PCEP session should not be up when server session manager is down,
- * otherwise it would be a problem when the session is up while it's not registered with session manager
- * @throws InterruptedException
- * @throws ExecutionException
- * @throws TransactionCommitFailedException
+ * otherwise it would be a problem when the session is up while it's not registered with session manager.
*/
@Test
public void testOnServerSessionManagerUnstarted() throws InterruptedException, ExecutionException,
- TransactionCommitFailedException, ReadFailedException {
+ TransactionCommitFailedException, ReadFailedException {
stopSessionManager();
assertFalse(this.session.isClosed());
this.listener.onSessionUp(this.session);
final Requests req = pcinitiate.getPcinitiateMessage().getRequests().get(0);
final long srpId = req.getSrp().getOperationId().getValue();
final Tlvs tlvs = createLspTlvs(req.getLsp().getPlspId().getValue(), true,
- this.testAddress, this.testAddress, this.testAddress, Optional.absent());
+ this.testAddress, this.testAddress, this.testAddress, Optional.absent());
final Pcrpt pcRpt = MsgBuilderUtil.createPcRtpMessage(new LspBuilder(req.getLsp()).setTlvs(tlvs).setSync(true)
- .setRemove(false).setOperational(OperationalStatus.Active).build(),
- Optional.of(MsgBuilderUtil.createSrp(srpId)), MsgBuilderUtil.createPath(req.getEro().getSubobject()));
+ .setRemove(false).setOperational(OperationalStatus.Active).build(),
+ Optional.of(MsgBuilderUtil.createSrp(srpId)), MsgBuilderUtil.createPath(req.getEro().getSubobject()));
this.listener.onMessage(this.session, pcRpt);
readDataOperational(getDataBroker(), TOPO_IID, topology -> {
assertEquals(1, topology.getNode().size());
}
/**
- * When a session is somehow duplicated in controller, the controller should drop existing session
+ * When a session is somehow duplicated in controller, the controller should drop existing session.
*/
@Test
public void testDuplicatedSession() throws ReadFailedException {
final Requests req = pcinitiate.getPcinitiateMessage().getRequests().get(0);
final long srpId = req.getSrp().getOperationId().getValue();
final Tlvs tlvs = createLspTlvs(req.getLsp().getPlspId().getValue(), true,
- this.testAddress, this.testAddress, this.testAddress, Optional.absent());
+ this.testAddress, this.testAddress, this.testAddress, Optional.absent());
final Pcrpt pcRpt = MsgBuilderUtil.createPcRtpMessage(new LspBuilder(req.getLsp()).setTlvs(tlvs).setSync(true)
- .setRemove(false).setOperational(OperationalStatus.Active).build(),
- Optional.of(MsgBuilderUtil.createSrp(srpId)), MsgBuilderUtil.createPath(req.getEro().getSubobject()));
+ .setRemove(false).setOperational(OperationalStatus.Active).build(),
+ Optional.of(MsgBuilderUtil.createSrp(srpId)), MsgBuilderUtil.createPath(req.getEro().getSubobject()));
this.listener.onMessage(this.session, pcRpt);
readDataOperational(getDataBroker(), TOPO_IID, topology -> {
assertEquals(1, topology.getNode().size());
public void testConflictingListeners() throws Exception {
this.listener.onSessionUp(this.session);
assertFalse(this.session.isClosed());
- Stateful07TopologySessionListener conflictingListener = (Stateful07TopologySessionListener) getSessionListener();
+ Stateful07TopologySessionListener conflictingListener =
+ (Stateful07TopologySessionListener) getSessionListener();
conflictingListener.onSessionUp(this.session);
assertTrue(this.session.isClosed());
}
final Requests req = pcinitiate.getPcinitiateMessage().getRequests().get(0);
final long srpId = req.getSrp().getOperationId().getValue();
final Tlvs tlvs = createLspTlvs(req.getLsp().getPlspId().getValue(), true,
- this.testAddress, this.testAddress, this.testAddress, Optional.absent());
+ this.testAddress, this.testAddress, this.testAddress, Optional.absent());
final Pcrpt pcRpt = MsgBuilderUtil.createPcRtpMessage(new LspBuilder(req.getLsp()).setTlvs(tlvs).setSync(true)
- .setRemove(false).setOperational(OperationalStatus.Active).build(),
- Optional.of(MsgBuilderUtil.createSrp(srpId)), MsgBuilderUtil.createPath(req.getEro().getSubobject()));
+ .setRemove(false).setOperational(OperationalStatus.Active).build(),
+ Optional.of(MsgBuilderUtil.createSrp(srpId)), MsgBuilderUtil.createPath(req.getEro().getSubobject()));
this.listener.onMessage(this.session, pcRpt);
readDataOperational(getDataBroker(), TOPO_IID, topology -> {
assertEquals(1, topology.getNode().size());
@Test
public void testUnknownLsp() throws Exception {
final List<Reports> reports = Lists.newArrayList(new ReportsBuilder().setPath(new PathBuilder()
- .setEro(new EroBuilder().build()).build()).setLsp(new LspBuilder().setPlspId(new PlspId(5L))
- .setSync(false).setRemove(false).setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.
- yang.pcep.ietf.stateful.rev171025.lsp.object.lsp.TlvsBuilder().setLspIdentifiers(
- new LspIdentifiersBuilder().setLspId(new LspId(1L)).build()).setSymbolicPathName(
- new SymbolicPathNameBuilder().setPathName(new SymbolicPathName(new byte[] { 22, 34 }))
- .build()).build()).build()).build());
+ .setEro(new EroBuilder().build()).build()).setLsp(new LspBuilder().setPlspId(new PlspId(5L))
+ .setSync(false).setRemove(false).setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml
+ .ns.yang.pcep.ietf.stateful.rev171025.lsp.object.lsp.TlvsBuilder().setLspIdentifiers(
+ new LspIdentifiersBuilder().setLspId(new LspId(1L)).build()).setSymbolicPathName(
+ new SymbolicPathNameBuilder().setPathName(new SymbolicPathName(new byte[]{22, 34}))
+ .build()).build()).build()).build());
final Pcrpt rptmsg = new PcrptBuilder().setPcrptMessage(new PcrptMessageBuilder().setReports(reports).build())
- .build();
+ .build();
this.listener.onSessionUp(this.session);
this.listener.onMessage(this.session, rptmsg);
readDataOperational(getDataBroker(), TOPO_IID, node -> {
public void testUpdateUnknownLsp() throws InterruptedException, ExecutionException {
this.listener.onSessionUp(this.session);
final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev171025.update.lsp.args
- .ArgumentsBuilder updArgsBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.
- topology.pcep.rev171025.update.lsp.args.ArgumentsBuilder();
+ .ArgumentsBuilder updArgsBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang
+ .topology.pcep.rev171025.update.lsp.args.ArgumentsBuilder();
updArgsBuilder.setEro(createEroWithIpPrefixes(Lists.newArrayList(this.eroIpPrefix, this.dstIpPrefix)));
updArgsBuilder.addAugmentation(Arguments3.class, new Arguments3Builder().setLsp(new LspBuilder()
- .setDelegate(true).setAdministrative(true).build()).build());
+ .setDelegate(true).setAdministrative(true).build()).build());
final UpdateLspInput update = new UpdateLspInputBuilder().setArguments(updArgsBuilder.build())
- .setName(this.TUNNEL_NAME).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(this.nodeId)
- .build();
+ .setName(this.tunnelName).setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(this.nodeId)
+ .build();
final UpdateLspOutput result = this.topologyRpcs.updateLsp(update).get().getResult();
assertEquals(FailureType.Unsent, result.getFailure());
assertEquals(1, result.getError().size());
@Test
public void testRemoveUnknownLsp() throws InterruptedException, ExecutionException {
this.listener.onSessionUp(this.session);
- final RemoveLspInput remove = new RemoveLspInputBuilder().setName(this.TUNNEL_NAME).setNetworkTopologyRef(
- new NetworkTopologyRef(TOPO_IID)).setNode(this.nodeId).build();
+ final RemoveLspInput remove = new RemoveLspInputBuilder().setName(this.tunnelName).setNetworkTopologyRef(
+ new NetworkTopologyRef(TOPO_IID)).setNode(this.nodeId).build();
final OperationResult result = this.topologyRpcs.removeLsp(remove).get().getResult();
assertEquals(FailureType.Unsent, result.getFailure());
assertEquals(1, result.getError().size());
final Requests req = pcinitiate.getPcinitiateMessage().getRequests().get(0);
final long srpId = req.getSrp().getOperationId().getValue();
final Tlvs tlvs = createLspTlvs(req.getLsp().getPlspId().getValue(), true,
- this.testAddress, this.testAddress, this.testAddress, Optional.absent());
+ this.testAddress, this.testAddress, this.testAddress, Optional.absent());
final Pcrpt pcRpt = MsgBuilderUtil.createPcRtpMessage(new LspBuilder(req.getLsp()).setTlvs(tlvs)
- .setPlspId(new PlspId(1L)).setSync(false).setRemove(false).setOperational(OperationalStatus.Active)
- .build(), Optional.of(MsgBuilderUtil.createSrp(srpId)), MsgBuilderUtil.createPath(req.getEro()
- .getSubobject()));
+ .setPlspId(new PlspId(1L))
+ .setSync(false)
+ .setRemove(false)
+ .setOperational(OperationalStatus.Active)
+ .build(), Optional.of(MsgBuilderUtil.createSrp(srpId)), MsgBuilderUtil.createPath(req.getEro()
+ .getSubobject()));
this.listener.onMessage(this.session, pcRpt);
//try to add already existing LSP
final ErrorObject errorObject = result.getError().get(0).getErrorObject();
assertNotNull(errorObject);
assertEquals(PCEPErrors.USED_SYMBOLIC_PATH_NAME, PCEPErrors.forValue(errorObject.getType(),
- errorObject.getValue()));
+ errorObject.getValue()));
}
@Test
+ @SuppressWarnings("checkstyle:IllegalCatch")
public void testPccResponseTimeout() throws Exception {
this.listener.onSessionUp(this.session);
final Future<RpcResult<AddLspOutput>> addLspResult = this.topologyRpcs.addLsp(createAddLspInput());
assertTrue(e instanceof TimeoutException);
}
Thread.sleep(AbstractPCEPSessionTest.RPC_TIMEOUT);
- CheckUtil.checkEquals(()-> {
+ CheckUtil.checkEquals(() -> {
final RpcResult<AddLspOutput> rpcResult = addLspResult.get();
assertNotNull(rpcResult);
assertEquals(rpcResult.getResult().getFailure(), FailureType.Unsent);
final Requests req = pcinitiate.getPcinitiateMessage().getRequests().get(0);
final long srpId = req.getSrp().getOperationId().getValue();
final Tlvs tlvs = createLspTlvs(req.getLsp().getPlspId().getValue(), true,
- this.testAddress, this.testAddress, this.testAddress, Optional.absent());
+ this.testAddress, this.testAddress, this.testAddress, Optional.absent());
//delegate set to true
final Pcrpt pcRpt = MsgBuilderUtil.createPcRtpMessage(new LspBuilder(req.getLsp()).setTlvs(tlvs)
- .setPlspId(new PlspId(1L)).setSync(false).setRemove(false).setOperational(OperationalStatus.Active)
- .setDelegate(true).build(), Optional.of(MsgBuilderUtil.createSrp(srpId)), MsgBuilderUtil.createPath(
- req.getEro().getSubobject()));
+ .setPlspId(new PlspId(1L))
+ .setSync(false)
+ .setRemove(false)
+ .setOperational(OperationalStatus.Active)
+ .setDelegate(true)
+ .build(), Optional.of(MsgBuilderUtil.createSrp(srpId)), MsgBuilderUtil.createPath(
+ req.getEro().getSubobject()));
this.listener.onMessage(this.session, pcRpt);
- checkEquals(()->assertEquals(1, this.listener.getDelegatedLspsCount().intValue()));
+ checkEquals(() -> assertEquals(1, this.listener.listenerState.getDelegatedLspsCount().intValue()));
}
@Test
final Requests req = pcinitiate.getPcinitiateMessage().getRequests().get(0);
final long srpId = req.getSrp().getOperationId().getValue();
final Tlvs tlvs = createLspTlvs(req.getLsp().getPlspId().getValue(), true,
- this.testAddress, this.testAddress, this.testAddress, Optional.absent());
+ this.testAddress, this.testAddress, this.testAddress, Optional.absent());
//delegate set to false
final Pcrpt pcRpt = MsgBuilderUtil.createPcRtpMessage(new LspBuilder(req.getLsp()).setTlvs(tlvs)
- .setPlspId(new PlspId(1L)).setSync(false).setRemove(false).setOperational(OperationalStatus.Active)
- .setDelegate(false).build(), Optional.of(MsgBuilderUtil.createSrp(srpId)), MsgBuilderUtil.createPath(
- req.getEro().getSubobject()));
+ .setPlspId(
+ new PlspId(1L))
+ .setSync(false)
+ .setRemove(false)
+ .setOperational(OperationalStatus.Active)
+ .setDelegate(false)
+ .build(), Optional.of(MsgBuilderUtil.createSrp(srpId)),
+ MsgBuilderUtil.createPath(req.getEro().getSubobject()));
this.listener.onMessage(this.session, pcRpt);
- checkEquals(()->assertEquals(0, this.listener.getDelegatedLspsCount().intValue()));
+ checkEquals(() -> assertEquals(0, this.listener.listenerState.getDelegatedLspsCount().intValue()));
}
@Override
protected Open getLocalPref() {
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())
- .addAugmentation(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.
- optimizations.rev171025.Stateful1.class, new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.
- ns.yang.controller.pcep.sync.optimizations.rev171025.Stateful1Builder()
- .setTriggeredInitialSync(Boolean.TRUE).build())
- .build()).build()).build()).build();
+ new Tlvs1Builder().setStateful(new StatefulBuilder()
+ .addAugmentation(Stateful1.class, new Stateful1Builder().setInitiation(Boolean.TRUE).build())
+ .addAugmentation(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller
+ .pcep.sync.optimizations.rev171025.Stateful1.class, new org.opendaylight.yang.gen.v1
+ .urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev171025
+ .Stateful1Builder().setTriggeredInitialSync(Boolean.TRUE).build())
+ .build()).build()).build()).build();
}
@Override
private AddLspInput createAddLspInput() {
final ArgumentsBuilder argsBuilder = new ArgumentsBuilder();
final Ipv4CaseBuilder ipv4Builder = new Ipv4CaseBuilder();
- ipv4Builder.setIpv4(new Ipv4Builder().setSourceIpv4Address(new Ipv4Address(this.testAddress))
- .setDestinationIpv4Address(new Ipv4Address(this.testAddress)).build());
+ ipv4Builder.setIpv4(new Ipv4Builder().setSourceIpv4Address(new Ipv4AddressNoZone(this.testAddress))
+ .setDestinationIpv4Address(new Ipv4AddressNoZone(this.testAddress)).build());
argsBuilder.setEndpointsObj(new EndpointsObjBuilder().setAddressFamily(ipv4Builder.build()).build());
argsBuilder.setEro(createEroWithIpPrefixes(Lists.newArrayList(this.eroIpPrefix)));
argsBuilder.addAugmentation(Arguments2.class, new Arguments2Builder().setLsp(new LspBuilder()
- .setDelegate(true).setAdministrative(true).build()).build());
- return new AddLspInputBuilder().setName(this.TUNNEL_NAME).setArguments(argsBuilder.build())
- .setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(this.nodeId).build();
+ .setDelegate(true).setAdministrative(true).build()).build());
+ return new AddLspInputBuilder().setName(this.tunnelName).setArguments(argsBuilder.build())
+ .setNetworkTopologyRef(new NetworkTopologyRef(TOPO_IID)).setNode(this.nodeId).build();
}
}