Class 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.
    • Field Detail

      • FAIL_TIMER_VALUE

        public static final int FAIL_TIMER_VALUE
        Unified KeepWait and OpenWait timer expiration, in seconds.
        See Also:
        Constant Field Values
    • Constructor Detail

      • AbstractPCEPSessionNegotiator

        protected AbstractPCEPSessionNegotiator​(io.netty.util.concurrent.Promise<PCEPSessionImpl> promise,
                                                io.netty.channel.Channel channel)
    • Method Detail

      • getInitialProposal

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

        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

        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

        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

        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.
      • setTlsConfiguration

        public void setTlsConfiguration​(Tls tlsConfiguration)