Class AbstractTopologySessionListener
java.lang.Object
org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener
- All Implemented Interfaces:
EventListener
,PCEPSessionListener
Base class for PCEP topology providers. It handles the common tasks involved in managing a PCEP server (PCE)
endpoint, and exposing a network topology based on it. It needs to be subclassed to form a fully functional block,
where the subclass provides handling of incoming messages.
-
Method Summary
Modifier and TypeMethodDescription@NonNull com.google.common.util.concurrent.ListenableFuture<OperationResult>
addLsp
(AddLspArgs input) void
close()
@NonNull com.google.common.util.concurrent.ListenableFuture<OperationResult>
final int
final boolean
final boolean
final boolean
final boolean
protected final boolean
protected abstract void
loadLspData
(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node node, Map<String, ReportedLsp> lspData, Map<PlspId, String> lsps, boolean incrementalSynchro) protected final @NonNull org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ReportedLsp>
lspIdentifier
(String name) protected abstract boolean
onMessage
(org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.MessageContext ctx, Message message) Perform revision-specific message processing when a message arrives.final void
onMessage
(PCEPSession psession, Message message) Fired when a normal protocol message is received.final void
onSessionDown
(PCEPSession psession, Exception exception) Fired when the session went down because of an IO error.final void
onSessionTerminated
(PCEPSession psession, PCEPTerminationReason reason) Fired when the session is terminated locally.final void
onSessionUp
(PCEPSession psession) Fired when the session was established successfully.protected final void
removeLsp
(org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.MessageContext ctx, PlspId id) Remove LSP from the database.@NonNull com.google.common.util.concurrent.ListenableFuture<OperationResult>
removeLsp
(RemoveLspArgs input) protected final void
stateSynchronizationAchieved
(org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.MessageContext ctx) Indicate that the peer has completed state synchronization.com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<Void>>
@NonNull com.google.common.util.concurrent.ListenableFuture<OperationResult>
triggerSync
(TriggerSyncArgs input) final long
protected final void
updateLsp
(org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.MessageContext ctx, PlspId id, String lspName, ReportedLspBuilder rlb, boolean solicited, boolean remove) Update an LSP in the data store.@NonNull com.google.common.util.concurrent.ListenableFuture<OperationResult>
updateLsp
(UpdateLspArgs input) protected final void
updatePccNode
(org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.MessageContext ctx, PathComputationClient pcc) protected abstract Object
validateReportedLsp
(Optional<ReportedLsp> rep, LspId input)
-
Method Details
-
onSessionUp
Description copied from interface:PCEPSessionListener
Fired when the session was established successfully.- Specified by:
onSessionUp
in interfacePCEPSessionListener
- Parameters:
psession
- Peer address families which we accepted
-
onSessionDown
Description copied from interface:PCEPSessionListener
Fired when the session went down because of an IO error. Implementation should take care of closing underlying session.- Specified by:
onSessionDown
in interfacePCEPSessionListener
- Parameters:
psession
- that went downexception
- Exception that was thrown as the cause of session being down
-
onSessionTerminated
Description copied from interface:PCEPSessionListener
Fired when the session is terminated locally. The session has already been closed and transitioned to IDLE state. Any outstanding queued messages were not sent. The user should not attempt to make any use of the session.- Specified by:
onSessionTerminated
in interfacePCEPSessionListener
reason
- the cause why the session went down
-
onMessage
Description copied from interface:PCEPSessionListener
Fired when a normal protocol message is received.- Specified by:
onMessage
in interfacePCEPSessionListener
message
- Protocol message
-
onMessage
protected abstract boolean onMessage(org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.MessageContext ctx, Message message) Perform revision-specific message processing when a message arrives.- Parameters:
ctx
- Message processing contextmessage
- Protocol message- Returns:
- True if the message type is not handle.
-
close
public void close() -
updateLsp
protected final void updateLsp(org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.MessageContext ctx, PlspId id, String lspName, ReportedLspBuilder rlb, boolean solicited, boolean remove) Update an LSP in the data store.- Parameters:
ctx
- Message contextid
- Revision-specific LSP identifierlspName
- LSP namerlb
- Reported LSP buildersolicited
- True if the update was solicitedremove
- True if this is an LSP path removal
-
stateSynchronizationAchieved
protected final void stateSynchronizationAchieved(org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.MessageContext ctx) Indicate that the peer has completed state synchronization.- Parameters:
ctx
- Message context
-
updatePccNode
protected final void updatePccNode(org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.MessageContext ctx, PathComputationClient pcc) -
lspIdentifier
protected final @NonNull org.opendaylight.yangtools.yang.binding.InstanceIdentifier<ReportedLsp> lspIdentifier(String name) -
removeLsp
protected final void removeLsp(org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.MessageContext ctx, PlspId id) Remove LSP from the database.- Parameters:
ctx
- Message Contextid
- Revision-specific LSP identifier
-
validateReportedLsp
-
loadLspData
-
isSynchronized
protected final boolean isSynchronized() -
getDelegatedLspsCount
public final int getDelegatedLspsCount() -
updateInterval
public final long updateInterval() -
isSessionSynchronized
public final boolean isSessionSynchronized() -
isInitiationCapability
public final boolean isInitiationCapability() -
isStatefulCapability
public final boolean isStatefulCapability() -
isLspUpdateCapability
public final boolean isLspUpdateCapability() -
tearDownSession
public com.google.common.util.concurrent.ListenableFuture<org.opendaylight.yangtools.yang.common.RpcResult<Void>> tearDownSession(TearDownSessionInput input) -
addLsp
@NonNull com.google.common.util.concurrent.ListenableFuture<OperationResult> addLsp(AddLspArgs input) -
removeLsp
@NonNull com.google.common.util.concurrent.ListenableFuture<OperationResult> removeLsp(RemoveLspArgs input) -
updateLsp
@NonNull com.google.common.util.concurrent.ListenableFuture<OperationResult> updateLsp(UpdateLspArgs input) -
ensureLspOperational
@NonNull com.google.common.util.concurrent.ListenableFuture<OperationResult> ensureLspOperational(EnsureLspOperationalInput input) -
triggerSync
@NonNull com.google.common.util.concurrent.ListenableFuture<OperationResult> triggerSync(TriggerSyncArgs input)
-