We are stoked to announce the release of: neutron 20.4.0: OpenStack Networking This release is part of the yoga stable release series. The source is available from: https://opendev.org/openstack/neutron Download the package from: https://tarballs.openstack.org/neutron/ Please report issues through: https://bugs.launchpad.net/neutron/+bugs For more details, please see below. 20.4.0 ^^^^^^ Known Issues ************ * When using ML2/OVN, during an upgrade procedure, the OVS system-id stored value can be changed. The ovn-controller service will create the "Chassis" and "Chassis_Private" registers based on this OVS system-id. If the ovn-controller process is not gracefully stopped, that could lead to the existence of duplicated "Chassis" and "Chassis_Private" registers in the OVN Southbound database. Bug Fixes ********* * A new OVN maintenance method "remove_duplicated_chassis_registers" is added. This method will periodically check the OVN Southbound "Chassis" and "Chassis_Private" tables looking for duplicated registers. The older ones (based on the "Chassis_Private.nb_cfg_timestamp" value) will be removed when more than one register has the same hostname, that should be unique. Other Notes *********** * The external_mac entry in the NAT table is used to distribute/centralize the traffic to the FIPs. When there is an external_mac set the traffic is distributed (DVR). When it is empty it is centralized through the gateway port (no DVR). Upon port status transition to down, the external_mac was removed regardless of DVR being enabled or not, leading to centralize the FIP traffic for DVR -- though it was for down ports that won't accept traffic anyway. Changes in neutron 20.3.1..20.4.0 --------------------------------- d55b30844f Fix ACL sync when default sg group is created 052c3899cb [OVN][L3] Optimize FIP update operation 6af9f70e0b Set result when lswitch port exist 61d9e5972d Ensure traffic is not centralized if DVR is enabled 4f043fb7ad Don't allow deletion of the router ports without IP addresses 78b7cf82dd Delete sg rule which remote is the deleted sg 3e6b2b77b2 [OVN] Expose chassis hosting information in LSP 226e29af1a Load FIP information during initialize not init 3785eac7a5 [OVN] Hash Ring: Set nodes as offline upon exit 73ba302faf [OVN] Improve Hash Ring logs 4764ed550a [qos] _validate_create_network_callback return in no network cd4f345f60 [OVN][Trunk] Add port binding info on subport when parent is bound 5ae479c7e3 Delete the "Chassis_Private" register when deleting an agent 3328be0994 Return 409 Conflict to tenant user deleting port attached to FIP ba16962d34 [OVN] Remove SB "Chassis"/"Chassis_Private" duplicated registers d541ee9731 Make DB migration creating indexes in RBACs conditional 70a7188209 [OVN][Migration] Enable settings backup subnet for NFS clients b6145ee13e Handle no more IP addresses available during a network sync Diffstat (except docs and test files) ------------------------------------- neutron/agent/l3/dvr_local_router.py | 3 + neutron/api/rpc/handlers/securitygroups_rpc.py | 7 +++ neutron/cmd/ovn/neutron_ovn_db_sync_util.py | 10 ++-- neutron/common/ovn/constants.py | 1 + neutron/common/ovn/exceptions.py | 7 ++- neutron/common/ovn/hash_ring_manager.py | 9 ++- neutron/db/l3_db.py | 33 +++++++---- .../expand/ba859d649675_add_indexes_to_rbacs.py | 26 ++++++++- neutron/db/ovn_hash_ring_db.py | 53 ++++++++++++++---- .../ml2/drivers/ovn/mech_driver/mech_driver.py | 40 +++++++++---- .../ml2/drivers/ovn/mech_driver/ovsdb/commands.py | 1 + .../drivers/ovn/mech_driver/ovsdb/maintenance.py | 57 +++++++++++++++++++ .../drivers/ovn/mech_driver/ovsdb/ovn_client.py | 65 ++++++++++++++++++---- .../drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py | 37 ++++++++++-- neutron/services/ovn_l3/plugin.py | 2 +- neutron/services/qos/qos_plugin.py | 4 +- neutron/services/trunk/drivers/ovn/trunk_driver.py | 30 ++++++++-- .../test_ba859d649675_add_indexes_to_rbacs.py | 55 ++++++++++++++++++ .../ovn/mech_driver/ovsdb/test_maintenance.py | 58 +++++++++++++++++++ .../ovn/mech_driver/ovsdb/test_ovn_client.py | 18 ++++++ .../drivers/ovn/mech_driver/test_mech_driver.py | 22 +++++++- .../trunk/drivers/ovn/test_trunk_driver.py | 50 ++++++++++++----- .../api/rpc/handlers/test_securitygroups_rpc.py | 50 ++++++++++++++++- .../drivers/ovn/mech_driver/ovsdb/test_commands.py | 2 +- .../ovn/mech_driver/ovsdb/test_ovn_client.py | 24 ++++++++ .../drivers/ovn/mech_driver/test_mech_driver.py | 35 ++++++++---- .../trunk/drivers/ovn/test_trunk_driver.py | 2 + .../notes/dvr-external-mac-934409413e515eb2.yaml | 10 ++++ ...ve_duplicated_ovn_chassis-df12fb6233ea3d3e.yaml | 17 ++++++ .../tripleo_environment/ovn_migration.sh | 4 +- .../playbooks/roles/recovery-backup/tasks/main.yml | 1 + 38 files changed, 778 insertions(+), 108 deletions(-)