Kytos-ng1 version 2024.1
was released in September 2024.
Objectives
This version had these major objectives:
- Develop
telemetry_int
v1 NApp - Upgrade core UI and NApps UI to Vue.js 3
- Augment
sdntrace
to trace TCP and UDP payloads - Develop a UI for
sdntrace
- Introduce pacing functionality on Kytos-ng core
- Develop status menu UI panel to display and filter status data
- Upgrade MongoDB to 7.0
- Upgrade Python to 3.11
- Tune default value for the
api
thread pool size and its concurrency limit
1. Develop telemetry_int
v1 NApp
telemetry_int
v1 NApp has been released. This NApp is responsible for enabling In-Band Network Telemetry (INT) on mef_eline
EVCs. On this version, INT can be enabled or disabled on EVCs, when INT is enabled, telemetry_int
will provision higher priority flows matching IPv4 TCP and UDP packets. This NApp now supports all network convergence events that mef_eline
supports. Currently, telemetry_int
requires an exclusive proxy port (looped) interface per UNI. This NApp also has a UI exposing these functionalities, including providing support to configure proxy_port
metadata on UNIs:
telemetry_int
UI 2. Upgrade core UI and NApps UI to Vue.js 3
Kytos-ng core infrastructure UI and NApps UI have been upgraded to Vue.js 3 in compatibility mode (with the @vue/compat
package). Improvements have also been made for the production build to have more informative and detailed messages. This upgrade has been a pivotal due to Vue 2 reaching EOL (end of life) date support.
3. Augment sdntrace
to trace TCP and UDP payloads
sdntrace
has been augmented to to support TCP and UDP payloads, and its API routes has been versioned to v1.
4. Develop a UI for sdntrace
sdntrace
now has a UI:
sdntrace
UI 5. Introduce pacing functionality on Kytos-ng core
Kytos-ng core now provides pacing (soft rate limiting) functionality, which NApp developers can use to pace certain operations. Currently, the available pacing strategies are fixed_window
and ignore_pace
. This new functionality has replaced the batched waited flow mods requests that certain NApps used to have on each NApp, now, it is paced on flow_manager
and the configuration is available on flow_manager
’s settings.py
file. The configuration on flow_manager
exposes a particular strategy and rate limit per flow owner per dpid.
6. Develop status menu UI panel to display and filter status data
A new UI panel that unifies switches, links and interfaces status has been develop. Its main purpose is to provide an easy to use view for network operators to quickly view and filter any of these network entities and their attributes value. For instance, one can use it to find out which links are DOWN
. The rows of the table on this UI panel are clickable, which can display additional details of the chosen network entity.
7. Upgrade MongoDB to 7.0
Kytos-ng MongoDB has been upgraded to support version 7.0, which is the main version that will be tested and supported for production usage. It can still work with lower versions 6.0 and 5.0 but they are not guaranteed to work flawlessly. To upgrade MongoDB to version 7.0, follow the recommended migration steps documented on this PR.
8. Upgrade Python to 3.11
Kytos-ng and NApps have been upgraded to use Python 3.11 as the supported version.
9. Tune default value for the api
thread pool size and concurrency limit
The api_concurrency_limit
on kytos.conf
which defaults to the same value as the api
thread pool size on thread_pool_max_workers
, now has a higher default value 512
. If you are upgrading from prior versions, it is recommended that you regenerate kytos.conf
again or just set the individual new valuable. If either of these values are too low for the scalability of network resources that one is using, log warning messages will be emitted. For more information about how to tune, check out this issue discussion on GitHub.
Database data model changes
If upgrading from prior versions, the follow mandatory scripts need to be executed. In the scripts/db/2024.1.0
folder there’s a README file with more information about each script:
flow_manager
mandatory scripts for the flows
collection:
000_hard_delete_old.py
can be used for hard deleting old soft deleted flows. It is recommended that you run this script at least one, and ideally on a weekly basis untilflow_manager
provides a feature to have this automatic clean up of old soft deleted flows.001_update_match_id.py
updates thematch_id
of the flows document which is theid
value of the documents on this collection, there was a bug fix that changed how thematch_id
is computed for each flow, so this script will update them all accordingly. Before running this script, it is recommended that you run the000_hard_delete_old.py
script.
Kytos-ng and NApps released
The following Kytos-ng projects and NApps were released in this version. For further detailed information about what was released and what changed, please visit the release page of each project and look for the CHANGELOG.rst
file.
Switches Compatibility List
The following switches have been tested with Kytos version 2024.1
:
Switch Vendor | Switch | Firmware version | OpenFlow version | Environment type |
---|---|---|---|---|
OVS | ovs-switchd | 2.15 | 1.3 | testing |
NoviFlow | WB5132-F | NW570.2.1 and NW550.2.3 | 1.3 | testing |
Kytos Testing Dashboard Analytics
An overview of the Kytos-ng and end-to-end tests coverage is available on these dashboards:
GitHub statistics
In the kytos-ng organization, during the period of this release from March 2024 to September 2024:
Kytos-ng Team
- Core Team: Vinicius, Italo, David, Rogerio, Aldo
- Contributors (2024.1): Heriberto Luna, Ruben Cerna, Enrique Alfonso, Pedro Garcia, Christopher Alvarez
- Team Leader: Jeronimo
Special Thanks to the Kytos-ng community.
-
Kytos-ng is supported by the National Science Foundation (NSF) AmLight Express and Protect (AmLIght-ExP) (Award # OAC-2029283) project members Florida International University (FIU) and rednesp (Research and Education Network at Sao Paulo/Brazil) ↩