We joyfully announce the release of: networking-ovn 7.2.0: OpenStack Neutron integration with OVN This release is part of the train stable release series. The source is available from: https://opendev.org/openstack/networking-ovn Download the package from: https://pypi.org/project/networking-ovn Please report issues through: https://bugs.launchpad.net/networking-ovn/+bugs For more details, please see below. 7.2.0 ^^^^^ New Features ************ * Adds support for IGMP snooping (Multicast) in the OVN driver. Defaults to False. IGMP snooping requires OVN version 2.12 or above. Bug Fixes ********* * Currently, QoS is implemented by TC command of HV OS. This solution has many drawbacks, such as not supported VLAN network or VMs from same HV. Meter is a comfortable solution, which is implement in OpenFlow as an action, so it is flexible and exact. By meter action, we can implemented QoS from both directions, also, we can support DSCP. If we want to add other matches, it is also feasible. Changes in networking-ovn 7.1.0..7.2.0 -------------------------------------- 55d0654e Fix ovn-db-sync-util after removing l3 ovsdb connection af5a648f Revert "Use tempest version 23.0.0 for stable/train python2 job" 220356ac Refactor OVN client QoS extension 5b21d5e8 [OVN][metadata] Adding ERROR trace upon unexpected data 537afe02 Cap pycodestyle to be < 2.6.0 ab07514c migration: Replace paunch with podman and ip commands c51321b5 Remove the release note job 98ee1568 [ovn] Add PortBinding delete event for external ports d173d586 Added OSP 16.1 to plugin spec 071bd832 [OVN] Do not delete port's revision on RowNotFound e21fc957 [OVN] External ports: Account for VNIC_DIRECT_PHYSICAL / VNIC_MACVTAP e32e750b mech_driver.OVNMechanismDriver "_ovn_client" is a read-only property 6429a8a2 Don't reschedule hosts unless we need to 632dee5d Use OVN mech driver OVSDB connections for l3 plugin 82c74cba Work around potential double row.delete() call 0f27accd Ensure we don't pass empty addresses to lsp_set_addresses 1d78aa36 [metadata agent] Account for 'external' ports f2aa8afe [OVN] Add support for external ports 0da25937 [ovn] Stricter matching on metadata port binding event ba456f28 Mark TestVirtualPorts tests as unstable c0772d3a Use tempest version 23.0.0 for stable/train python2 job 9479b528 [OVN] Reduce the number of watched tables in MetadataProxyHandler 71991fa7 [OVN] Add IGMP snooping support cf22393c Align PEP8/Pylint rules with the Neutron project 01b858cc OVNMechanismDriver calls to OVNClient should match function signatures 10c8b328 Change way of retrieving LSP in virtual_port functional tests 52a91602 Fix Exception string arguments 2a8af5f1 Use rally-openstack 1.7.0 for stable/train fb49b4ba Clear lsp.addresses always if port is OVN LB VIP port. 271c4f88 [OVN] OVN DB schema update aware maintenance tasks a116ead8 Do not try to refresh vips on OVN LB that will be deleted 68887057 Wrap IPv6 address with brackets 2c81baa7 Switch release jobs to OVN 20.03 (v20.03.0 tag) 3cb95f09 Make networking-ovn-octavia-v2-dsvm-scenario non-voting 8dd1cac5 [OVN] DevStack: Split the OVN_BRANCH and OVS_BRANCH variables b583f4fd Fix cirros image download during resources creation for migration 06c5b676 Support QoS by meter action c2b413e5 Bump-up os-log-merger to latest version 945e9eb7 [migration] Create Mac_Bindings before testing FIP 5ef7f928 OVN Metadata agent gets OVSDB updates for only its Chassis f9b1dffa [OVN] Remove VLAN check when setting external_mac e8933d93 [OVN] Add an interval between agents health checks 427aeca1 Add config option 'ovsdb_retry_max_interval' Diffstat (except docs and test files) ------------------------------------- .pylintrc | 32 ++ devstack/devstackgaterc | 3 +- devstack/lib/ovn | 10 +- .../templates/create-resources.sh.j2 | 2 +- .../playbooks/roles/migration/defaults/main.yml | 11 - .../roles/migration/tasks/cleanup-dataplane.yml | 52 +-- .../create/templates/create-resources.sh.j2 | 2 +- .../validate/templates/validate-resources.sh.j2 | 9 + networking_ovn/agent/metadata/agent.py | 85 +++-- networking_ovn/agent/metadata/ovsdb.py | 9 +- networking_ovn/agent/metadata/server.py | 17 +- networking_ovn/cmd/neutron_ovn_db_sync_util.py | 13 +- .../common/client_extensions/__init__.py | 0 networking_ovn/common/client_extensions/qos.py | 258 +++++++++++++++ networking_ovn/common/config.py | 28 ++ networking_ovn/common/constants.py | 17 + networking_ovn/common/maintenance.py | 164 +++++++++- networking_ovn/common/ovn_client.py | 151 +++++---- networking_ovn/common/utils.py | 27 ++ networking_ovn/l3/l3_ovn.py | 62 ++-- networking_ovn/ml2/mech_driver.py | 42 ++- networking_ovn/ml2/qos_driver.py | 130 +------- networking_ovn/octavia/ovn_driver.py | 45 ++- networking_ovn/ovsdb/commands.py | 31 +- networking_ovn/ovsdb/impl_idl_ovn.py | 64 ++-- networking_ovn/ovsdb/ovn_api.py | 13 - networking_ovn/ovsdb/ovsdb_monitor.py | 97 +++++- .../unit/common/client_extensions/__init__.py | 0 .../unit/common/client_extensions/test_qos.py | 363 +++++++++++++++++++++ plugin.spec | 1 + ...ovn-igmp-snooping-support-1a6ec8e703311fce.yaml | 5 + ...pport-QoS-by-meter-action-03bb9fa57e35e5bd.yaml | 11 + test-requirements.txt | 1 + tox.ini | 7 +- zuul.d/networking-ovn-jobs.yaml | 7 +- zuul.d/project.yaml | 5 +- 59 files changed, 2403 insertions(+), 752 deletions(-) Requirements updates -------------------- diff --git a/test-requirements.txt b/test-requirements.txt index 68c2e07f..5ae1d49d 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -9,0 +10 @@ flake8-import-order==0.12 # LGPLv3 +pycodestyle>=2.0.0,<2.6.0 # MIT