Skip to content

kytos-ng/mef_eline

This branch is 1028 commits ahead of, 1 commit behind kytos/mef_eline:refs/heads/master.

Folders and files

NameName
Last commit message
Last commit date
Mar 6, 2024
Feb 26, 2025
Mar 19, 2024
Feb 25, 2025
Aug 12, 2024
Nov 1, 2024
Feb 24, 2025
Jan 28, 2025
Jan 5, 2022
Apr 26, 2022
Feb 26, 2025
Feb 14, 2023
Nov 2, 2017
Aug 11, 2022
Jan 21, 2025
Nov 10, 2017
Aug 30, 2021
Nov 27, 2024
Sep 9, 2024
Feb 25, 2025
Dec 4, 2024
Sep 9, 2022
Nov 12, 2017
Jan 3, 2022
Aug 8, 2024
Apr 25, 2023
Jul 19, 2024
Mar 6, 2024
Feb 24, 2025

Repository files navigation

Stable Tag License Build status Code coverage Code-quality score

kytos/mef_eline

NApp that manages point to point L2 Ethernet Virtual Circuits

Overview

This Napp allows a user to create a point to point L2 Ethernet Virtual Circuit.

Features

  • REST API to create/modify/delete circuits;
  • REST API to create/modify/delete circuit scheduling;
  • list of circuits in memory and also synchronized to a permanent storage;
  • circuits can be installed at time of request or have an installation schedule;
  • circuits can use a predefined path or find a dynamic path;
  • the NApp will move circuits to another path in case of a link down;
  • web UI for circuits management.

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/mef_eline.git
$ cd mef_eline
$ python3 -m pip install --editable .

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

Requirements

Events

Subscribed

  • kytos/topology.topology_loaded
  • kytos/topology.link_up
  • kytos/topology.link_down
  • kytos/flow_manager.flow.error
  • kytos/flow_manager.flow.removed
  • kytos/of_multi_table.enable_table
  • kytos/mef_eline.evc_affected_by_link_down
  • kytos/mef_eline.redeployed_link_up
  • kytos/mef_eline.redeployed_link_down
  • kytos/mef_eline.deployed

Published

kytos/mef_eline.redeployed_link_down

Event reporting a redeployed circuit after a link down event.

{
  "evc_id": evc.id,
  "id": evc.id,
  "name": evc.name,
  "metadata": evc.metadata,
  "active": evc._active,
  "enabled": evc._enabled,
  "uni_a": evc.uni_a.as_dict(),
  "uni_z": evc.uni_z.as_dict()
}

kytos/mef_eline.error_redeploy_link_down

Event reporting an error with redeploying a circuit with a link down event.

{
  "evc_id": evc.id,
  "id": evc.id,
  "name": evc.name,
  "metadata": evc.metadata,
  "active": evc._active,
  "enabled": evc._enabled,
  "uni_a": evc.uni_a.as_dict(),
  "uni_z": evc.uni_z.as_dict()
}

kytos/mef_eline.evcs_affected_by_link_down

Event reporting that a link down event has occurred.

{
  "evc_id": evc.id,
  "id": evc.id,
  "name": evc.name,
  "metadata": evc.metadata,
  "active": evc._active,
  "enabled": evc._enabled,
  "uni_a": evc.uni_a.as_dict(),
  "uni_z": evc.uni_z.as_dict(),
  "link": link
}

kytos/mef_eline.redeployed_link_up

Event reporting that a link up event has occurred.

{
  "evc_id": evc.id,
  "id": evc.id,
  "name": evc.name,
  "metadata": evc.metadata,
  "active": evc._active,
  "enabled": evc._enabled,
  "uni_a": evc.uni_a.as_dict(),
  "uni_z": evc.uni_z.as_dict()
}

kytos/mef_eline.updated

Event reporting that a circuit has been updated.

{
  "evc_id": evc.id,
  "id": evc.id,
  "name": evc.name,
  "metadata": evc.metadata,
  "active": evc._active,
  "enabled": evc._enabled,
  "uni_a": evc.uni_a.as_dict(),
  "uni_z": evc.uni_z.as_dict()
}

kytos/mef_eline.(deployed|undeployed)

Event reporting that a circuit was deployed or removed.

{
  "evc_id": evc.id,
  "id": evc.id,
  "name": evc.name,
  "metadata": evc.metadata,
  "active": evc._active,
  "enabled": evc._enabled,
  "uni_a": evc.uni_a.as_dict(),
  "uni_z": evc.uni_z.as_dict()
}

kytos/mef_eline.created

Event reporting that a L2 circuit was created.

kytos/mef_eline.enable_table

A response from the kytos/of_multi_table.enable_table event to confirm table settings.

{
  'table_group': <object>
}

kytos/mef_eline.evcs_loaded

Event with all evcs that got loaded

{
  '<evc_id>': <dict>
}

kytos/mef_eline.uni_active_updated

Event published when an EVC active state changes due to a UNI going up or down

{
 "id", evc.id,
 "evc_id": evc.id,
 "name": evc.name,
 "metadata": evc.metadata,
 "active": evc._active,
 "enabled": evc._enabled,
 "uni_a": evc.uni_a.as_dict(),
 "uni_z": evc.uni_z.as_dict()}
}

kytos/mef_eline.failover_deployed

Event published when an EVC failover_path gets deployed. flows are the new deployed flows, and removed_flows are the removed ones.

{
 evc.id: {
   "id", evc.id,
   "evc_id": evc.id,
   "name": evc.name,
   "metadata": evc.metadata,
   "active": evc._active,
   "enabled": evc._enabled,
   "uni_a": evc.uni_a.as_dict(),
   "uni_z": evc.uni_z.as_dict(),
   "flows": [],
   "removed_flows": [],
   "error_reason": string,
   "current_path": evc.current_path.as_dict(),
 }
}

kytos/mef_eline.failover_link_down

Event published when an EVC failover_path switches over. flows are the new deployed flows.

{
 evc.id: {
   "id", evc.id,
   "evc_id": evc.id,
   "name": evc.name,
   "metadata": evc.metadata,
   "active": evc._active,
   "enabled": evc._enabled,
   "uni_a": evc.uni_a.as_dict(),
   "uni_z": evc.uni_z.as_dict(),
   "flows": [],
 }
}

kytos/mef_eline.failover_old_path

Event published when an EVC failover related old path gets removed (cleaned up). removed_flows are the removed flows.

{
 evc.id: {
   "id", evc.id,
   "evc_id": evc.id,
   "name": evc.name,
   "metadata": evc.metadata,
   "active": evc._active,
   "enabled": evc._enabled,
   "uni_a": evc.uni_a.as_dict(),
   "uni_z": evc.uni_z.as_dict(),
   "removed_flows": [],
   "current_path": evc.current_path.as_dict(),
 }
}

About

Kytos NApp to create and manage point-to-point L2 circuits

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%