Class AbstractTopologySessionListener

java.lang.Object
org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener
All Implemented Interfaces:
EventListener, PCEPSessionListener

public abstract class AbstractTopologySessionListener extends Object
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 Details

    • onSessionUp

      public final void onSessionUp(PCEPSession psession)
      Description copied from interface: PCEPSessionListener
      Fired when the session was established successfully.
      Specified by:
      onSessionUp in interface PCEPSessionListener
      Parameters:
      psession - Peer address families which we accepted
    • onSessionDown

      public final void onSessionDown(PCEPSession psession, Exception exception)
      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 interface PCEPSessionListener
      Parameters:
      psession - that went down
      exception - Exception that was thrown as the cause of session being down
    • onSessionTerminated

      public final void onSessionTerminated(PCEPSession psession, PCEPTerminationReason reason)
      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 interface PCEPSessionListener
      reason - the cause why the session went down
    • onMessage

      public final void onMessage(PCEPSession psession, Message message)
      Description copied from interface: PCEPSessionListener
      Fired when a normal protocol message is received.
      Specified by:
      onMessage in interface PCEPSessionListener
      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 context
      message - 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 context
      id - Revision-specific LSP identifier
      lspName - LSP name
      rlb - Reported LSP builder
      solicited - True if the update was solicited
      remove - 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 Context
      id - Revision-specific LSP identifier
    • validateReportedLsp

      protected abstract Object validateReportedLsp(Optional<ReportedLsp> rep, LspId input)
    • loadLspData

      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)
    • 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)