Kytos-ng1 version 2025.1 was released in April 2025.
Objectives
This version had these major objectives:
- AmLight production sustaining issues fixes
- Upgrade core UI and NApps UI to Vue.js 3
- Introduce UI unit tests core infrastructure
- FlowMod pacers tuning
- Augmented
flow_managerto support bulk flows by switches in a single request - Augmented interface tag pools to support differentiating between UNI and NNIs
mef_elinegeneral enhancements and fixes- Research and assessment for mef_eline encapsulation and
telemetry_intproxy ports configurations - Consistency improvements for handling link up events.
1. AmLight production sustaining issues fixes
Many major bug fixes on 2025.1 were also backported to 2024.1 for AmLight to able to have those issues fixed in production.
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. This was a major technical debt in the UI that has been addressed. This upgrade now unlocks other initiatives such as unit tests and other Vue 3 UI infrastructure improvements that the team can eventually and gradually adopt too to keep evolving and improving the UI.
3. Introduce UI unit tests core infrastructure
Initial UI unit test core infrastructure is now supported with vitest. UI core components will be unit tested in a next version.
4. FlowMod pacers tuning
The default rate for flow_manager’s FlowMod pacers has been increased by 10 times, this has been tuned in a scenario with up to 1000 EVCs with roughly 8k flows, ensuring that a bulk request won’t timeout when sending thousands of flows in a single request. Scalability tests were also run testing up to 50k flows in a single request, which is plenty for many use cases in production, the higher the number of the flows the slower the request payload serialization and deserialization will be.
5. Augmented flow_manager to support bulk flows by switches in a single request
flow_manager now supports sending or deleting bulk flows by switches in a single request. This simplified error handling for flow_manager’s client NApps that need to send flows in synchronous manner.
6. Augmented interface tag pools to support differentiating between UNI and NNIs
A switch interface used to have a single pool of tag ranges for the entire interface. Now when a link is created, it will have its own pool of tags borrowed from the interfaces intersection, which is also configurable, so network operators can also set or resize the tag ranges values if needed. If a NApp is allocating a tag that’s related to a link it should allocate from the link.
7. mef_eline general enhancements and fixes
mef_eline has had many general improvements and fixes (summary of some of them):
- Race condition fixes when handling a link down double failure with EVCs with failover paths
- Tag allocations to be all or nothing to avoid leaking resources
- Exposed
max_pathsoption to specify how many paths should be considered when finding paths - Augmented the redeploy endpoint
PATCH v2/evc/{evc_id}/redeploywith an argument to try to avoid allocating the same service vlan - A link up from UNI will deploy correctly an EVC when it does not have a path
- An EVC no longer accepts an invalid path when having NNIs as UNIs. Interfaces of a path are validated in pairs
8. Research and assessment for mef_eline encapsulation and telemetry_int proxy ports configurations
Research has been done for these two major items:
- Find a solution to mitigate Tofino pipeline recirculation when
mef_elineuses QinQ with vlan translation which can reduce network throughput at high speeds - Make
telemetry_intint proxy ports configuration optional for inter EVCs allowing it to be used in more cases when a proxy port isn’t viable to have
Both of these items will be further refined and implemented in the next version.
9. Consistency improvements for handling link up events.
topology has been augmented to handle link up and down events more gracefully:
- Link up events will only trigger a status change if the endpoints of the link are also active.
- The link up timer only resets when the link transitions from inactive to active, not if the link is already active.
Database data model changes
If upgrading from prior versions, the following mandatory scripts need to be executed. There’s a README file with more information about each script:
001_retire_vlans.pycan be used to retire vlan 4095 which has been excluded from the default tag ranges value.001_update_default_queue.pycan be used to updatequeue_idfromNoneto-1, this was a change on prior versions, but this script hadn’t been made available before.000_retire_metadata.pycan be used to retire thelast_status_is_active,last_status_change, andnotified_up_atmetadata fromlinks, which are no longer in use.
The following scripts are optional:
001_redeploy_set_queue.pycan be used to redeploy EVCs which have a QoS queue configured,set_queueaction is now placed before theoutputaction. On NoviFlow switches, internally theset_queueaction was already reorder before theoutputaction so it would work as one would expect.000_liveness_deleted.pycan be used to delete old non existent interface entries that have been hard deleted on topology but had link liveness enabled.
In addition, the following console scripts helpers can be used on demand (if a tag leak resource is identified) to fix potential missing tag allocations or deallocations:
General Information
If you are running Linux Kernel 6+, you need to upgrade Elasticsearch (ES) patch version to 7.17.28. This ES version has been tested in development with Kernel versions: 5.10, 5.15, 6.6, 6.8, and 6.12.
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 2025.1:
| Switch Vendor | Switch | Firmware version | OpenFlow version | Environment type |
|---|---|---|---|---|
| OVS | ovs-switchd | 2.15 | 1.3 | testing |
| NoviFlow | WB5132-F | NW570.8.4 | 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 October 2024 to April 2025:
Kytos-ng Team
- Core Team: Vinicius, Italo, David, Rogerio, Aldo
- Contributors (2025.1): Heriberto Luna
- 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) ↩

