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
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
Modifier and TypeClassDescriptionstatic enum
PCEP session negotiation state transitions are described in RFC5440.Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
io.netty.channel.ChannelHandler.Sharable
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Unified KeepWait and OpenWait timer expiration, in seconds.Fields inherited from class org.opendaylight.protocol.pcep.impl.AbstractSessionNegotiator
channel, promise
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractPCEPSessionNegotiator
(io.netty.util.concurrent.Promise<PCEPSession> promise, io.netty.channel.Channel channel, PcepSessionTls tlsConfiguration) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract PCEPSessionImpl
createSession
(io.netty.channel.Channel channel, Open localPrefs, Open remotePrefs) Create the protocol session.protected abstract Open
getCounterProposal
(Open proposal) 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
getRevisedProposal
(Open suggestion) Get the revised session parameters proposal based on the feedback the peer has provided to us.protected final void
handleMessage
(Message msg) protected abstract boolean
isProposalAcceptable
(Open proposal) Check whether a peer-provided session parameters proposal is acceptable.protected void
negotiationFailed
(Throwable cause) protected final void
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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.netty.channel.ChannelHandler
handlerAdded, handlerRemoved
Methods inherited from interface io.netty.channel.ChannelInboundHandler
channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggered
-
Field Details
-
FAIL_TIMER_VALUE
public static final int FAIL_TIMER_VALUEUnified KeepWait and OpenWait timer expiration, in seconds.- See Also:
-
-
Constructor Details
-
AbstractPCEPSessionNegotiator
protected AbstractPCEPSessionNegotiator(io.netty.util.concurrent.Promise<PCEPSession> promise, io.netty.channel.Channel channel, PcepSessionTls tlsConfiguration)
-
-
Method Details
-
getInitialProposal
Get the initial session parameters proposal.- Returns:
- Session parameters proposal.
-
getRevisedProposal
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
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
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:
startNegotiation
in classAbstractSessionNegotiator
-
handleMessage
- Specified by:
handleMessage
in classAbstractSessionNegotiator
-
negotiationFailed
- Overrides:
negotiationFailed
in classAbstractSessionNegotiator
-