2022.3 was released in January 2023.
This version had these major objectives:
mef_elineshould be able to create EVCs with constrained paths and service level prioritization
- Add support for INT integration and other NoviFlow experimenter actions
maintenanceshould stabilize its v1 API and integrate with MongoDB
- Support NoviFlow switches on end-to-end tests
- End-to-end tests should have fewer false positives and support retries
flow_statsshould stabilize its v1 API
- Drop support for OpenFlow 1.0
- Support user authentication REST API with MongoDB
- Upgrade Kytos-ng core dependencies to leverage upstream fixes, enhancements and be able to leverage more asyncio functionalities
- All Kytos-ng NApps should have at least 85% of unit test coverage
In order to achieve the objectives of this version, the following enhancements were refined and delivered:
mef_eline now supports EVC creation with path constraints that can be applied to a dynamic primary path or secondary dynamic failover paths. The following link metadata constraints can be used if configured:
ownership. In addition, other path attributes, such as total accumulated cost, and desired and undesired links, are also supported. The parameters are documented on mef_eline OpenAPI specification.
mef_eline provides service level prioritization to allow EVCs to be handled based on their descending
service_level value during convergence and consistency checks.
A blueprint has been specified for adding support to
telemetry in Kytos-ng EP031, which will be responsible for enabling INT on EVCs. In addition, NoviFlow switches will be supported via experimenter actions implemented by the
noviflow NApp, and the functionality will be optionally enabled when an EVC is created. The
telemetry NApp is expected to be available in the
maintenance has had its API reviewed and augmented, consolidating its v1 API. The
items field has been replaced with the
interfaces fields. The
status field has been changed to use a string enum, with the valid possible values being
status is now protected from being set. Maintenance windows now also include the fields
updated_at, which contain the creation and update dates. Maintenance windows are now protected from overlapping time intervals, with overlapping disallowed unless the field
force is set to
Added persistence to maintenance windows through MongoDB. All maintenance windows are stored in the collection
maintenance.windows. Upon initializing the Napp, maintenance will update the status of all windows in the DB to progress to the appropriate state depending on the current time compared to their start and end time. Then the Napp will deploy all
running maintenance windows and schedule all
NoviFlow switches are now supported on kytos-end-to-end-tests as a target on pre-defined testing topologies. Currently, NoviFlow switches are managed via SSH using
paramiko. This integration was designed to be seamless with Mininet. Therefore, Noviflow switches are handled as a Mininet
Switch so you can reuse or write new end-to-end tests. The NoviFlow Mininet integration will keep evolving during the next release as part of the Kytos-ng CI/CD pipeline.
The end-to-end tests were enhanced to avoid performing assertions when network convergence can still be taking place, minimizing false positive asserts that could happen. Also,
pytest-rerunfailures was introduced to help with re-running tests, providing additional evidence to identify and isolate underlying issues.
flow_stats has had its API reviewed and augmented, consolidating its v1 API.
flow_stats has simplified its code and responsibilities. Also, a Zabbix integration script is available, and it’s using this new v1 API and other NApps endpoints to monitor specific resources on Zabbix.
OpenFlow 1.0 is no longer supported on Kytos-ng NApps. Network operators who use Kytos-ng are comfortable having OpenFlow 1.3 as the supported version, also since OpenFlow 1.3 is a superset of OpenFlow 1.0 that allowed our team to simplify and remove old code to improve code maintainability and test coverage.
@authenticated REST decorator now uses a
users MongoDB collection instead of a workspace of the deprecated storehouse. User creation is still performed via the
kytosd CLI or the console.
Kytos-ng core dependencies have been upgraded to the latest stable compatible versions to leverage upstream fixes, enhancements and be able to leverage more asyncio functionalities:
Flask/Werkzeug 2.0.0+ now provides
async support so that NApps can leverage
asyncio and its ecosystem when applicable using the same
flow_stats unit test code coverage has increased to 85%. Thus, all Kytos-ng NApps have at least 85% unit test coverage. For more information, please visit Kytos-ng Tests Analytics Dashboard.
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 you are interested in knowing more about and look for the changelog file.
The following switches have been tested with Kytos version
|NW570.2.1 and NW550.2.3
An overview of the Kytos-ng and end-to-end tests coverage is available on these dashboards:
In the kytos-ng organization, during the period of this release from August 2022 to January 2023:
- Core Team: Vinicius, Italo, David, Gretel, Rogerio, Antonio
- Contributors (2022.3): Aldo
- Team Leader: Jeronimo
Special Thanks to the Kytos-ng community.