Enhanced Linkd Enhanced Linkd (Enlinkd) discovers connections between nodes using data generated by various link discovery protocols and accessible via SNMP. Enlinkd gathers this data regularly and creates a snapshot of a device’s neighbors from its perspective by SNMP data collectors. Enlinkd consolidates the collected Data by Bridge Domain Discovery and Topologies Updater. Enlinkd-Bridge Domain Discovery use the data gathered by Bridge and IpNetToMedia collectors to provide Bridge Broadcast Domain layout. The Bridge Forwarding Table provided by the single nodes displays information about the MAC address learned on which bridge port, this is what the Bridge considers a connection: this is not very useful, so Bridge Discovery performs domain calculations to assign to every MAC address the port where the device that holds it is effectively connected (or the known nearest bridge port). Enlinkd-Updaters, for every supported discovery protocol, use the provided Topologies Update API to provide connections information to other OpenNMS service and daemon via OnmsTopologyDao. The provided topologies are used in topology-map and for sending TopologyMessage via Kafka Producer. The connections discovered by Enlinkd collectors and by Bridge Domain Discovery are called links. The term link, within the context of Enlinkd, is not synonymous with the term "link" when used with respect to the network OSI Layer 2 domain, whereby a link only indicates a Layer 2 connection. A link in context of Enlinkd is a more abstract concept and describes any connection between two Horizon nodes. These links are discovered based on information provided by an agent’s understanding of connections at the OSI Layer 2, Layer 3, or other OSI layers. The topologies that Enlinkd-Updaters discover are made of vertices and edges. The following sections describe the Enlinkd daemon and its configuration. Additionally, the supported link discovery implementations are described as well as a list of the SNMP MIBs that the SNMP agents must expose for EnLinkd to gather links between nodes. You can view detailed information about a node’s connections (discovered links) and supporting link data on the node detail page within the Horizon Web UI. Enlinkd daemon Essentially, each Enlinkd-Collector asks each device the following question: "What is the network topology from your point of view?" The Enlinkd-Discovery process attempts to discover bridge domain links with the data coming from all collected Bridge Forwarding Tables. The Enlinkd-Updaters correlate all collected topology data to generate a global topology layout of your network. For large environments, you can configure the behavior of Enlinkd. During the EnLink discovery process, informational and error output is logged to a global log file. Table 1. Global log and configuration files for Enlinkd File Description Location enlinkd-configuration.xml Global configuration for the daemon process $OPENNMS_HOME/etc enlinkd.log Global Enlinkd log file $OPENNMS_HOME/logs log4j2.xml Configuration file to set the log level for Enlinkd. $OPENNMS_HOME/etc Configuration file for Enlinkd <?xml version="1.0" encoding="ISO-8859-1"?> <enlinkd-configuration threads="5" initial_sleep_time="60000" rescan_interval="86400000" use-cdp-discovery="true" use-bridge-discovery="true" use-lldp-discovery="true" use-ospf-discovery="true" use-isis-discovery="true" topology_interval="30000" bridge_topology_interval="300000" max_bft="100" discovery-bridge-threads="1" /> If multiple protocols are enabled, the links will be discovered for each enabled discovery protocol. The topology Web UI visualizes links for each discovery protocol. For example, if you start CDP and LLDP discovery, the Web UI visualizes a CDP link and an LLDP link. Table 2. Description for global configuration parameter Attribute Description Default Integer threads Number of parallel threads collectors, updaters, and discovery use. 5 initial_sleep_time Time in milliseconds to wait to start collectors after Horizon is started. 60000 rescan_interval Interval in milliseconds for collectors. 86400000 topology_interval Interval in milliseconds for updater. 30000 bridge_topology_interval Interval in milliseconds for discovery. 300000 max_bft The maximum number of bridge forwarding tables (BFTs) stored in memory for discovery. 100 discovery-bridge-threads The number of threads used for discovery. 1 Boolean use-cdp-discovery Enable or disable discovery based on CDP information. true use-bridge-discovery Enable or disable discovery based on the bridge information. true use-lldp-discovery Enable or disable discovery based on LLDP information. true use-ospf-discovery Enable or disable discovery based on OSPF information. true use-isis-discovery Enable or disable discovery based on IS-IS information. true The discovery for bridge first start is scheduled at initial_sleep_time + bridge_topology_interval. The updaters' first start is scheduled at 0L. Restart OpenNMS or just the Enlinkd daemon to apply configuration changes. Send configuration reload event via CLI cd ${OPENNMS_HOME}/bin ./send-event.pl uei.opennms.org/internal/reloadDaemonConfig --parm 'daemonName Enlinkd' Asset Topology Provider Layer 2 Link Discovery