Skip to content
AndreKutzleb edited this page Nov 9, 2015 · 9 revisions

TopologyModule

 

Information

ModuleTypeID (hex) 0x0006
ModuleTypeID (decimal) 6
Distribution support single instance
Dependencies SwitchRegistryModule
LinkDiscoveryModule

 

Description

The TopologyModule combines the data provided by the SwitchRegistryModule and the LinkDiscoveryModule. This yields a datastructure representing the Topology of the whole network, including Switches and links between switches. Devices are NOT part of the Topology. Devices can be acquired from the DeviceModule. This module will publish changes in the Topology, and other modules can also request the current topology any time. The Topology is guaranteed to be consistent. This guarantee comprises:

This results in a Topology which contains at most as much information as provided by the SwitchRegistryModule and the LinkDiscoveryModule. The exclusion of information guarantees that for each SwitchToSwitchLink, both endpoints (Switch) exist in Topology.

 

Services Provided (REQUEST/REPLY)


 

GetTopology

Queries the latest consistent topology from the TopologyModule.

Request-MessageType [[REQUEST.TOPOLOGY_MODULE.GET_TOPOLOGY
Request-Payload [[Request-Container
Reply-MessageType [[REPLY.TOPOLOGY_MODULE.GET_TOPOLOGY
Reply-Payload [[Reply-Container

 

Publishes Events (FROM)

TopologyChangedEvent

This event is published when an updated consistent topology is available, which is different from the last published topology.

From-MessageType [[FROM.TOPOLOGY_MODULE.TOPOLOGY_CHANGED_EVENT
From-Payload [[From-Container

 

MessageTypes

For a detailed list of all supported topics, see the TopologyModule.topics file.

 

Implementation Details

Enabling:

On enabling this module subscribes itself to topics of the SwitchRegistryModule for SwitchEvents and to topics of the LinkDiscoveryModule for SwitchLinkEvents.

The information contained is used for building a Topology.

Additionally the TopologyModule initially requests all Switches from the SwitchRegistryModule and all Links between Switche from the LinkDiscoveryModule.

Building a stable Topology:

The TopologyModule ensures that it will only publish a stable (hence valid) Topology. Stable in this context means that the delivered Topology only contains Links between Switches that are already known by the TopologyModule. Therefore it is not possible that the returned Topology will contain any Links that lead to no Switch.

Request handling:

  • Incoming requests are handled internally to the specific request type. According to these types the correct replies are generated and returned.
  • If the given request type was unknown a reply with ReplyType NO_REPLY is returned.

Subscriptions used (FROM)


MessageType: FROM.LINK_DISCOVERY_MODULE.SWITCH_LINK_EVENT.*
Comment: Update topology based on link events.


MessageType: FROM.SWITCH_REGISTRY_MODULE.SWITCH_EVENT.*
Comment: Update topology based on switch events.


 

Clone this wiki locally