Class HandshakeManagerImpl

java.lang.Object
org.opendaylight.openflowplugin.impl.connection.HandshakeManagerImpl
All Implemented Interfaces:
HandshakeManager

public class HandshakeManagerImpl extends Object implements HandshakeManager
  • Constructor Details

    • HandshakeManagerImpl

      public HandshakeManagerImpl(ConnectionAdapter connectionAdapter, org.opendaylight.yangtools.yang.common.Uint8 highestVersion, List<org.opendaylight.yangtools.yang.common.Uint8> versionOrder, ErrorHandler errorHandler, HandshakeListener handshakeListener, boolean useVersionBitmap, DeviceConnectionRateLimiter deviceConnectionRateLimiter, int deviceConnectionHoldTime, DeviceConnectionStatusProvider deviceConnectionStatusProvider)
      Constructor.
      Parameters:
      connectionAdapter - connection adaptor for switch
      highestVersion - highest openflow version
      versionOrder - list of version in order for connection protocol negotiation
      errorHandler - the ErrorHandler
      handshakeListener - the HandshakeListener
      useVersionBitmap - should use negotiation bit map
      deviceConnectionRateLimiter - device connection rate limiter utility
      deviceConnectionHoldTime - deivce connection hold time in seconds
      deviceConnectionStatusProvider - utility for maintaining device connection states
  • Method Details

    • shake

      public void shake(HelloMessage receivedHello)
      Description copied from interface: HandshakeManager
      Process current handshake step.
      Specified by:
      shake in interface HandshakeManager
      Parameters:
      receivedHello - message from device we need to act upon
    • getVersion

      public org.opendaylight.yangtools.yang.common.Uint8 getVersion()
      Description copied from interface: HandshakeManager
      Return negotiated version.
      Specified by:
      getVersion in interface HandshakeManager
      Returns:
      negotiated version.
    • proposeCommonBitmapVersion

      protected org.opendaylight.yangtools.yang.common.Uint8 proposeCommonBitmapVersion(List<Elements> list)
      find common highest supported bitmap version.
      Parameters:
      list - bitmap list
      Returns:
      proposed bitmap value
    • proposeNextVersion

      protected org.opendaylight.yangtools.yang.common.Uint8 proposeNextVersion(org.opendaylight.yangtools.yang.common.Uint8 remoteVersion)
      find supported version based on remoteVersion.
      Parameters:
      remoteVersion - openflow version supported by remote entity
      Returns:
      openflow version
    • postHandshake

      protected void postHandshake(org.opendaylight.yangtools.yang.common.Uint8 proposedVersion, org.opendaylight.yangtools.yang.common.Uint32 xid)
      after handshake set features, register to session.
      Parameters:
      proposedVersion - proposed openflow version
      xid - transaction id
    • isAllowedToConnect

      public boolean isAllowedToConnect(BigInteger nodeId)