We are amped to announce the release of: neutron 16.1.0: OpenStack Networking This release is part of the ussuri 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. 16.1.0 ^^^^^^ New Features ************ * A new configuration option "http_retries" was added. This option allows configuring the number of times the nova or ironic client should retry on a failed HTTP call. * "DVR" routers now support "flat" networks. * Added support for router availability zones in OVN. The OVN driver can now read from the router's availability_zone_hints field and schedule router ports accordingly with the given availability zones. Deprecation Notes ***************** * Abstract method "plug_new" from the neutron.agent.linux.interface.LinuxInterfaceDriver class now accepts an optional parameter "link_up". Usage of this method, which takes from 5 to 9 positional arguments, without "link_up" is now deprecated and will not be possible starting in the W release. Third-party drivers which inherit from this base class should update the implementation of their "plug_new" method. Bug Fixes ********* * 1875981 (https://bugs.launchpad.net/neutron/+bug/1875981) Neutron now correctly removes associated DNS records when an admin deletes ports, servers or floation IPs. * Fixed bug 1876092 (https://bugs.launchpad.net/neutron/+bug/1876092) which caused DUP ICMP replies on the "flat" networks used with "DVR" routers. * Fixed an issue where the client on a dual-stack (IPv4 + IPv6) network failed to get configuration from the dnsmasq DHCP server. See bug: 1876094 (https://launchpad.net/bugs/1876094). Changes in neutron 16.0.0..16.1.0 --------------------------------- 3549e52467 ovn-migration-mtu: Support migrating MTU of GRE networks c3aedcd508 ovn-migration-mtu: Support providing project/user domain by name 083748fadd Fix port can not be created with the sg of other project b468514e99 migration: Restart OVS after setting protocols c678d89dab port_forwarding: validate args before invoking db update 3496564488 Fix validation of IPv6 subnets with external RAs 18f019984a String to byte conversion should provide the encoding type ed22f7a2ff [OVS][FW] Remote SG IDs left behind when a SG is removed 8200c68f68 Use "replace" to remove a section of a string 9e699c3743 [ovn] Use normalized remote prefix IPs in OVN driver 21719a875d [Stable only] Drop *-master jobs 20b9e7759f ovn migration: Support stack name ab32d7ae64 [OVN] Allow IP allocation with different segments for OVN service ports d07e879208 [OVN] Extra DHCP options validation: Log invalid options a678c43646 ovn-migration: Remove docker references 2b00041f4d Fix neutron-ovn-tempest-ovs-master-fedora job 143fe8ff89 Ensure drop flows on br-int at agent startup for DVR too 5554d620d1 [OVN] Fix logic issue while deleting port with QoS 61851345ce [OVN] Unify OVN/OVS compilation c0fba2007c migration: Use ansible-inventory to parse tripleo inventory fb9815fdf0 [OVN] Stop using neutron_tempest_plugin in OVN singlenode job 90955cf893 Stop installing Octavia in OVN jobs 8341a87bd0 [OVN] Wait for WaitForDataPathBindingCreateEvent event in functional tests c172235f58 Optionally use admin powers when deleting DNS records b4130c0dc1 Auto-delete dhcp ports on segment delete f4172a9ab9 Fix pep8 job 2827100169 [DVR] Related routers should be included if are requested e723f95e60 [ci] Fix several rally task arguments 34d4a8bb99 Add config option ``http_retries`` 7b41d63f8f Make DVR router support FLAT network for ovs-agent 34c93c6c77 [OVN] Fix db-sync-util Traceback when port security not enabled ce2866a4f6 [OVN] Allow use of ovn-sync mechanism driver fd4821f918 [OVN] OVN driver to adapt to enable_distributed_floating_ip changes 87fae223fe Improve log message when port losts its vlan tag 88e70a520a Do not block connection between br-int and br-phys on startup e79afe115c Workaround for TCP checksum issue with ovs-dpdk and veth pair 53e99b76a2 [OVN] Add support for router availability zones 5f8af42dbd L3 agent scheduler should return a valid index if manual scheduling 1b86aff85e DhcpFilter should always return a valid index if "force_scheduling" 2b2abfc76a Use pyroute2 for SRIOV VF commands 19f60ce728 Fix the wrong value for QoS rate conversion to bytes/s 2509d26eb4 [OVN] Load segments plugin in case not loaded in maintanance task bdbeb67357 Make _ensure_default_security_group method atomic 84ac8cf9ff [OVS] Make QoS OVS agent deletion operations more resilient 2ba53430f1 [OVN] Avoid unnecessary DB writes during agent liveness check 68706b556b Fixes dnsmasq host file parsing with "addr6_list" ba5edb71db Configure privsep in SR-IOV agent fd1883b50a ovn: Remove is_port_groups_supported() code 961e19b34a No rpc_response_max_timeout in LB-agent 990c3732d4 Migrate neutron grenade jobs to be native Zuul v3 080123851c Fix ussuri gates dd49fae3f4 Fix ssh to nodes during ML2/OVS to ML2/OVN migration 9b0ca47c6d ovn-migration: Stop ml2/ovs agents before installing OVN resources 9dd0d32063 [OVN] Create localnet port for each created segment b8e7886d8b Don't check if any bridges were recrected when OVS was restarted fde6fc3ecd Fix iptables rules comments 1e53a77082 [OVN] Override notify_nova config in neutron-ovn-db-sync-util a0dfb50a9a [OVN] Don't set virtual port type on ports with similar addresses 98010a2f6a Fix Traceback when running neutron-ipset-cleanup tool d09b1b40b6 Blacklist the OVN tempest IPv6 hotplug test 32667390c7 [OVN] Enhance port's extra DHCP options support b03f9d4c43 [DVR] Reconfigure re-created physical bridges for dvr routers 2614637a69 Delete segment RPs when network is deleted ae4b3edce2 Ensure that stale flows are cleaned from phys_bridges 47f28d5a5f Fix neutron-ovn-db-sync-util issues 5e3c8640b0 Allow usage of legacy 3rd-party interface drivers c1488863fb Add sg name in after delete event kwargs 548eca3180 Update OVN local.conf example files 8e20ca7d0a Set class ovsdb_conection to None ef9869e0e1 Fix ovn-db-sync-util after removing l3 ovsdb connection 60212a1934 [ovn] devstack needs to support openflow15 bc223bcb93 [OVN]: Make _delete_port() more error-resilent 14aea286e6 [OVN][metadata] Adding ERROR trace upon unexpected data d6ff46bdca Add Rocky milestone tag for alembic migration revisions 719cae183a Cap pycodestyle to be < 2.6.0 a6e524111c Switch to stable/ussuri neutron-tempest-plugin jobs 86b5771896 [ovn]: Fix l3_plugin.add_router_interface to comply with RouterPluginBase f9752c5542 Report L3 extensions enabled in the L3 agent's config 38afccc28a Use dhcp-host tag support when supported Diffstat (except docs and test files) ------------------------------------- devstack/lib/ovn_agent | 117 +-- devstack/lib/ovs | 65 +- devstack/ovn-compute-local.conf.sample | 2 +- devstack/ovn-db-local.conf.sample | 2 +- devstack/ovn-local.conf.sample | 2 +- devstack/ovn-vtep-local.conf.sample | 2 +- .../internals/ovn/acl_optimizations.rst | 186 ----- .../contributor/testing/ci_scenario_jobs.rst | 3 +- etc/neutron/rootwrap.d/dhcp.filters | 1 + etc/neutron/rootwrap.d/l3.filters | 1 + lower-constraints.txt | 1 + neutron/agent/common/ovs_lib.py | 12 +- neutron/agent/l3/agent.py | 3 +- neutron/agent/linux/dhcp.py | 58 +- neutron/agent/linux/ethtool.py | 34 + neutron/agent/linux/interface.py | 31 +- neutron/agent/linux/ip_lib.py | 21 +- neutron/agent/linux/ip_link_support.py | 108 --- neutron/agent/linux/iptables_firewall.py | 9 +- .../agent/linux/openvswitch_firewall/firewall.py | 152 ++-- neutron/agent/linux/tc_lib.py | 28 +- neutron/agent/ovn/metadata/server.py | 14 +- neutron/cmd/ipset_cleanup.py | 2 + neutron/cmd/ovn/migration_mtu.py | 61 +- neutron/cmd/ovn/neutron_ovn_db_sync_util.py | 19 +- neutron/cmd/runtime_checks.py | 11 + neutron/cmd/sanity/checks.py | 36 - neutron/cmd/sanity_check.py | 23 - neutron/common/_constants.py | 9 + neutron/common/ovn/acl.py | 195 +---- neutron/common/ovn/constants.py | 101 ++- neutron/common/ovn/extensions.py | 9 +- neutron/common/ovn/utils.py | 89 ++- neutron/conf/common.py | 10 +- neutron/db/db_base_plugin_v2.py | 22 +- neutron/db/ipam_backend_mixin.py | 13 +- neutron/db/ipam_pluggable_backend.py | 17 +- neutron/db/l3_agentschedulers_db.py | 19 +- neutron/db/l3_db.py | 23 +- neutron/db/l3_dvrscheduler_db.py | 19 +- .../rocky/expand/867d39095bf4_port_forwarding.py | 5 + neutron/db/securitygroups_db.py | 16 +- neutron/notifiers/ironic.py | 3 +- neutron/notifiers/nova.py | 1 + neutron/objects/ports.py | 16 +- neutron/objects/subnet.py | 14 +- neutron/opts.py | 2 + neutron/plugins/ml2/db.py | 31 +- .../drivers/linuxbridge/agent/common/constants.py | 3 - .../linuxbridge/agent/linuxbridge_neutron_agent.py | 3 + .../drivers/mech_sriov/agent/common/exceptions.py | 8 - .../drivers/mech_sriov/agent/eswitch_manager.py | 35 +- .../agent/extension_drivers/qos_driver.py | 15 +- .../ml2/drivers/mech_sriov/agent/pci_lib.py | 158 +---- .../drivers/mech_sriov/agent/sriov_nic_agent.py | 11 +- .../drivers/openvswitch/agent/common/constants.py | 21 +- .../openvswitch/agent/openflow/native/br_int.py | 37 +- .../openvswitch/agent/openflow/native/br_phys.py | 8 +- .../openvswitch/agent/ovs_dvr_neutron_agent.py | 67 +- .../drivers/openvswitch/agent/ovs_neutron_agent.py | 88 +-- .../ml2/drivers/ovn/mech_driver/mech_driver.py | 156 +++- .../ml2/drivers/ovn/mech_driver/ovsdb/api.py | 54 -- .../ml2/drivers/ovn/mech_driver/ovsdb/commands.py | 69 -- .../ovn/mech_driver/ovsdb/extensions/qos.py | 11 +- .../drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py | 30 +- .../drivers/ovn/mech_driver/ovsdb/maintenance.py | 52 +- .../drivers/ovn/mech_driver/ovsdb/ovn_client.py | 331 ++++----- .../drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py | 289 ++------ neutron/privileged/agent/linux/ip_lib.py | 42 ++ neutron/scheduler/base_scheduler.py | 37 + neutron/scheduler/dhcp_agent_scheduler.py | 20 +- .../externaldns/drivers/designate/driver.py | 22 +- neutron/services/ovn_l3/exceptions.py | 21 + neutron/services/ovn_l3/plugin.py | 70 +- neutron/services/portforwarding/pf_plugin.py | 43 ++ neutron/services/segments/db.py | 3 +- neutron/services/segments/plugin.py | 51 +- .../ovn/mech_driver/ovsdb/test_maintenance.py | 12 +- .../ovn/mech_driver/ovsdb/test_ovn_db_resources.py | 96 +-- .../ovn/mech_driver/ovsdb/test_ovn_db_sync.py | 175 +---- .../ovn/mech_driver/ovsdb/test_ovsdb_monitor.py | 17 +- .../drivers/ovn/mech_driver/test_mech_driver.py | 93 +++ .../privileged/agent/linux/test_tc_lib.py | 8 +- .../l3_router/test_l3_dvr_router_plugin.py | 50 ++ .../linux/openvswitch_firewall/test_firewall.py | 196 ++++-- .../unit/agent/linux/test_iptables_firewall.py | 9 + .../unit/cmd/ovn/test_neutron_ovn_db_sync_util.py | 31 + .../agent/test_linuxbridge_neutron_agent.py | 2 +- .../agent/extension_drivers/test_qos_driver.py | 14 +- .../mech_sriov/agent/test_eswitch_manager.py | 38 +- .../ml2/drivers/mech_sriov/agent/test_pci_lib.py | 186 ++--- .../mech_sriov/agent/test_sriov_nic_agent.py | 8 +- .../agent/openflow/native/test_br_int.py | 113 ++- .../agent/openflow/native/test_br_phys.py | 6 +- .../openvswitch/agent/test_ovs_neutron_agent.py | 112 ++- .../ovn/mech_driver/ovsdb/extensions/test_qos.py | 8 + .../drivers/ovn/mech_driver/ovsdb/test_commands.py | 165 ----- .../ovn/mech_driver/ovsdb/test_impl_idl_ovn.py | 8 +- .../ovn/mech_driver/ovsdb/test_maintenance.py | 29 +- .../ovn/mech_driver/ovsdb/test_ovn_db_sync.py | 200 ++---- .../drivers/ovn/mech_driver/test_mech_driver.py | 781 ++++++++++++++------- .../unit/privileged/agent/linux/test_ip_lib.py | 33 + .../unit/services/portforwarding/test_pf_plugin.py | 87 ++- playbooks/configure_functional_job.yaml | 1 + .../legacy/neutron-grenade-dvr-multinode/post.yaml | 15 - .../legacy/neutron-grenade-dvr-multinode/run.yaml | 60 -- .../legacy/neutron-grenade-multinode/post.yaml | 15 - .../legacy/neutron-grenade-multinode/run.yaml | 60 -- rally-jobs/task-neutron.yaml | 8 +- ...ttp_retries-config-option-b81dd29c03ba8c6a.yaml | 6 + ...without-link_up-parameter-27f8310eb1e1910a.yaml | 10 + .../notes/bug-1875981-ec32d8c3918b0dd4.yaml | 6 + ...port-flat-network-for-ovs-fdf8c3eb461426ec.yaml | 9 + ...k-issue-with-dnsmasq-2.81-c95a46e4f4459bd1.yaml | 6 + ...router-availability-zones-03a802ee19689474.yaml | 6 + test-requirements.txt | 3 +- tools/configure_for_func_testing.sh | 13 +- .../infrared/tripleo-ovn-migration/main.yml | 10 +- .../roles/prepare-migration/tasks/main.yml | 22 +- .../tripleo_environment/ovn_migration.sh | 61 +- .../playbooks/ovn-migration.yml | 8 + .../playbooks/reduce-dhcp-renewal-time.yml | 9 +- .../playbooks/roles/migration/tasks/sync-dbs.yml | 12 +- .../roles/migration/templates/activate-ovn.sh.j2 | 11 +- .../roles/migration/templates/clone-br-int.sh.j2 | 2 +- .../playbooks/roles/stop-agents/defaults/main.yml | 3 + .../playbooks/roles/stop-agents/tasks/cleanup.yml | 21 + .../playbooks/roles/stop-agents/tasks/main.yml | 18 + .../playbooks/roles/stop-agents/vars/main.yml | 19 + zuul.d/base.yaml | 3 + zuul.d/grenade.yaml | 86 ++- zuul.d/project.yaml | 7 +- zuul.d/rally.yaml | 1 - zuul.d/tempest-multinode.yaml | 50 -- zuul.d/tempest-singlenode.yaml | 72 +- 172 files changed, 4400 insertions(+), 3639 deletions(-) Requirements updates -------------------- diff --git a/test-requirements.txt b/test-requirements.txt index 43d563a78f..21312fe318 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -9 +9 @@ flake8-import-order==0.12 # LGPLv3 -pycodestyle>=2.0.0 # MIT +pycodestyle>=2.0.0,<2.6.0 # MIT @@ -23,0 +24 @@ pylint==2.2.0;python_version>="3.0" # GPLv2 +isort==4.3.21 # MIT