Class LocalNetworkDiscoveryProtocol

java.lang.Object
pt.unl.fct.di.novasys.babel2.protocols.discovery.LocalNetworkDiscoveryProtocol
All Implemented Interfaces:
BabelProtocol, ResolverProviderBabelProtocol

public class LocalNetworkDiscoveryProtocol extends Object implements ResolverProviderBabelProtocol
Protocol that discovers peer nodes on local networks using multicast/broadcast probes and answers.

Implements ResolverProviderBabelProtocol to resolve IPBabelNodeComponent endpoints dynamically when probes are triggered by other protocols.

  • Constructor Details

    • LocalNetworkDiscoveryProtocol

      public LocalNetworkDiscoveryProtocol(NodeStore store)
      Constructs a new local network discovery protocol instance.
      Parameters:
      store - the node store for registering discovered node components
  • Method Details

    • init

      public void init(Babel runtime, ComposedBabelChannel composedChannel)
      Description copied from interface: BabelProtocol
      Initiates the protocol's logic and execution. This method is managed internally by the Babel runtime and should not be invoked directly by external components.
      Specified by:
      init in interface BabelProtocol
      Parameters:
      runtime - the Babel runtime
      composedChannel - the channel assigned to this protocol
    • uponBabelNodeProbe

      public void uponBabelNodeProbe(BabelNode node)
      Description copied from interface: ResolverProviderBabelProtocol
      Called when a Babel node is probed.
      Specified by:
      uponBabelNodeProbe in interface ResolverProviderBabelProtocol
      Parameters:
      node - the probed node
    • uponBabelNodeProbeMessage

      @UponMessageIn public void uponBabelNodeProbeMessage(BabelNodeProbeMessage msg, BabelNode sender)
      Handles incoming discovery probes from peer nodes. If this node is the probed target, responds with an answer containing all local open channels.
      Parameters:
      msg - the received probe message
      sender - the node that sent the probe
    • uponBabelNodeAnswer

      @UponMessageIn public void uponBabelNodeAnswer(BabelNodeAnswer msg, BabelNode sender)
      Handles incoming discovery answers, registering open channel endpoints into the NodeStore and completing pending component resolution.
      Parameters:
      msg - the received answer message containing channel information
      sender - the node responding with channel info