We high-spiritedly announce the release of: neutron 18.1.0: OpenStack Networking This release is part of the wallaby 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. 18.1.0 ^^^^^^ New Features ************ * When "noauth" auth_strategy is used, neutron no longer requires a resource creation request to include a dummy 'project_id' in request body. A default project_id "fake_project_id" would be populated automatically in that case and would make the use of "noauth" usage simpler. Known Issues ************ * When using the minimim-bandwidth QoS feature due to bug https://launchpad.net/bugs/1921150 physical NIC resource providers were for some time created with the wrong parent (i.e. the hypervisor RP). This is now partially fixed and new resource providers are created now with the expected parent (i.e. the agent RP). However Placement does not allow re-parenting an already existing resource provider, therefore the following Placement DB update may be needed after the fix for bug 1921150 is applied: neutron/tools/bug-1921150-re-parent-device-rps.sql Until all resource providers have the proper parent, neutron-server will retry the re-parenting update, which will be rejected every time, therefore expect polluted logs and some wasted load on Placement. However please note that the bandwidth-aware scheduling is supposed to work even with the wrongly parented resource providers. Bug Fixes ********* * 1926693 (https://bugs.launchpad.net/neutron/+bug/1926693) The logic to detect the hypervisor hostname, which was introduced by change 69660 (https://review.opendev.org/c/openstack/neutron/+/696600), has been fixed and now returns the result consistent with libvirt. * The new "resource_provider_defualt_hypervisor" option has been added, to replace the default hypervisor name to locates the root resource provider without giving a complete list of interfaces or bridges in the "resource_provider_hypervisors" option. This option is located in the "[ovs]" ini-section for "ovs-agent" and "[sriov_nic]" ini-section for "sriov-agent". Changes in neutron 18.0.0..18.1.0 --------------------------------- c1390d86a0 Add fake_project_id middleware for noauth 85a668dd16 Update arp entry of snat port on qrouter ns 2b5c141ec9 [OVN] neutron-ovn-metadat-agent add retry logic for sb_idl 58e9da409d [OVN] Do not fail when processing SG rule deletion 3534dc7aed Use "multiprocessing.Queue" for "TestNeutronServer" related tests 2ede99559b Copy existing IPv6 leases to generated lease file 0ff471aeba [OVN] Disable mcast_flood on localnet ports 170e6306e2 Remove FIP agent's gw port when L3 agent is deleted 061b234c7a Improve Subnet delete performance 9afbe8b65f Improve Subnet create performance b8581a7d57 Force to close http connection after notify about HA router status 26f366119f ovn: Don't use dict.remove() for filtering dhcp ports in db-sync 8576690c19 Read keepalived initial state in parallel to interface monitoring b0c487f711 Make default hypervisor hostname compatible with libvirt 5f57525c9d Add a single option to override the default hypervisor name 04f4d9d406 Provide the rpc_response_max_timeout parameter to sriov-agent 79acb98cfa Added common config and SR-IOV agent config to sanity check c516d5bc03 [DHCP] Fix cleanup_deleted_ports method 562b99a968 Add "filter-validation" support for "OVNL3RouterPlugin" 4d2889454d [OVN] Add "filter-validation" extension to supported list f1cd2a1cb8 Use TCP keepalives for ovsdb connections 9c9ffea8d5 Make phynet paramter also is optional when network_segment_range enabled c23de14eaf Dropping lower constraints testing (stable Wallaby) cb746e2ca4 [ovs fw] Restrict IPv6 NA and DHCP(v6) IP and MAC source addresses 50fd545ee8 Remove leading zeroes from an IP address 51394b775b Use local and ip address to create vxlan interface f29641a7f7 HA-non-DVR router don't need manually add static route e622b28e2c [DVR] Send allowed address pairs info to the L3 agents 8c6f774504 [OVN] Fix: Disabling snat after it was enabled c9a100db20 Install "pyroute2" as a doc job depedency a54ef341b5 ovn-migration: Introduce migrate mode to DB sync tool d3be39433c Physical NIC RP should be child of agent RP fe44c0b1af Improve Network delete performance dd353320eb Improve Subnet update performance 87ad1bc89b designate: allow PTR zone creation to fail fc00c0959b [OVN] Check for lock in check_for_mcast_flood_reports ddf20886f8 Don't ever give up trying to connect to OVN DBs f748962e5a [OVN] Only account for bound ports in metadata agent 220d9875a0 [OVN] MetadataProxyHandler to conditionally monitor both Chassis's tables 69fcf1be75 Use exceptions and resources from neutron-lib 85faee6cd4 Initialize privsep library for neutron-ovs-cleanup de78aaec9d Initialize privsep library in Neutron commands d614e9dac7 Remove SRIOV attach limitation from the doc 3ec596f9ef trivial: Make driver_controller's _attrs_to_driver py3 compatible a226f23326 [OVN] Fix FDB table not registered in OvnSbIdl c2a88c5d86 Get only FIP ID on network delete aba6d0f6f2 Pass existing DB obj to save DB requests b0b64e3e03 DHCP notification optimization dd40bac8b5 Make ARP protection commands compatible with "ebtables-nft" f6b4c7deb3 [stable/wallaby] Drop -master jobs 14eba92cee Group execution of SQL functional tests d028f59772 [Functional] Fix mocks of the create_dhcp_port method bfaf0ebc11 Always use absolute path for custom kill-scripts 51163ffa46 Add locks for setting iptables rules in l3 and metadata agents 9c8710f406 Fix "_get_sg_members" method 148f7c3a32 Remove class "Timer" 5eac64b623 Remove FT "test_has_offline_migrations_*" tests 54afc0461e Switch to use neutron-tempest-plugin jobs for Wallaby branch Diffstat (except docs and test files) ------------------------------------- TESTING.rst | 6 +- .../contributor/testing/ci_scenario_jobs.rst | 8 -- etc/api-paste.ini | 5 +- lower-constraints.txt | 138 ------------------ neutron/agent/common/placement_report.py | 4 +- neutron/agent/common/utils.py | 40 +++++- neutron/agent/dhcp/agent.py | 5 +- neutron/agent/firewall.py | 7 +- neutron/agent/l3/dvr_local_router.py | 20 +++ neutron/agent/l3/ha_router.py | 4 +- neutron/agent/l3/keepalived_state_change.py | 54 +++++-- neutron/agent/linux/dhcp.py | 49 +++++-- neutron/agent/linux/external_process.py | 5 +- neutron/agent/linux/iptables_firewall.py | 3 +- .../agent/linux/openvswitch_firewall/firewall.py | 65 ++++++--- neutron/agent/metadata/driver.py | 40 +++--- neutron/agent/ovn/metadata/agent.py | 3 +- neutron/agent/ovn/metadata/ovsdb.py | 15 +- neutron/agent/ovn/metadata/server.py | 29 +++- .../api/rpc/agentnotifiers/dhcp_rpc_agent_api.py | 33 +++-- neutron/auth.py | 15 ++ neutron/cmd/ipset_cleanup.py | 1 + neutron/cmd/ovn/neutron_ovn_db_sync_util.py | 11 ++ neutron/cmd/ovs_cleanup.py | 1 + neutron/cmd/sanity_check.py | 7 + neutron/common/ovn/extensions.py | 2 + neutron/common/utils.py | 72 ---------- .../plugins/ml2/drivers/mech_sriov/agent_common.py | 9 +- neutron/conf/plugins/ml2/drivers/ovn/ovn_conf.py | 10 +- neutron/conf/plugins/ml2/drivers/ovs_conf.py | 9 +- neutron/db/address_group_db.py | 29 +--- neutron/db/agents_db.py | 3 + neutron/db/allowedaddresspairs_db.py | 12 ++ neutron/db/db_base_plugin_v2.py | 32 +++-- neutron/db/ipam_backend_mixin.py | 5 +- neutron/db/ipam_pluggable_backend.py | 6 +- neutron/db/l3_db.py | 9 +- neutron/db/l3_dvr_db.py | 78 +++++++++- neutron/objects/network_segment_range.py | 6 +- .../objects/port/extensions/allowedaddresspairs.py | 10 ++ neutron/objects/ports.py | 8 ++ neutron/objects/router.py | 9 ++ neutron/opts.py | 4 + .../ml2/drivers/linuxbridge/agent/arp_protect.py | 54 ++++--- .../linuxbridge/agent/linuxbridge_neutron_agent.py | 4 + .../drivers/mech_sriov/agent/sriov_nic_agent.py | 6 +- .../drivers/openvswitch/agent/ovs_neutron_agent.py | 3 +- neutron/plugins/ml2/drivers/ovn/db_migration.py | 83 +++++++++++ .../ml2/drivers/ovn/mech_driver/mech_driver.py | 9 +- .../drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py | 83 +++++++++-- .../drivers/ovn/mech_driver/ovsdb/maintenance.py | 5 +- .../drivers/ovn/mech_driver/ovsdb/ovn_client.py | 11 +- .../drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py | 20 +-- .../drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py | 2 + neutron/plugins/ml2/ovo_rpc.py | 5 +- neutron/plugins/ml2/plugin.py | 33 +++-- .../externaldns/drivers/designate/driver.py | 21 ++- .../service_providers/driver_controller.py | 2 +- neutron/services/ovn_l3/plugin.py | 1 + neutron/services/placement_report/plugin.py | 16 ++- neutron/services/segments/db.py | 9 +- neutron/services/segments/plugin.py | 4 +- .../agent/l3/test_keepalived_state_change.py | 19 +++ .../drivers/ovn/mech_driver/ovsdb/test_impl_idl.py | 11 ++ .../unit/agent/common/test_placement_report.py | 8 +- .../linux/openvswitch_firewall/test_firewall.py | 13 ++ .../unit/agent/linux/test_external_process.py | 3 +- .../unit/agent/linux/test_iptables_firewall.py | 16 +++ .../rpc/agentnotifiers/test_dhcp_rpc_agent_api.py | 19 +-- .../unit/objects/test_network_segment_range.py | 78 +++++++++- .../drivers/linuxbridge/agent/test_arp_protect.py | 51 ++----- .../agent/test_linuxbridge_neutron_agent.py | 1 + .../ovn/mech_driver/ovsdb/test_maintenance.py | 2 +- .../drivers/ovn/mech_driver/test_mech_driver.py | 12 +- .../plugins/ml2/drivers/ovn/test_db_migration.py | 158 +++++++++++++++++++++ .../service_providers/test_driver_controller.py | 13 ++ .../unit/services/metering/test_metering_plugin.py | 2 +- ...h-work-without-project-id-f92fac5df37810f0.yaml | 7 + .../notes/bug-1921150-c02692e548a3750e.yaml | 17 +++ .../notes/bug-1926693-55406915708d59ec.yaml | 7 + ...ovider_default_hypervisor-b92cff207dfb94c0.yaml | 9 ++ tools/bug-1921150-re-parent-device-rps.sql | 52 +++++++ .../playbooks/ovn-migration.yml | 9 -- .../playbooks/roles/migration/tasks/sync-dbs.yml | 4 +- .../roles/prepare-controllers/defaults/main.yml | 2 - .../roles/prepare-controllers/tasks/main.yml | 20 --- tox.ini | 10 +- zuul.d/project.yaml | 11 +- zuul.d/tempest-multinode.yaml | 53 ------- zuul.d/tempest-singlenode.yaml | 99 ------------- 110 files changed, 1632 insertions(+), 859 deletions(-)