Class AbstractPCEPSessionNegotiator

java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
org.opendaylight.protocol.pcep.impl.AbstractSessionNegotiator
org.opendaylight.protocol.pcep.impl.AbstractPCEPSessionNegotiator
All Implemented Interfaces:
io.netty.channel.ChannelHandler, io.netty.channel.ChannelInboundHandler, SessionNegotiator
Direct Known Subclasses:
DefaultPCEPSessionNegotiator

public abstract class AbstractPCEPSessionNegotiator extends AbstractSessionNegotiator
Abstract PCEP session negotiator. Takes care of basic handshake without implementing a specific policy. Policies need to be provided by a specific subclass.
  • Nested Class Summary Link icon

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    PCEP session negotiation state transitions are described in RFC5440.

    Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler Link icon

    io.netty.channel.ChannelHandler.Sharable
  • Field Summary Link icon

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Unified KeepWait and OpenWait timer expiration, in seconds.

    Fields inherited from class org.opendaylight.protocol.pcep.impl.AbstractSessionNegotiator Link icon

    channel, promise
  • Constructor Summary Link icon

    Constructors
    Modifier
    Constructor
    Description
    protected
    AbstractPCEPSessionNegotiator(io.netty.util.concurrent.Promise<PCEPSession> promise, io.netty.channel.Channel channel, PcepSessionTls tlsConfiguration)
     
  • Method Summary Link icon

    Modifier and Type
    Method
    Description
    protected abstract PCEPSessionImpl
    createSession(io.netty.channel.Channel channel, Open localPrefs, Open remotePrefs)
    Create the protocol session.
    protected abstract Open
    Given a peer-provided session parameters proposal which we found unacceptable, provide a counter-proposal.
    protected abstract Open
    Get the initial session parameters proposal.
    protected abstract Open
    Get the revised session parameters proposal based on the feedback the peer has provided to us.
    protected final void
     
    protected abstract boolean
    Check whether a peer-provided session parameters proposal is acceptable.
    protected void
     
    protected final void
     

    Methods inherited from class org.opendaylight.protocol.pcep.impl.AbstractSessionNegotiator Link icon

    channelActive, channelRead, exceptionCaught, negotiationSuccessful, sendMessage

    Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter Link icon

    channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggered

    Methods inherited from class io.netty.channel.ChannelHandlerAdapter Link icon

    ensureNotSharable, handlerAdded, handlerRemoved, isSharable

    Methods inherited from class java.lang.Object Link icon

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.netty.channel.ChannelHandler Link icon

    handlerAdded, handlerRemoved

    Methods inherited from interface io.netty.channel.ChannelInboundHandler Link icon

    channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggered
  • Field Details Link icon

    • FAIL_TIMER_VALUE Link icon

      public static final int FAIL_TIMER_VALUE
      Unified KeepWait and OpenWait timer expiration, in seconds.
      See Also:
  • Constructor Details Link icon

    • AbstractPCEPSessionNegotiator Link icon

      protected AbstractPCEPSessionNegotiator(io.netty.util.concurrent.Promise<PCEPSession> promise, io.netty.channel.Channel channel, PcepSessionTls tlsConfiguration)
  • Method Details Link icon

    • getInitialProposal Link icon

      protected abstract Open getInitialProposal()
      Get the initial session parameters proposal.
      Returns:
      Session parameters proposal.
    • getRevisedProposal Link icon

      protected abstract Open getRevisedProposal(Open suggestion)
      Get the revised session parameters proposal based on the feedback the peer has provided to us.
      Parameters:
      suggestion - Peer-provided suggested session parameters
      Returns:
      Session parameters proposal, or null if peers session parameters preclude us from suggesting anything
    • isProposalAcceptable Link icon

      protected abstract boolean isProposalAcceptable(Open proposal)
      Check whether a peer-provided session parameters proposal is acceptable.
      Parameters:
      proposal - peer-proposed session parameters
      Returns:
      true if the proposal is acceptable, false otherwise
    • getCounterProposal Link icon

      protected abstract Open getCounterProposal(Open proposal)
      Given a peer-provided session parameters proposal which we found unacceptable, provide a counter-proposal. The requirement is that the isProposalAcceptable() method has to return true when presented with this proposal.
      Parameters:
      proposal - unacceptable peer proposal
      Returns:
      our counter-proposal, or null if there is no way to negotiate an acceptable proposal
    • createSession Link icon

      protected abstract PCEPSessionImpl createSession(io.netty.channel.Channel channel, Open localPrefs, Open remotePrefs)
      Create the protocol session.
      Parameters:
      channel - Underlying channel.
      localPrefs - Session preferences proposed by us and accepted by the peer.
      remotePrefs - Session preferences proposed by the peer and accepted by us.
      Returns:
      New protocol session.
    • startNegotiation Link icon

      protected final void startNegotiation()
      Specified by:
      startNegotiation in class AbstractSessionNegotiator
    • handleMessage Link icon

      protected final void handleMessage(Message msg)
      Specified by:
      handleMessage in class AbstractSessionNegotiator
    • negotiationFailed Link icon

      protected void negotiationFailed(Throwable cause)
      Overrides:
      negotiationFailed in class AbstractSessionNegotiator