All notable changes to the of_lldp NApp will be documented in this file.
LIVENESS_MIN_HELLOS_UP = 2
is now supported on settings to configure the number of minimum liveness hellos expected before consideringup
. This is to contribute to stability before considering itup
. IfLIVENESS_MIN_HELLOS_UP = 1
then it means the old behavior where a single hello received on both ends would transition toup
.
- Registered
status_reason
hook for link liveness
- Updated python environment installation from 3.9 to 3.11
FLOW_VLAN_VID
from settings now is used or made available in all interfaces from the switch where a flow is created or deleted.
of_lldp
now supports table group settings fromof_multi_table
settings.TABLE_ID
is no longer supported,table_id
is managed byof_multi_table
- When sending a PacketOut, if a interface's MAC address is invalid (all zeros or isn't an unicast address) it'll generate a new MAC address (last 40 bits of the DPID + interpolated port 8 bits + setting
e
in the nibble of the most significant byte to ensure unicast + locally administered) - Raised defaultt
settings.FLOW_PRIORITY
to 50000. - Refactored loop detection handlers to run on
asyncio
event loop instead ofapp
thread pool, minimizing potential events starvation of_lldp
when detecting a loop, it'll only set metadata in memory minimizing latency
- Subscribed to new event
kytos/of_multi_table.enable_table
as well as publishingkytos/of_lldp.enable_table
required to set a differenttable_id
to flows. - Added
settings.TABLE_GROUP_ALLOWED
set containing the allowed table groups, for now there is only'base'
.
@rest
endpoints are now run bystarlette/uvicorn
instead offlask/werkzeug
.- To clean up lldp flows with the old priority, run the following command, then restart kytos:
curl -H 'Content-type: application/json' -X DELETE http://127.0.0.1:8181/api/kytos/flow_manager/v2/flows/ -d '{"flows": [{"cookie": 12321848580485677056, "cookie_mask": 18374686479671623680}]}'
topology
'ssettings.LINK_UP_TIMER
is recommend to always be greater thanof_lldp
settings.POLLING_TIME
(by default, it is), that way, it's always guaranteed that before akytos/topology.link_up
event is sent, then any looped metadata will have been already set.
- Removed support for OpenFlow 1.0
- Added early return when trying to process a loop or consume liveness in case interfaces haven't been created yet.
- Loop detection in the same switch via LLDP
ofpt_packet_in
supportinglog
anddisable
actions - Added settings for loop detection
LLDP_LOOP_ACTIONS
,LLDP_IGNORED_LOOPS
,LLDP_LOOP_DEAD_MULTIPLIER
,LOOP_LOG_EVERY
- Link liveness detection via LLDP
- Added settings for link liveness detection
LIVENESS_DEAD_MULTIPLIER
- Liveness detection endpoints
GET /v1/liveness/
,GET /v1/liveness/pair
,POST /v1/liveness/enable
,POST /v1/liveness/disable
- Hooked link liveness status function to influence
Link.status
- Added liveness collection to persist liveness interface configuration
- KytosEvent PacketOut is now being prioritized on
msg_out
- New versioning schema, following kytos core versioning
- Prefix changed to 0xab
- Upgraded dependencies
- Updated README referring Kytos NG
- Set
cookie
andcookie_mask
when sending requests toflow_manager
- Added support for retries when sending a request to
flow_manager
- Parametrized
force
option as a fallback - Added more logs for request errors
- Changed the description of the REST endpoint
polling_time
in the API documentation, describing that the change made at runtime is not persistent. - Added
kytos/topology
as a dependency.
- Make
of_lldp
install and remove LLDP flows through theflow_manager
NApp. - Changed setup.py to alert when a test fails on Travis.
- Added persistence module to store LLDP administrative changes.
- Added a REST endpoint to change LLDP polling_time at run time.
- Added unit tests, increasing coverage to 94%.
- Added tags decorator to run tests by type and size.
- Added support for automated tests and CI with Travis.
- Changed README.rst to include some info badges.
- Fixed openapi.yml file name.
- Fixed Scrutinizer coverage error.
- Added REST API to choose interfaces for sending LLDP packets.
- Continuous integration enabled at scrutinizer.
- Fixed some linter issues.
- Added REST API section
- Added try statement to notify_uplink method
- Added option to work with VLANs in LLDP exchanges.
- Added methods to send LLDP specific FlowMods.
- Avoid sending PacketOut to the 'OFPP_LOCAL' port.
- Choose port type according to OFP version.
- Make LLDP listen to v0x04 PacketIns too.
- Dispatch 'switch.link' event.
- Assure in_port has a value property.
- Change Ethernet VLAN to list of VLANs.