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
Nested Classes Modifier and Type Class Description static classAbstractPCEPSessionNegotiator.StatePCEP session negotiation state transitions are described in RFC5440.
-
Field Summary
Fields Modifier and Type Field Description static intFAIL_TIMER_VALUEUnified KeepWait and OpenWait timer expiration, in seconds.-
Fields inherited from class org.opendaylight.protocol.pcep.impl.AbstractSessionNegotiator
channel, promise
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractPCEPSessionNegotiator(io.netty.util.concurrent.Promise<PCEPSessionImpl> promise, io.netty.channel.Channel channel)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract PCEPSessionImplcreateSession(io.netty.channel.Channel channel, Open localPrefs, Open remotePrefs)Create the protocol session.protected abstract OpengetCounterProposal(Open proposal)Given a peer-provided session parameters proposal which we found unacceptable, provide a counter-proposal.protected abstract OpengetInitialProposal()Get the initial session parameters proposal.protected abstract OpengetRevisedProposal(Open suggestion)Get the revised session parameters proposal based on the feedback the peer has provided to us.protected voidhandleMessage(Message msg)protected abstract booleanisProposalAcceptable(Open proposal)Check whether a peer-provided session parameters proposal is acceptable.protected voidnegotiationFailed(Throwable cause)voidsetTlsConfiguration(Tls tlsConfiguration)protected voidstartNegotiation()-
Methods inherited from class org.opendaylight.protocol.pcep.impl.AbstractSessionNegotiator
channelActive, channelRead, exceptionCaught, negotiationSuccessful, sendMessage
-
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggered
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
-
-
-
-
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.
-
startNegotiation
protected final void startNegotiation()
- Specified by:
startNegotiationin classAbstractSessionNegotiator
-
handleMessage
protected final void handleMessage(Message msg)
- Specified by:
handleMessagein classAbstractSessionNegotiator
-
setTlsConfiguration
public void setTlsConfiguration(Tls tlsConfiguration)
-
negotiationFailed
protected void negotiationFailed(Throwable cause)
- Overrides:
negotiationFailedin classAbstractSessionNegotiator
-
-