We are overjoyed to announce the release of: neutron 16.0.0: OpenStack Networking This release is part of the ussuri 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.0.0 ^^^^^^ Prelude The 16.0.0 release includes many bug fixes and new features. The most important improvements worth mentioning are: * Python 2 is no longer supported by Neutron, Python 3.6 and 3.7 are. * Address scopes and subnetpools can now be shared with other tenants using the Role Based Access Control ("RBAC") mechanism. * Security groups can now be set as "stateful". Conntrack will not be used for any rules from such a group. This is currently supported only by the "iptables" and "iptables_hybrid" drivers. * Neutron API now allows tagging resources directly in the "POST" request. * IGMP snooping (multicast) can now be enabled in the "OVS" and "OVN" drivers. * A list of IPv6 addresses for a dhcp-host entry in the dnsmasq DHCP agent driver can be configured. This solves problems with failing boot process when only one IP address is available. See #1861032 (https://bugs.launchpad.net/neutron/+bug/1861032)) for details about the issue. * The networking-ovn mechanism driver has been merged into the neutron repository and is now an in-tree driver for ML2. Changes in neutron 15.0.0.0rc1..16.0.0 -------------------------------------- 1e81440b63 Monkey patch original current_thread _active 54ffa37538 Add Octavia file in devstack/lib cca0aebb26 Add Prelude for Ussuri release notes. e3e9a90f75 Imported Translations from Zanata ed10d0ca60 Update TOX_CONSTRAINTS_FILE for stable/ussuri bd997fd9f1 Update .gitreview for stable/ussuri a8a2bd7e07 Lock subnets during port creation and subnet deletion dc9084a8ec [L3 HA] Add "no_track" option to VIPs in keepalived config 2697341846 [OVN] External ports: Account for VNIC_DIRECT_PHYSICAL / VNIC_MACVTAP 3a6a8c334a Provide correct fip cidr when deleting port forwarding ba35c0fc29 [OVN] Enable qos service plugin in tempest jobs d840881359 Additions to ovn-db-local.conf.sample 2273499155 Add rootwrap filter rule for radvd-kill script 8d85b35629 Add "rbac-address-scope" to OVN supported extensions aa9db869ee Fix "TestMonitorDaemon" keepalived-state-change input parameters 2ccddef913 Improve port retrieval when validating auto address 7e5a0e04b8 OVN: Add note re IGMP groups upon ovn-controller service restart c92950b0ee [Fullstack] Handle properly BrokenPipeError exception ac5094daa6 Wait until agent metadata is in SB chassis register b098239d72 Refactor OVN client QoS extension 56b971bb42 Allow sharing of subnet pools via RBAC mechanism 784f8e6416 Update OVN local.conf sample file 05d87d6d90 Promote tempest and fullstack uwsgi jobs to be voting f93aebe790 [OVN] Bump up transaction timeout for functional tests 2e6aa290a3 Default (shared) network segment range is not mandatory 25830e8ec5 [OVN] Add IGMP snooping configuration guide 2a36ea26cc Add fullstack tests for stateless security groups 02a74c3d2a Enable back mac spoofing and disabled port security tests a1735c46d8 Don't reschedule hosts unless we need to 21935365f2 "keepalived_state_change" needs to use threading to send arping 306280813f Replace ctype.CDLL by ctypes.PyDLL in linux.ip_lib 3e2b15f0d6 Add tunnel_ip_version to tunnel_sync() error message a90654ae5a Revert "Subcribe trunk & subport events to set subport id" d0a1652227 Add trunk subports to be one of dvr serviced device owners eb775458c6 [DVR] Don't populate unbound ports in router's ARP cache b27940c205 Migrate the OVN migration scripts 27c8391458 Fix neutron debug probe to use integration_bridge 3d3b61f879 Revert "[OVN] Set 'unknown' address properly when port sec is disabled" 6d619ea7c1 Fix name of "subnet_dns_publish_fixed_ip" extension in docs ea999564a5 [OVN] HA Chassis Group: Ignore UPDATES when external_ids hasn't changed 72a5b5b61f Fix return correct cache when reusing port ba00b06ae4 mech_driver.OVNMechanismDriver "_ovn_client" is a read-only property e37722c0f5 Wait before deleting trunk bridges for DPDK vhu 79e8230e39 Filter subnet by segment ID or None 113dfac608 Prioritize port create and update ready messages d7f925249a Mark security group fullstack tests as stable c52029c39a Do not link up HA router gateway in backup node 07b015d789 Use dict .get() to avoid a KeyError in the segment plugin 21ca0ab52c Enable neutron-ovn jobs in check queue 3281d15dd4 Switch tripleo based job to be run on Centos 8 00298fe6e8 [Security] fix allowed-address-pair 0.0.0.0/0 issue f31ae53dd5 Revert "Switch to use cast method in dhcp_ready_on_ports method" f156784b42 [OVN] Fix: DevStack guide e92e311232 [ovn] Documentation: Fix broken links in the OVN Doc 79af9e786d Add usage note in utils.Timer class f9d6076aec [OVN] Fix check_for_ha_chassis_group_address maintenance task d982a68446 Finish migration to new engine facade in test_db_base_plugin_v2 4980995176 Revert "Remove native openflow driver 'deferred' code" 1e970f1aa0 Switch to new engine facade in extensions unit tests 4da355098e Switch to new engine facade in test_allowedaddresspairs_db module c8f2a30983 Reno only - Make stateless allocation segment aware 42ad50db1e Add known gaps between ML2/OVS and OVN 4b10f6876f Fix fake_meta_dvr_port initialization 06fde66b0b [ovn] Stricter matching on metadata port binding event eb6104c0ac Allow sharing of address scopes via RBAC mechanism 9bd97242b6 Clear lsp.addresses always if port is OVN LB VIP port. ceb27f2c7d Mark TestVirtualPorts tests as unstable e1804e6f5f Use "datetime.datetime.isoformat" instead of "timeutils.isotime" 512d8abb4b Neutron ovs agent: Removing SmartNIC OVS representor port on instance tear down and resync ee73b50618 [OVN] Call OVNClient methods with context when possible 45643f2679 Change OVS tunnel tests to support unittest.mock 8c7aac4f3c Change TestOVNL3RouterPlugin to support unittest.mock f987486feb Deny delete last slaac subnet with allocation on segment 3d3dc60408 subnet create - segment aware auto-addr allocation 8ebc635a18 Subcribe trunk & subport events to set subport id 807a99f3ab [fullstack] Add option for custom apipaste.ini 7e09e72661 Filter subnets on fixed_ips segment e0cb072b84 [OVN] Switch release jobs to OVN 20.03 (v20.03.0 tag) 4912d11b34 Add fip_pf_description extension to be supported by service plugin 5a256dd937 Switch to new enginefacade in l3_hascheduler_db module 2b56e60140 Unblock security group update with same stateful data d92e71c297 Use OVN mech driver OVSDB connections for l3 plugin 933049f529 [OVN] Updates to tools/migrate_names.txt 8108db2c6f Bump neutron-lib to 2.2.0 9e416224b0 [OVN] OVN DB schema update aware maintenance tasks 4824a714bf [OVN] Add support for external ports 03ef29b1f0 [OVN] Default to TLS for OVN-enabled tests db26ded539 Fix bulk port tag test_type_args_passed_to_extension() cc281afeec Register DNSMASQ_OPTS in functional sanity tests 295480c53c Provide meaningful defaults for OVN/OVS_REPO_NAME 1e69279817 Check tc_lib.add_tc_policy_class input parameters d954cd4fea Remove native openflow driver 'deferred' code cbc473e066 Support for stateless security groups 8456240e7d Run fullstack security group test always serially 6b01ecf9ea Limit ovn sanity checks to q-svc 02a7e96743 Rename devstack service neutron-ovn-metadata-agent 7fa6c1bf39 [OVN] Add IGMP snooping support 592c2f8d91 DHCPv6 - Use addr6_list in dnsmasq 07d5a20b3b [OVN] Add missing OVN functional tests 36656ca318 [Community goal] Add contributor and PTL guide a27081636b Fix _notify_l3_agent_port_update when there is no binding host 2baeae7519 Clean dvr fip gateway entry when fip agent gw port is deleted 42fc820ded Increase log information in "TestMonitorDaemon" ec539cb76f Fix assertEqual() calls in metadata agent unit tests 5af046fd4e Remove extra header fields in proxied metadata requests 18c63a7148 [OVN] DevStack: Split the OVN_BRANCH and OVS_BRANCH variables 248cdaa6f7 Allow usage of assert_called_once method in unit tests 5c99964ead [OVN] Enable live-migration tests for devstack multinode ab1390163d Make neutron-ovn-tempest-slow job green 08132e213d Change way of retrieving LSP in virtual_port functional tests 8c103739f6 [OVN] Always update router static route d6e1523f78 Add tag-ports-during-bulk-creation to devstack 4739a4febb Ensure that default SG exists during list of SG rules API call 2581778264 [OVN] Remove SG dependency on original port dict 8ae949d5cb Revert "Blacklist test_multiple_ports_portrange_remote for OVN" b46dbce219 Fix logging call in the segment plugin c3bbbf575f [OVN] Update zuul jobs to use local OVN driver 046672247d Fix queries to retrieve allocations with network_segment_range 43e150e690 Ensure netlink.nla_slot tuple key is a string eae036a9d9 Catch PortBindingChassisEvent in test_agent_resync_on_non_existing_bridge 483cc047fa Remove leftovers of get_external_network_id for router d340f6be57 Add functional test for metadata agent monitoring 03378182f4 Remove neutron-tempest-dvr job from CI 5600163e9b [OvS] Handle re_added multi ports e4de8d0dd3 Improve log message on exception for invalid tunnel type 4d5817003c Blacklist test_multiple_ports_portrange_remote for OVN 321afc8f89 Move rejection of min-bw rule on non-physnet port to the ovs qos driver caa34c2797 Drop invalid rootwrap filters d874c46bff Filter by owner SGs when retrieving the SG rules dfd394805d Remove method get_security_group_rules_count 88a6c92dc7 [OVN] Merge networking-ovn vagrant into neutron 03203cc4c8 [OVN] Add OVN functional tests - part 1 6dbba8d5ce Check SG members instead of ports to skip flow update f5c5755100 [Fullstack] Wait until min QoS and Queue registers are set in DB 0d43372f14 Add "project_id" filter when changing the network segmentation ID 7593f95a74 Set a default IP route metric in ip_lib.list_ip_routes 3053caaa02 Workaround in NetworkSegmentRange OVO until "project_id" migration 33fb446add Deprecate config option "ovs_integration_bridge" 98266664c8 Mark NetcatTesterTestCase tests as unstable e2ab1636b0 Centralize traffic when LB and member has FIP 22ce84ab4d Revert "Add "ncat" rootwrap filter for debug" 2dd6222198 Set an absolute path in rootwrap filters_path ee01ea950d Bump neutron-lib to 2.1.0 cc3b9df426 "ping"/"ping6" command support in rootwrap filters cd66232c2b Merge networking-ovn documentation into neutron 0ef4233d89 Add "ncat" rootwrap filter for debug efec8fc153 Reduce the VLAN/tunneled ranges in fullstack tests 016e7826f1 Improve VLAN allocations synchronization 50025935fe Add 'fip-port-details' to OVN ML2 supported extensions c9a3d49513 Enhance agent's resources_synced check cc4c382fd5 Add NEUTRON_PATH to configure_for_func_testing.sh d8349033e9 Enforce "qos_max_rate" and "qos_burst" in OVN QoS options b85c273639 [OVN] Reduce the number of watched tables in MetadataProxyHandler 37fafeb678 Add SR-IOV agent resource provider information a0bb5763b2 dhcp-agent: equalize port create_low/update/delete priority f9b5a7b6d7 Add 'is_available' function e64bf6be1b [OVN] Devstack: Fix adding another compute node 6971404bb9 Add ovn-octavia-provider tag as official tag 99105848e5 Revert "Disable neutron-ovn-tempest-ovs-release temporarily" 244e6eead8 Use sys.executable instead of 'python' 13aa00026f Re-use existing ProcessLauncher from wsgi in RPC workers a05a3ba413 Remove plugins.ml2.db.get_binding_levels 93d9d6bbba Ensure there is always at most 1 dvr fip gw port per agent and network 18d8d3973a Revert "[DVR] Add lock during creation of FIP agent gateway port" c37781342e Use Python 3 as interpreter in test a1d65ba210 Remove duplicate QoS backend support table dcec852b7f [OVN] Update QoS related code from networking-ovn 5b12d808aa Disable neutron-ovn-tempest-ovs-release temporarily d027a9bc77 Fix duplicate ID warning during doc build 2cd75e073a OVN Metadata agent gets OVSDB updates for only its Chassis 4e60c047d2 Permit OVS build can be set 938581d9bd Increate tox-py38 timeout to 3600 seconds 97773eaea6 Increase log information when a RootHelperProcess fails 740741864a Remove sleep command when retrieving OVS dp b7dc0ac63a Increase tox-cover timeout to 4800 seconds cf36bd4ca5 Enable ovsdb debug messages in functional and fullstack b3a42cddc5 DVR: Remove control plane arp updates for DVR c471c7330c [OVN] Remove VLAN check when setting external_mac e22a191f47 Implement tagging during bulk port creation 7fa564ba2c Fix OVN agent devstack script to support IPv6 6ff46fb44b Add "ovn" as official tag used on Neutron's Launchpad 647b7f63f9 [OVN] Add an interval between agents health checks 936bd67aa4 Check "security_group_rule" quota during security group creation f8a3b2c589 Stop configuring install_command in tox. 3284b5f5ac [OVN] Provide local.conf sample file for DevStack 303937f3ae [OVN] scripts for networking-ovn code migration 2e316157ed Pass result dict to extensions by create port bulk 9283738843 [OVN] Bump ovsdbapp requirements to 1.0.0 710dad13a2 Collect exception information in ARPSpoofTestCase only if initialized fc507c701c Define new ipv6-only job for OVN bc0b38b282 Use distutils.version to check dnsmasq supported version c6a5b284b5 Ensure we don't pass empty addresses to lsp_set_addresses 3b56299e1f Ensure driver error preventing trunk port deletion is logged 06e43dd95d Add description field to portforwarding NAT rules 349869096b [OVN] Migrate the OVN tools f9e2514ddc [OVN] Double the tempest_concurrency 4f94c55ed3 Increase tox-py3{6,7} and lower-constraints timeout to 3600 seconds 28b1cb749d Remove networking-midonet job from Neutron's check queue 18410097f2 [ovn] Agent liveness - allow time to propagate checks 37521cee8d Assign local variable before being referred 2225457791 Update release-checklist doc page c5b7817fd0 Follow up to change of exception raised 2f46aee345 Remove python 3.5 from L3 rootwrap filters 45ae9dfb7d [OVN] Delete NAT entry first on any FIP update d6fccd247f Allow to kill keepalived state change monitor process cc890bf88b [OVN] Pass context while removing objects in OVN client 426afcfe02 [OVN] Use STACK_USER's actual primary group in starting services e395322fbf [OVN] Re-enable test_port_security_macspoofing_port 6d1d4cd6ba "_create_security_group_precommit" additional arguments are kwargs 89f138fa41 Remove "update_device_up" parameter from port notification d1e6c8e556 Remove TripleO job from Neutron's check queue f2b52b5e8f Add "qos_network_policy_id" to port definition 00a74d1137 Install OVN for functional tests 3ac866950f Replace support matrix ext with common library 13f1015809 Fix invalid assertFalse statements 1310c536e6 [OVN] Enable neutron-ovn-tempest-ovs-release job 0643ab44d8 Set OpenFlow 1.0, 1.3 and 1.4 by default on bridges 12089a526e Add support for direct ports with QoS in OVS 3acf0812a2 [OVN] Add missing pyOpenSSL requirement 1986865bd5 Add MariaDB 10.3 repository for Ubuntu Bionic 48ab58b46e [OVN] Change DevStack to use the local OVN driver 03b87ad963 [OVN] Set 'unknown' address properly when port sec is disabled 620adfe753 Complete dropping py27 support goal 0c8e520b37 [OVN] Add missing OvnSbIdl and OvnNbIdl unit tests 7d5cd3f47d [OVN] TrivialFix: use_new_ovn_repository must check major version a0fbb3da9b Modify exception string to have more information 03ad5bf19c Fix bug number in release note 7e0c44e21f Remove references to unittest2 library b20669fa6e IPv6 accepts first address only for routers 84658a96b3 Bump neutron-lib to 2.0.0 efa8dd0895 Add accepted egress direct flow 30a0333f64 Add Dongcan Ye as neutron-vpnaas lieutenant and bug contact person a022301b50 Set binding profile directly from OVNTrunkDriver (redo cont.) 93e9dc5426 ovs agent: signal to plugin if tunnel refresh needed 193cc4b5ec [OVN] Add OVN metadata entry points 668f582f8d Remove neutron-rootwrap-xen-dom0 script 331a195972 [OVN] Migrate the OVN mech driver f758bc9980 DhcpLocalProcess._enable should not call DhcpLocalProcess.restart af274fa826 Switch to reader context 6f7b88d080 Use effective MAC address for macvtap assigned VFs 83d7eb961d Add OVS QoS driver cache for minimum bandwidth rules 08bfbed4c3 Remove the condition that the mtu is nullable 5f2758bb80 Move arp device check out of loop b89616b1cf Add missing parameter option in log message 9c5156575d Pass correct port data to extension manager 0b3cff33c1 Subnet gateway should be a valid IP 0bf005b3c3 Disable not needed services in grenade jobs 2a8b5860a0 Imported Translations from Zanata 4075db5fd0 Improve ovs cleanup utility help e54b64f725 OVSInterfaceDriver.plug_new should catch correct exceptions 474bff078c Work around potential double row.delete() call 3faba7cae0 [L3] Switch order of processing added and removed router ports 52787dd4a4 Move tripleo standalone job to ostempest 480b04ce04 Unnecessary routers should not be created d484bbec2e Update TOX_ENV_SRC_MODULES example 3c156b6a4a Check "keepalived" is stopped in KeepalivedManagerTestCase 0166a1f286 Remove the neutron-grenade job definition 5663517613 Support L3 agent cleanup on shutdown f711090ed3 Check mtu on network update 3dbe5c2057 Add Neutron Priorities to dashboards list be1bdd4342 [OVN] Import OVN Client, L3 and QoS related code b869f30e0b Fix TestHashRingManager test cases 57bc6d167b Allow to select subnets to publish DNS records 36727e3463 Fix pep8 errors found by hacking 2.0.0 a75ec08ddb don't clear skb mark when ovs is hw-offload enabled df401ddca1 Remove unused arguments in test methods 364fc1413b Remove locks from privileged ip_lib module 04e391ba3e Bump neutron-lib to 1.30.0 fc4e3b95d8 Bump min pyroute2 version to 0.5.7 eabaf30fea Add etc/neutron/*.sample files to be ignored by git ade35a233e Add retries to update trunk port 7a9fcd11a8 [OVN] Move trunk driver b99765df8f Use "via" in gateway dictionary in Linux Bridge agent 07be793435 Use constraints for docs tox target ed26c606c1 Add a tox requirements target 49c0d0548a Move zuul jobs definitions to zuul.d directory 258eebea71 Locate RP-tree parent by hypervisor name af8a812240 Load the glibc library only once for Pyroute2 88153e7013 [OVN] Move OVN metadata agent fdb3f05055 [OVN] Import ovsdb related code (part 2) 3437572906 Replace "ip monitor" command with Pyroute2 implementation f77c1037e4 [OVN] Move OVN ACL commands to Neutron tree ec171b06f0 doc: fixed word 'neutron-serer' spelling error 8cc2765b5f Avoid raising NetworkInterfaceNotFound exception in DHCP agent logs 50ffa5173d [OVS] Handle added/removed ports in the same polling iteration b81155ee27 Migrate from ofctl to native QoS DSCP 96741866a7 Move DevStack OVN module to Neutron c5c896683c [OVN] Move OVN common.acl to Neutron tree 4b5cf9e5fb [OVN] Import ovsdb related code 65692127f6 [OVN] Move OVN commons to neutron tree f8cb7e849f [OVN] Add revision number maintenance methods 04f693bbbb [OVN] Add revision number methods 10bb7ecbb6 Update comments messages in abandon_old_reviews script b59fdaa9aa Log exact error during getting value from file d63da24a13 [OVN] Add hash ring methods 397eb2a2fe Serialize subnet creating depending on the network ID b01e0c2aa9 [OVS FW] Clean port rules if port not found in ovsdb a8b5afa41e Add upgrade check for NIC Switch agent 4b3baeb15a Do not inherit from built-in "dict" 151dab39dc Remove grenade-py3 job from Neutron CI 22d2bb94f7 Revert "Revise log when create port failed" f26b3620db [OVN] Add DB tables for OVN backend 5cb0ff418a Add more condition to check sg member exist 1e5ce97bb9 [OVN] Disable ovn jobs temporary d296188c2e Set ignore_basepython_conflict to true in tox.ini 9fa881f870 Add upgrade check for networking-ovn db version b898d2e3c0 List SG rules which belongs to tenant's SG 9267966628 [OVN] Sync requirements with OVN 9c6d3e073e Rehome networking-ovn CI jobs to neutron repository b4972e246d use objects common_types from neutron-lib 139b496ef9 Dont schedule Network, respecting network_auto_schedule config ea85e39660 Force arp_responder to True when DVR and tunneling enabled 185efb38aa Update networking-bgpvpn and networking-bagpipe liuetenants cdadaef53a OpenFlow monitor 728d8ee4b1 NetcatTester.stop_processes skip "No such process" exception e1a79995b9 Explicit mention py2 for neutron-grenade job 78231fb425 Start README.rst with a better title eba2e9ce19 Remove neutron-grenade job from Neutron CI queues 39255f3e7e Parameter 'fileds' value is not used in _get_subnets 3593b0dc69 Switch neutron-tempest-with-os-ken-master job to zuul v3 0041860e97 HA race condition test for DHCP scheduling 4afba466e0 Make network support read and write separation 458fd224db [Fullstack] Fix waiting for packet with DSCP mark in test a2fdf8aa72 Remove one of iptables_hybrid jobs 1d6207187c Update liaison for networking-sfc project eeefd54c53 doc: Adjust heading levels 3c9b0a5fac [fullstack] find ip based on allocation_pool c03b263a67 Trivial: fix firewall_refresh_needed return value type cae66a4d8d Revise log when create port failed 76de8a715d SR-IOV: macvtap assigned vf check using sysfs c4fd5a030f Remove old, legacy experimental CI jobs ab286bcdac Set DB retry for quota_enforcement pecan_wsgi hook 7a9d6d2641 Do not initialize snat-ns twice a545da420c Enable bulk updates for the dnsmasq d15ad2e481 Increase waiting time for network rescheduling 9ad03dcf96 Catch FileNotFoundError when listing namespace PIDs 0a3c53e411 Move migration to proper dir and fix objects tests 59b37701e9 TestMinBwQoSOvs must call the correct methods 5b341150e2 Add "igmp_snooping_enable" config option for OVS agent 02be7c13b3 Remove deprecated agent_type option 30d3e4c56c Fix Geneve max_header_size config option text eb3302207f Add profiler decorator to Neutron 26b8026cee Update security group rule if port range is all ports 7218873050 Set rootwrap daemon timeout for fullstack and functional tests cc3886fd78 PSExtDriverTestCase: initialize variable in case of exception aedc099176 Increase timeout when waiting for dnsmasq enablement 5537a81fbb Remove info about "ovsdb_interface" from config description 4d52b903eb Adding check for IPv6 address in setup_controllers cb2ebcc998 "round" with ndigits=None returns an integer 0a7f166861 Add neutron-tempest-mariadb-full periodic job 4379310846 Remove Floating IP DNS record upon associated port deletion a260afcf18 Add Source links to readme and update Documentation 68625686a4 Make the MTU attribute not nullable 48ea7da6c5 Router synch shouldn't return unrelated routers 1d55a4508f Clean-up ssl packages from bindep.txt 6842465260 Stop testing python 2 7c5ce50a0c Check dnsmasq process is active when spawned ecef65b9b5 Do not use exceptions in get_link_id() to control the code flow 4f59db2fab Reset timeout exception in DietTestCase when retrying 1a686fb401 Switch to use cast method in dhcp_ready_on_ports method 51dd91a73d Update bug contacts 48730d9449 Use threads insted of greethreads in IP monitor 471dc98707 Temporary disable CI job neutron-functional-python27 bdc1bc73f3 Fix mismatch of tags in dnsmasq options e801159003 Handle OVSFWPortNotFound and OVSFWTagNotFound in ovs firewall 60ac055ff6 Add more info when parsing config fails 4b67a06403 Log OVS firewall conjunction creation a8fa085364 [nova][train] Docs: Remove deprecated RetryFilter 70763c0d1b Update list of Neutron lieuetenants 555238da69 Start using oslo_utils.netutils.is_ipv6_enabled() 3fe4df00e3 [doc][IPv6] make kernel config addr_gen_mode clear e101652a63 Don't call super() in Timer class __init__ method 592b446299 Convert Pyroute2 byte results to strings dce7af902c Mock openstacksdk raise_from_response in ironic unit test 6b52e361f0 Fix misspell word 6a5a75d5a6 Add radvd_user config option ee3054b936 Switch to openstack-python3-ussuri-jobs ac0a426017 Add policy config for get_flavor_service_profile operation 12760c94c8 Adding LOG statements to debug 1838449 451c21571f ovsdb monitor: handle modified ports 040b550a86 Use admin context when updating router gateway 02b6c9827d doc: Update QoS minimum bandwidth limitations for Train 17706412e2 Switch neutron-tempest-postgres-full job definition to Zuul v3 74550b7b15 Code review policy - add note about approving mechanical changes 0fdcbe4ee8 Imported Translations from Zanata 654c1f06d5 Fix designate driver not being fully region aware a534f10e7b Add irrelevant files to neutron-centos-7-tripleo-standalone db3001a7a2 Remove QoS related objects unneeded compatibility conversions 4762ee9d1a Update master for stable/train 761b91fd22 Randomize VNI in FdbInterfaceTestCase 6b241bb13c Always make sure openvswitch kernel module is loaded 94f69ab407 Randomize BaseFullStackTestCase._find_available_ips ffe5943e65 Make port list by mac case insesitive d8eb42f1ea Configure keepalived interfaces according to config file f9a750fcaf Prevent providing privsep-helper paths outside /etc 2bb241b7a2 Log the IPTables rules if "debug_iptables_rules" c952b59600 Handle ports assigned to routers without routerports 0528068a35 switch to the newly created opensuse-15 nodeset def8e95aad fixed_configured=True when Add/Remove port IPs ab75405708 Initialize nova_notifier for only port data changes 69b3762dda Add binding_index to NetworkDhcpAgentBinding da93f09676 Open Ussuri DB branch Diffstat (except docs and test files) ------------------------------------- .gitignore | 1 + .gitreview | 1 + .zuul.yaml | 456 --- CONTRIBUTING.rst | 19 +- HACKING.rst | 5 +- README.rst | 18 +- TESTING.rst | 18 +- bin/neutron-rootwrap-xen-dom0 | 154 - bindep.txt | 7 - devstack/lib/dns | 11 +- devstack/lib/octavia | 45 + devstack/lib/ovn_agent | 829 +++++ devstack/lib/ovs | 14 +- devstack/lib/tag_ports_during_bulk_creation | 3 + devstack/ovn-compute-local.conf.sample | 89 + devstack/ovn-db-local.conf.sample | 47 + devstack/ovn-local.conf.sample | 172 + devstack/ovn-vtep-local.conf.sample | 39 + devstack/plugin.sh | 35 + .../admin/ovn/figures/ovn-l3ha-bfd-failover.png | Bin 0 -> 122142 bytes .../admin/ovn/figures/ovn-l3ha-bfd-failover.svg | 2599 +++++++++++++ .../figures/ovn-north-south-distributed-fip.png | Bin 0 -> 125745 bytes .../figures/ovn-north-south-distributed-fip.svg | 3090 ++++++++++++++++ .../ovn/refarch/figures/ovn-architecture1.png | Bin 0 -> 205984 bytes .../ovn/refarch/figures/ovn-architecture1.svg | 1568 ++++++++ .../admin/ovn/refarch/figures/ovn-compute1.png | Bin 0 -> 139894 bytes .../admin/ovn/refarch/figures/ovn-compute1.svg | 982 +++++ .../admin/ovn/refarch/figures/ovn-services.png | Bin 0 -> 97775 bytes .../admin/ovn/refarch/figures/ovn-services.svg | 860 +++++ .../refarch/launch-instance-provider-network.rst | 774 ++++ .../launch-instance-selfservice-network.rst | 757 ++++ .../admin/ovn/refarch/selfservice-networks.rst | 517 +++ .../contributor/internals/code_profiling.rst | 197 + .../internals/ovn/acl_optimizations.rst | 186 + .../contributor/internals/ovn/data_model.rst | 263 ++ .../internals/ovn/database_consistency.rst | 442 +++ .../internals/ovn/distributed_ovsdb_events.rst | 142 + .../internals/ovn/l3_ha_rescheduling.rst | 166 + .../contributor/internals/ovn/loadbalancer.rst | 316 ++ .../contributor/internals/ovn/metadata_api.rst | 363 ++ .../contributor/internals/ovn/native_dhcp.rst | 53 + .../contributor/internals/ovn/ovn_worker.rst | 84 + .../contributor/internals/quality_of_service.rst | 40 +- .../contributor/ovn_vagrant/prerequisites.rst | 29 + .../ovn_vagrant/sparse-architecture.rst | 106 + .../contributor/policies/release-checklist.rst | 20 +- .../contributor/testing/ci_scenario_jobs.rst | 22 +- .../general_feature_support_matrix.ini | 167 +- .../provider_network_support_matrix.ini | 57 +- .../install/ovn/figures/ovn-initial-resources.png | Bin 0 -> 87952 bytes .../install/ovn/figures/ovn-initial-resources.svg | 1596 ++++++++ .../install/ovn/figures/tripleo-ovn-arch.png | Bin 0 -> 115804 bytes .../install/ovn/figures/tripleo-ovn-arch.svg | 3175 ++++++++++++++++ etc/neutron/rootwrap.d/debug.filters | 6 +- etc/neutron/rootwrap.d/iptables-firewall.filters | 3 + etc/neutron/rootwrap.d/l3.filters | 15 +- etc/neutron/rootwrap.d/privsep.filters | 2 +- .../neutron_ovn_metadata_agent.ini | 6 + etc/oslo-config-generator/ovn.ini | 6 + etc/rootwrap.conf | 3 + lower-constraints.txt | 21 +- neutron/agent/common/ovs_lib.py | 58 +- neutron/agent/common/ovsdb_monitor.py | 16 +- neutron/agent/common/placement_report.py | 61 +- neutron/agent/common/utils.py | 25 + neutron/agent/dhcp/agent.py | 54 +- neutron/agent/dhcp_agent.py | 2 + neutron/agent/l3/agent.py | 24 +- neutron/agent/l3/dvr.py | 6 +- neutron/agent/l3/dvr_edge_ha_router.py | 8 +- neutron/agent/l3/dvr_edge_router.py | 10 +- neutron/agent/l3/dvr_local_router.py | 41 +- neutron/agent/l3/extensions/port_forwarding.py | 4 +- neutron/agent/l3/ha.py | 9 + neutron/agent/l3/ha_router.py | 43 +- neutron/agent/l3/keepalived_state_change.py | 91 +- neutron/agent/l3/router_info.py | 40 +- neutron/agent/l3_agent.py | 2 + neutron/agent/linux/daemon.py | 2 +- neutron/agent/linux/dhcp.py | 275 +- neutron/agent/linux/external_process.py | 5 +- neutron/agent/linux/interface.py | 49 +- neutron/agent/linux/ip_lib.py | 62 +- neutron/agent/linux/ip_monitor.py | 86 - neutron/agent/linux/ipset_manager.py | 2 +- neutron/agent/linux/iptables_firewall.py | 81 +- neutron/agent/linux/iptables_manager.py | 1 + neutron/agent/linux/keepalived.py | 22 +- neutron/agent/linux/of_monitor.py | 84 + .../agent/linux/openvswitch_firewall/firewall.py | 173 +- neutron/agent/linux/openvswitch_firewall/rules.py | 6 + neutron/agent/linux/ra.py | 11 +- neutron/agent/linux/tc_lib.py | 50 +- neutron/agent/linux/utils.py | 5 +- neutron/agent/metadata/agent.py | 39 +- neutron/agent/metadata/driver.py | 7 +- neutron/agent/ovn/__init__.py | 0 neutron/agent/ovn/metadata/__init__.py | 0 neutron/agent/ovn/metadata/agent.py | 483 +++ neutron/agent/ovn/metadata/driver.py | 224 ++ neutron/agent/ovn/metadata/ovsdb.py | 72 + neutron/agent/ovn/metadata/server.py | 198 + neutron/agent/ovn/metadata_agent.py | 39 + neutron/agent/rpc.py | 8 +- neutron/agent/securitygroups_rpc.py | 8 +- .../api/rpc/agentnotifiers/dhcp_rpc_agent_api.py | 4 +- neutron/api/rpc/handlers/l3_rpc.py | 19 +- neutron/api/rpc/handlers/securitygroups_rpc.py | 11 +- neutron/cmd/eventlet/agents/ovn_metadata.py | 17 + neutron/cmd/ovn/__init__.py | 0 neutron/cmd/ovn/migration_mtu.py | 119 + neutron/cmd/ovn/neutron_ovn_db_sync_util.py | 218 ++ neutron/cmd/ovs_cleanup.py | 4 +- neutron/cmd/sanity/checks.py | 52 +- neutron/cmd/sanity_check.py | 13 + neutron/cmd/upgrade_checks/checks.py | 123 +- neutron/common/_constants.py | 3 + neutron/common/cache_utils.py | 27 +- neutron/common/config.py | 1 - neutron/common/eventlet_utils.py | 9 +- neutron/common/ipv6_utils.py | 29 +- neutron/common/ovn/__init__.py | 0 neutron/common/ovn/acl.py | 499 +++ neutron/common/ovn/constants.py | 216 ++ neutron/common/ovn/exceptions.py | 38 + neutron/common/ovn/extensions.py | 57 + neutron/common/ovn/hash_ring_manager.py | 100 + neutron/common/ovn/utils.py | 474 +++ neutron/common/utils.py | 17 +- neutron/conf/agent/cmd.py | 3 +- neutron/conf/agent/common.py | 3 + neutron/conf/agent/dhcp.py | 11 +- neutron/conf/agent/l3/config.py | 14 + neutron/conf/agent/ovn/__init__.py | 0 neutron/conf/agent/ovn/metadata/__init__.py | 0 neutron/conf/agent/ovn/metadata/config.py | 58 + neutron/conf/agent/ovs_conf.py | 11 + neutron/conf/agent/ovsdb_api.py | 5 +- neutron/conf/plugins/ml2/drivers/driver_type.py | 4 +- .../plugins/ml2/drivers/mech_sriov/agent_common.py | 9 + neutron/conf/plugins/ml2/drivers/ovn/__init__.py | 0 neutron/conf/plugins/ml2/drivers/ovn/ovn_conf.py | 300 ++ neutron/conf/plugins/ml2/drivers/ovs_conf.py | 29 +- neutron/conf/policies/flavor.py | 17 +- neutron/conf/policies/security_group.py | 16 +- neutron/conf/profiling.py | 31 + neutron/core_extensions/qos.py | 8 +- neutron/db/address_scope_db.py | 6 +- neutron/db/agentschedulers_db.py | 6 +- neutron/db/db_base_plugin_common.py | 19 +- neutron/db/db_base_plugin_v2.py | 113 +- neutron/db/external_net_db.py | 7 - neutron/db/ipam_backend_mixin.py | 21 +- neutron/db/ipam_pluggable_backend.py | 25 +- neutron/db/l3_db.py | 79 +- neutron/db/l3_dvr_db.py | 224 +- neutron/db/l3_dvrscheduler_db.py | 85 +- neutron/db/l3_hascheduler_db.py | 5 +- neutron/db/migration/__init__.py | 2 + .../alembic_migrations/versions/EXPAND_HEAD | 2 +- .../expand/c613d0b82681_subnet_force_network_id.py | 5 + .../18a7e90ae768_add_security_group_stateful.py | 37 + ...22de6_add_dvr_fip_gateway_port_network_table.py | 42 + ...454a9655_add_dns_publish_fixed_ip_to_subnets.py | 46 + .../expand/86274d77933e_change_mtu_to_not_null.py | 55 + .../Ibac91d24da2_port_forwarding_description.py | 77 + .../a010322604bc_network_subnet_update_lock.py | 40 + .../expand/c3e9d13c4367_add_binding_index_to_.py | 68 + .../expand/d8bdf05313f4_add_in_use_to_subnet.py | 53 + ...236b0e1ff_add_rbac_support_for_address_scope.py | 82 + ...e88badaa9591_add_rbac_support_for_subnetpool.py | 81 + .../ussuri/expand/f4b9654dd40c_ovn_backend.py | 74 + neutron/db/migration/cli.py | 3 +- neutron/db/models/address_scope.py | 18 +- neutron/db/models/dns.py | 23 + neutron/db/models/dvr.py | 17 + neutron/db/models/ovn.py | 63 + neutron/db/models/plugins/ml2/geneveallocation.py | 8 + .../models/plugins/ml2/gre_allocation_endpoints.py | 8 + neutron/db/models/plugins/ml2/vlanallocation.py | 8 + neutron/db/models/plugins/ml2/vxlanallocation.py | 8 + neutron/db/models/port_forwarding.py | 6 +- neutron/db/models/securitygroup.py | 4 + neutron/db/models_v2.py | 65 +- neutron/db/network_dhcp_agent_binding/models.py | 12 + neutron/db/ovn_hash_ring_db.py | 69 + neutron/db/ovn_revision_numbers_db.py | 229 ++ neutron/db/rbac_db_models.py | 22 + neutron/db/securitygroups_db.py | 104 +- neutron/db/securitygroups_rpc_base.py | 41 +- neutron/debug/debug_agent.py | 2 + neutron/debug/shell.py | 2 + neutron/extensions/fip_pf_description.py | 20 + neutron/extensions/qos_port_network_policy.py | 20 + neutron/extensions/rbac.py | 5 + neutron/extensions/rbac_address_scope.py | 22 + neutron/extensions/rbac_subnetpool.py | 22 + neutron/extensions/stateful_security_group.py | 22 + neutron/extensions/subnet_dns_publish_fixed_ip.py | 20 + .../extensions/tag_ports_during_bulk_creation.py | 24 + neutron/extensions/tagging.py | 14 +- neutron/hacking/checks.py | 18 +- neutron/ipam/subnet_alloc.py | 2 +- neutron/ipam/utils.py | 15 +- neutron/locale/de/LC_MESSAGES/neutron.po | 587 +-- neutron/locale/es/LC_MESSAGES/neutron.po | 529 +-- neutron/locale/fr/LC_MESSAGES/neutron.po | 533 +-- neutron/locale/it/LC_MESSAGES/neutron.po | 522 +-- neutron/locale/ja/LC_MESSAGES/neutron.po | 526 +-- neutron/locale/ko_KR/LC_MESSAGES/neutron.po | 514 +-- neutron/locale/pt_BR/LC_MESSAGES/neutron.po | 517 +-- neutron/locale/ru/LC_MESSAGES/neutron.po | 507 +-- neutron/locale/tr_TR/LC_MESSAGES/neutron.po | 1648 --------- neutron/locale/zh_CN/LC_MESSAGES/neutron.po | 452 +-- neutron/locale/zh_TW/LC_MESSAGES/neutron.po | 462 +-- neutron/manager.py | 7 + neutron/objects/address_scope.py | 27 +- neutron/objects/agent.py | 2 +- neutron/objects/auto_allocate.py | 2 +- neutron/objects/common_types.py | 319 -- neutron/objects/conntrack_helper.py | 2 +- neutron/objects/extensions/port_security.py | 2 +- neutron/objects/flavor.py | 2 +- neutron/objects/floatingip.py | 2 +- neutron/objects/ipam.py | 2 +- neutron/objects/l3_hamode.py | 2 +- neutron/objects/l3agent.py | 2 +- neutron/objects/logapi/logging_resource.py | 2 +- neutron/objects/metering.py | 2 +- neutron/objects/network.py | 22 +- neutron/objects/network_segment_range.py | 98 +- neutron/objects/plugins/ml2/base.py | 40 + neutron/objects/plugins/ml2/flatallocation.py | 4 +- neutron/objects/plugins/ml2/geneveallocation.py | 9 +- neutron/objects/plugins/ml2/greallocation.py | 9 +- neutron/objects/plugins/ml2/vlanallocation.py | 39 +- neutron/objects/plugins/ml2/vxlanallocation.py | 11 +- .../objects/port/extensions/allowedaddresspairs.py | 2 +- .../objects/port/extensions/data_plane_status.py | 2 +- neutron/objects/port/extensions/extra_dhcp_opt.py | 2 +- .../port/extensions/uplink_status_propagation.py | 2 +- neutron/objects/port_forwarding.py | 22 +- neutron/objects/ports.py | 88 +- neutron/objects/qos/binding.py | 19 +- neutron/objects/qos/policy.py | 52 +- neutron/objects/qos/rule.py | 31 +- neutron/objects/qos/rule_type.py | 7 +- neutron/objects/quota.py | 2 +- neutron/objects/rbac.py | 12 +- neutron/objects/rbac_db.py | 43 +- neutron/objects/router.py | 18 +- neutron/objects/securitygroup.py | 32 +- neutron/objects/servicetype.py | 2 +- neutron/objects/subnet.py | 121 +- neutron/objects/subnetpool.py | 65 +- neutron/objects/trunk.py | 2 +- neutron/opts.py | 1 - neutron/pecan_wsgi/hooks/quota_enforcement.py | 1 + neutron/plugins/ml2/db.py | 20 - neutron/plugins/ml2/drivers/helpers.py | 142 +- neutron/plugins/ml2/drivers/l2pop/mech_driver.py | 7 +- .../agent/extension_drivers/qos_driver.py | 4 +- .../linuxbridge/agent/linuxbridge_neutron_agent.py | 7 +- .../drivers/mech_sriov/agent/common/exceptions.py | 6 +- .../drivers/mech_sriov/agent/eswitch_manager.py | 93 +- .../ml2/drivers/mech_sriov/agent/pci_lib.py | 40 +- .../drivers/mech_sriov/agent/sriov_nic_agent.py | 16 +- .../drivers/openvswitch/agent/common/constants.py | 2 + .../agent/extension_drivers/qos_driver.py | 54 +- .../openvswitch/agent/openflow/native/br_int.py | 29 +- .../openvswitch/agent/openflow/native/ofswitch.py | 5 +- .../agent/openflow/native/ovs_bridge.py | 10 +- .../openvswitch/agent/ovs_dvr_neutron_agent.py | 56 +- .../drivers/openvswitch/agent/ovs_neutron_agent.py | 327 +- neutron/plugins/ml2/drivers/ovn/__init__.py | 0 .../ml2/drivers/ovn/mech_driver/__init__.py | 0 .../ml2/drivers/ovn/mech_driver/mech_driver.py | 1157 ++++++ .../ml2/drivers/ovn/mech_driver/ovsdb/__init__.py | 0 .../ml2/drivers/ovn/mech_driver/ovsdb/api.py | 689 ++++ .../ml2/drivers/ovn/mech_driver/ovsdb/commands.py | 1159 ++++++ .../ovn/mech_driver/ovsdb/extensions/__init__.py | 0 .../ovn/mech_driver/ovsdb/extensions/qos.py | 251 ++ .../drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py | 860 +++++ .../drivers/ovn/mech_driver/ovsdb/maintenance.py | 622 ++++ .../drivers/ovn/mech_driver/ovsdb/ovn_client.py | 2313 ++++++++++++ .../drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py | 1244 +++++++ .../drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py | 558 +++ .../ml2/drivers/ovn/mech_driver/ovsdb/worker.py | 38 + neutron/plugins/ml2/drivers/type_tunnel.py | 12 +- neutron/plugins/ml2/drivers/type_vlan.py | 53 +- neutron/plugins/ml2/extensions/dns_integration.py | 67 +- .../ml2/extensions/subnet_dns_publish_fixed_ip.py | 83 + .../extensions/tag_ports_during_bulk_creation.py | 58 + neutron/plugins/ml2/managers.py | 4 +- neutron/plugins/ml2/plugin.py | 92 +- neutron/plugins/ml2/rpc.py | 18 +- neutron/policy.py | 5 +- neutron/privileged/agent/linux/ip_lib.py | 106 +- neutron/profiling/__init__.py | 0 neutron/profiling/profiled_decorator.py | 82 + neutron/quota/resource_registry.py | 5 - neutron/scheduler/base_resource_filter.py | 2 +- neutron/scheduler/base_scheduler.py | 4 +- neutron/scheduler/dhcp_agent_scheduler.py | 64 +- neutron/scheduler/l3_ovn_scheduler.py | 154 + neutron/server/wsgi_eventlet.py | 2 +- neutron/service.py | 18 +- .../externaldns/drivers/designate/driver.py | 3 +- .../metering/drivers/iptables/iptables_driver.py | 6 +- neutron/services/ovn_l3/__init__.py | 0 neutron/services/ovn_l3/plugin.py | 427 +++ neutron/services/placement_report/plugin.py | 34 +- neutron/services/portforwarding/pf_plugin.py | 4 +- neutron/services/qos/drivers/manager.py | 5 +- neutron/services/qos/drivers/openvswitch/driver.py | 15 +- neutron/services/qos/drivers/ovn/__init__.py | 0 neutron/services/qos/drivers/ovn/driver.py | 63 + neutron/services/qos/qos_plugin.py | 16 +- neutron/services/segments/exceptions.py | 4 + neutron/services/segments/plugin.py | 55 +- neutron/services/tag/tag_plugin.py | 9 +- .../drivers/openvswitch/agent/ovsdb_handler.py | 5 +- neutron/services/trunk/drivers/ovn/__init__.py | 0 neutron/services/trunk/drivers/ovn/trunk_driver.py | 191 + neutron/services/trunk/plugin.py | 16 +- neutron/services/trunk/rpc/server.py | 44 +- .../agent/l3/bin/cmd_keepalived_state_change.py | 22 + .../agent/l3/test_keepalived_state_change.py | 219 +- .../functional/agent/l3/test_legacy_router.py | 10 +- .../functional/agent/l3/test_metadata_proxy.py | 2 +- .../functional/agent/linux/test_bridge_lib.py | 4 +- .../functional/agent/linux/test_ip_monitor.py | 67 - .../functional/agent/linux/test_keepalived.py | 17 +- .../functional/agent/linux/test_of_monitor.py | 98 + .../functional/agent/linux/test_process_monitor.py | 3 +- .../functional/agent/ovn/metadata/__init__.py | 0 .../agent/ovn/metadata/test_metadata_agent.py | 273 ++ .../test_c3e9d13c4367_add_binding_index_to_.py | 90 + .../functional/db/test_ovn_revision_numbers_db.py | 186 + .../functional/plugins/ml2/drivers/ovn/__init__.py | 0 .../ml2/drivers/ovn/mech_driver/__init__.py | 0 .../ml2/drivers/ovn/mech_driver/ovsdb/__init__.py | 0 .../ovn/mech_driver/ovsdb/extensions/__init__.py | 0 .../ovn/mech_driver/ovsdb/extensions/test_qos.py | 113 + .../drivers/ovn/mech_driver/ovsdb/test_impl_idl.py | 149 + .../ovn/mech_driver/ovsdb/test_maintenance.py | 828 +++++ .../ovn/mech_driver/ovsdb/test_ovn_db_resources.py | 1153 ++++++ .../ovn/mech_driver/ovsdb/test_ovn_db_sync.py | 1634 +++++++++ .../ovn/mech_driver/ovsdb/test_ovsdb_monitor.py | 233 ++ .../drivers/ovn/mech_driver/test_mech_driver.py | 596 +++ .../scheduler/test_dhcp_agent_scheduler.py | 62 +- .../l3_router/test_l3_dvr_router_plugin.py | 243 -- .../functional/services/ovn_l3/test_plugin.py | 552 +++ .../portforwarding/test_port_forwarding.py | 63 +- .../openvswitch/agent/test_ovsdb_handler.py | 3 +- .../services/trunk/drivers/ovn/__init__.py | 0 .../trunk/drivers/ovn/test_trunk_driver.py | 116 + .../unit/agent/common/test_placement_report.py | 54 +- .../agent/l3/extensions/test_port_forwarding.py | 19 +- .../linux/openvswitch_firewall/test_firewall.py | 100 +- .../agent/linux/openvswitch_firewall/test_rules.py | 3 +- .../unit/agent/linux/test_external_process.py | 19 + .../unit/agent/linux/test_iptables_firewall.py | 23 +- .../unit/api/rpc/handlers/test_resources_rpc.py | 2 +- .../api/rpc/handlers/test_securitygroups_rpc.py | 22 +- .../unit/common/ovn/test_hash_ring_manager.py | 134 + .../unit/extensions/test_data_plane_status.py | 3 +- .../extensions/test_floating_ip_port_forwarding.py | 37 +- .../extensions/test_network_ip_availability.py | 25 +- .../extensions/test_subnet_dns_publish_fixed_ip.py | 105 + .../objects/plugins/ml2/test_geneveallocation.py | 6 +- .../unit/objects/plugins/ml2/test_greallocation.py | 6 +- .../objects/plugins/ml2/test_vlanallocation.py | 6 +- .../objects/plugins/ml2/test_vxlanallocation.py | 6 +- .../unit/objects/test_network_segment_range.py | 206 +- .../plugins/ml2/drivers/l2pop/test_mech_driver.py | 2 +- .../agent/test_linuxbridge_neutron_agent.py | 3 +- .../mech_sriov/agent/test_eswitch_manager.py | 159 +- .../ml2/drivers/mech_sriov/agent/test_pci_lib.py | 40 +- .../mech_sriov/agent/test_sriov_nic_agent.py | 32 +- .../agent/extension_drivers/test_qos_driver.py | 27 +- .../agent/openflow/native/test_br_int.py | 58 +- .../openvswitch/agent/test_ovs_neutron_agent.py | 699 ++-- .../drivers/openvswitch/agent/test_ovs_tunnel.py | 42 +- .../ml2/drivers/ovn/mech_driver/__init__.py | 0 .../ml2/drivers/ovn/mech_driver/ovsdb/__init__.py | 0 .../ovn/mech_driver/ovsdb/extensions/__init__.py | 0 .../ovn/mech_driver/ovsdb/extensions/test_qos.py | 365 ++ .../ovn/mech_driver/ovsdb/schemas/ovn-nb.ovsschema | 449 +++ .../ovn/mech_driver/ovsdb/schemas/ovn-sb.ovsschema | 404 +++ .../drivers/ovn/mech_driver/ovsdb/test_commands.py | 1564 ++++++++ .../ovn/mech_driver/ovsdb/test_impl_idl_ovn.py | 826 +++++ .../ovn/mech_driver/ovsdb/test_maintenance.py | 410 +++ .../ovn/mech_driver/ovsdb/test_ovn_db_sync.py | 986 +++++ .../ovn/mech_driver/ovsdb/test_ovsdb_monitor.py | 603 +++ .../drivers/ovn/mech_driver/test_mech_driver.py | 3050 ++++++++++++++++ .../unit/plugins/ml2/drivers/test_type_vlan.py | 18 + .../test_tag_ports_during_bulk_creation.py | 129 + .../unit/plugins/ml2/test_ext_portsecurity.py | 1 + .../unit/plugins/ml2/test_tracked_resources.py | 5 + .../unit/privileged/agent/linux/test_ip_lib.py | 43 +- .../unit/scheduler/test_dhcp_agent_scheduler.py | 46 +- .../unit/scheduler/test_l3_agent_scheduler.py | 49 +- .../unit/services/placement_report/test_plugin.py | 33 +- .../services/qos/drivers/openvswitch/__init__.py | 0 .../qos/drivers/openvswitch/test_driver.py | 45 + .../unit/services/qos/drivers/ovn/__init__.py | 0 .../unit/services/qos/drivers/ovn/test_driver.py | 46 + .../unit/services/qos/drivers/test_manager.py | 3 +- .../unit/services/trunk/drivers/ovn/__init__.py | 0 .../trunk/drivers/ovn/test_trunk_driver.py | 382 ++ neutron/wsgi.py | 6 + playbooks/add_mariadb_repo.yaml | 3 + .../legacy/neutron-grenade-dvr-multinode/run.yaml | 12 + .../legacy/neutron-grenade-multinode/run.yaml | 12 + .../post.yaml | 0 .../run.yaml | 37 +- .../legacy/neutron-tempest-postgres-full/post.yaml | 15 - .../legacy/neutron-tempest-postgres-full/run.yaml | 46 - .../neutron-tempest-with-os-ken-master/post.yaml | 15 - .../neutron-tempest-with-os-ken-master/run.yaml | 55 - playbooks/multinode-setup.yaml | 4 + plugin.spec | 81 + ...ect-ports-with-QoS-in-OVS-48c78c156606e724.yaml | 7 + .../notes/Ussuri-prelude-ca4d793da2d0bc63.yaml | 28 + .../accepted_egress_direct-cc23873e213c6919.yaml | 20 + .../add-address-scope-rbac-a903ff28f6457606.yaml | 5 + ...-field-in-port-forwarding-5db3b3f407c7eef4.yaml | 4 + ...ping_enable-config-option-6a0e15e4ed0a2cf7.yaml | 7 + ...tu-writable-api-extension-f7038f85f3494a74.yaml | 2 +- .../add-subnetpool-rbac-2eb2008bd1b27b11.yaml | 5 + ...addres-case-insensitivity-750299c11b49a9a8.yaml | 9 + ...te-ovs_integration_bridge-d4d1521c35f999bd.yaml | 6 + .../notes/dhcp-bulk-updates-0150b764bb1b165f.yaml | 14 + ...p-host-addr6-list-support-45d104b3f7ce220e.yaml | 25 + .../notes/drop-python-2-7-9707a901c7d8eab6.yaml | 5 + .../notes/external-ports-03050eda7ffe13d5.yaml | 11 + ...-allocation-with-segments-b90e99a30d096c9d.yaml | 9 + ...ity-group-no-port-on-host-9177e66d4b16e90c.yaml | 8 + ...-routed-provider-networks-c54a54844d9a3926.yaml | 7 + ...rp-responder-true-for-dvr-5aabbfa51945dd5a.yaml | 8 + ...3_agent_graceful_shutdown-87bf3304e6fab8a5.yaml | 10 + ...parent-by-hypervisor-name-3244ed87dc57f950.yaml | 23 + .../make-mtu-not-nullable-2b2765bc85379545.yaml | 5 + ...roxy-header-vulnerability-60c44eb7c76d560c.yaml | 8 + ...-on-network-auto-schedule-1ea5e74fd5bb560c.yaml | 14 + ...ovn-igmp-snooping-support-1a6ec8e703311fce.yaml | 5 + .../radvd_user-config-option-24730a6d686fee18.yaml | 11 + ...-agent_type-config-option-31eea687b4ec2e3a.yaml | 5 + ...remove-get_binding_levels-c4e8b350a196706a.yaml | 6 + ...oup-rule-all-ports-update-2857d80e5742ebc5.yaml | 10 + ...-for-security-group-owner-6635dd3e4c6ab5ee.yaml | 6 + ...rnel-3.13-removed-support-8bb00902dd607746.yaml | 8 + .../stateful-security-group-04b2902ed9c44e4f.yaml | 18 + ...ublish-fixed-ip-extension-6a5bb42a048a6671.yaml | 10 + ...orts-during-bulk-creation-23161dd39d779e99.yaml | 5 + releasenotes/source/index.rst | 1 + .../source/locale/fr/LC_MESSAGES/releasenotes.po | 90 - .../source/locale/ja/LC_MESSAGES/releasenotes.po | 301 -- .../locale/ko_KR/LC_MESSAGES/releasenotes.po | 103 - releasenotes/source/train.rst | 6 + requirements.txt | 16 +- roles/add_mariadb_repo/tasks/main.yaml | 17 + setup.cfg | 19 +- test-requirements.txt | 3 +- tools/abandon_old_reviews.sh | 4 +- tools/configure_for_func_testing.sh | 27 +- tools/deploy_rootwrap.sh | 5 +- tools/download_gerrit_change.py | 61 + tools/files_in_patch.py | 81 + tools/migrate_names.py | 111 + tools/migrate_names.txt | 49 + tools/ovn_migration/README.rst | 43 + tools/ovn_migration/hosts.sample | 37 + .../infrared/tripleo-ovn-migration/README.rst | 33 + .../infrared/tripleo-ovn-migration/main.yml | 194 + .../roles/create-resources/defaults/main.yml | 9 + .../roles/create-resources/tasks/main.yml | 33 + .../templates/create-resources.sh.j2 | 153 + .../create-resources/templates/start-pinger.sh.j2 | 58 + .../roles/prepare-migration/defaults/main.yml | 7 + .../roles/prepare-migration/tasks/main.yml | 181 + .../templates/start-ovn-migration.sh.j2 | 7 + tools/ovn_migration/migrate-to-ovn.yml | 204 ++ .../tripleo_environment/ovn_migration.sh | 349 ++ .../playbooks/ovn-migration.yml | 110 + .../playbooks/reduce-dhcp-renewal-time.yml | 24 + .../playbooks/roles/backup/tasks/main.yml | 19 + .../delete-neutron-resources/defaults/main.yml | 3 + .../roles/delete-neutron-resources/tasks/main.yml | 22 + .../templates/delete-neutron-resources.sh.j2 | 29 + .../playbooks/roles/migration/defaults/main.yml | 15 + .../roles/migration/tasks/activate-ovn.yml | 15 + .../roles/migration/tasks/cleanup-dataplane.yml | 79 + .../roles/migration/tasks/clone-dataplane.yml | 15 + .../playbooks/roles/migration/tasks/main.yml | 12 + .../playbooks/roles/migration/tasks/sync-dbs.yml | 20 + .../roles/migration/templates/activate-ovn.sh.j2 | 41 + .../roles/migration/templates/clone-br-int.sh.j2 | 77 + .../roles/post-migration/defaults/main.yml | 4 + .../playbooks/roles/post-migration/tasks/main.yml | 59 + .../playbooks/roles/pre-migration/tasks/main.yml | 17 + .../roles/resources/cleanup/defaults/main.yml | 6 + .../roles/resources/cleanup/tasks/main.yml | 26 + .../cleanup/templates/cleanup-resources.sh.j2 | 32 + .../roles/resources/create/defaults/main.yml | 5 + .../roles/resources/create/tasks/main.yml | 22 + .../create/templates/create-resources.sh.j2 | 128 + .../roles/resources/validate/defaults/main.yml | 5 + .../roles/resources/validate/tasks/main.yml | 12 + .../validate/templates/validate-resources.sh.j2 | 19 + .../roles/tripleo-update/defaults/main.yml | 4 + .../playbooks/roles/tripleo-update/tasks/main.yml | 24 + .../templates/generate-ovn-extras.sh.j2 | 7 + tools/pip_install_src_modules.sh | 2 +- tools/requirements.txt | 5 + tools/tripleo/ovn.yml | 51 + tox.ini | 64 +- vagrant/ovn/README.rst | 6 + vagrant/ovn/provisioning/boxes.yml | 6 + vagrant/ovn/provisioning/id_rsa | 27 + vagrant/ovn/provisioning/id_rsa.pub | 1 + vagrant/ovn/provisioning/provider-setup.sh | 19 + vagrant/ovn/provisioning/providers.rb | 42 + vagrant/ovn/provisioning/setup-base.sh | 104 + vagrant/ovn/provisioning/setup-compute.sh | 103 + vagrant/ovn/provisioning/setup-controller.sh | 130 + vagrant/ovn/provisioning/setup-db.sh | 29 + vagrant/ovn/provisioning/setup-vtep.sh | 32 + vagrant/ovn/sparse/README.rst | 9 + vagrant/ovn/sparse/Vagrantfile | 96 + vagrant/ovn/sparse/instances.yml | 46 + zuul.d/base.yaml | 59 + zuul.d/grenade.yaml | 49 + zuul.d/project.yaml | 124 + zuul.d/rally.yaml | 87 + zuul.d/tempest-multinode.yaml | 252 ++ zuul.d/tempest-singlenode.yaml | 308 ++ zuul.d/tripleo.yaml | 38 + 741 files changed, 91931 insertions(+), 13736 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 4ba3f71160..875fc4ba82 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9 +9 @@ Routes>=2.3.1 # MIT -debtcollector>=1.2.0 # Apache-2.0 +debtcollector>=1.19.0 # Apache-2.0 @@ -19 +19 @@ netifaces>=0.10.4 # MIT -neutron-lib>=1.29.1 # Apache-2.0 +neutron-lib>=2.2.0 # Apache-2.0 @@ -21 +21 @@ python-neutronclient>=6.7.0 # Apache-2.0 -tenacity>=3.2.1 # Apache-2.0 +tenacity>=4.4.0 # Apache-2.0 @@ -24 +24 @@ WebOb>=1.8.2 # MIT -keystoneauth1>=3.4.0 # Apache-2.0 +keystoneauth1>=3.14.0 # Apache-2.0 @@ -49 +49 @@ ovs>=2.8.0 # Apache-2.0 -ovsdbapp>=0.9.1 # Apache-2.0 +ovsdbapp>=1.0.0 # Apache-2.0 @@ -51,2 +51,2 @@ psutil>=3.2.2 # BSD -pyroute2>=0.5.3;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) -weakrefmethod>=1.0.2;python_version=='2.7' # PSF +pyroute2>=0.5.7;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) +pyOpenSSL>=17.1.0 # Apache-2.0 @@ -58,0 +59,2 @@ os-vif>=1.15.1 # Apache-2.0 +futurist>=1.2.0 # Apache-2.0 +tooz>=1.58.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 3aaac91e36..43d563a78f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4,2 +4 @@ -hacking>=1.1.0 # Apache-2.0 - +hacking>=1.1.0,<1.2.0 # Apache-2.0