We are excited to announce the release of: neutron 14.0.0: OpenStack Networking This release is part of the stein release series. The source is available from: https://git.openstack.org/cgit/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. Changes in neutron 13.0.0.0rc1..14.0.0 -------------------------------------- d1696619c5 Reject min-bw rule operations on non-physnet networks/ports d33e5f5c17 Disable fullstack job from gate and make it non-voting 6ee786ab95 Add check for external_network_bridge in neutron-status 7369b69e2e Dynamically increase DHCP process queue green pool size aa221a3c09 Migrate legacy jobs to Ubuntu Bionic a5244d6d44 More accurate agent restart state transfer 636f1b5394 Define qos-rules-alias extension 303598289d Switch neutron-functional-with-wsgi job to zuul v3 syntax 4777633e8b Fix neutron-status upgrade check CLI tool 2dc61dfbcc Utilize bulk port creation ops in ml2 plugin 7cccaf0616 FUP Networking guide: Guaranteed Minimum Bandwidth b6550e568d Remove "msg" from tasks in ansible roles 252598b088 Networking guide: Guaranteed Minimum Bandwidth 6ef6f2b59b Migrate fullstack job definition to zuulv3 syntax 4350ed3c35 Better handle ports in security groups 66eb1e29f3 Enable ipv6_forwarding in HA router's namespace 8e4f625da6 Fix pylint R1717 (consider-using-dict-comprehension) refactor messages 1e9086f6e2 Use dynamic lazy mode for fetching security group rules 72e783f14e Add documentation for subnet onboard 86b3993cee Fix misuse of assertTrue/assertFalse 44382ac446 Specify tenant_id in TestRevisionPlugin objects 25c432a05a Add rootwrap filters to kill state change monitor 33110fb7e8 Migrate neutron-functional job to zuul v3 syntax c3ad500df0 [Fullstack] Don't compile ovs kernel module on Ubuntu Bionic b3d26ab2dd Migrate neutron-tempest-dvr-ha-multinode-full job to zuulv3 eaf990b2bc Fix pep8 E128 warnings in non-test code 634906b50c Use allocated trunk_id in TestOVSDBHandler 34627a5bb9 Fix fwaas_v2 driver string in docs 2ac0ee0b28 Fix pylint E1128 (assignment-from-no-return) in l3-agent 8fec1ffc83 Set initial ha router state in neutron-keepalived-state-change 1813ec74cc Do not rise exception if OVS Queue is not present when being deleted 732dbdaf5e Fail placement sync if _get_rp_by_name() fails 59600afc5a [doc] Add network segment ranges into admin guide 7a285a7fcc consume is_bsd from neutron-lib d3a119bbbe consume UnorderedList from neutron-lib beb2f2ef15 Fix handling no qos_queues while removing min bw limit rule c1999a2b22 Fix QoS rule update c04b8ddd90 Join on explcit relationship paths 08da9f8cce Fix a couple of bw burst calc unit tests for macs 33f404a519 Devstack plugin for network-segment-range api 5e0fc3d2da Allow sharing of security groups via RBAC mechanism c2ab2626f8 Mark dvr_ha_router_failover tests as unstable b09b44608b Remove deprecated 'external_network_bridge' option 8c2a16796b Fix fullstack test_dscp_marking_packets test 8c213e4590 When converting sg rules to iptables, do not emit dport if not supported a01b7125cd Use network segment ranges for segment allocation 74c51a2e53 Drive binding by placement allocation 93d556e434 Add TC filter functions implemented with pyroute2 92f1281b69 Add a more robust method to check OVSDB values in BaseOVSTestCase 70fb9c6479 Mock router info functions for a functional case 22f55822aa Catch OVSFWTagNotFound in update_port_filter d9e0bab6ac DVR-HA: Unbinding a HA router from agent does not clear HA interface 05b0144e83 [Fullstack] Use newer openvswitch 563a536d02 Support Network Segment Range CRUD as extensions 9c56f8386c Remove quota_db backward compat file 45a7a45961 Store journal log in functional tests results 9f41850ba3 remove neutron.db.api references f08de5cbe9 Make "phys_brs" argument in OVSAgentExtensionAPI optional 6ae228cc2e Spawn metadata proxy on dvr ha standby routers 8f656306f2 Revert "Restart all L3 agents in test that check no packet loss in HA routers" b197f7c1c4 Delete port binding level for deleted bindings 55f2336981 Add method to tox to use local neutron-lib with unit tests 798c6c731f [Functional tests] Change way how conntrack entries are checked 61b231a999 Change process name of neutron-server to match worker role fe4e7724cd Don't disable radvd if radvd if it wasn't initialized 1cf30c552d Add oslo.privsep to config-generator list e6351ab11e [Functional] Don't assert that HA router don't have IPs configured 9e8e987e6c Placement reporting service plugin bdd3540554 Restart all L3 agents in test that check no packet loss in HA routers 58f9c96877 Bump neutron-lib requirement to 1.25.0 22369ba7fe Do not print router resize messages when not resizing b3dae9fae4 add python 3.7 unit test job b593a4914c Cleanup DVR SNAT port list creation code cc4d5a2561 Fix regression with SG read API with empty ruleset d5896025b7 Enable adoption of subnets into a subnet pool 9bfe63cf07 Update appdirs to 1.4.3 cc8808d539 Add QoS minimum egress bandwidth rule into ovs-agent 1ee18775a9 DVR edge router: avoid accidental centralized floating IP remove abc8524db7 Use constant from neutron-lib c6ae4fb8a2 Bump pbr version to 4.0.0 e5e56ba0f0 Switch neutron-tempest-dvr-ha-multinode-full job to python3 1d41f39ddf Fix slow SG api calls when limiting fields 7b973d151e Fix pylint R1716 (chained-comparison) refactor messages fba5eb694b Fix pylint R1714 (consider-using-in) refactor messages facc4e94ca Reject QoS minimum bandwidth rule updates for bound ports as NotImplemented 84f8ae9d1f Add "rpc_response_max_timeout" config variable in OVS agent 7e208c3014 Bump pylint version to one that supports python3.7 4ab00d3471 Class to represent Placement state and sync 648ab82a4b New agent attribute: resources_synced 3f38c58cff Add job from openstacksdk to avoid regressing d802fad8a9 Avoid loading same service plugin more than once a05e1369b0 Add support for binding activate and deactivate 7e09b25b96 Modify api and rpc default number of workers 56ac61fac0 Use subnet without dhcp in portforwarding functional tests 789438ec9a Switch multinode grenade jobs to python3 cd31eae33d Use pyroute2 to check vlan/vxlan in use a10281bf23 Call _safe_router_removed during pool resize testing d841ce72bf Run revision bump operations en masse 01073caf52 Consume constant from neutron-lib: DHCPV6_CLIENT_PORT 05644f79ad Retrieve devices with link not present 5fff6e3b94 Bump pyroute2 version to 0.5.3 f0051e68f6 use api def ALIAS in _supported_extension_aliases 006d4d0735 Add delete_tc_policy_class using pyroute2 4a92b0b142 Add add_tc_policy_class and list_tc_policy_classes using pyroute2 17a7a62e84 Implement delete_tc_qdisc using pyroute2 e8b7e768a2 Add dependency for service plugin 769e971293 [OVS] Exception message when retrieving bridge-id and is not present ade5d52241 Add common neutron config options to status CLI tool 59706b4f3e Remove conntrackd comment f4eeac73e3 Fix _find_related_obj() RuntimeError output 1f104a093c Fix notification about arp entries for dvr routers c0fec67672 Add new test decorator skip_if_timeout 5b7d444b31 Not set the HA port down at regular l3-agent restart 837c9283ab Dynamically increase l3 router process queue green pool size 3c2a23ba94 Remove trunk rally scenario from plugins 84b30849c1 bump neutron-lib to 1.24.0 031a6e5246 rally-jobs: Add FloatingIP workloads: assoc/dissoc dbe04a40e5 Change common agent code to log message after failure 8362c0a050 Enhance rally-job for sec group rules to creates multiple rules 2147c70745 Change SR-IOV agent to log message after failure d8e8fe7db5 Improve invalid port ranges error message e2bb27fc34 doc: Use DocumentedRuleDefault 9926410886 Change OVS agent to log message after failure d83b3d3468 Remove redundant event listening logic from neutron/db/api ade38e4034 remove string use of neutron.common.rpc 6f927cc119 Clear old rules that have been applied before applying new rules. c4e755daa9 Remove redundant if condition check 9d5fb2fa77 Fix the way how upgrade checks are loaded 21cddc47b4 Fix update of ports cache in router_info class d7cefa56e4 Implement add_tc_qdisc and list_tc_qdiscs using pyroute2 024802aafd remove neutron.common.rpc 1746d7e0e6 Update the processing of assigned addresses when assigning addresses 7fdd6adc7a DHCP: fix default dns search name b083d39a83 Change agents to use get_devices_with_ip() a8afd1f124 Change Metering agent to log message after failure a721e6d7b9 doc: replace nova security_group_api option with use_neutron 64f2fe7060 Change log level for l3 agent router updates 414bdd4c59 Don't specify exactly IP in portforwarding functional test 98ef2ac8d6 Add some create subnet negative tests 68fd13af40 remove neutron.common.exceptions a6422ea8f9 Add Security Group scenarios to rally-jobs 24362fb973 Fix port forwarding functional tests logging d471a85931 Ensure dnsmasq is down before enabling it in restart method 4fb8b3fe4e Retrieve the device info in trunk_plumber using pyroute2 1687aaee3c use payloads for SECURITY_GROUP BEFORE_CREATE events 0239f163b1 [Configuration] Clean up .gitignore references to personal tools defdc64a9b Bump neutron-lib to 1.23.0 9a8f82a0d0 use payloads for SECURITY_GROUP BEFORE_DELETE events f2111e0354 Do not release DHCP lease when no client ID is set on port 8e29f67920 use payloads for all SUBNETPOOL_ADDRESS_SCOPE events 662512b7cc use payloads for all PORT_DEVICE events aa71530aaa Add VLAN and VXLAN link information in get_devices_info 453f39f23d use payloads for PORT BEFORE_DELETE callbacks 08bca27b93 remove unused methods in common_db_mixin c2bcb90895 Switch tempest-slow to be run on python 3 e22f1eca1e Switch tempest-multinode-full to be run on python 3 bd4c291cdf Restore tenant_id check on security group rule adds to previous semantic 6124f60297 Switch isolated metadata proxy to bind to 169.254.169.254 e108ac6bdf Add port forwarding floating IP QoS 9359366d93 Switch default functional tests to python3, add job for python2 b0d758e1b4 Fix port update deferred IP allocation with host_id + new MAC 8914f8247f Update neutron files for new over-indentation hacking rule (E117) 99f4495c94 Improve port dhcp Provisioning afdc77de05 Remove extra spaces in admin config files e7a2b6d179 Add IPWrapper.get_devices_info using PyRoute2 1382bf9a32 remove the neutron.db._model_query module 72cf434b16 shim remaining common exceptions 529f645883 Delete virtual interface "ovs-system" before load openvswitch module d50997dadb Use renamed template 'integrated-gate-py3' 4cbaa06031 Add test cases: invalidate CIDR 89efc132a5 Change DHCP agent to log message after failure a78bf152b1 Change L3 agent to log message after failure 4747de23d8 Remove IPv6 addresses in dnsmasq leases file 379a9faf62 Change duplicate OVS bridge datapath-ids 4d45699f15 Not set fip to ERROR if it exists on device ee19fa49b7 Change DVR to use ip_lib.add_ip_address() directly d519934c77 bump neutron-lib to 1.22.0 63ea9d7bcc Set lower addr to avoid IP out of range 85e1b1b0dc Correct arguments to nfct_open 26eb2509fe Always fill UDP checksums in DHCPv6 replies 2eb31f84c9 Fix performance regression adding rules to security groups 534e850392 Add lock_path in installation guide e788d29458 Support iproute2 4.15 in l3_tc_lib f1fa9529ee Revert "Skip ovsdb_monitor events for ports with ofport=-1" fd57088b36 Update team and bug ownership info f1592c42d9 Add a new configuration parameter rpc_response_max_timeout 1685982a97 Use status_code instead of status in requests abe8f6023b Fix indent level of netlink_lib.py 58de79a58b Clear residual qos rules after l2-agent restarts. f8e0a497ad Skip ovsdb_monitor events for ports with ofport=-1 ffbf65126f protect DHCP agent cache out of sync 4bb78e8c21 Fix l3-agent usage of L3AgentExtension class 65a2f86aaf Gracefully handle fetch network fail in qos extend port 0081aaa380 Remove hooks for dsvm-scenario-linuxbridge e4ab2ebcab Add neutron-tempest-iptables_hybrid job on Fedora eacdf1f18f Migrate neutron-tempest-linuxbridge job to zuulv3 and python 3 284afcf24f Lock privileged.agent.linux.ip_lib functions 4aa79ae4a5 Guideline on defining in-code policies b3416f5baf Cleanup pecan required version a055046e61 Refactor some l3_dvr_db code c6d358d4c6 Define types for C calls in netlink_lib b545c06bce Rename ironic job 374a4a1b92 use payloads for SEGMENT AFTER_DELETE events b7f0982957 Fix a minor typo in SR-IOV with ConnectX-3 section 3d70272f42 Rename README.policy.json.txt b0ed6bb04e Define missing policies for attributes with enforce_policy bc29d4843d Revert "Remove -u root as mysql is executed with root user" f36a3b35f6 Update SR-IOV configuration admin docs 7ae764eff9 Migrate neutron-tempest-dvr job to zuulv3 and python 3 ecfbc14148 port-resource-request policy rule to constant 1f3e5f91f6 neutron-tempest-iptables_hybrid job inherits from tempest-full-py3 433228dd78 Prevent bind fip to port has port forwarding 76c2881201 Make test service_plugins override simple 29f56478d1 remove the neutron.db._resource_extend module 41fe4e9629 Use ADMIN_ONLY constant in policy rules c8c201bca9 consume get_updatable_fields from neutron-lib b110264f5d cleanup SQLAlchemy required version 0364c05de1 Migrate neutron-tempest-iptables_hybrid job to zuulv3 and python 3 e83e5618b7 Don't modify global variables in unit tests 760eedf7f7 Use oslo_log instead of alembic.util in functional tests ae4b331725 fullstack: retry on updating port's IP address 92793efc06 Convert Port to OVO in db/ipam_pluggable_backend.py d1a3c2a379 Convert Subnet to OVO in ipam_pluggable_backend.py 30ba87e5e0 Revert "Log alembic migration script's output with oslo_log" 55c5139d79 doc: Add policy reference 5dd2bc0a3c Remove polling from test_create_bridges 6d99fb19ab Use publish for AGENT AFTER_CREATE/AFTER_UPDATE 6ad0c2908e Define popular policy rules by constants (part 2) 09311c34f9 Add ipxe6 dnsmasq tag to enable ipv6 dhcp client matching d6c6c68e46 Define popular policy rules by constants aa88be0689 remove context_manager from neutron 7197079a3f doc: Add NICs known to support ovs offload dffcf4b54a Log alembic migration script's output with oslo_log f5b01e0e12 Upgrade check command - add support for 3rd party checks e78f82e64f Fill port-resource-request 711a955116 tox: Hide deprecation warnings from distgit d01e309f2d Disable displaying warnings in functional tests 76c76a4225 use payloads for ROUTER_INTERFACE BEFORE_DELETE events 35d89fad1b rally-jobs: Set floating network as a parameter 05a54e8004 Implement IpAddrCommand.get_devices_with_ip using pyroute2 f2192f1226 Add logging for functional tests 0a4d2ee877 Fix mysql functional migration tests ef5342886e Revert "Make neutron-tempest-iptable_hybrid job non-voting" 518f9fe660 Remove unused get_<plural> rules a5ab915279 Drop 3rd-party plugin specific policies 489dd18530 Implement IpRuleCommand.delete() using pyroute2 02dabd6f10 Add debug information of the dhclient process f8984c6699 Convert policy.json into policy-in-code 176ce5ce30 shim _resource_extend for neutron-lib a02f8a95f7 Pass elevated admin context when fetching snat router for FIP to unbound port 20f8271b6b Prevent some L3 ports change IP address af55934341 Remove unnecessary 'set -x' at EOL in genconfig script 063b04de24 Add irrelevant-files for grenade-py3 jobs b75cf8743c Mark mysql related functional tests as unstable 7a2b4dcff1 Replace ryu with os_ken 97c9c4656d get_standard_device_mappings for mechdriver 97c98a1c6d [DVR] Allow multiple subnets per external network 89ba2416f2 Table name in "add_ip_rule" can be a string 3995abefb1 Do state report after setting start_flag on OVS restart bd2a1bc6c3 Do not delete trunk bridges if service port attached 7d44666e8d Update mailinglist from dev to discuss 462b510c50 Make neutron-tempest-iptable_hybrid job non-voting f24f422373 Support fetching specific db column in OVO dca4a16a1d Switch neutron-rally-task job to python 3 26a4b3eac0 tox: Reuse envdirs 1966ad3945 Check port VNIC type when associating a floating IP e7f4783096 Fix dnsmasq option6 tagging logic 6b54669694 Enable delete bound trunk for linux bridge agent 8588be3e43 Remove sqlalchemy osprofiler f999970755 Add debug information in BridgeCreateEvent fb506298b8 bump neutron-lib to 1.21.0 87926fddc0 Implement IpRuleCommand.add() using pyroute2 94542ff42b Add tempest-slow to gate queue 9aa7af8221 Fix the bug about DHCP port whose network has multiple subnets. 0385868848 Check if agent can reach neutron server c4061f4a78 [Doc] L3 router gateway IP rate limit 22c9cf3d95 Add native OVSDB implementation for bridge monitor 2ba9e95156 Reinitialize ovs firewall after ovs-vswitchd restart b617df2b21 Change "cmd" folder in fullstack tests cd3cc7e908 [L3][QoS] Agent side router gateway IP rate limit 00bf365025 [L3][QoS] Neutron server side router gateway IP QoS 75d83b9032 Send global_request_id for tracing calls from neutron to nova f0678b9b09 Add propagate_uplink_status to port e294845541 rally-jobs: Add FloatingIP workloads 80b48ebd4a Add bulk port creation of DB objects ae031d1886 Force all fdb entries update after ovs-vswitchd restart 0fce3ca2c1 Secure dnsmasq process against external abuse 3e2e2e5577 Sync up model_query module to neutron-lib 06ba6a1ace Only store segmenthostmapping when enable segment plugin 481211dc3a [Fullstack] Configure policy.json file only if it is set aaf215b5a5 Convert instance method to staticmethod in linuxbridge_neutron_agent c68ebd661b Implement IpRuleCommand.list_rules() using pyroute2 c1407db676 Store journal log from host in fullstack's job results 7d0e1ccd34 Get centralized FIP only on router's snat host 889bb1b3af Cleanup old jobs from experimental queue 01fe73f99c Trivial: Fix ovs cleanup script on Windows 4ad302af87 All functional tests logs results now 0745e32cd2 DVR Floating IP create don't raise exception if agent not found 31be154657 Add get_availability_zone rule to policy.json db06d24414 tox: Hide deprecation warnings a73deb9909 remove unused methods from CommonDbMixin 24eb49c55b segments use neutron_lib placement client 6541304d5e filter "updated_at" and "revision_number" in _gateway_ports_equal 06e38be42e Add bulk IP address assignment to ipam driver a26f5375e6 Duplicate words were deleted in openvswitch_agent.rst 65f1a7e521 Add missing ws seperator between words c8cb1454af Add test cases for port number 0 for port_forwarding ddc72ebd41 use payloads for SEGMENT BEFORE_DELETE callbacks 9b23abbdb6 Add kill_timeout to AsyncProcess b847cd02c5 Enable 'all' IPv6 forwarding knob correctly 2572c158f5 Change to use iproute2 instead of brctl 9dc5725996 Add networking-ovn job to Neutron's check pipeline aa19fa1c3f Implement ip_lib get_devices using pyroute2 e3dc447b90 raise priority of dead vlan drop cd0cc47a6a DVR: Centralized FloatingIPs are not cleared after migration. e67d99b654 Make neutron-fullstack job run py3 8c17df7138 Notify router_update after directly gateway IP change 90dd08b156 Removed duplicated word "and". 593c04d10d Import neutron.db.api module in common.utils 4d50adb592 Add port_forwarding to devstack plugin b8d2ab8543 Prevent create port forwarding to port which has binding fip 02e4efa01c Refactor _cache_related_dvr_routers_info_before_interface_removal() 13b7f4f7da Add python 3.6 unit test job 6098fc7430 Incorporate capability for multiple mac generation 8eee74f626 Use RBACBaseObject OVO in neutron/db/rbac_db_mixin.py e6dbef39d3 ml2/rpc: provide a small helper to avoid redundancy 4ba87b06d7 Switch to new engine facade in neutron/db/agents_db.py cdfeeaf2bc DevStack: OVS: Only install kernel-* packages when needed cf0b461836 Bump neutron-lib to version 1.20.0 f4089680b5 Add missing step for ovs deploy guides e17dac3ae9 Add protocol to port_forwarding uniq constraint 916e774516 Wait to ipv6 forwarding be really changed by L3 agent 3316b45665 use MAX_RETRIES from neutron-lib a000fb0855 Update lower-constraints to meet neutron-lib 4f3cde2322 Use NetworkRBAC OVO in tests/unit/db/test_db_base_plugin_v2.py f5842b304c Set router_id if floating IP has port_forwardings d860109bf6 supported_vnic_type configurable for sriov e9e374fa7d Increase timout of gate jobs c183781231 Add test cases to verify port number 0 for port_forwaring a58a527494 Scan for MAC through all devices in macvtap agent 5018d70241 Fix connection between 2 dvr routers 698e6d475c Update docs for disabling DNS server announcement 84a9a5ec57 iptables-restore wait period cannot be zero b70ee4df88 Block port update from unbound DHCP agent 20800389f1 Increase tempest-full jobs timeout f5d3a4159b Verify port_forwarding subnet and IP address both 221f386029 Fix incorrectly passing ext_ips as gateway ips 90cc4d087f Fix incorrect usage of '# flake8: noqa' 32cc8b63d7 Add capabilities for privsep 9b23e1be07 sriov-agent: fullstack test resource info report 1d98f0a7d4 Event driven periodic resync task for DHCP agents 69d6b86f56 ovs/sriov mech drivers: resource_provider_uuid5_namespace 8bd5ecd4fc notification: Add 'status' to agent after_create/update 152364dbc8 Add neutron-status upgrade check command framework 029f77e96c remove unused db api functions 60c50d9296 OVSNeutronAgent.rpc_loop is always called with "polling_manager" e4aa5902f7 use context manager from neutron-lib a98766d758 Revert "Add openstack/placement as a required project for neutron-grenade*" fb068f089c Increase tempest jobs timeout ea63c6ae40 Use NetworkRBAC OVO in neutron/db/external_net_db.py 00c816de01 Use NetworkRBAC OVO in neutron/db/db_base_plugin_v2.py c39afbd5fc [Functional] Increase test_timeout for db migration tests f787f12aa3 Make port binding attempt after agent is revived a69d92e0e8 use payloads for SUBNET BEFORE_DELETE events f4d438019e neutron.conf needs lock_path set for router to operate This change is adding required configuration in neutron.conf to set the lock_path parameter, which was missing in compute-install-ubuntu.rst fc95db987d Fix flake8 N534 untranslated exception message 1973a037c2 Fix dvr ha router gateway goes wrong host 975953f69e Add Network RBAC functional tests for External_net_db_mixin 50c75e9e51 Add a request validator for SNAT logging eb4221e6f0 Introduce Port resource request extension 4df02ee93c Enable ingress direction for min_bw rule b62ae3d522 Fix enable_distributed_routing option section in docs 6352b944a4 Introduce L3 agent extension for SNAT logging c094da83cb use payloads for NETWORK BEFORE_DELETE events a85c5ed3fb supported_vnic_type configurable for ovs 2e43aae370 Use l3plugin property in neutron/db/l3_dvr_db.py module 3b5373b4ef Allow update request with current segment_id c2c37272bf [Functional] Increase test_timeout for db migration tests 6d9f1c662f use retry_if_session_inactive from neutron-lib ad50a7a453 Increment versioning with pbr instruction 81652cd939 DVR-HA: Configure extra routes on router namespace in dvr_snat node 7df684df0f Introduce functional testing for Network RBAC policies ea2103d6db Use tempest-pg-full f3dfb82fe9 use ovo for L3HARouterAgentPortBinding in l3_hamode. cf37563c83 Remove deprecated vsctl ovsdb_interface api 9174e6d3d1 Delete tempest config module ac5815a110 Add permanent ARP entries for DVR fip/qrouter veth pair 277c1e77b2 ovs-agent: fullstack test resource info report d7d433f729 sriov-agent: Report resource info in heartbeat f352f9faaa ovs-agent: Report resource info in heartbeat 85588ad38e Allow Ipv6 addresses for nova_metadata_host b785199010 Modify the QoS doc in Neutron 97fdc0f50d Replace openSUSE experimental check with newer version f44e5bcfb2 Make grenade-multinode-dvr job voting again f849eba286 Add both directions for minimum bw rule in doc 8e60531d11 Exclude fallback tunnel devices from netns cleanup f30fc92adf netns_cleanup: Remove unused parameter from unplug_devices() 360fde9f88 Ingress direction for min bandwidth rule e1943d9711 Fix ADMIN output examples 2b57f08576 Fix flake8 H404 errors ee7660f593 Install centralized floating IP nat rules to all ha nodes 452b282412 Trigger router update only when gateway port IP changed 1307cb7587 fix tox python3 overrides 2530ccff8f Upgrade pylint to a version that works with python3 4e3fb31919 Introduce floating IP pool resource ebfed6090b remove trailing comma for linter d82a5d3c14 Update tests neutron.conf to use transport_url f721c3dcc7 Add argument to get ports by SG to allow excluding owners ed225d3f57 Optimize OVS DVR CSNAT port code a little eea5aaac4f Fix corner case in failure assigning MAC to SR-IOV NIC bc4f93c232 Fix best_match() deprecation warning 9a103c3c2a Update code review policies for sub-projects. 3d5bed139c bump neutron-lib version to 1.19.0 0014c0c373 Add openstack/placement as a required project for neutron-grenade* bb7b5a1e81 Create temp file in setUp() to avoid warning 995744c576 Always set ovs bridge name in vif:binding-details 6a24efcb70 use payloads for AGENT BEFORE_DELETE callbacks 87d98dcbe2 Disable some pylint checks a8e8f88cde Remove a bare raise noticed by the linter cf463cce43 tell pylint to ignore python2 version of gettext b43b8c446d Remove population of is_filter keyword 00de8f9a9e Do not fail deleting namespace if it does not exist 82d7c2beed Make binding statement singular. 3e96bbade5 Fix doc output examples 656a8f8729 Do not install centralized FIP if HA port is down 6ef54ff379 Refactor l3hamode for ha migration. 920f3e7fb5 Fix pep8 F402 import shadowing 66991f1c8b Add PortForwarding to neutron.objects entrypoint. f502bbc2ac Use extension 'empty-string-filtering' from neutron-lib 40ba4ebe6a Bump pecan version to 1.3.2 253db749a7 Remove async_process, moved to "common" 9849209bbd use is_retriable from neutron-lib 15ba1d7d64 Make neutron-fullstack-python36 job voting fdaf24bead doc: OpenVSwitch firewall internal design, improvements (+ newline fix) 7d5b1bfd27 Use templates for cover and lower-constraints 9ff9a5c69e Fix broken link to Open vSwitch installation instructions c5d55d692a Use mktemp instead of tempfile in gate_hook.sh f265c5365b Use Tempest slow job to run all slow tests e33300a981 use TenantIdProjectIdFilterConflict from neutron-lib d19dcf1ef2 Fix IPv6 prefix delegation issue on agent restart 9278d79aa6 remove _setUpExtension cfec395b8f Integration of Port Binding Level OVO 760870b6c2 Don't uninstall flow tables in setup_dvr_flows_on_integ_br 157e3218da Use tempest-multinode-full job from Tempest 8ed2ba8798 Update FIP QoS Docs 52f0096d13 [Docs] Update note about default burst value in QoS bw limit 91d6151a4d Revert "Use nested virt in scenario jobs" db7e19d2ba Fix pylint warning with eventlet > 0.22.0 e4df5d695c Follow-up: add fullstack test for logging e4feed0af2 doc: Small clearances for fullstack testing 4f2f5eeb8b Delete ovs port if namespace is corrupted 0649112113 Add fullstack test for logging 9feb5db61c ovs fw: apply the NORMAL action on egress traffic in a single table 37212adb61 doc: Address nits from I45fdc8e40121698bf144d0e0a65537edda2c805d 987e8b0cc4 Fix devstack/lib/ovs to run with Fedora 28 e7c7ae807d doc: Additional fixes to the SR-IOV doc b32db30874 l2 pop: check for more than 1 first active port on a node 7d14d8797e Consolidate irrelevant files added for py3 project daeea79e76 add python 3.6 unit test job 6c9e5df5dd use security_groups_port_filtering from neutron-lib b0ffcf5f31 Update abandon_old_reviews script to check Zuul votes 0d1fb74464 switch documentation job to new PTI 3e9506a01d import zuul job settings from project-config addcddbe18 Remove deprecated RamFilter from admin guide f6d98a747b ovsdb monitor: do not die on ovsdb-client stderr output fd17815228 Use Tag OVO in neutron/services/tag/tag_plugin.py f9dc83eb95 [Fullstack] Mark securitygroups tests as unstable 979de972f5 fix spell error 310bfa326f Fix incorrect log resources querying deb84b6756 Skip L3 ha functional IPv6 test if IPv6 is disabled c57fede20f Disallow networks with first ip 0.0.0.0 with dhcp enabled 46913a69fd Use constant IP_VERSION_4/6 in functional tests 12bb26fd0e Use constant IP_VERSION_4/6 in unit tests 2e91736df0 Modify abandon_old_reviews script c6aac9041f DVR: Add IPv6 csnat port address correctly 3e1512873a Fix the RFC and private internet network address 8a3ff8a19e Parse dhcp leases file in a more robust way 95766f20bc Remove Future work from OVS-fw docs fd72643a61 Revert "DVR: Inter Tenant Traffic between networks not possible with shared net" 267eea50fd Revert "DVR: Add error handling for get_network_info_for_id rpc call" 4bd2f0e8f7 shim neutron rpc with neutron-lib 72ef0e7814 Fetch specific columns rather than full ORM entities 7e0dd2f18d metadata: use requests for comms with nova api 60a9248b17 doc: add known limitation about attaching SR-IOV ports 73f111e7e8 Use nested virt in scenario jobs 0bd1cec676 [Fullstack] Add debug_iptables=True in security groups tests 6cdc84a37e Enable nonvoting python 3.6 unit test job template 82224347de Update list of skipped bandit plugins 28e07d4c5e Doc: update the qos devref about SR-IOV support 7a27e24447 Reduce qos rpc times on the ovs-agent side 9ea9163689 Docs: Update API & Scenario Tests 383c7b5c05 add pycodestyle to test-requirements 7d2ac2d0af Fix lost connection when create security group log 5c208a313a shim model query hooks to use neutron-lib c8b04827a9 Revert "Update network revision only when it needs" 3bebbc1f69 Consolidate irrelevant-files in zuul config 585b6f0af7 Windows OVS: minimize polling 89915a752e Trivial: Move platform independent modules to common dir ae81d403f7 Pass context in l3 flavor notifications e9a7ed8c63 Update network revision only when it needs 38309ca4dc Update metering driver to load interface driver c1b1dac132 Update vpnaas-scenario docs 99567388ac Create veth pair devices using pyroute2 6c300b1a9b Remove fdb entries for ha router interfaces when going DOWN c6de172e58 get_subnet_for_dvr returns SNAT mac instead of distributed gateway in subnet_info 4d3e4542f4 Update reno for stable/rocky adf38349c4 Fix iptables metering driver entrypoint 40d92d40ec Config privsep in the metering agent 034db863a0 Use system protocol assigments for iptables protocol map 5a2a6d2861 Fix import style 215498373e Open Stein DB branch b652a6ee89 Enable filter validation for portforwarding plugin f046031456 Remove _migrate_python_ns_metadata_proxy_if_needed method 9caf87bb0c Add delete rule for auto_allocated_topology f937dd2a15 Fix no packet log data when debug is set False in configuration faa4438dae ipam_backend_mixin: Segments model to OVO ced78395a7 Fix no ACCEPT event can get for security group logging 40c9c7f0bc Use OVO for tests/unit/plugins/ml2/drivers/l2pop/test_db.py f4a684cdcb use autonested_transaction from neutron-lib da5b13df2b Trivial: avoid KeyError while processing ports f24f3b6b7b Rename router processing queue code to be more generic fee630efaa Fix neutron-openvswitch-agent Windows support 0fe31bc8ae Add osprofiler to api-paste pipeline 88a0ebbe7f Add fullstack test to restart agent with active l3-ha router d62d82b0fe Generate correct url in api pagination 8ac92aa946 Select service_provider on the basis of service_module Diffstat (except docs and test files) ------------------------------------- .gitignore | 89 ++- .pylintrc | 9 +- .zuul.yaml | 449 +++++++----- README.rst | 2 +- TESTING.rst | 74 +- devstack/lib/fip_port_forwarding | 4 + devstack/lib/network_segment_range | 3 + devstack/lib/ovs | 21 +- devstack/lib/qos | 4 + devstack/lib/uplink_status_propagation | 3 + devstack/plugin.sh | 13 + .../deploy-ha-vrrp-verifynetworkoperation.txt | 10 +- .../deploy-provider-verifynetworkoperation.txt | 10 +- .../deploy-selfservice-verifynetworkoperation.txt | 10 +- .../contributor/internals/api_extensions.rst | 1 + .../contributor/internals/openvswitch_agent.rst | 2 +- .../contributor/internals/openvswitch_firewall.rst | 303 +++++--- .../contributor/internals/quality_of_service.rst | 45 +- .../contributor/internals/services_and_agents.rst | 6 +- .../policies/contributor-onboarding.rst | 2 +- .../contributor/policies/gate-failure-triage.rst | 12 +- .../install/controller-install-option1-obs.rst | 12 + .../install/controller-install-option1-ubuntu.rst | 12 + .../install/controller-install-option2-obs.rst | 12 + .../install/controller-install-option2-ubuntu.rst | 12 + etc/README.policy.yaml.txt | 4 + etc/api-paste.ini | 4 +- etc/neutron/rootwrap.d/dhcp.filters | 7 - etc/neutron/rootwrap.d/l3.filters | 21 +- etc/oslo-config-generator/neutron.conf | 1 + etc/oslo-policy-generator/policy.conf | 3 + etc/policy.json | 259 ------- lower-constraints.txt | 29 +- neutron/__init__.py | 4 +- neutron/agent/{linux => common}/async_process.py | 41 +- neutron/agent/common/ip_lib.py | 2 + neutron/agent/common/ovs_lib.py | 236 +++++- neutron/agent/{linux => common}/ovsdb_monitor.py | 58 +- neutron/agent/common/placement_report.py | 230 ++++++ neutron/agent/common/polling.py | 64 +- .../resource_processing_queue.py} | 127 ++-- neutron/agent/common/utils.py | 4 + neutron/agent/dhcp/agent.py | 325 +++++--- neutron/agent/l2/extensions/qos.py | 12 +- neutron/agent/l2/l2_agent_extensions_manager.py | 4 +- neutron/agent/l3/agent.py | 335 ++++++--- neutron/agent/l3/dvr_edge_ha_router.py | 12 +- neutron/agent/l3/dvr_edge_router.py | 58 +- neutron/agent/l3/dvr_fip_ns.py | 92 ++- neutron/agent/l3/dvr_local_router.py | 113 +-- neutron/agent/l3/dvr_snat_ns.py | 3 +- neutron/agent/l3/extensions/port_forwarding.py | 2 +- neutron/agent/l3/extensions/qos/base.py | 2 +- neutron/agent/l3/extensions/qos/fip.py | 6 +- neutron/agent/l3/extensions/qos/gateway_ip.py | 191 +++++ neutron/agent/l3/extensions/snat_log.py | 39 + neutron/agent/l3/ha.py | 37 +- neutron/agent/l3/ha_router.py | 26 +- neutron/agent/l3/item_allocator.py | 8 +- neutron/agent/l3/keepalived_state_change.py | 22 + neutron/agent/l3/l3_agent_extensions_manager.py | 4 +- neutron/agent/l3/namespaces.py | 1 - neutron/agent/l3/router_info.py | 116 +-- neutron/agent/linux/bridge_lib.py | 20 +- neutron/agent/linux/daemon.py | 2 +- neutron/agent/linux/dhcp.py | 87 ++- neutron/agent/linux/interface.py | 77 +- neutron/agent/linux/ip_conntrack.py | 10 +- neutron/agent/linux/ip_lib.py | 604 +++++++++------ neutron/agent/linux/ip_monitor.py | 2 +- neutron/agent/linux/ipset_manager.py | 2 +- neutron/agent/linux/iptables_firewall.py | 71 +- neutron/agent/linux/iptables_manager.py | 17 +- neutron/agent/linux/l3_tc_lib.py | 11 +- .../agent/linux/openvswitch_firewall/firewall.py | 71 +- neutron/agent/linux/openvswitch_firewall/rules.py | 16 +- neutron/agent/linux/polling.py | 74 -- neutron/agent/linux/ra.py | 28 +- neutron/agent/linux/tc_lib.py | 509 ++++++++++--- neutron/agent/linux/utils.py | 34 +- neutron/agent/metadata/agent.py | 68 +- neutron/agent/metadata/driver.py | 45 +- neutron/agent/ovsdb/api.py | 26 - neutron/agent/ovsdb/impl_idl.py | 12 +- neutron/agent/ovsdb/impl_vsctl.py | 345 --------- neutron/agent/ovsdb/native/connection.py | 98 ++- neutron/agent/resource_cache.py | 5 +- neutron/agent/rpc.py | 21 +- neutron/agent/securitygroups_rpc.py | 2 + neutron/agent/windows/ip_lib.py | 6 + neutron/agent/windows/utils.py | 62 +- neutron/api/api_common.py | 29 +- neutron/api/extensions.py | 2 +- .../api/rpc/agentnotifiers/dhcp_rpc_agent_api.py | 56 +- neutron/api/rpc/agentnotifiers/l3_rpc_agent_api.py | 2 +- .../rpc/agentnotifiers/metering_rpc_agent_api.py | 2 +- neutron/api/rpc/callbacks/version_manager.py | 2 +- neutron/api/rpc/handlers/dhcp_rpc.py | 18 +- neutron/api/rpc/handlers/dvr_rpc.py | 19 +- neutron/api/rpc/handlers/l3_rpc.py | 20 +- neutron/api/rpc/handlers/resources_rpc.py | 8 +- neutron/api/rpc/handlers/securitygroups_rpc.py | 2 +- neutron/api/v2/base.py | 12 +- neutron/cmd/eventlet/usage_audit.py | 2 +- neutron/cmd/netns_cleanup.py | 4 +- neutron/cmd/ovs_cleanup.py | 65 +- neutron/cmd/pd_notify.py | 2 +- neutron/cmd/sanity/checks.py | 18 +- neutron/cmd/sanity_check.py | 18 +- neutron/cmd/status.py | 85 +++ .../cmd => cmd/upgrade_checks}/__init__.py | 0 neutron/cmd/upgrade_checks/base.py | 36 + neutron/cmd/upgrade_checks/checks.py | 91 +++ neutron/common/_deprecate.py | 4 +- neutron/common/config.py | 6 +- neutron/common/constants.py | 25 + neutron/common/exceptions.py | 355 --------- neutron/common/ipv6_utils.py | 12 + neutron/common/rpc.py | 329 --------- neutron/common/utils.py | 108 ++- neutron/conf/agent/cmd.py | 3 +- neutron/conf/agent/common.py | 11 - neutron/conf/agent/dhcp.py | 12 +- neutron/conf/agent/l3/config.py | 13 +- neutron/conf/agent/l3/ha.py | 3 +- neutron/conf/agent/ovs_conf.py | 1 - neutron/conf/agent/ovsdb_api.py | 11 - neutron/conf/common.py | 9 +- neutron/conf/plugins/ml2/drivers/l2pop.py | 7 +- .../plugins/ml2/drivers/mech_sriov/agent_common.py | 29 + .../ml2/drivers/mech_sriov/mech_sriov_conf.py | 35 + .../plugins/ml2/drivers/openvswitch/__init__.py | 0 .../ml2/drivers/openvswitch/mech_ovs_conf.py | 40 + neutron/conf/plugins/ml2/drivers/ovs_conf.py | 28 + neutron/conf/policies/__init__.py | 79 ++ neutron/conf/policies/address_scope.py | 103 +++ neutron/conf/policies/agent.py | 177 +++++ neutron/conf/policies/auto_allocated_topology.py | 48 ++ neutron/conf/policies/availability_zone.py | 34 + neutron/conf/policies/base.py | 92 +++ neutron/conf/policies/flavor.py | 160 ++++ neutron/conf/policies/floatingip.py | 86 +++ neutron/conf/policies/floatingip_pools.py | 34 + .../conf/policies/floatingip_port_forwarding.py | 76 ++ neutron/conf/policies/logging.py | 86 +++ neutron/conf/policies/metering.py | 104 +++ neutron/conf/policies/network.py | 202 +++++ neutron/conf/policies/network_ip_availability.py | 38 + neutron/conf/policies/network_segment_range.py | 78 ++ neutron/conf/policies/port.py | 256 +++++++ neutron/conf/policies/qos.py | 342 +++++++++ neutron/conf/policies/rbac.py | 104 +++ neutron/conf/policies/router.py | 181 +++++ neutron/conf/policies/security_group.py | 119 +++ neutron/conf/policies/segment.py | 75 ++ neutron/conf/policies/service_type.py | 34 + neutron/conf/policies/subnet.py | 96 +++ neutron/conf/policies/subnetpool.py | 126 ++++ neutron/conf/policies/trunk.py | 108 +++ neutron/conf/service.py | 17 +- neutron/conf/services/extdns_designate_driver.py | 10 +- neutron/core_extensions/qos.py | 7 +- neutron/db/_model_query.py | 305 -------- neutron/db/_resource_extend.py | 138 ---- neutron/db/address_scope_db.py | 6 +- neutron/db/agents_db.py | 44 +- neutron/db/agentschedulers_db.py | 2 +- neutron/db/allowedaddresspairs_db.py | 8 +- neutron/db/api.py | 324 -------- neutron/db/availability_zone/network.py | 2 +- neutron/db/availability_zone/router.py | 2 +- neutron/db/common_db_mixin.py | 49 +- neutron/db/data_plane_status_db.py | 3 +- neutron/db/db_base_plugin_common.py | 44 +- neutron/db/db_base_plugin_v2.py | 267 ++++--- neutron/db/dns_db.py | 8 +- neutron/db/dvr_mac_db.py | 20 +- neutron/db/external_net_db.py | 62 +- neutron/db/extradhcpopt_db.py | 15 +- neutron/db/extraroute_db.py | 4 +- neutron/db/flavors_db.py | 16 +- neutron/db/ipam_backend_mixin.py | 156 +--- neutron/db/ipam_pluggable_backend.py | 100 ++- neutron/db/l3_agentschedulers_db.py | 22 +- neutron/db/l3_attrs_db.py | 2 +- neutron/db/l3_db.py | 185 +++-- neutron/db/l3_dvr_db.py | 251 +++++-- neutron/db/l3_dvr_ha_scheduler_db.py | 9 +- neutron/db/l3_dvrscheduler_db.py | 187 +++-- neutron/db/l3_fip_pools_db.py | 77 ++ neutron/db/l3_fip_port_details.py | 3 +- neutron/db/l3_fip_qos.py | 2 +- neutron/db/l3_gateway_ip_qos.py | 129 ++++ neutron/db/l3_gwmode_db.py | 8 +- neutron/db/l3_hamode_db.py | 94 ++- neutron/db/metering/metering_db.py | 6 +- neutron/db/migration/__init__.py | 2 + .../migration/alembic_migrations/cisco_init_ops.py | 9 +- .../migration/alembic_migrations/core_init_ops.py | 4 +- .../alembic_migrations/versions/EXPAND_HEAD | 2 +- ...86_add_binding_index_to_routerl3agentbinding.py | 2 +- .../7d9d8eeec6ad_rename_tenant_to_project.py | 3 +- .../8fd3918ef6f4_add_segment_host_mapping.py | 3 +- .../newton/contract/97c25b0d2353_add_name_desc.py | 3 +- .../a8b517cff8ab_add_routerport_bindings_for_ha.py | 7 +- .../c879c5e1ee90_add_segment_id_to_subnet.py | 2 +- ...0f5bef0f87d4_add_qos_minimum_bandwidth_rules.py | 3 +- .../5abc0278ca73_add_support_for_vlan_trunking.py | 9 +- .../a5648cfeeadf_add_subnet_service_types.py | 3 +- .../a9c43481023c_extend_ml2_port_bindings.py | 11 +- ...9da_qos_add_direction_to_bw_limit_rule_table.py | 3 +- .../expand/0ff9e3881597_network_segment_range.py | 56 ++ .../expand/195176fb410d_router_gateway_ip_qos.py | 45 ++ .../9bfad3f1e780_support_shared_security_groups.py | 49 ++ ...2437bf41_add_propagate_uplink_status_to_port.py | 41 ++ .../d72db3e25539_modify_uniq_port_forwarding.py | 83 +++ .../expand/fb0167bd9639_agent_resources_synced.py} | 36 +- neutron/db/migration/autogen.py | 5 +- neutron/db/migration/cli.py | 63 +- neutron/db/models/agent.py | 3 + neutron/db/models/flavor.py | 3 +- neutron/db/models/l3.py | 2 +- neutron/db/models/network_segment_range.py | 79 ++ neutron/db/models/plugins/ml2/geneveallocation.py | 6 +- .../models/plugins/ml2/gre_allocation_endpoints.py | 4 + neutron/db/models/plugins/ml2/vlanallocation.py | 4 + neutron/db/models/plugins/ml2/vxlanallocation.py | 4 + neutron/db/models/port_forwarding.py | 9 +- neutron/db/models/securitygroup.py | 7 +- neutron/db/models/uplink_status_propagation.py | 33 + neutron/db/network_ip_availability_db.py | 6 +- neutron/db/portbindings_base.py | 3 +- neutron/db/portbindings_db.py | 12 +- neutron/db/portsecurity_db.py | 2 +- neutron/db/provisioning_blocks.py | 16 +- neutron/db/qos/models.py | 20 + neutron/db/quota/api.py | 15 +- neutron/db/quota/driver.py | 9 +- neutron/db/rbac_db_mixin.py | 89 ++- neutron/db/rbac_db_models.py | 20 +- neutron/db/securitygroups_db.py | 286 ++++---- neutron/db/securitygroups_rpc_base.py | 2 +- neutron/db/segments_db.py | 66 +- neutron/db/servicetype_db.py | 12 +- neutron/db/standard_attr.py | 38 +- neutron/db/standardattrdescription_db.py | 3 +- neutron/db/subnet_service_type_mixin.py | 3 +- neutron/db/tag_db.py | 89 --- neutron/db/uplink_status_propagation_db.py | 33 + neutron/db/vlantransparent_db.py | 3 +- neutron/debug/debug_agent.py | 12 +- neutron/debug/shell.py | 1 - neutron/extensions/agent_resources_synced.py | 20 + neutron/extensions/dhcpagentscheduler.py | 2 +- neutron/extensions/empty_string_filtering.py | 3 +- neutron/extensions/floatingip_pools.py | 53 ++ .../extensions/l3_port_ip_change_not_allowed.py | 18 + neutron/extensions/l3agentscheduler.py | 2 +- neutron/extensions/network_ip_availability.py | 13 - neutron/extensions/network_segment_range.py | 165 +++++ .../port_resource_request.py} | 12 +- neutron/extensions/portbindings_extended.py | 11 - neutron/extensions/qos.py | 23 + neutron/extensions/qos_bw_minimum_ingress.py | 20 + neutron/extensions/qos_gateway_ip.py | 24 + neutron/extensions/qos_rules_alias.py | 37 + neutron/extensions/quotasv2.py | 5 +- neutron/extensions/quotasv2_detail.py | 2 +- .../rbac_security_groups.py} | 20 +- .../extensions/security_groups_port_filtering.py | 5 +- .../security_groups_port_filtering_lib.py | 59 -- neutron/extensions/securitygroup.py | 55 +- neutron/extensions/subnet_onboard.py | 39 + neutron/extensions/subnet_service_types.py | 13 +- neutron/extensions/tagging.py | 2 +- neutron/extensions/uplink_status_propagation.py | 18 + neutron/hacking/checks.py | 2 +- neutron/ipam/drivers/neutrondb_ipam/db_api.py | 4 +- neutron/ipam/drivers/neutrondb_ipam/driver.py | 97 ++- neutron/ipam/exceptions.py | 4 + neutron/ipam/requests.py | 30 +- neutron/ipam/subnet_alloc.py | 77 +- neutron/manager.py | 76 +- neutron/notifiers/nova.py | 24 +- neutron/objects/agent.py | 11 +- neutron/objects/base.py | 169 ++++- neutron/objects/common_types.py | 5 + neutron/objects/db/api.py | 12 +- neutron/objects/l3agent.py | 2 +- neutron/objects/network.py | 42 +- neutron/objects/network_segment_range.py | 127 ++++ .../port/extensions/uplink_status_propagation.py | 34 + neutron/objects/port_forwarding.py | 5 +- neutron/objects/ports.py | 39 +- neutron/objects/qos/binding.py | 16 + neutron/objects/qos/policy.py | 147 ++-- neutron/objects/qos/qos_policy_validator.py | 29 +- neutron/objects/qos/rule_type.py | 5 + neutron/objects/rbac.py | 62 ++ neutron/objects/rbac_db.py | 74 +- neutron/objects/router.py | 9 +- neutron/objects/securitygroup.py | 38 +- neutron/objects/subnet.py | 121 +++ neutron/objects/tag.py | 97 +++ neutron/opts.py | 23 +- neutron/pecan_wsgi/controllers/resource.py | 2 +- neutron/pecan_wsgi/controllers/root.py | 9 +- neutron/pecan_wsgi/hooks/context.py | 2 +- neutron/pecan_wsgi/hooks/notifier.py | 2 +- neutron/pecan_wsgi/hooks/quota_enforcement.py | 6 +- neutron/pecan_wsgi/hooks/translation.py | 7 +- neutron/plugins/ml2/db.py | 93 ++- neutron/plugins/ml2/driver_context.py | 17 +- neutron/plugins/ml2/drivers/agent/_common_agent.py | 22 +- neutron/plugins/ml2/drivers/helpers.py | 126 +++- neutron/plugins/ml2/drivers/l2pop/db.py | 6 +- neutron/plugins/ml2/drivers/l2pop/mech_driver.py | 45 +- neutron/plugins/ml2/drivers/l2pop/rpc.py | 3 +- .../agent/extension_drivers/qos_driver.py | 2 +- .../linuxbridge/agent/linuxbridge_neutron_agent.py | 43 +- .../drivers/macvtap/agent/macvtap_neutron_agent.py | 14 +- neutron/plugins/ml2/drivers/mech_agent.py | 98 +++ .../drivers/mech_sriov/agent/eswitch_manager.py | 29 +- .../agent/extension_drivers/qos_driver.py | 13 + .../ml2/drivers/mech_sriov/agent/pci_lib.py | 30 +- .../drivers/mech_sriov/agent/sriov_nic_agent.py | 134 +++- .../drivers/mech_sriov/mech_driver/mech_driver.py | 39 +- .../drivers/openvswitch/agent/common/constants.py | 3 + .../agent/extension_drivers/qos_driver.py | 72 +- .../agent/openflow/native/br_dvr_process.py | 22 +- .../openvswitch/agent/openflow/native/br_int.py | 13 +- .../openvswitch/agent/openflow/native/br_phys.py | 5 +- .../openvswitch/agent/openflow/native/br_tun.py | 4 +- .../openvswitch/agent/openflow/native/main.py | 12 +- .../openvswitch/agent/openflow/native/ofswitch.py | 27 +- .../agent/openflow/native/ovs_bridge.py | 3 +- .../native/{ovs_ryuapp.py => ovs_oskenapp.py} | 18 +- .../openvswitch/agent/openflow/ovs_ofctl/br_int.py | 3 + .../agent/openflow/ovs_ofctl/br_phys.py | 2 +- .../openvswitch/agent/openflow/ovs_ofctl/br_tun.py | 6 +- .../agent/openflow/ovs_ofctl/ofswitch.py | 2 +- .../openvswitch/agent/ovs_agent_extension_api.py | 13 +- .../openvswitch/agent/ovs_dvr_neutron_agent.py | 70 +- .../drivers/openvswitch/agent/ovs_neutron_agent.py | 165 +++-- .../openvswitch/mech_driver/mech_openvswitch.py | 61 +- neutron/plugins/ml2/drivers/type_flat.py | 20 +- neutron/plugins/ml2/drivers/type_geneve.py | 4 + neutron/plugins/ml2/drivers/type_gre.py | 3 + neutron/plugins/ml2/drivers/type_local.py | 13 +- neutron/plugins/ml2/drivers/type_tunnel.py | 142 +++- neutron/plugins/ml2/drivers/type_vlan.py | 127 +++- neutron/plugins/ml2/drivers/type_vxlan.py | 3 + neutron/plugins/ml2/extensions/dns_integration.py | 22 +- .../ml2/extensions/uplink_status_propagation.py | 42 ++ neutron/plugins/ml2/managers.py | 209 +++++- neutron/plugins/ml2/ovo_rpc.py | 8 +- neutron/plugins/ml2/plugin.py | 427 ++++++++--- neutron/plugins/ml2/rpc.py | 56 +- neutron/policy.py | 35 + neutron/privileged/__init__.py | 5 +- neutron/privileged/agent/linux/ip_lib.py | 296 +++++++- .../privileged/agent/linux/netlink_constants.py | 2 +- neutron/privileged/agent/linux/netlink_lib.py | 45 +- neutron/privileged/agent/linux/tc_lib.py | 203 +++++ neutron/quota/__init__.py | 7 +- neutron/quota/resource.py | 36 +- neutron/quota/resource_registry.py | 4 +- neutron/scheduler/base_scheduler.py | 2 +- neutron/scheduler/dhcp_agent_scheduler.py | 5 +- neutron/scheduler/l3_agent_scheduler.py | 5 +- neutron/service.py | 63 +- neutron/services/auto_allocate/db.py | 21 +- neutron/services/l3_router/l3_router_plugin.py | 53 +- .../service_providers/driver_controller.py | 5 +- neutron/services/logapi/agent/l3/base.py | 2 +- neutron/services/logapi/common/constants.py | 2 + neutron/services/logapi/common/db_api.py | 20 +- neutron/services/logapi/common/exceptions.py | 17 + neutron/services/logapi/common/snat_validate.py | 60 ++ neutron/services/logapi/common/validators.py | 3 +- neutron/services/logapi/drivers/manager.py | 2 +- .../openvswitch/{log_ryuapp.py => log_oskenapp.py} | 10 +- .../logapi/drivers/openvswitch/ovs_firewall_log.py | 32 +- neutron/services/logapi/logging_plugin.py | 9 +- neutron/services/logapi/rpc/agent.py | 2 +- neutron/services/logapi/rpc/server.py | 2 +- neutron/services/metering/agents/metering_agent.py | 9 +- .../metering/drivers/iptables/iptables_driver.py | 9 +- neutron/services/metering/metering_plugin.py | 2 +- neutron/services/network_ip_availability/plugin.py | 5 +- neutron/services/network_segment_range/__init__.py | 0 neutron/services/network_segment_range/plugin.py | 274 +++++++ neutron/services/placement_report/__init__.py | 0 neutron/services/placement_report/plugin.py | 237 ++++++ .../services/portforwarding/common/exceptions.py | 13 + neutron/services/portforwarding/pf_plugin.py | 85 ++- neutron/services/provider_configuration.py | 8 +- neutron/services/qos/drivers/manager.py | 2 +- neutron/services/qos/drivers/openvswitch/driver.py | 5 + neutron/services/qos/drivers/sriov/driver.py | 2 +- neutron/services/qos/qos_plugin.py | 221 +++++- neutron/services/revisions/revision_plugin.py | 166 ++++- neutron/services/segments/db.py | 68 +- neutron/services/segments/placement_client.py | 179 ----- neutron/services/segments/plugin.py | 33 +- neutron/services/tag/tag_plugin.py | 26 +- neutron/services/timestamp/timestamp_db.py | 4 +- .../trunk/drivers/linuxbridge/agent/driver.py | 13 +- .../drivers/linuxbridge/agent/trunk_plumber.py | 48 +- .../drivers/openvswitch/agent/ovsdb_handler.py | 14 + .../drivers/openvswitch/agent/trunk_manager.py | 2 +- neutron/services/trunk/plugin.py | 6 +- neutron/services/trunk/rpc/agent.py | 2 +- neutron/services/trunk/rpc/server.py | 4 +- neutron/services/trunk/rules.py | 13 +- .../l2/extensions/test_ovs_agent_qos_extension.py | 8 +- .../l3/extensions/qos/test_fip_qos_extension.py | 19 +- .../l3/extensions/test_gateway_ip_qos_extension.py | 197 +++++ .../agent/l3/test_keepalived_state_change.py | 30 +- .../functional/agent/l3/test_legacy_router.py | 82 ++- .../functional/agent/l3/test_metadata_proxy.py | 56 -- .../functional/agent/linux/test_async_process.py | 6 +- .../functional/agent/linux/test_ip_monitor.py | 2 +- .../functional/agent/linux/test_netlink_lib.py | 8 +- .../functional/agent/linux/test_ovsdb_monitor.py | 2 +- .../functional/agent/linux/test_process_monitor.py | 4 +- .../functional/agent/ovsdb/native/__init__.py | 0 .../agent/ovsdb/native/test_connection.py | 67 ++ .../test_3b935b28e7a0_migrate_to_pluggable_ipam.py | 4 +- .../functional/privileged/agent/linux/__init__.py | 0 .../privileged/agent/linux/test_ip_lib.py | 452 ++++++++++++ .../privileged/agent/linux/test_tc_lib.py | 293 ++++++++ .../scheduler/test_dhcp_agent_scheduler.py | 2 +- .../scheduler/test_l3_agent_scheduler.py | 2 +- .../l3_router/test_l3_dvr_ha_router_plugin.py | 4 +- .../l3_router/test_l3_dvr_router_plugin.py | 64 +- .../functional/services/logapi/test_logging.py | 31 +- .../portforwarding/test_port_forwarding.py | 118 ++- .../openvswitch/agent/test_ovsdb_handler.py | 8 + .../agent/{linux => common}/test_async_process.py | 49 +- .../agent/{linux => common}/test_ovsdb_monitor.py | 52 +- .../unit/agent/common/test_placement_report.py | 188 +++++ .../test_resource_processing_queue.py} | 65 +- .../agent/l3/extensions/qos/test_gateway_ip.py | 221 ++++++ .../agent/l3/extensions/test_port_forwarding.py | 2 +- .../unit/agent/l3/extensions/test_snat_log.py | 50 ++ .../linux/openvswitch_firewall/test_firewall.py | 13 +- .../agent/linux/openvswitch_firewall/test_rules.py | 13 +- .../unit/agent/linux/test_iptables_firewall.py | 60 +- .../unit/agent/linux/test_iptables_manager.py | 9 +- .../unit/agent/ovsdb/native/test_connection.py | 212 ++++-- .../rpc/agentnotifiers/test_dhcp_rpc_agent_api.py | 37 +- .../rpc/agentnotifiers/test_l3_rpc_agent_api.py | 6 +- .../api/rpc/handlers/test_securitygroups_rpc.py | 4 +- .../unit/extensions/test_data_plane_status.py | 4 +- .../unit/extensions/test_default_subnetpools.py | 8 +- .../test_expose_port_forwarding_in_fip.py | 253 ++++++- .../extensions/test_floating_ip_port_forwarding.py | 102 +++ .../extensions/test_network_ip_availability.py | 19 +- .../unit/extensions/test_network_segment_range.py | 350 +++++++++ .../extensions/test_uplink_status_propagation.py | 71 ++ .../ipam/drivers/neutrondb_ipam/test_driver.py | 61 +- .../extensions/test_uplink_status_propagation.py | 33 + .../unit/objects/test_network_segment_range.py | 138 ++++ .../ml2/drivers/agent/test__common_agent.py | 10 +- .../unit/plugins/ml2/drivers/base_type_tunnel.py | 52 +- .../unit/plugins/ml2/drivers/l2pop/test_db.py | 15 +- .../plugins/ml2/drivers/l2pop/test_mech_driver.py | 119 ++- .../agent/extension_drivers/test_qos_driver.py | 24 +- .../agent/test_linuxbridge_neutron_agent.py | 24 +- .../macvtap/agent/test_macvtap_neutron_agent.py | 22 +- .../unit/plugins/ml2/drivers/mech_fake_agent.py | 4 + .../mech_sriov/agent/test_eswitch_manager.py | 35 +- .../ml2/drivers/mech_sriov/agent/test_pci_lib.py | 4 +- .../mech_sriov/agent/test_sriov_nic_agent.py | 163 ++++- .../mech_driver/test_mech_sriov_nic_switch.py | 138 +++- .../unit/plugins/ml2/drivers/mechanism_test.py | 17 + .../agent/extension_drivers/test_qos_driver.py | 64 +- .../ml2/drivers/openvswitch/agent/fake_oflib.py | 114 +-- .../agent/openflow/native/ovs_bridge_test_base.py | 18 +- .../agent/openflow/native/test_br_int.py | 7 + .../agent/openflow/native/test_ofswitch.py | 4 +- .../agent/openflow/native/test_ovs_bridge.py | 2 +- .../agent/openflow/ovs_ofctl/test_br_int.py | 2 + .../ml2/drivers/openvswitch/agent/ovs_test_base.py | 15 +- .../agent/test_ovs_agent_extension_api.py | 26 +- .../openvswitch/agent/test_ovs_neutron_agent.py | 569 ++++++-------- .../drivers/openvswitch/agent/test_ovs_tunnel.py | 24 +- .../mech_driver/test_mech_openvswitch.py | 139 +++- .../unit/plugins/ml2/drivers/test_type_flat.py | 3 +- .../unit/plugins/ml2/drivers/test_type_geneve.py | 1 + .../unit/plugins/ml2/drivers/test_type_gre.py | 1 + .../unit/plugins/ml2/drivers/test_type_vlan.py | 45 +- .../unit/plugins/ml2/drivers/test_type_vxlan.py | 1 + .../extensions/test_uplink_status_propagation.py | 70 ++ .../unit/plugins/ml2/test_extension_driver_api.py | 3 +- .../privileged/agent/linux/test_netlink_lib.py | 54 +- .../unit/scheduler/test_dhcp_agent_scheduler.py | 2 +- .../unit/scheduler/test_l3_agent_scheduler.py | 100 ++- .../service_providers/test_driver_controller.py | 10 +- .../services/logapi/agent/test_log_extension.py | 3 +- .../unit/services/logapi/common/test_db_api.py | 25 + .../services/logapi/common/test_snat_validate.py | 120 +++ .../drivers/openvswitch/test_ovs_firewall_log.py | 11 +- .../unit/services/logapi/drivers/test_manager.py | 2 +- .../metering/agents/test_metering_agent.py | 2 +- .../unit/services/metering/test_metering_plugin.py | 2 +- .../services/network_segment_range/__init__.py | 0 .../services/network_segment_range/test_plugin.py | 240 ++++++ .../unit/services/placement_report/__init__.py | 0 .../unit/services/placement_report/test_plugin.py | 243 ++++++ .../unit/services/portforwarding/test_pf_plugin.py | 41 +- .../unit/services/qos/drivers/test_manager.py | 2 +- .../services/revisions/test_revision_plugin.py | 24 +- .../trunk/drivers/linuxbridge/agent/test_driver.py | 22 +- .../linuxbridge/agent/test_trunk_plumber.py | 91 +-- .../openvswitch/agent/test_ovsdb_handler.py | 14 +- neutron/worker.py | 18 +- neutron/wsgi.py | 44 +- playbooks/configure_functional_job.yaml | 4 + playbooks/dvr-multinode-scenario-pre-run.yaml | 3 + .../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 -- playbooks/legacy/neutron-fullstack/post.yaml | 80 -- playbooks/legacy/neutron-fullstack/run.yaml | 54 -- .../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-functional/post.yaml | 80 -- playbooks/legacy/neutron-functional/run.yaml | 54 -- .../legacy/neutron-grenade-dvr-multinode/run.yaml | 1 + .../legacy/neutron-grenade-multinode/run.yaml | 1 + .../neutron-tempest-dvr-ha-multinode-full/run.yaml | 63 -- playbooks/legacy/neutron-tempest-dvr/post.yaml | 15 - playbooks/legacy/neutron-tempest-dvr/run.yaml | 44 -- .../neutron-tempest-iptables_hybrid/post.yaml | 15 - .../neutron-tempest-iptables_hybrid/run.yaml | 48 -- .../legacy/neutron-tempest-linuxbridge/post.yaml | 15 - .../legacy/neutron-tempest-linuxbridge/run.yaml | 57 -- .../neutron-tempest-multinode-full/post.yaml | 15 - .../legacy/neutron-tempest-multinode-full/run.yaml | 64 -- .../post.yaml | 0 .../run.yaml | 10 +- .../neutron-tempest-with-ryu-master/post.yaml | 15 - playbooks/post_functional_job.yaml | 5 + playbooks/run_functional_job.yaml | 10 + rally-jobs/plugins/trunk_scenario.py | 61 -- rally-jobs/task-neutron.yaml | 170 ++++- ...s-upgrade-check-framework-fc34d03c8829672c.yaml | 16 + .../add-floatingip-pool-api-6927362ef87fdbe5.yaml | 8 + ...k-segment-range-extension-0893a67cbf3f10fe.yaml | 25 + ...d-port-forwarding-fip-qos-f808d6b4826fb849.yaml | 7 + ...ate_uplink_status-to-port-f4e53395e86eb3cb.yaml | 15 + ...sponse_max_timeout-option-cfaad5ef6af31632.yaml | 5 + .../add-security-groups-rbac-6f133ec4d40e7641.yaml | 4 + ...fication-signature-status-6a9b9dbce9cb9740.yaml | 12 + .../bandwidth-config-ovs-5bede7fb43b0a574.yaml | 12 + .../bandwidth-config-sriov-bd8ff8b4d84c8792.yaml | 12 + ...orwarding-uniq-constraint-78ba3db20bce5fd2.yaml | 12 + ...t_binding_levels-function-84012e104ac572a1.yaml | 7 + ...nc-throttle-config-option-9f2375e3baf683ad.yaml | 17 + .../dnsmasq-local-service-c8eaa91894a7d6d4.yaml | 8 + ...resize-agent-greenthreads-c163ab37d36fcafe.yaml | 10 + ...ork_bridge-option-removed-bbf50fb803f04f82.yaml | 6 + ...ch-specific-column-in-ovo-69c0b087c8c7ee36.yaml | 6 + .../fip-binding-limitation-1d2509950847b085.yaml | 7 + ...g-logging-and-fwg-logging-ef16077880d76449.yaml | 7 + ...e-request-as-binding-data-2a01c1ed1a8eff66.yaml | 10 + .../notes/gateway-rate-limit-905bee1ed60c6b8e.yaml | 15 + ...e_mappings_for_mechdriver-bc039d478ea0b162.yaml | 7 + ...ypes-configurable-for-ovs-fc73422daffd42b0.yaml | 9 + ...es-configurable-for-sriov-094f7663e8975e9b.yaml | 9 + ...ver-load-interface-driver-ca397f1db40ec643.yaml | 7 + ...y_api_rpc_worker_defaults-1acd62728b2b55fa.yaml | 15 + ...cise-agent-state-transfer-67c771cb1ee04dd0.yaml | 32 + ...mum-bw-reject-non-physnet-2f4ccddf484369fd.yaml | 5 + ...qos-rules-alias-extension-ebf23b87460ee36e.yaml | 9 + .../reject-min-bw-updates-30bd0e3201dafce1.yaml | 8 + ...terface-ovs-vsctl-timeout-a618ec8e27552202.yaml | 7 + ...service-plugin-dependency-c8bf620b2526b869.yaml | 22 + .../setproctitle_workers-bc27a8baa5ef2279.yaml | 20 + ...y-group-port-check-in-api-d1fd84d9663e04ab.yaml | 11 + .../notes/subnet-onboard-e4d09fa403a1053e.yaml | 13 + ...E-and-AFTER_UPDATE-events-839d8dcb0ac5ff26.yaml | 5 + releasenotes/source/index.rst | 1 + releasenotes/source/rocky.rst | 6 + requirements.txt | 26 +- roles/fetch_journal_log/README.rst | 16 + roles/fetch_journal_log/defaults/main.yaml | 2 + roles/fetch_journal_log/tasks/main.yaml | 22 + roles/setup_logdir/README.rst | 8 + roles/setup_logdir/defaults/main.yaml | 1 + roles/setup_logdir/tasks/main.yaml | 8 + setup.cfg | 24 +- test-requirements.txt | 6 +- tools/abandon_old_reviews.sh | 53 +- tools/configure_for_func_testing.sh | 2 +- tools/deploy_rootwrap.sh | 2 +- tools/generate_config_file_samples.sh | 2 - tools/misc-sanity-checks.sh | 13 - tools/pip_install_src_modules.sh | 25 + tox.ini | 68 +- 856 files changed, 31665 insertions(+), 13417 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 2961e8a509..5b425e3711 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4 +4 @@ -pbr!=2.1.0,>=2.0.0 # Apache-2.0 +pbr>=4.0.0 # Apache-2.0 @@ -11 +11 @@ 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 +pecan>=1.3.2 # BSD @@ -12,0 +13 @@ httplib2>=0.9.1 # MIT +requests>=2.14.2 # Apache-2.0 @@ -17 +18 @@ netifaces>=0.10.4 # MIT -neutron-lib>=1.18.0 # Apache-2.0 +neutron-lib>=1.25.0 # Apache-2.0 @@ -20,3 +21,2 @@ tenacity>=3.2.1 # Apache-2.0 -ryu>=4.24 # Apache-2.0 -SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.2.0 # MIT -WebOb>=1.7.1 # MIT +SQLAlchemy>=1.2.0 # MIT +WebOb>=1.8.2 # MIT @@ -28,2 +28,2 @@ oslo.cache>=1.26.0 # Apache-2.0 -oslo.concurrency>=3.25.0 # Apache-2.0 -oslo.config>=5.1.0 # Apache-2.0 +oslo.concurrency>=3.26.0 # Apache-2.0 +oslo.config>=5.2.0 # Apache-2.0 @@ -31 +31 @@ oslo.context>=2.19.2 # Apache-2.0 -oslo.db>=4.27.0 # Apache-2.0 +oslo.db>=4.37.0 # Apache-2.0 @@ -37 +37 @@ oslo.policy>=1.30.0 # Apache-2.0 -oslo.privsep>=1.23.0 # Apache-2.0 +oslo.privsep>=1.32.0 # Apache-2.0 @@ -41,0 +42 @@ oslo.service!=1.28.1,>=1.24.0 # Apache-2.0 +oslo.upgradecheck>=0.1.0 # Apache-2.0 @@ -43 +44 @@ oslo.utils>=3.33.0 # Apache-2.0 -oslo.versionedobjects>=1.31.2 # Apache-2.0 +oslo.versionedobjects>=1.35.1 # Apache-2.0 @@ -44,0 +46 @@ osprofiler>=1.4.0 # Apache-2.0 +os-ken >= 0.3.0 # Apache-2.0 @@ -48 +50 @@ psutil>=3.2.2 # BSD -pyroute2>=0.4.21;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) +pyroute2>=0.5.3;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) diff --git a/test-requirements.txt b/test-requirements.txt index 5806b7c503..c1f849f4c5 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -9,0 +10 @@ flake8-import-order==0.12 # LGPLv3 +pycodestyle>=2.0.0 # MIT @@ -20 +21,4 @@ ddt>=1.0.1 # MIT -pylint==1.4.5 # GPLv2 +astroid==1.6.5;python_version<"3.0" # LGPLv2.1 +astroid==2.1.0;python_version>="3.0" # LGPLv2.1 +pylint==1.9.2;python_version<"3.0" # GPLv2 +pylint==2.2.0;python_version>="3.0" # GPLv2
participants (1)
-
no-reply@openstack.org