import org.junit.Test;
import org.opendaylight.protocol.pcep.PCEPSession;
import org.opendaylight.protocol.pcep.pcc.mock.spi.MsgBuilderUtil;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev181109.Tlvs3;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev181109.Tlvs3Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev181109.lsp.db.version.tlv.LspDbVersion;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev181109.lsp.db.version.tlv.LspDbVersionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev181109.Stateful1;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev181109.Stateful1Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.OperationalStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.Pcrpt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.PlspId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.SrpIdNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.SymbolicPathName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.Tlvs1;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.Tlvs1Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.lsp.identifiers.tlv.LspIdentifiersBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.lsp.object.LspBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.srp.object.SrpBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.stateful.capability.tlv.StatefulBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.symbolic.path.name.tlv.SymbolicPathNameBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev200720.Tlvs3Builder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev200720.lsp.db.version.tlv.LspDbVersion;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev200720.lsp.db.version.tlv.LspDbVersionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.initiated.rev200720.Stateful1Builder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.OperationalStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.Pcrpt;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.PlspId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.SrpIdNumber;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.SymbolicPathName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.Tlvs1Builder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.lsp.identifiers.tlv.LspIdentifiersBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.lsp.object.LspBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.srp.object.SrpBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.stateful.capability.tlv.StatefulBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.symbolic.path.name.tlv.SymbolicPathNameBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.object.Open;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.object.OpenBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.object.open.TlvsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.LspId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev200120.PccSyncState;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev200120.TriggerSyncInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev220730.PccSyncState;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev220730.TriggerSyncInputBuilder;
import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.common.Uint64;
-public class PCEPTriggeredReSynchronizationProcedureTest
- extends AbstractPCEPSessionTest<Stateful07TopologySessionListenerFactory> {
- private Stateful07TopologySessionListener listener;
+public class PCEPTriggeredReSynchronizationProcedureTest extends AbstractPCEPSessionTest {
+ private PCEPTopologySessionListener listener;
private PCEPSession session;
private final LspDbVersion lspDbVersion = new LspDbVersionBuilder().setLspDbVersionValue(Uint64.ONE).build();
@Before
public void setUp() throws Exception {
super.setUp();
- this.listener = (Stateful07TopologySessionListener) getSessionListener();
+ listener = getSessionListener();
}
@Test
public void testTriggeredResynchronization() throws Exception {
//session up - sync skipped (LSP-DBs match)
- this.session = getPCEPSession(getOpen(), getOpen());
- this.listener.onSessionUp(this.session);
+ session = getPCEPSession(getOpen(), getOpen());
+ listener.onSessionUp(session);
//report LSP + LSP-DB version number
final Pcrpt pcRpt = getPcrt();
- this.listener.onMessage(this.session, pcRpt);
+ listener.onMessage(session, pcRpt);
- readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
+ readDataOperational(getDataBroker(), pathComputationClientIId, pcc -> {
assertEquals(PccSyncState.Synchronized, pcc.getStateSync());
assertFalse(pcc.nonnullReportedLsp().isEmpty());
return pcc;
});
//PCEP Trigger Full Resync
- this.listener.triggerSync(new TriggerSyncInputBuilder().setNode(this.nodeId).build());
- readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
+ listener.triggerSync(new TriggerSyncInputBuilder().setNode(nodeId).build());
+ readDataOperational(getDataBroker(), pathComputationClientIId, pcc -> {
assertEquals(PccSyncState.PcepTriggeredResync, pcc.getStateSync());
return pcc;
});
//end of sync
final Pcrpt syncMsg = getSyncMsg();
- this.listener.onMessage(this.session, syncMsg);
- readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
+ listener.onMessage(session, syncMsg);
+ readDataOperational(getDataBroker(), pathComputationClientIId, pcc -> {
//check node - synchronized
assertEquals(PccSyncState.Synchronized, pcc.getStateSync());
return pcc;
});
- this.listener.onMessage(this.session, pcRpt);
- readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
+ listener.onMessage(session, pcRpt);
+ readDataOperational(getDataBroker(), pathComputationClientIId, pcc -> {
final Map<?, ?> lsp = pcc.getReportedLsp();
assertNotNull(lsp);
assertEquals(1, lsp.size());
});
//Trigger Full Resync
- this.listener.triggerSync(new TriggerSyncInputBuilder().setNode(this.nodeId).build());
- this.listener.onMessage(this.session, pcRpt);
+ listener.triggerSync(new TriggerSyncInputBuilder().setNode(nodeId).build());
+ listener.onMessage(session, pcRpt);
//end of sync
- this.listener.onMessage(this.session, syncMsg);
- readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
+ listener.onMessage(session, syncMsg);
+ readDataOperational(getDataBroker(), pathComputationClientIId, pcc -> {
//check node - synchronized
assertEquals(PccSyncState.Synchronized, pcc.getStateSync());
//check reported LSP is not empty, Stale LSP state were purged
public void testTriggeredResynchronizationLsp() throws Exception {
//session up - sync skipped (LSP-DBs match)
- this.session = getPCEPSession(getOpen(), getOpen());
- this.listener.onSessionUp(this.session);
+ session = getPCEPSession(getOpen(), getOpen());
+ listener.onSessionUp(session);
//report LSP + LSP-DB version number
final Pcrpt pcRpt = getPcrt();
- this.listener.onMessage(this.session, pcRpt);
- readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
+ listener.onMessage(session, pcRpt);
+ readDataOperational(getDataBroker(), pathComputationClientIId, pcc -> {
assertEquals(PccSyncState.Synchronized, pcc.getStateSync());
assertFalse(pcc.nonnullReportedLsp().isEmpty());
return pcc;
});
//Trigger Full Resync
- this.listener.triggerSync(new TriggerSyncInputBuilder().setNode(this.nodeId).setName("test").build());
- readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
+ listener.triggerSync(new TriggerSyncInputBuilder().setNode(nodeId).setName("test").build());
+ readDataOperational(getDataBroker(), pathComputationClientIId, pcc -> {
assertEquals(PccSyncState.PcepTriggeredResync, pcc.getStateSync());
assertFalse(pcc.nonnullReportedLsp().isEmpty());
return pcc;
});
- this.listener.onMessage(this.session, pcRpt);
- readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
+ listener.onMessage(session, pcRpt);
+ readDataOperational(getDataBroker(), pathComputationClientIId, pcc -> {
assertFalse(pcc.nonnullReportedLsp().isEmpty());
return pcc;
});
//sync rpt + LSP-DB
final Pcrpt syncMsg = getSyncMsg();
- this.listener.onMessage(this.session, syncMsg);
- readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
+ listener.onMessage(session, syncMsg);
+ readDataOperational(getDataBroker(), pathComputationClientIId, pcc -> {
//check node - synchronized
assertEquals(PccSyncState.Synchronized, pcc.getStateSync());
//check reported LSP
});
//Trigger Full Resync
- this.listener.triggerSync(new TriggerSyncInputBuilder().setNode(this.nodeId).setName("test").build());
- this.listener.onMessage(this.session, syncMsg);
- readDataOperational(getDataBroker(), this.pathComputationClientIId, pcc -> {
+ listener.triggerSync(new TriggerSyncInputBuilder().setNode(nodeId).setName("test").build());
+ listener.onMessage(session, syncMsg);
+ readDataOperational(getDataBroker(), pathComputationClientIId, pcc -> {
//check node - synchronized
assertEquals(PccSyncState.Synchronized, pcc.getStateSync());
//check reported LSP
}
private Open getOpen() {
- 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.rev181109.Stateful1.class,
- new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations
- .rev181109.Stateful1Builder().setIncludeDbVersion(Boolean.TRUE).setTriggeredResync(Boolean.TRUE)
- .build()).build()).build()).addAugmentation(Tlvs3.class, new Tlvs3Builder()
- .setLspDbVersion(this.lspDbVersion).build()).build()).build();
+ return new OpenBuilder(super.getLocalPref()).setTlvs(new TlvsBuilder().addAugmentation(new Tlvs1Builder()
+ .setStateful(new StatefulBuilder()
+ .addAugmentation(new Stateful1Builder().setInitiation(Boolean.TRUE).build())
+ .addAugmentation(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep
+ .sync.optimizations.rev200720.Stateful1Builder()
+ .setIncludeDbVersion(Boolean.TRUE).setTriggeredResync(Boolean.TRUE)
+ .build())
+ .build())
+ .build()).addAugmentation(new Tlvs3Builder().setLspDbVersion(lspDbVersion).build()).build()).build();
}
private static Pcrpt getSyncMsg() {
// not sue whether use 0 instead of nextRequest() or do not insert srp == SRP-ID-number = 0
srpBuilder.setOperationId(new SrpIdNumber(Uint32.ONE));
return MsgBuilderUtil.createPcRtpMessage(createLsp(Uint32.ZERO, false, Optional.of(
- new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.lsp
- .object.lsp.TlvsBuilder().addAugmentation(org.opendaylight.yang.gen.v1.urn.opendaylight.params
- .xml.ns.yang.controller.pcep.sync.optimizations.rev181109.Tlvs1.class,
- new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync
- .optimizations.rev181109.Tlvs1Builder()
- .setLspDbVersion(new LspDbVersionBuilder().setLspDbVersionValue(Uint64.valueOf(3L))
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.lsp
+ .object.lsp.TlvsBuilder().addAugmentation(new org.opendaylight.yang.gen.v1.urn.opendaylight
+ .params.xml.ns.yang.controller.pcep.sync.optimizations.rev200720.Tlvs1Builder()
+ .setLspDbVersion(new LspDbVersionBuilder().setLspDbVersionValue(Uint64.valueOf(3L))
.build()).build()).build()), true, false),
- Optional.of(srpBuilder.build()), createPath(Collections.emptyList()));
+ Optional.of(srpBuilder.build()), createPath(Collections.emptyList()));
}
private static Pcrpt getPcrt() {
return MsgBuilderUtil.createPcRtpMessage(new LspBuilder().setPlspId(new PlspId(Uint32.ONE)).setTlvs(
- new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev181109.lsp
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.lsp
.object.lsp.TlvsBuilder().setLspIdentifiers(new LspIdentifiersBuilder()
.setLspId(new LspId(Uint32.ONE)).build()).setSymbolicPathName(
- new SymbolicPathNameBuilder().setPathName(new SymbolicPathName("test".getBytes())).build())
- .addAugmentation(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep
- .sync.optimizations.rev181109.Tlvs1.class,
- new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync
- .optimizations.rev181109.Tlvs1Builder().setLspDbVersion(new LspDbVersionBuilder()
+ new SymbolicPathNameBuilder().setPathName(new SymbolicPathName("test".getBytes())).build())
+ .addAugmentation(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller
+ .pcep.sync.optimizations.rev200720.Tlvs1Builder().setLspDbVersion(new LspDbVersionBuilder()
.setLspDbVersionValue(Uint64.ONE).build()).build()).build())
.setPlspId(new PlspId(Uint32.ONE)).setSync(true).setRemove(false)
.setOperational(OperationalStatus.Active).build(), Optional.empty(),