kytos-ng / topology

Kytos Main Topology Network Application (NApp)

Home Page:https://kytos-ng.github.io/api/topology.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stable Tag License Build status Code coverage Code-quality score

kytos/topology

NApp that manages the network topology

Overview

This NApp is responsible for tracking the network topology and supplying network topology information to any NApp that requires it.

This NApp intends to be protocol agnostic. Therefore, if you want to provide network topology data from any network protocol, check the listened events section and generate them from your NApp.

Installing

To install this NApp, first, make sure to have the same venv activated as you have kytos installed on:

$ git clone https://github.com/kytos-ng/topology.git
$ cd topology
$ python3 -m pip install --editable .

To install the kytos environment, please follow our development environment setup.

Requirements

Events

Subscribed

  • .*.switch.(new|reconnected)
  • .*.connection.lost
  • .*.switch.interface.created
  • .*.switch.interface.deleted
  • .*.switch.interface.link_up
  • .*.switch.interface.link_down
  • .*.switch.port.created
  • .*.switch.port.modified
  • .*.switch.port.deleted
  • .*.interface.is.nni
  • .*.network_status.updated
  • kytos/core.interface_tags
  • kytos/maintenance.start_link
  • kytos/maintenance.end_link
  • kytos/maintenance.start_switch
  • kytos/maintenance.end_switch
  • kytos/.*.liveness.(up|down)
  • kytos/.*.liveness.disabled
  • kytos/topology.notify_link_up_if_status

Published

kytos/topology.topology_loaded

Event reporting that the topology was loaded from the database. It contains the most updated topology.

Content:

{
  'topology': <Topology object>,
  'failed_switches': {<description of failed switches>},
  'failed_links': {<description of failed links>}
}

kytos/topology.updated

Event reporting that the topology was updated. It contains the most updated topology.

Content:

{
  'topology': <Topology object>
}

kytos/topology.switch.enabled

Event reporting that the switch was enabled. It contains the switch id.

Content:

{
  'dpid': <switch.id>
}

kytos/topology.switch.disabled

Event reporting that the switch was disabled. It contains the switch id.

Content:

{
  'dpid': <switch.id>
}

kytos/topology.link.up

Event reporting that the link was changed to 'up'. It contains the link instance.

Content:

{
  'link': <Link object>
}

kytos/topology.link.down

Event reporting that the link was changed to 'down'. It contains the link instance.

Content:

{
  'link': <Link object>
}

kytos/topology.(switcheslinks).(added|removed)

Event reporting metadata changes.

Content:

{
  'switch|interface|link': <object>,
  'metadata': object's metadata dict
}

Event reporting that the link was changed to 'down'. It contains the link instance.

Content:

{
  'reason': 'link enabled'
  'link': <Link object>
}

kytos/topology.link.deleted

Event reporting that a link was deleted. It contains the link instance.

Content:

kytos/topology.switch.deleted

Event reporting that a switch was deleted. It contains the switch instance.

Content:

kytos/topology.link.(enabled|disabled) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Event reporting that a link status has changed to enabled or disabled.

Content:

About

Kytos Main Topology Network Application (NApp)

https://kytos-ng.github.io/api/topology.html

License:MIT License


Languages

Language:Python 100.0%