We are jazzed to announce the release of: neutron 13.0.0: OpenStack Networking This release is part of the rocky release series. Download the package from: https://tarballs.openstack.org/neutron/ For more details, please see below. 13.0.0 ^^^^^^ Other Notes * The metering agent iptables driver can now load its interface driver by using a stevedore alias in the "metering_agent.ini" file. For example, "interface_driver = openvswitch" instead of "interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver" Changes in neutron 12.0.0.0rc1..13.0.0 -------------------------------------- dd915e8 get_subnet_for_dvr returns SNAT mac instead of distributed gateway in subnet_info eec374c Trivial: avoid KeyError while processing ports 684ea39 Fix lost connection when create security group log 312b033 Update UPPER_CONSTRAINTS_FILE for stable/rocky e789f92 cap bandit in test-requirements.txt 811cb63 Config privsep in the metering agent 8e0b412 Fix no packet log data when debug is set False in configuration 8aec1ec Fix no ACCEPT event can get for security group logging 6179b0b Fix iptables metering driver entrypoint ad2c1bc Update metering driver to load interface driver 5f1dcfa Enable filter validation for portforwarding plugin aa71df6 Update .gitreview for stable/rocky 59d178c Remove -u root as mysql is executed with root user bc2a4a4 Correctly call is_distributed_router() ef8e437 Add FIP port forwarding to Networking Guide 66c8ed9 Add release note for port forwardings. c205963 Add note to RBAC chapter of Networking Guide 26f5df1 Move MAX_CHAIN_LEN constants to constants file 3c9ac3c Don't run ironic-tempest job for irrelevant changes 00b923d Adding resources callback handler cdb973e Generic validate_request method for logging 7a92d44 [Docs] Add note about Floating IP QoS eafcc08 Add a guide to deploy Neutron API under WSGI server 35d945e Add ext_parent policy check 4088461 [server side] Fix race issue for port forwarding plugin d794294 use get_port_binding_by_status_and_host from lib b790213 WSGI: Add experimental jobs with uwsgi a4ffcab [log] Generic RPC stuffs for logging in server side de9b39e [agent side] L3 agent side Floating IP port forwarding d00a155 [server side] Expose port forwardings in FIP API 7c7e938 Bug deputy routines for dummies 01faf6b Move neutron-fullstack-python35 out of experimental queue 314a063 Make dvr router port creation retriable e82a175 [doc] Follow-up logging service for firewall_group 21ae99d [server side] Floating IP port forwarding plugin c774930 use sqla functions from neutron-lib 047ac94 Update the doc url about SUSE basic network configuration 2f98f56 Allow neutron-api load config from WSGI process b803195 Dont use dict.get() to know certain key is in dict 73c7edd use callback payloads for ROUTER/ROUTER_GATEWAY BEFORE_DELETE events 3d06c63 [Fullstack] Use string for global_physnet_mtu config option 7e0c1e9 [QoS] Clear rate limits when default null values are used 69b8352 Fix ml2 hierarchical port binding driver check error. f7064f2 Add binding activation to the Linuxbridge agent 02e9f27 bump neutron-lib requirements to 1.18.0 2b1d8ea Implement filter validation 5c3bf12 Add binding activation to OVS agent ec5cd0d Reduce IP address collision during port creating 41fe927 Add missing policy actions to policy.json file b4d3dbc Docs: Fix wrong stestr argument 5aa8eb9 Change neutron CLI to openstack CLI in neutron doc 5a25548 Update _check_router_retain_needed() b935f9d Add list of all working DSCP marks e4348eb use retry_db_errors from neutron-lib 21360e1 Move l3_notifier check in remove_router_from_l3_agent() 5bd6281 [server side] Floating IP port forwarding OVO and db script eb98518 Add multiple IPv6 EUI-64 addresses test fe4bec7 Fix fwaas v1 configuration doc 0694beb Add binding de-activation to OVS agent be7ad30 Support binding_deactivate in CacheBackedPluginApi f374697 Add binding_deactivate method to Linux bridge agent 390b6a5 Update get_port_binding_host for multiple bindings 03db94e Pluralize binding relationship in Port f7b62a7 Multiple port binding for ML2 839e575 use plugin utils from neutron-lib 06fa044 Update pypi url to new url 8b16b53 Send update instead of remove for DVR reschedule 886e241 Fix attribute mismatch in router provider update 4d13df6 Invalid link of doc reference d1efeeb Fix UnixDomainHttpProtocol class to support all eventlet versions 598ae86 Add release notes link in README 6fe35c8 use get reader/writer session from neutron-lib be5db89 Adopt Port OVO for tests/unit/db/test_provisioning_blocks.py 89c516a Use OVO in plugins/ml2/test_plugin.py d950949 Ensure request's object type is dict 0f180d8 Adopt hacking 1.1.0 5179896 Allow sub-resources to have standard attributes f5f682c Modify logic of l3-agent to be notified 54aa6e8 Disallow router interface out of subnet IP range 216b7f5 Bump neutron-lib version to 1.17.0 6a89dd2 use db utils from lib 642e41d ipam_backend_mixin: Service Type model to OVO 7899ef2 Adjust filters on listing availability zones fd126a3 [Fullstack] Remove central_external_bridge b37f440 Add geneve in neutron tunnel protocols doc 144d3ab python3: fix netlink_lib delete_entries 6906c40 [Unit tests] Skip TestWSGIServer with IPv6 if no IPv6 enabled c57a5d9 [Fullstack] HA L3 agent restart only standby agents 8361b8b Routed Networks - peer-subnet/segment host-routes (2/2) daa7ae4 Update the Bugs link for triage b692eff Remove an extra backslash in a docstring 8f3a066 Add support to regenerate port mac_address 8d580dc Routed Networks - peer-subnet/segment host-routes (1/2) 137a6d6 Pass network's dns_domain to dnsmasq conf b2b4229 DVR: FIP gateway port is tagged as DEAD port by OVS with external-bridge 752c33e objects: don't refetch a non-list object field if it's None 44e8c91 Introduce l3_logging extension base fad8e4d [Fullstack] Use string for api_worker config option cb5ecc1 Fix bug to doc:auth d97cce0 Add missing transaction in driver_controller. 006113e Skip MTU check during deletion of Networks 9f2b40f Dropping radvd process privileges 4d8f98b Fix local doc builds 0b3a644 [Fullstack] Ensure connectivity to ext gw before agents restart a75b87c Fix docstrings to work with Sphinx 1.7.4 c4ea8ba Mark unit test test_get_objects_queries_constant as unstable 5ddb2a4 Make L3 IP tc filter rate limit more accurate a034e8e Refactor duplicated implementation of _get_policy_obj 5ceca4d DVR: FloatingIP create throws an error if no l3 agent 6f5946d Fix the tests for filtering with qos_policy_id 5a7c12f DVR: Self recover from the loss of 'fg' ports in FIP Namespace 8d8803a Update doc on stable release frequency 9f6a4ce Remove the unit test 'test_ports_vnic_type_list' b9ef562 Improve patching of sys.argv ba1e1eb Mark test_ha_router_restart_agents_no_packet_lost as unstable 5c89506 fix tox python3 overrides db22f5b Fix exception in neutron-sanity-check f5c439e Allow DHCP_OPT_CLIENT_ID_NUM to be string e356345 Fix DVR scheduling checks wrong profile for host 7458575 Convert missing exception on device.link.delete() e657670 remove model_query_scope from common db mixin 5106dfe Configure privsep helper in neutron-netns-cleanup a7f35d8 Update links in README 19dccbf Add BEFORE notification event for subnet in ml2 plugin 89a1ada Fix url in alembic_migrations.rst e13f3d1 Use OVO in ml2/test_db 8b19db1 Annotate filter parameters for tag attributes 100491c use object utils from neutron-lib ce8b73b use make_weak_ref and resolve_ref from neutron-lib fe907b7 Fix unscheduling fail when concurrent port delete 1f8378e [OVS] Add mac-table-size to be set on each ovs bridge 1430161 remove safe_reference from common db mixin c7882a1 Fix url in thirdparty-ci.rst 9237cf37 Improve error message in fullstack test 424848e Fix bug to doc:testing a359255 Update tunnel_types config option help msg f98f239 Revert "DVR: Fix allowed_address_pair IP, ARP table update by neutron agent" 11b41d7 [Fullstack] Wait for SG to be applied by L2 agent 32f14aa [Fullstack] Change time waiting for async ping results 8930d33 Fix UT BridgeLibTest when IPv6 is disabled 5ae71c8 Switch to oslo_messaging.ConfFixture.transport_url d0fa2c9 Don't skip DVR port while neutron-openvswitch-agent is restared. 0dc8e7f Add flavor_id argument to router tests. 92620cb fix a typo: s/paramater/parameter 50ddf4b Replace ovsfw tempest job with iptables-hybrid tempest job e982506 Stop mocking keystoneauth internals ec537c4 Switch to stestr 03e74f9 Remove local DEVICE_OWNER_ROUTER_GW value cb0782c use std attr description for the segment extension 89133d0 doc: update doc to refer new trusted tag for SR-IOV 43a8456 Track neutron-lib migration of agent extensions 50b3a16 Mention neutron-rootwrap-daemon in root_helper_daemon option help 3e9e2a5 Disable IPv6 forwarding by default on HA routers fab6bcb Fix build-openstack-sphinx-docs test job 37b66a4 Fix an attribute error on listing AZs with filters f723dfa Update neutron configuration documentation URL 6b00eec docs: Fix formatting block in ovs firewall docs 1128619 use dhcpagentscheduler api def from neutron-lib 232ba4e expose objects as entry points in setup.cfg de6a7a9 Update docs about openvswitch compilation b6d117f Allow setting network-segment on subnet update 4f722be Update ubuntu image used for testing 0d43f9d Use OVO in test_ipam_pluggable_backend edc909a Change ovs release used to compile kernel module for tests node 106c8b4 Fix wrong release names in docs 52dc615 use exc_to_retry from lib 2e34279 Fix lack of routes for neighbour IPv4 subnets b9fabd8 l3 flavor: more events/notifications and callback priority 3e83fa1 [rally] Port custom plugins to use proper code 59bc19c Use Param DHCP_OPT_CLIENT_ID_NUM 4f60543 Fix W605 warnings 5e59cd2 Refactor for L3 router QoS extensions b74af5f Fixed PortBindingLevelDbObjectTestCase 49e3b37 [ci][rally] make the job inherit the right parent 1a8a15f objects: avoid deepcopying models in test_db_obj ec0760a py3: Fix list_entries for netlink_lib f3f2436 py3: Fix ingress_bw_limit_for_dpdk_port() value conversion 1658e35 Fullstack: Add using multiple security groups 3242a57 python3: Add experimental jobs for functional and fullstack 68a7ef0 Update auth_url in install docs aed2809 Trivial: Update pypi url to new url 8034b49 Fix ip_conntrack_proto_sctp modprobe error ec07a63 Change defaults in tools/configure_for_func_testing.sh 1b75c7c Update fullstack section in TESTING.rst f213ba4 Populate project info before using it 626a897 trivial: Fix file permissions fa78b58 dhcp: serializing port delete and network rpc calls d9aecfa Pass context in disassociate_floatingip notification 02d6e39 Fix triger typo 88f5e11 Avoid agents adding ports as trunk by default. c69a570 Annotate filter parameters for standard attributes 52a3779 Make neutron-tempest-ovsfw job gating 85b46cd Monitor phys_bridges to reconfigured it if created again e177aaf Fix _setUpExtension shim 88688fb Use extension fip-port-details from neutron-lib e1761d2 Update install doc for ubuntu ab9a9d4 Change metadata agent to log message after failure bc38ad6 bump neutron-lib version to 1.14.0 35365ea [L3][QoS] Cover mixed dvr_snat and compute node dvr router 0c112a9 remove description API attr from securitygroup 65cfe28 doc: Clarify network types compatible with physnets bad02cf doc: Fix typo 7cfdf4a Fix all pep8 E129 errors eb892a0 Stop using legacy nodesets 1811ced [Docs] Add guide on how to do advanced gate job debugging a732bbf Support filter attribute with empty string 9c1a5d5 Change minimum pecan version to 1.1.1 66e4a89 Read ha_state file only once d034df1 remove common db alaises to db utils 07998e6 shim _setUpExtension in prep to changing args c3b83a9 Fix all pep8 E265 errors 7a97b33 Fix hw_vif_multiqueue_enabled typo dd8aea2 Add a debug env for unit tests 92b9581 objects: automatically detect whether engine facade is used fab032b Retry dhcp_release on failures 81f7347 remove rpc create_connection 07b0dbf Convert Segment db model to OVO f693890 Revert "Revert "Automatically expire obsolete relationships"" 3ad91f6 Remove deprecated IVS interface driver 3a17b61 Document mixed scenario with LB and OVS over VXLAN 75d28cb fullstack: Migration from iptables_hybrid to openvswitch a8ab93b Increase lower-constraints job timeout to 60 minutes d891405 Switch rally trunk scenario to use new rally validators f38b7b9 Remove N536 ignore in tox.ini 54bbf62 Re-factor the iptables_manager tests c760d4f Add port_details to Floating IP d8a94b2 No need for www_authenticate_uri in [designate] 69d5f40 Fix the supported_extension_aliases in unit test 0b8bcc4 Adds egress and ingress forward rules for trusted ports e36a2bd Move standard-attr-segment to service plugin dbed642 Do not remove conntrack jump rules if no zone f6b0f76 Eliminate possible insecure usage of temp file/directory 60d62d3 [Linuxbridge] Handle properly too big VXLAN MTU values 8b2c403 ovs-fw: Apply openflow rules immediately during update a750147 Revert "Automatically expire obsolete relationships" 90ede81 Automatically expire obsolete relationships de243a3 Fix E402 pep8 errors 98e5f01 fullstack: Simplify ConfigFixture 2c31f7f eventlet v0.22 changed HttpProtocol.__init__ 7326717 Make OVSDB debug logging optional 9506044 Add a shim extension standard-attr-segment 944a306 Fix pylint no-value-for-parameter error 0063aa3 pecan.jsonify v1.3 adjustment 769d499 Update auth_uri option to www_authenticate_uri 2180bd9 of_interface: Implement bundled() method be8a7a2 Fix handling of dstport option for VXLANs 806d96c Override ovsdb_timeout default value in ovs_cleanup tool 164e456 ovs: split OVS_RESTARTED handler into a separate method 38d0b2b ovs: raise RuntimeError in _get_dp if id is None 410a83c use plugin common utils from neutron-lib 06dab9d Re-order items in policy.json 922cd0a Change ha_state property to always return a value 90cd939 Fix W503 pep8 warnings 7aa941c [RBAC] Fix setting network as not shared baee36d [Scenario] Enable "qos-fip" network extension in tempest config fb75ce0 Update RYU to be 4.24 to sort out issues with pip 10 43d451d Enable sorting and pagination for segments 50e033f use sub-resource API extension support 56324c1 Fix potential race condition in privileged ip_lib module 5cf6663 tests: don't configure plugin for tests that don't need it 44266f8 Renamed subnet_service_type_db_models module 544597c ovs: survive errors from check_ovs_status a125640 Fix some pep8 warnings e34104e fix tox release note generation e302f96 ovs_lib: add support for OpenFlow 1.5 1c36c26 tests/tools: add prefix "_" to CALLBACK_PRIORITY_SUPPORTED 09adf88 test_servicetype: Service Type model to OVO 787cab5 uncap eventlet 4d84c10 Add standard attributes to segment resource 42ae8b8 zuul: Make ovsfw tempest job voting 5a1934d unit test: unbreak test cases for callbacks.subscribe 7a714ae Fix pep8 errors 6e6166b Replace assert to raise AssertionError 2b3fdc8 remove unused common exceptions 11f1439 Fix incompatible requirement in lower-constraints eb28af9 tests: fixed NoSuchGroupError in TestNovaSegmentNotifier 64028a3 DVR: Restarting l3 agent loses centralized fip ip on qg-interface d42ca8b Add more info to vpnaas admin guide 7c4da6f DVR: Avoid address scope rules for dvr_no_external agents ff5e8d7 Refresh router objects after port binding 7b0f633 Handle AgentNotFoundByTypeHost exception properly b62d1bf Router should flip to standby if all L3 nodes down ed7dd4d DVR: Check for item_allocator key before releasing 5d4e789 Replace usage of 'user' by 'user_id' 91068d0 [doc][vpnaas] Fix reference url after recent change 81db328 Use cidr during tenant network rule deletion 28f7ab0 Removing deprecated function 'IPWrapper.get_namespaces()' bb5138c Fix DHCP isolated subnets with routed networks c331b89 DVR: Add error handling for get_network_info_for_id rpc call b78d479 use multiprovidernet api definition from neutron-lib 1b6e374 Add fullstack job to gate queue 7988e32 Removing deprecated module neutron.api.versions 925cdc9 use neutron-lib servicetype api def a1b49c7 Don't define polling_interval option in two places 0f4d7ff Catch Errors When Nova API Microversions Are Not Supported 94817a5 [Functional] Add test for ip_lib.IPRule lifecycle 83017af [Docs] Update path to QoS API tempest tests 3d0f9f3 Removing remaining Tempest bits 1e49eab [Fullstack] Add block test until IPs will be really configured b17aad2 Handle adding ip address when it already exists b85191e [Functional tests] Add gateway add/delete/flush tests 781f730 Switch ip link command to pyroute2 0556a2a Follow the new PTI for document build 8c2dae6 Fix l3-agent crash on routers without ha_state 3c85a1e add lower-constraints job 21e0942 Revert "use segment api def from neutron-lib" 2a1319a Don't set administratively disabled ports as ACTIVE 275d406 Remove usage of TestCase.skip() method b6b23a8 Enable mutable config in Neutron 8e8aa90 Revert "[Fullstack] Mark security group test as unstable" bbe1bac Don't raise error when removing not existing IP address ec1d5de use segment api def from neutron-lib aaf11f4 Switch IPDevice.exists() method to use pyroute2 87a36ca remove tag and tag_ext extensions 6b13cf0 DVR: Fix mac format for backward compatibility with vsctl api 4472b0f Add docstrings for ip_lib IP address methods 6f7ba76 ovs-fw: Fix firewall blink b4f68ff Have LB agent use ip_lib.ensure_device_is_ready() 9773082 Add a test class to validate UTs fixes of new_facade flag 6c772de tests: port test_port_presence_prevents_network_rbac_policy_deletion 35c225a Remove race and simplify conntrack state management 3327db8 ovs-fw: Clear conntrack information before egress pipeline fbe308b DVR: Fix allowed_address_pair IP, ARP table update by neutron agent 6498522 Switch fullstack job to be voting 537bfb9 use callback payloads for PRECOMMIT_UPDATE events ef93f7e use common agent topics from neutron-lib 8be0c2a Set trusted port only once in iptables firewall driver d5653e1 Add setting server_default in alter_enum(_add_value) 53054ad Switch create/delete interfaces to pyroute2 9da92db Updated from global requirements 3002df7 Fix UTs to accommodate new_facade flag in OVO objects 7eeec2a Add l3_agent_mode configuration in tempest 062ef79 use is_extension_supported from neutron-lib a573711 Add broadcast to IpAddrCommand.get_devices_with_ip() return value 6c50a12 Updated from global requirements e0223ed Switch ip addr add/del/flush commands to use pyroute2 44292f4 consume neutron-lib resources attr map 817f36e remove unused common rpc apis f2753b6 Revert "Do not start conntrack worker thread from __init__" f00d0a4 [L3] Expunge context session during floating IP updating 0ab0300 [Scenario tests] Try longer SSH timeout for ubuntu image d019790 DVR: Inter Tenant Traffic between networks not possible with shared net 6141c73 remove SHARED constant that now lives in neutron-lib 9fefad7 Add search capability to the docs 4a0200a Update upper-constraints consumption 0650add Additional functional tests for ip_lib.IpAddrCommand 01d90e5 Make log extension more generic 93c965d async_process: Log stdout and stderr on process error 4c8b97e Do not start conntrack worker thread from __init__ 806af8a functional: Fix RABBIT_PASSWORD env var df6da4d use plugin names from neutron_lib.plugins.constants 9362d4f Spawn/stop metadata proxies upon adding/deleting router interfaces 97b3049 Iptables firewall driver adds forward rules for trusted ports b3b2df1 ovsfw: Use bundle when adding security group rules 0d3ffa6 Enable more extensions in pep8 f6179a8 Imported Translations from Zanata b564871 Only allow SG port ranges for whitelisted protocols 8f7ff99 use revision if match api def from neutron-lib 1088194 Add ip link functional tests 5c3af82 Update mysql connection in config-dhcp-ha.rst 6e50a77 Try to enable L3 agent extension `fip_qos` 90ada5b Add functional tests for link create methods d55e824 use EGRESS_DIRECTION and INGRESS_DIRECTION from neutron-lib f6de54f use DVR constants from neutron-lib f5d9890 [Fullstack] Limit number of test workers to 4 9ae6e58 use qos rule type details api def from neutron-lib 75b2721 use router service type api def from neutron-lib 8c23e35 Fix creation of port when network has admin's QoS policy set 6f205a9 reno: Remove remote names from branch specifiers 2ac2c34 Fix a log formatting error on linuxbridge 3c7ac69 use sorting api def from neutron-lib db5fb02 [Linuxbridge] Check if vxlan network MTU can be set 465ad6f [Fullstack] Limit number of Neutron's api workers e6f56d6 use vlantransparent api def from neutron-lib 4875ac6 DNS doc: remove whitespace b4471db Use oslo_db.sqlalchemy.test_fixtures 9295923 [Fullstack] Respawn dhclient process in case of error d5f2752 Ensure _get_changed_synthetic_fields() return updatable fields b954348 Pull in ubuntu cloud archive openvswitch pkg 6c2f3ed Updated from global requirements 2a44b3f Set mtu for VXLAN interface in linuxbridge 44b9668 l3: an unit test for set_extra_attr_value d15244a Fixing the filter in get MTU by network list query. 4904455 Revert "remove tag and tag_ext extensions" 6fa5c78 Use ip_substring_port_filtering from neutron-lib 1b664be Fix context deprecation warnings 1a0dacb Fix arguments to oslo_context.RequestContext() 5309cd5 Remove registry.subscribe() 87f4d4e Add unit test cases for floating IP QoS extension 6407a71 [Fullstack] Unmark test_dscp_marking_packets as unstable a91d84c Fix error message when duplicate QoS rule is created 46d6935 Compile ovs for ovsfw to avoid ovs-vswitchd core dumps 0d4889d Always pass device_owner to _ipam_get_subnets() 2324640 use DVRMacAddressNotFound exception from neutron-lib 4a464ce use qos default api def from neutron-lib cf8c4c5 Move periodic jobs to Neutron repo 38148d1 remove tag and tag_ext extensions 02cc3ca ovsfw: Update SG rules even if OVSFW Port is not found 23ab8bd Docs: Update tempest test directory 530d971 Fix unnecessary security_groups_member_updated notification ad17b59 Imported Translations from Zanata b2ee55a Add test cases for external network default 6b19f19 Update reno for stable/queens 5712063 Use Meter Label OVO in neutron/db/metering/metering_db.py ec7444c Open Rocky DB branch 27346e9 Tag the alembic migration revisions for Queens adbef04 Remove redundant get_object call when creating fip qos binding 477d413 DVR: Fix dvr_no_external agent restart with fips 2aff1f1 Use Router OVO in external_net_db f8af1be [doc] Support networking guide for VPNaaS 31a3f2f l3: don't begin db transaction in set_extra_attr_value f305559 Update documentation for DNS integration 8afe3be Fix iptables rule removal warnings from QoS extension 65a8162 Process conntrack updates in worker threads 37aba76 ovs-fw: Don't modify passed rules to update 43d3e88 Filter port-list based on security_groups. 2200b1c Add/rm centralized fips for DVR+HA from standby node 1aeced2 Use RBAC_POLICY callback constant from neutron-lib 82d468b Windows: fix exec calls 1e075f0 Mark neutron-lbaas as deprecated cf3b780 Kill _connection_to_manager_uri dummy d3c69dc Drop strict-order flag from dnsmasq invocation 6c4bc1c Fix delete vlan allocation error for ML2 46cbe45 ovs: removed sinkhole RPC target for old topics b7f77bd Remove deprecated classes from SG agent code 9be7b62 DVR: verify subnet has gateway_ip before installing IPv4 flow 6941977 Add iptables metadata marking rule on router init 45f1404 Include all rootwrap filters when building wheels 6402cd3 SR-IOV agent should specify host when requesting devices info Diffstat (except docs and test files) ------------------------------------- .gitignore | 2 +- .gitreview | 1 + .testr.conf | 8 - .zuul.yaml | 191 +++- README.rst | 1 + TESTING.rst | 72 +- devstack/lib/l2_agent_sriovnicswitch | 0 devstack/lib/l3_agent | 13 + devstack/lib/ml2_drivers/sriovnicswitch | 0 devstack/lib/qos | 4 + devstack/plugin.sh | 7 + devstack/settings | 1 + .../shared/deploy-ha-vrrp-initialnetworks.txt | 3 +- .../shared/deploy-provider-initialnetworks.txt | 7 +- .../shared/deploy-selfservice-initialnetworks.txt | 3 +- .../contributor/internals/agent_extensions.rst | 14 +- .../contributor/internals/openvswitch_firewall.rst | 110 +-- .../contributor/internals/quality_of_service.rst | 2 +- .../contributor/internals/service_extensions.rst | 3 +- .../policies/contributor-onboarding.rst | 3 +- .../contributor/policies/gate-failure-triage.rst | 105 +++ .../contributor/policies/release-checklist.rst | 30 +- .../images/fullstack_multinode_simulation.png | Bin 31360 -> 41632 bytes .../install/controller-install-option1-obs.rst | 6 +- .../install/controller-install-option1-rdo.rst | 6 +- .../install/controller-install-option1-ubuntu.rst | 6 +- .../install/controller-install-option2-obs.rst | 6 +- .../install/controller-install-option2-rdo.rst | 6 +- .../install/controller-install-option2-ubuntu.rst | 6 +- etc/neutron/rootwrap.d/dhcp.filters | 1 - etc/neutron/rootwrap.d/l3.filters | 4 +- etc/policy.json | 104 ++- lower-constraints.txt | 152 ++++ neutron/agent/_topics.py | 24 + neutron/agent/agent_extension.py | 48 - neutron/agent/common/ovs_lib.py | 40 +- neutron/agent/dhcp/agent.py | 56 +- neutron/agent/dhcp_agent.py | 4 +- neutron/agent/firewall.py | 7 +- neutron/agent/l2/agent_extension.py | 27 - neutron/agent/l2/extensions/fdb_population.py | 4 +- neutron/agent/l2/extensions/qos.py | 10 +- neutron/agent/l2/l2_agent_extension.py | 48 - neutron/agent/l3/agent.py | 21 +- neutron/agent/l3/dvr_edge_ha_router.py | 18 +- neutron/agent/l3/dvr_edge_router.py | 3 +- neutron/agent/l3/dvr_fip_ns.py | 23 +- neutron/agent/l3/dvr_local_router.py | 78 +- neutron/agent/l3/extensions/fip_qos.py | 359 -------- neutron/agent/l3/extensions/port_forwarding.py | 457 ++++++++++ neutron/agent/l3/extensions/qos/__init__.py | 0 neutron/agent/l3/extensions/qos/base.py | 166 ++++ neutron/agent/l3/extensions/qos/fip.py | 299 +++++++ neutron/agent/l3/ha.py | 12 +- neutron/agent/l3/ha_router.py | 11 +- neutron/agent/l3/item_allocator.py | 5 +- neutron/agent/l3/l3_agent_extension.py | 65 -- neutron/agent/l3/namespaces.py | 5 +- neutron/agent/l3/router_info.py | 53 +- neutron/agent/l3_agent.py | 4 +- neutron/agent/linux/async_process.py | 6 +- neutron/agent/linux/dhcp.py | 134 ++- neutron/agent/linux/interface.py | 79 +- neutron/agent/linux/ip_conntrack.py | 66 +- neutron/agent/linux/ip_lib.py | 244 ++++-- neutron/agent/linux/iptables_comments.py | 1 + neutron/agent/linux/iptables_firewall.py | 92 +- neutron/agent/linux/iptables_manager.py | 13 +- neutron/agent/linux/keepalived.py | 4 +- neutron/agent/linux/l3_tc_lib.py | 2 +- .../agent/linux/openvswitch_firewall/firewall.py | 123 ++- .../agent/linux/openvswitch_firewall/iptables.py | 10 +- neutron/agent/linux/openvswitch_firewall/rules.py | 34 +- neutron/agent/linux/ovsdb_monitor.py | 79 +- neutron/agent/linux/ra.py | 9 +- neutron/agent/linux/tc_lib.py | 14 +- neutron/agent/linux/utils.py | 36 +- neutron/agent/linux/xenapi_root_helper.py | 2 +- neutron/agent/metadata/agent.py | 11 +- neutron/agent/metadata/driver.py | 22 +- neutron/agent/ovsdb/impl_idl.py | 3 +- neutron/agent/ovsdb/impl_vsctl.py | 4 +- neutron/agent/ovsdb/native/helpers.py | 5 - neutron/agent/resource_cache.py | 2 +- neutron/agent/rpc.py | 79 +- neutron/agent/securitygroups_rpc.py | 43 +- neutron/agent/windows/utils.py | 39 +- neutron/agent/windows/winutils.py | 606 ------------- neutron/api/api_common.py | 44 +- neutron/api/extensions.py | 4 +- .../api/rpc/agentnotifiers/dhcp_rpc_agent_api.py | 13 +- neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py | 6 +- .../rpc/agentnotifiers/metering_rpc_agent_api.py | 6 +- neutron/api/rpc/callbacks/consumer/registry.py | 19 +- neutron/api/rpc/callbacks/producer/registry.py | 2 +- neutron/api/rpc/callbacks/resources.py | 3 + neutron/api/rpc/callbacks/version_manager.py | 3 +- neutron/api/rpc/handlers/dhcp_rpc.py | 16 +- neutron/api/rpc/handlers/dvr_rpc.py | 16 +- neutron/api/rpc/handlers/l3_rpc.py | 25 +- neutron/api/rpc/handlers/resources_rpc.py | 2 +- neutron/api/rpc/handlers/securitygroups_rpc.py | 2 +- neutron/api/v2/attributes.py | 46 - neutron/api/v2/base.py | 92 +- neutron/api/versions.py | 27 - neutron/cmd/linuxbridge_cleanup.py | 3 +- neutron/cmd/netns_cleanup.py | 1 + neutron/cmd/ovs_cleanup.py | 5 + neutron/cmd/sanity_check.py | 20 +- neutron/common/_deprecate.py | 4 +- neutron/common/config.py | 11 +- neutron/common/constants.py | 32 +- neutron/common/eventlet_utils.py | 8 +- neutron/common/exceptions.py | 72 +- neutron/common/ipv6_utils.py | 4 +- neutron/common/rpc.py | 79 +- neutron/common/topics.py | 60 -- neutron/common/utils.py | 40 +- neutron/conf/agent/common.py | 19 +- neutron/conf/agent/l3/config.py | 3 +- neutron/conf/agent/ovs_conf.py | 7 + neutron/conf/agent/ovsdb_api.py | 3 + neutron/conf/common.py | 5 + neutron/conf/extensions/allowedaddresspairs.py | 2 +- .../plugins/ml2/drivers/mech_sriov/agent_common.py | 7 - neutron/conf/plugins/ml2/drivers/ovs_conf.py | 2 +- neutron/core_extensions/qos.py | 15 +- neutron/db/_model_query.py | 24 +- neutron/db/_resource_extend.py | 7 +- neutron/db/_utils.py | 60 +- neutron/db/address_scope_db.py | 2 +- neutron/db/agents_db.py | 88 +- neutron/db/agentschedulers_db.py | 21 +- neutron/db/allowedaddresspairs_db.py | 7 +- neutron/db/api.py | 221 +++-- neutron/db/availability_zone/router.py | 6 +- neutron/db/common_db_mixin.py | 25 +- neutron/db/db_base_plugin_common.py | 11 +- neutron/db/db_base_plugin_v2.py | 74 +- neutron/db/dns_db.py | 16 +- neutron/db/dvr_mac_db.py | 5 +- neutron/db/external_net_db.py | 55 +- neutron/db/extradhcpopt_db.py | 4 +- neutron/db/extraroute_db.py | 24 +- neutron/db/flavors_db.py | 2 +- neutron/db/ipam_backend_mixin.py | 59 +- neutron/db/ipam_pluggable_backend.py | 3 + neutron/db/l3_agentschedulers_db.py | 67 +- neutron/db/l3_attrs_db.py | 21 +- neutron/db/l3_db.py | 159 ++-- neutron/db/l3_dvr_db.py | 144 +-- neutron/db/l3_dvrscheduler_db.py | 36 +- neutron/db/l3_fip_port_details.py | 42 + neutron/db/l3_fip_qos.py | 14 +- neutron/db/l3_gwmode_db.py | 11 + neutron/db/l3_hamode_db.py | 118 ++- neutron/db/l3_hascheduler_db.py | 4 +- neutron/db/metering/metering_db.py | 23 +- neutron/db/metering/metering_rpc.py | 4 +- neutron/db/migration/__init__.py | 28 +- .../db/migration/alembic_migrations/script.py.mako | 8 +- .../alembic_migrations/versions/EXPAND_HEAD | 2 +- .../alembic_migrations/versions/kilo_initial.py | 23 +- .../11926bcfe72d_add_geneve_ml2_type_driver.py | 6 +- .../contract/2a16083502f3_metaplugin_removal.py | 4 +- .../2e5352a0ad4d_add_missing_foreign_keys.py | 10 +- .../liberty/contract/30018084ec99_initial.py | 5 +- .../4af11ca47297_drop_cisco_monolithic_tables.py | 9 +- .../liberty/contract/4ffceebfada_rbac_network.py | 8 +- .../5498d17be016_drop_legacy_ovs_and_lb.py | 4 +- ...6e320f79_address_scope_support_in_subnetpool.py | 6 +- .../expand/1c844d1677f7_dns_nameservers_order.py | 6 +- .../liberty/expand/26c371498592_subnetpool_hash.py | 6 +- .../liberty/expand/31337ec0ffee_flavors.py | 6 +- .../expand/34af2b5c5a59_add_dns_name_to_port.py | 12 +- .../expand/354db87e3225_nsxv_vdr_metadata.py | 11 +- .../liberty/expand/45f955889773_quota_usage.py | 8 +- .../liberty/expand/48153cb5f051_qos_db_changes.py | 6 +- .../liberty/expand/52c5312f6baf_address_scopes.py | 6 +- .../liberty/expand/599c6a226151_neutrodb_ipam.py | 6 +- .../liberty/expand/8675309a5c4f_rbac_network.py | 6 +- .../expand/9859ac9c136_quota_reservations.py | 6 +- .../contract/1b294093239c_remove_embrane_plugin.py | 4 +- .../2b4c2465d44b_dvr_sheduling_refactoring.py | 6 +- .../mitaka/contract/4ffceebfcdc_standard_desc.py | 11 +- .../contract/5ffceebfada_rbac_network_external.py | 8 +- .../8a6d8bdae39_migrate_neutron_resources_table.py | 8 +- .../mitaka/contract/c6c112992c9_rbac_qos_policy.py | 12 +- .../e3278ee65050_drop_nec_plugin_tables.py | 4 +- .../0e66c5227a8a_add_desc_to_standard_attr.py | 11 +- .../13cfb89f881a_add_is_default_to_subnetpool.py | 8 +- .../expand/15be73214821_add_bgp_model_data.py | 6 +- .../mitaka/expand/15e43b934f81_rbac_qos_policy.py | 6 +- .../expand/19f26505c74f_auto_allocated_topology.py | 8 +- ...6f5_add_unique_ha_router_agent_port_bindings.py | 12 +- .../mitaka/expand/2f9e956e7532_tag_support.py | 6 +- ...3e6_add_resource_versions_row_to_agent_table.py | 6 +- .../32e5974ada25_add_neutron_resources_table.py | 6 +- ...3894bccad37f_add_timestamp_to_base_resources.py | 6 +- .../mitaka/expand/59cb5b6cf4d_availability_zone.py | 6 +- ...tributes_to_support_external_dns_integration.py | 8 +- .../b4caf27aae4_add_bgp_dragent_model_data.py | 6 +- .../c3a73f615e4_add_ip_version_to_address_scope.py | 6 +- .../mitaka/expand/dce3ec7a25c9_router_az.py | 6 +- .../mitaka/expand/ec7fcfbf72ee_network_az.py | 6 +- ...86_add_binding_index_to_routerl3agentbinding.py | 10 +- .../3b935b28e7a0_migrate_to_pluggable_ipam.py | 11 +- .../4bcd4df1f426_rename_ml2_dvr_port_bindings.py | 4 +- .../5c85685d616d_remove_availability_ranges.py | 4 +- .../7bbb25278f53_device_owner_ha_replicate_int.py | 8 +- .../7d9d8eeec6ad_rename_tenant_to_project.py | 6 +- .../89ab9a816d70_rename_ml2_network_segments.py | 6 +- .../8fd3918ef6f4_add_segment_host_mapping.py | 6 +- .../newton/contract/97c25b0d2353_add_name_desc.py | 8 +- .../a84ccf28f06a_migrate_dns_name_from_port.py | 8 +- .../a8b517cff8ab_add_routerport_bindings_for_ha.py | 12 +- ...12a3ef66e62_add_standardattr_to_qos_policies.py | 8 +- ...b67e765a3524_remove_mtu_column_from_networks.py | 4 +- .../c879c5e1ee90_add_segment_id_to_subnet.py | 6 +- .../030a959ceafa_uniq_routerports0port_id.py | 12 +- ...0f5bef0f87d4_add_qos_minimum_bandwidth_rules.py | 8 +- .../expand/30107ab6a3ee_provisioning_blocks.py | 5 +- .../3d0e74aa7d37_add_flavor_id_to_routers.py | 7 +- .../expand/45f8dd33480b_qos_dscp_db_addition.py | 6 +- .../5abc0278ca73_add_support_for_vlan_trunking.py | 8 +- .../5cd92597d11d_add_ip_allocation_to_port.py | 4 +- ...daae611b6e_add_standard_attr_to_qos_policies.py | 6 +- ...61a21bcfc_uniq_floatingips0floating_network_.py | 12 +- .../a5648cfeeadf_add_subnet_service_types.py | 6 +- .../a963b38d82f4_add_dns_name_to_portdnses.py | 6 +- .../expand/c415aab1c048_add_revisions_column.py | 6 +- .../d3435b514502_add_device_id_index_to_port.py | 4 +- .../expand/929c968efe70_add_pk_version_table.py | 5 +- .../a9c43481023c_extend_ml2_port_bindings.py | 14 +- ...9da_qos_add_direction_to_bw_limit_rule_table.py | 12 +- .../349b6fd605a6_add_dns_domain_to_portdnses.py | 8 +- .../62c781cb6192_add_qos_policies_default_table.py | 6 +- .../expand/7d32f979895f_add_mtu_for_networks.py | 11 +- .../804a3c76314c_add_data_plane_status_to_port.py | 6 +- .../pike/expand/c8c222d42aa9_logging_api.py | 10 +- .../versions/queens/expand/594422d373ee_fip_qos.py | 13 +- .../expand/61663558142c_add_ha_router_state.py | 44 + .../rocky/expand/867d39095bf4_port_forwarding.py | 59 ++ neutron/db/migration/cli.py | 7 +- neutron/db/models/l3.py | 3 + neutron/db/models/l3ha.py | 1 + neutron/db/models/port_forwarding.py | 59 ++ neutron/db/portsecurity_db_common.py | 2 +- neutron/db/quota/driver.py | 2 +- neutron/db/rbac_db_mixin.py | 19 +- neutron/db/securitygroups_db.py | 37 +- neutron/db/securitygroups_rpc_base.py | 11 +- neutron/db/segments_db.py | 10 +- neutron/db/standard_attr.py | 45 +- neutron/db/subnet_service_type_db_models.py | 33 - neutron/db/subnet_service_type_mixin.py | 30 + neutron/db/vlantransparent_db.py | 4 +- neutron/debug/shell.py | 2 +- .../extensions/_availability_zone_filter_lib.py | 34 + neutron/extensions/_empty_string_filtering_lib.py | 30 + neutron/extensions/_filter_validation_lib.py | 30 + .../extensions/_port_mac_address_regenerate_lib.py | 61 ++ .../_segments_peer_subnet_host_routes_lib.py | 32 + neutron/extensions/_standard_attr_segment_lib.py | 30 + neutron/extensions/availability_zone_filter.py | 18 + neutron/extensions/dhcpagentscheduler.py | 67 +- neutron/extensions/dvr.py | 9 - neutron/extensions/empty_string_filtering.py | 19 + .../extensions/expose_port_forwarding_in_fip.py | 19 + neutron/extensions/filter_validation.py | 35 + neutron/extensions/fip_port_details.py | 20 + neutron/extensions/floating_ip_port_forwarding.py | 116 +++ neutron/extensions/ip_substring_port_filtering.py | 3 +- .../extensions/ip_substring_port_filtering_lib.py | 64 -- neutron/extensions/multiprovidernet.py | 92 +- neutron/extensions/network_ip_availability.py | 13 + neutron/extensions/port_mac_address_regenerate.py | 24 + neutron/extensions/portbindings_extended.py | 88 ++ neutron/extensions/qos.py | 16 - neutron/extensions/qos_default.py | 63 +- neutron/extensions/qos_rule_type_details.py | 57 +- neutron/extensions/rbac.py | 16 +- neutron/extensions/revisionifmatch.py | 27 +- neutron/extensions/revisions.py | 7 +- neutron/extensions/routerservicetype.py | 34 +- .../extensions/security_groups_port_filtering.py | 23 + .../security_groups_port_filtering_lib.py | 59 ++ neutron/extensions/securitygroup.py | 40 +- neutron/extensions/segment.py | 27 +- .../extensions/segments_peer_subnet_host_routes.py | 18 + neutron/extensions/servicetype.py | 54 +- neutron/extensions/sorting.py | 31 +- neutron/extensions/standard_attr_segment.py | 18 + neutron/extensions/standardattrdescription.py | 7 +- neutron/extensions/stdattrs_common.py | 31 + neutron/extensions/subnet_segmentid_writable.py | 20 + neutron/extensions/tag.py | 85 -- neutron/extensions/tag_ext.py | 95 -- neutron/extensions/tagging.py | 34 +- neutron/extensions/timestamp.py | 5 +- neutron/extensions/vlantransparent.py | 56 +- neutron/hacking/checks.py | 5 +- neutron/ipam/drivers/neutrondb_ipam/driver.py | 5 +- neutron/ipam/exceptions.py | 3 +- neutron/ipam/utils.py | 6 +- neutron/locale/de/LC_MESSAGES/neutron.po | 519 +---------- neutron/locale/es/LC_MESSAGES/neutron.po | 488 +---------- neutron/locale/fr/LC_MESSAGES/neutron.po | 493 +---------- neutron/locale/it/LC_MESSAGES/neutron.po | 481 +--------- neutron/locale/ja/LC_MESSAGES/neutron.po | 475 +--------- neutron/locale/ko_KR/LC_MESSAGES/neutron.po | 461 +--------- neutron/locale/pt_BR/LC_MESSAGES/neutron.po | 480 +--------- neutron/locale/ru/LC_MESSAGES/neutron.po | 473 +--------- neutron/locale/tr_TR/LC_MESSAGES/neutron.po | 283 +----- neutron/locale/zh_CN/LC_MESSAGES/neutron.po | 444 +--------- neutron/locale/zh_TW/LC_MESSAGES/neutron.po | 446 +--------- neutron/manager.py | 6 +- neutron/notifiers/nova.py | 17 +- neutron/objects/agent.py | 2 +- neutron/objects/base.py | 83 +- neutron/objects/db/api.py | 2 +- neutron/objects/port_forwarding.py | 135 +++ neutron/objects/ports.py | 75 +- neutron/objects/qos/policy.py | 20 +- neutron/objects/qos/qos_policy_validator.py | 21 + neutron/objects/qos/rule.py | 34 +- neutron/objects/rbac_db.py | 3 +- neutron/objects/router.py | 17 + neutron/objects/subnet.py | 20 +- neutron/objects/utils.py | 60 -- neutron/pecan_wsgi/controllers/quota.py | 4 +- neutron/pecan_wsgi/controllers/root.py | 16 +- neutron/pecan_wsgi/controllers/utils.py | 8 +- neutron/pecan_wsgi/hooks/policy_enforcement.py | 14 +- neutron/pecan_wsgi/hooks/query_parameters.py | 3 +- neutron/pecan_wsgi/startup.py | 4 +- neutron/plugins/common/constants.py | 3 +- neutron/plugins/common/utils.py | 248 ------ neutron/plugins/ml2/db.py | 8 +- neutron/plugins/ml2/driver_context.py | 5 + neutron/plugins/ml2/drivers/agent/_common_agent.py | 32 +- neutron/plugins/ml2/drivers/helpers.py | 2 +- neutron/plugins/ml2/drivers/l2pop/mech_driver.py | 19 +- neutron/plugins/ml2/drivers/l2pop/rpc.py | 2 +- .../agent/extension_drivers/qos_driver.py | 8 +- .../linuxbridge/agent/linuxbridge_neutron_agent.py | 92 +- .../drivers/macvtap/agent/macvtap_neutron_agent.py | 4 +- .../plugins/ml2/drivers/macvtap/macvtap_common.py | 7 +- .../ml2/drivers/mech_sriov/agent/common/config.py | 2 + .../drivers/mech_sriov/agent/eswitch_manager.py | 22 +- .../drivers/mech_sriov/agent/sriov_nic_agent.py | 16 +- .../drivers/mech_sriov/mech_driver/mech_driver.py | 2 +- .../drivers/openvswitch/agent/common/constants.py | 11 +- .../agent/extension_drivers/qos_driver.py | 6 +- .../openvswitch/agent/openflow/native/ofswitch.py | 108 ++- .../agent/openflow/native/ovs_bridge.py | 8 +- .../openvswitch/agent/ovs_dvr_neutron_agent.py | 66 +- .../drivers/openvswitch/agent/ovs_neutron_agent.py | 274 +++--- .../openvswitch/mech_driver/mech_openvswitch.py | 6 +- neutron/plugins/ml2/drivers/type_tunnel.py | 23 +- neutron/plugins/ml2/drivers/type_vlan.py | 7 +- neutron/plugins/ml2/extensions/dns_integration.py | 5 +- neutron/plugins/ml2/managers.py | 28 +- neutron/plugins/ml2/models.py | 8 +- neutron/plugins/ml2/ovo_rpc.py | 17 +- neutron/plugins/ml2/plugin.py | 438 +++++++-- neutron/plugins/ml2/rpc.py | 49 +- neutron/policy.py | 27 +- neutron/privileged/agent/linux/ip_lib.py | 254 +++++- neutron/privileged/agent/linux/netlink_lib.py | 8 +- neutron/quota/resource.py | 17 +- neutron/quota/resource_registry.py | 2 +- neutron/scheduler/dhcp_agent_scheduler.py | 4 +- neutron/scheduler/l3_agent_scheduler.py | 5 +- neutron/server/__init__.py | 28 +- neutron/server/rpc_eventlet.py | 6 +- neutron/service.py | 10 +- neutron/services/auto_allocate/db.py | 71 +- neutron/services/auto_allocate/plugin.py | 2 + .../externaldns/drivers/designate/driver.py | 8 +- neutron/services/flavors/flavors_plugin.py | 2 + neutron/services/l3_router/l3_router_plugin.py | 12 +- .../services/l3_router/service_providers/base.py | 1 + .../service_providers/driver_controller.py | 89 +- neutron/services/logapi/agent/l3/__init__.py | 0 neutron/services/logapi/agent/l3/base.py | 108 +++ neutron/services/logapi/agent/log_extension.py | 7 +- neutron/services/logapi/common/constants.py | 6 + neutron/services/logapi/common/db_api.py | 6 +- neutron/services/logapi/common/exceptions.py | 6 + neutron/services/logapi/common/sg_callback.py | 34 + neutron/services/logapi/common/sg_validate.py | 84 ++ neutron/services/logapi/common/validators.py | 113 +-- neutron/services/logapi/drivers/base.py | 4 + neutron/services/logapi/drivers/manager.py | 58 +- .../services/logapi/drivers/openvswitch/driver.py | 23 + .../logapi/drivers/openvswitch/ovs_firewall_log.py | 39 +- neutron/services/logapi/logging_plugin.py | 8 +- neutron/services/logapi/rpc/agent.py | 10 +- neutron/services/logapi/rpc/server.py | 65 +- neutron/services/loki/loki_plugin.py | 3 +- neutron/services/metering/agents/metering_agent.py | 5 +- .../metering/drivers/iptables/iptables_driver.py | 9 +- neutron/services/metering/metering_plugin.py | 5 +- neutron/services/network_ip_availability/plugin.py | 4 +- neutron/services/portforwarding/__init__.py | 0 neutron/services/portforwarding/common/__init__.py | 0 .../services/portforwarding/common/exceptions.py | 29 + neutron/services/portforwarding/pf_plugin.py | 488 +++++++++++ neutron/services/provider_configuration.py | 2 +- neutron/services/qos/drivers/manager.py | 9 +- neutron/services/qos/qos_plugin.py | 61 +- neutron/services/revisions/revision_plugin.py | 4 +- neutron/services/segments/db.py | 5 +- neutron/services/segments/exceptions.py | 12 + neutron/services/segments/placement_client.py | 20 +- neutron/services/segments/plugin.py | 285 +++++- neutron/services/tag/tag_plugin.py | 4 +- neutron/services/timestamp/timestamp_db.py | 10 +- neutron/services/timestamp/timestamp_plugin.py | 2 + neutron/services/trunk/callbacks.py | 1 + neutron/services/trunk/plugin.py | 16 +- neutron/services/trunk/rpc/agent.py | 2 +- neutron/services/trunk/rpc/server.py | 2 +- neutron/services/trunk/rules.py | 10 +- neutron/services/trunk/seg_types/validators.py | 6 +- neutron/services/trunk/utils.py | 5 +- .../functional/agent/l3/extensions/qos/__init__.py | 0 .../l3/extensions/qos/test_fip_qos_extension.py | 281 ++++++ .../agent/l3/extensions/test_fip_qos_extension.py | 251 ------ .../extensions/test_port_forwarding_extension.py | 187 ++++ .../functional/agent/l3/test_legacy_router.py | 2 +- .../functional/agent/linux/bin/ipt_binname.py | 1 + .../linux/openvswitch_firewall/test_iptables.py | 5 +- .../functional/cmd/test_linuxbridge_cleanup.py | 11 + .../functional/pecan_wsgi/test_controllers.py | 3 +- .../l3_router/test_l3_dvr_ha_router_plugin.py | 2 +- .../l3_router/test_l3_dvr_router_plugin.py | 76 +- .../functional/services/logapi/test_logging.py | 17 +- .../functional/services/portforwarding/__init__.py | 0 .../portforwarding/test_port_forwarding.py | 387 ++++++++ .../tempest/services/network/json/__init__.py | 0 .../services/network/json/network_client.py | 974 --------------------- .../unit/agent/l3/extensions/qos/test_base.py | 81 ++ .../agent/l3/extensions/test_port_forwarding.py | 419 +++++++++ .../unit/agent/l3/test_l3_agent_extension_api.py | 6 +- .../linux/openvswitch_firewall/test_firewall.py | 104 ++- .../agent/linux/openvswitch_firewall/test_rules.py | 44 +- .../unit/agent/linux/test_iptables_firewall.py | 496 ++++++----- .../unit/agent/linux/test_iptables_manager.py | 547 ++++++------ .../rpc/agentnotifiers/test_dhcp_rpc_agent_api.py | 4 +- .../api/rpc/callbacks/consumer/test_registry.py | 11 +- .../unit/api/rpc/handlers/test_resources_rpc.py | 2 +- .../unit/extensions/test_availability_zone.py | 36 +- .../test_expose_port_forwarding_in_fip.py | 124 +++ .../unit/extensions/test_subnet_service_types.py | 31 +- .../port/extensions/test_allowedaddresspairs.py | 2 +- .../ml2/drivers/agent/test__common_agent.py | 31 +- .../plugins/ml2/drivers/agent/test_capabilities.py | 7 +- .../plugins/ml2/drivers/l2pop/test_mech_driver.py | 57 +- .../agent/extension_drivers/test_qos_driver.py | 3 - .../agent/test_linuxbridge_neutron_agent.py | 116 ++- .../macvtap/agent/test_macvtap_neutron_agent.py | 2 +- .../mech_sriov/agent/test_sriov_nic_agent.py | 21 + .../unit/plugins/ml2/drivers/mechanism_test.py | 4 +- .../agent/openflow/native/ovs_bridge_test_base.py | 24 +- .../agent/openflow/native/test_br_int.py | 54 +- .../agent/openflow/native/test_br_phys.py | 12 +- .../agent/openflow/native/test_br_tun.py | 84 +- .../agent/openflow/native/test_ofswitch.py | 106 +++ .../agent/openflow/native/test_ovs_bridge.py | 5 + .../agent/openflow/ovs_ofctl/test_br_tun.py | 4 +- .../agent/test_ovs_agent_extension_api.py | 3 +- .../openvswitch/agent/test_ovs_capabilities.py | 7 +- .../openvswitch/agent/test_ovs_neutron_agent.py | 495 ++++++++++- .../drivers/openvswitch/agent/test_ovs_tunnel.py | 1 + .../unit/plugins/ml2/drivers/test_type_vlan.py | 18 +- .../plugins/ml2/extensions/test_dns_integration.py | 30 +- .../unit/privileged/agent/linux/test_ip_lib.py | 212 +++++ .../privileged/agent/linux/test_netlink_lib.py | 48 +- .../unit/scheduler/test_dhcp_agent_scheduler.py | 6 +- .../unit/scheduler/test_l3_agent_scheduler.py | 93 +- .../service_providers/test_driver_controller.py | 90 +- .../unit/services/logapi/agent/l3/__init__.py | 0 .../unit/services/logapi/agent/l3/test_base.py | 134 +++ .../unit/services/logapi/common/test_db_api.py | 158 ++-- .../services/logapi/common/test_sg_callback.py | 67 ++ .../services/logapi/common/test_sg_validate.py | 115 +++ .../unit/services/logapi/common/test_validators.py | 91 +- .../drivers/openvswitch/test_ovs_firewall_log.py | 25 +- .../unit/services/logapi/drivers/test_manager.py | 62 +- .../unit/services/logapi/test_logging_plugin.py | 9 +- .../metering/agents/test_metering_agent.py | 2 +- .../unit/services/metering/test_metering_plugin.py | 6 +- .../unit/services/portforwarding/test_pf_plugin.py | 332 +++++++ .../unit/services/qos/drivers/test_manager.py | 2 +- .../services/revisions/test_revision_plugin.py | 2 +- .../linuxbridge/agent/test_trunk_plumber.py | 1 + neutron/wsgi.py | 10 +- .../legacy/neutron-fullstack-python35/post.yaml | 80 ++ .../legacy/neutron-fullstack-python35/run.yaml | 54 ++ .../legacy/neutron-fullstack-with-uwsgi/post.yaml | 80 ++ .../legacy/neutron-fullstack-with-uwsgi/run.yaml | 67 ++ .../legacy/neutron-functional-python35/post.yaml | 80 ++ .../legacy/neutron-functional-python35/run.yaml | 54 ++ .../legacy/neutron-functional-with-uwsgi/post.yaml | 80 ++ .../legacy/neutron-functional-with-uwsgi/run.yaml | 67 ++ playbooks/legacy/neutron-rally-neutron/post.yaml | 41 - playbooks/legacy/neutron-rally-neutron/run.yaml | 175 ---- .../neutron-tempest-iptables_hybrid/post.yaml | 15 + .../neutron-tempest-iptables_hybrid/run.yaml | 48 + playbooks/legacy/neutron-tempest-ovsfw/post.yaml | 15 - playbooks/legacy/neutron-tempest-ovsfw/run.yaml | 48 - .../legacy/neutron-tempest-postgres-full/post.yaml | 15 + .../legacy/neutron-tempest-postgres-full/run.yaml | 46 + .../neutron-tempest-with-ryu-master/post.yaml | 15 + .../neutron-tempest-with-ryu-master/run.yaml | 55 ++ rally-jobs/neutron-neutron.yaml | 302 ------- rally-jobs/plugins/trunk_scenario.py | 12 +- rally-jobs/task-neutron.yaml | 302 +++++++ .../add-conntrack-workers-89d303e9ec3b4963.yaml | 13 + ...dd-multiple-port-bindings-f16eb47ebdddff2d.yaml | 22 + .../add-new-harouter-state-5612fc5b5c2043a5.yaml | 8 + ...ort_details-to-floatingip-fefceab2c740e482.yaml | 6 + ...ard-attributes-to-segment-d39c4b89988aa701.yaml | 6 + ...et-segment-id-association-1fb02ace27e85bb8.yaml | 10 + .../notes/dns_domain-6f0e628aeb3c650c.yaml | 13 + ...sion-resource-owner-check-4a19b84889660506.yaml | 9 + ...oatingips-port-forwarding-65efd8c17a16dffc.yaml | 26 + .../ib-dhcp-allocation-fix-a4ebe8b55bb2c065.yaml | 8 + ...s-interfacedriver-removal-a9cce87310028b99.yaml | 7 + ...ver-load-interface-driver-ca397f1db40ec643.yaml | 7 + ...-table-size-config-option-d255d5208650f34b.yaml | 14 + ...ride_for_ovs_cleanup_tool-e6ed6db258d0819e.yaml | 15 + ...rt-mac-address-regenerate-312978c834abaa52.yaml | 7 + ...outed-networks-hostroutes-a13a9885f0db4f69.yaml | 8 + ...ity-groups-port-filtering-69d36ac7db90c9e0.yaml | 6 + ...rt-empty-string-filtering-4a39096b62b9abf2.yaml | 5 + ...support-filter-validation-fee2cdeedbe8ad76.yaml | 38 + releasenotes/source/index.rst | 1 + releasenotes/source/liberty.rst | 2 +- .../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/mitaka.rst | 2 +- releasenotes/source/newton.rst | 2 +- releasenotes/source/ocata.rst | 2 +- releasenotes/source/queens.rst | 6 + requirements.txt | 18 +- setup.cfg | 99 ++- test-requirements.txt | 11 +- tools/configure_for_func_testing.sh | 32 +- tools/ostestr_compat_shim.sh | 8 - tox.ini | 73 +- 777 files changed, 23392 insertions(+), 18635 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index b2cf2d0..2961e8a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,2 +10,2 @@ debtcollector>=1.2.0 # Apache-2.0 -eventlet!=0.18.3,!=0.20.1,<0.21.0,>=0.18.2 # MIT -pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD +eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT +pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.1.1 # BSD @@ -13 +13 @@ httplib2>=0.9.1 # MIT -Jinja2!=2.9.0,!=2.9.1,!=2.9.2,!=2.9.3,!=2.9.4,>=2.8 # BSD License (3 clause) +Jinja2>=2.10 # BSD License (3 clause) @@ -17,2 +17,2 @@ netifaces>=0.10.4 # MIT -neutron-lib>=1.13.0 # Apache-2.0 -python-neutronclient>=6.3.0 # Apache-2.0 +neutron-lib>=1.18.0 # Apache-2.0 +python-neutronclient>=6.7.0 # Apache-2.0 @@ -20,2 +20,2 @@ tenacity>=3.2.1 # Apache-2.0 -ryu>=4.14 # Apache-2.0 -SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT +ryu>=4.24 # Apache-2.0 +SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.2.0 # MIT @@ -23 +23 @@ WebOb>=1.7.1 # MIT -keystoneauth1>=3.3.0 # Apache-2.0 +keystoneauth1>=3.4.0 # Apache-2.0 @@ -46 +46 @@ ovs>=2.8.0 # Apache-2.0 -ovsdbapp>=0.8.0 # Apache-2.0 +ovsdbapp>=0.9.1 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 5b087c9..dd8819e 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4 +4 @@ -hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 +hacking>=1.1.0 # Apache-2.0 @@ -6 +6 @@ hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 -bandit>=1.1.0 # Apache-2.0 +bandit>=1.1.0,<1.5.0 # Apache-2.0 @@ -12,3 +11,0 @@ python-subunit>=1.0.0 # Apache-2.0/BSD -sphinx!=1.6.6,>=1.6.2 # BSD -openstackdocstheme>=1.18.1 # Apache-2.0 -oslosphinx>=4.7.0 # Apache-2.0 @@ -20 +17,2 @@ oslotest>=3.2.0 # Apache-2.0 -os-testr>=1.0.0 # Apache-2.0 +stestr>=1.0.0 # Apache-2.0 +reno>=2.5.0 # Apache-2.0 @@ -23 +20,0 @@ pylint==1.4.5 # GPLv2 -reno>=2.5.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org