(TID) New BGP-LS Speaker component
Proposers
- Oscar González de Dios (TID)
- Pablo Armingol (TID)
- Juan Carlos Caja (TID)
- Lluis Gifre (CTTC) [reviewer]
Description
Implementation of a topology module to retrieve topological information from an IP/MPLS network via BGP-LS and incorporate it in TFS controller. The module will contain a BGP-LS speaker that will connect to remote BGP-LS speakers enabled in the network and read the Update messages sent by them.
The information about nodes read from update messages from remote BGP-LS speakers will be incorporated in TFS Context database. This way, the controller will maintain a real time view of the IP/MPLS network topology in terms of nodes.
The proposal is to have a first version obtaining basic information (to be detailed here) and increase the support of detailed nodes and link information in subsequent features. The basic information required is:
- Nodes: Node name, router-id
Future versions will consider detailed Links, Traffic Enginnering and Segment routing information that will be documented in specific feature requests. Exporting the information will be considered in a separated feature.
The network scenario that is consider in this use case is an IP/MPLS network in which every router participates in one or more IGP processes. BGP-LS Speakers are placed in the routers to export the topology to the TFS Controller.
Demo or definition of done
- TFS controller is able to establish BGP-LS connection with remote BGP-LS speakers from at least 2 different vendor implementations.
- TFS controller is able to read node updates.
- TFS shows new discovered nodes via GUI.
References
Feature Design (for New-Features)
Clarifications to Expected Behavior Changes
New workflows
Workflow 1: Set up new connection with a remote BGP-LS Speaker-
- Via WebUI new remote BGP-LS speaker nodes can be added. A BGP-LS speaker is identified with an IP address and a port. Multiple BGP-LS speakers can be added.
- After a remote BGP-LS speaker is added, the TFS BGP-LS module will try to establish a BGP session with the target remote BGP-LS speaker.
- If the session is succesful, the TFS BGP-LS speaker will start receiving messages from the remote speaker.
- If the session establishment is NOT successful, it will try to set up a new session a fixed time after (go to step number 2)
- One the session is established, node updates are received. Note that TFS WILL NOT SEND any update, it will be READ ONLY. For processing of nodes go to Workflow 2.
Workflow 2: Manage node mesagges
- A node Update is received
- If the node is NOT already present in the TFS controller database it will elegible to be added to the controller.
- If the node is already present in TFS controller, update the information that has changed.
Workflow 2.b: Manage node withdraw messages
- A node withdrawn Update is received indicating this node is no longer available.
- Mark the node as "down" in the Context database
- Via WebUI, the TFS user can delete nodes that have been down for a long time. Note that, in this version TFS will not automatically remove nodes, just flag them as down.
Changes in the Context component logic:
- New elements must be added to manage the data obtained with the new module. It is necessary to be able to differentiate between the devices associated to a topology and the possible devices to be added to this topology.
- New elements must be added to manage the data obtained with the new module.
- The database has to be modified to store the information about the nodes received.
Communication between components:
-
Topology - Context:
- Information about the nodes of a topology is requested to know which nodes are pending to be added.
- Send the information about the nodes to be added.
-
Context - Topology:
- The context module informs the Topology Collection module about the nodes that are already in currrent topology.
-
WebUI - Context:
- Requests information about the nodes to be added to the topology.
- Updates the information of equipment in the topology
- Updates the information of nodes pending to be added to the topology
-
Context - WebUI:
- Send the information about the equipment to be added in the topology. ...
References
List of relevant references for this feature. ...
Assumptions
- The remote BGP-LS speakers are configured in at least one router of each IGP domain that wants to be discovered.
- The autonomous system is configured in each remote BGP-LS speaker announcing updates.
- A unique instance ID is configured for each IGP domain.
- When multiple BGP-LS speakers announce the same IGP domain nodes and links, the instance ID is the same.
- The network nodes HAVE a unique name (textual, typically human readable name) and unique router id configured within their domain.
Impacted Components
Context, WebUI
Context component Impact
The Context data model and database structure needs to be elaborated with the following new fields/messages:
WebUI component Impact
The WebUI structure needs to be modified by adding a new tab to manage the topology. This tab should have the following functionalities:
- Create topologies
- Configure the speaker to be connected to the associated topology.
- Add the devices discovered by the speaker to the corresponding topology.
- Remove devices from a topology.
Testing
The new feature should allow topology management through the TeraFLowSDN driver. To demonstrate that the implementation of this feature is complete, the following conditions must be met:
- The user must provide the data of the bgp-speaker to which it wants to connect.
- The "Topology" module must manage the messages received from the speaker by differentiating the data of the existing and non-existing devices in the current topology.
- If the user wants to add a new device to the topology, the "Topology" module must display the existing nodes not included in the current topology.