Skip to content

kytos-ng/topology

Folders and files

NameName
Last commit message
Last commit date
Jul 8, 2022
Sep 12, 2022
Oct 24, 2017
May 3, 2023
May 23, 2022
May 13, 2023
Apr 11, 2022
Dec 15, 2021
Sep 29, 2017
May 5, 2020
Sep 29, 2017
May 13, 2023
Feb 14, 2023
Sep 29, 2017
Aug 9, 2022
Dec 1, 2022
Mar 2, 2018
Jun 20, 2022
Dec 15, 2022
May 13, 2023
Sep 27, 2018
Nov 20, 2020
Sep 12, 2022
Jun 20, 2022
Apr 24, 2023
Apr 21, 2023
Apr 21, 2023

Repository files navigation

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
$ python setup.py develop

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/.*.link_available_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.get
  • 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.current

Event reporting the current topology, this is meant as a broadcast response when a subscriber needs it for reconciliation.

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.(switches|interfaces|links).(added|removed)

Event reporting metadata changes.

Content:

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

kytos/topology.notify_link_up_if_status

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

Content:

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

About

Kytos Main Topology Network Application (NApp)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%