We exuberantly announce the release of: networking-bagpipe 8.0.0: Mechanism driver for Neutron ML2 plugin using BGP E-VPNs/IP VPNs as a backend This release is part of the queens release series. The source is available from: http://git.openstack.org/cgit/openstack/networking-bagpipe Download the package from: https://pypi.python.org/pypi/networking-bagpipe Please report issues through launchpad: http://bugs.launchpad.net/networking-bagpipe For more details, please see below. Changes in networking-bagpipe 7.0.0.0rc1..8.0.0 ----------------------------------------------- 81589f5 bagpipe-bgp: EVPN OVS driver fixes 6a05171 devstack: prepare sudoers and rootwrap setup 53e073f Use new facade for OVO objects 6b130c4 bagpipe-bgp: fix dummy dataplane drivers 2192ee9 bagpipe-bgp: OVS support for EVPN 0fa8b39 bagpipe-bgp: safeguard against instance id > 2**32 00c3415 SFC agent extension: Update unit tests 6de6462 bgpvpn: support for port association 'bgpvpn' routes 3f14ab8 bgpvpn: use directional per-port attachments for prefix routes 025f384 bagpipe-bgp: support directionnal attachments aa20a41 SFC agent extension: Use bulk_pull RPC fef5105 SFC: Files tree reorganization 4cc1538 SFC: Agent extension fixes e65a1ae bagpipe-bgp: VPNInstance and VRF improvements 5d1bddb bgpvpn: provide 'descriptions' in agent extension aa7d0bc bagpipe-bgp: support VPN instance and attachment descriptions ce18cc5 bagpipe-bgp: improve update of export RTs ba384f6 Updated from global requirements 06d76c1 requirements.txt hints for deps managed in tools/tox_install.sh 963c559 bgpvpn: improve OVOs d5de3f8 Updated from global requirements 7d3b30d Fix SFC agent bug when calling do_port_plug_refresh 5d18f11 bgpvpn: agent extension, do not skip processing when RTs are empty 997144e Add SFC support 399789b bagpipe-bgp: fix localpref comparison 0c3371a bgpvpn: agent extension, support API-defined VNI 53e50ed bagpipe ML2: remove the route_target type driver 2c80a59 bgpvpn: agent extension support for Port advertise_fixed_ips 3af0e22 bagpipe-bgp: ensure instance id uniqueness 5d46226 bgpvpn: agent extension support for local_pref 4a5d17d minor logging fix af66ad5 bgpvpn: agent extension, fix port association delete 5ec0fca bagpipe-bgp: EVPN/VXLAN interop fix 97123e1 Updated from global requirements 1403cc8 bagpipe-bgp: fix worker cleanup 998181d bgpvpn: add 'local_pref' to OVO BGPVPN object b4ea4e1 bagpipe-bgp: allow updating local_pref 688bc29 bagpipe-bgp: expose local_pref in looking-glass 42ad4d3 bagpipe-bgp: properly withdraw route on detach 6722890 agent extensions: support multiple detaches at the same time d73cf57 bgpvpn: agent extension, fix port association 'routes' update 3bcd9d4 adjustments for, and upgrade to, ExaBGP 4.0.4 b965e44 bgpvpn: add 'local_pref' to OVO port routes 6814e34 bagpipe-bgp: take LOCAL_PREF into account in route comparison 8560427 agent extensions: fix conditional detach for multiple attachments af38a69 bagpipe-bgp: allow to set the BGP local_pref 21f0795 agent extensions: remove 'static_routes' special casing 5a7869e Updated from global requirements 43860ef Updated from global requirements 75b9a7a Updated from global requirements f99bd62 BGPVPN: add support for Port Associations, base agent code a9baaa8 bgpvpn OVO: remove BGPVPNAssociations OVO object f4aacfd Add Port Associations to BGPVPN OVO definitions af956de BGPVPN OVO: use bulk_pull and remove BGPVPNAssociations 9b4d24d bgpvpn agent extension, support for OVO-based push/pull RPCs 44306a0 BGPVPN OVO connected networks fix 9d5bd8c Adding BGPVPN OVO objects and tests cf8260f Updated from global requirements dc98306 Add _port_data to agent extensions unit tests base class 185a1f8 bagpipe-bgp: IPVPN OVS driver, advanced options 78816c3 Updated from global requirements 47bcde3 bagpipe-bgp, EVPN: clear the proxy ARP entry only if needed 41f4b21 Always send import_rt/export_rt on bagpipe-bgp API 949651e Modify ARP responder flow match e03dc44 Remove setting of version/release from releasenotes a073144 Updated from global requirements eab68ad bagpipe-bgp: IPVPN, fix concurrency issue on import RT update 1c9be66 Migration of Agent Extension to Neutron-lib a6e15ec Modify ARP responder behavior from configuration e11a542 Disable ARP proxy from VXLAN interface for gateway 52db03a Updated from global requirements a33cb85 Add ARP responder per VRF d94693f EVPN/VXLAN linux: fix unplug fb3b841 bagpipe-bgp: add cleanup assist c23fe70 BGPVPN L2/EVPN: use same VNI as the associated network c8f2b84 bagpipe: E-VPN route withdraw issue d51f4e8 bgpvpn agent extension: fix disassociate after update 590f028 bgpvpn agent extension: fix import order 111e0b0 bagpipe-bgp: EVPN/VXLAN linux driver, fix state cleanup a7f1af4 bagpipe-bgp: avoid duplicate Route Targets d81d4fb Move service specific code to agent extensions 9c0b439 bagpipe-bgp: IPVPN OVS, make ARP resolution fail clean 6461c47 Updated from global requirements 4800527 Don't check RT parameters on detach 26a9e6f devstack: create GOPATH/bin before installing gobgp 2a6465e devstack: install gobgp from binary release 2ad0dd2 bagpipe-bgp: fix race in import RTs update 8b5ecff Updated from global requirements 2af840d agent extensions: improve options types 42235c7 oslo config generator and doc improvements f6ef1bf bagpipe-bgp: fix dataplane updates on some route updates cada316 bagpipe-bgp: improve TrackerWorker and RTM testing 862b84d Updated from global requirements 5f12983 devstack: fix pseudo b-bgp-looking-glass service eaad4bc IPVPN OVS driver: longest match lookups 1bf4cc6 L2/EVPN: add fullstack tests 1b1639b Updated from global requirements 6a8ffc5 Various minor logging improvements cd2df05 cosmetic: avoid a few lambdas 5d97f7b Updated from global requirements c6a9bcc Fix post gate hook to accommodate for new os-testr 01ec772 Update import for ml2 config 20d3cb9 Updated from global requirements 523a875 Updated from global requirements 8919a92 devstack gate hook for fullstack job, fix IPV4_ADDRS_SAFE_TO_USE f414447 devstack: stop using screen 60f1f3e Upgrade pyroute2 to solve bug 1710216 e23c3e8 Make BaGPipe BGP agent singleton 459decc L2/EVPN: log ERROR when used with OVS d35f8a0 Add agent constants module 9c89362 fullstack: do not log gobgpd e731836 Support static destination prefix classification 425e1d5 Drop MANIFEST.in - it's not needed by pbr cbf96ff EVPN/VXLAN linuxbridge driver: use IANA allocated port b9cd45e gate fullstack hook: have tox and zuul-cloner inherit all environment d678b01 Updated from global requirements 929b917 Updated from global requirements 5acefb1 bagpipe-bgp: linux IPVPN driver, log adjustement 0c6c1a0 Updated from global requirements 3e38673 Update reno for stable/pike 6931a8a bagpipe-bgp: support for OVS standard MPLS/GRE 1a8d973 add a release note for linuxbridge BGPVPN support acc3f9a bagpipe-bgp: remove tracker_worker verbosity 505ef07 doc: remove module index 71315e8 bagpipe-bgp: fix bug 1705477 for both exabgp 4.0.1 and 4.0.2 831ccda bagpipe-bgp: workaround exabgp issue #690 0c47f3e bagpipe-bgp translate_api_internal fix Diffstat (except docs and test files) ------------------------------------- .gitignore | 9 + .stestr.conf | 3 + MANIFEST.in | 6 - devstack/devstack-gate-rc | 2 + devstack/gate_hook.sh | 13 +- devstack/override-defaults | 6 +- devstack/plugin.sh | 6 +- devstack/plugin.sh.bagpipe_bgp | 46 +- devstack/post_test_hook.sh | 17 +- devstack/settings | 4 +- devstack/settings.bagpipe_bgp | 2 + .../configuration/dataplane-evpn-linux-vxlan.rst | 6 +- .../configuration/dataplane-ipvpn-mpls-linux.rst | 6 +- .../configuration/dataplane-ipvpn-mpls-ovs.rst | 6 +- .../samples/dataplane-evpn-linux-vxlan.rst | 6 +- .../samples/dataplane-ipvpn-mpls-linux.rst | 6 +- .../samples/dataplane-ipvpn-mpls-ovs.rst | 6 +- etc/bagpipe-bgp/bgp.conf.template | 12 +- etc/oslo-config-generator/bagpipe-bgp.conf | 1 - etc/oslo-config-generator/ml2-bagpipe.conf | 6 - etc/oslo-config-generator/neutron-agent.conf | 5 + networking_bagpipe/agent/agent_base_info.py | 156 ++ networking_bagpipe/agent/bagpipe_bgp_agent.py | 1063 +++------ .../agent/bagpipe_linuxbridge_neutron_agent.py | 111 - networking_bagpipe/agent/bagpipe_ml2/__init__.py | 0 .../agent/bagpipe_ml2/agent_extension.py | 173 ++ networking_bagpipe/agent/bgpvpn/agent_extension.py | 914 +++++++- networking_bagpipe/agent/bgpvpn/constants.py | 29 + networking_bagpipe/agent/bgpvpn/rpc_agent.py | 58 - networking_bagpipe/agent/common/__init__.py | 0 networking_bagpipe/agent/sfc/__init__.py | 0 networking_bagpipe/agent/sfc/agent_extension.py | 397 ++++ networking_bagpipe/bagpipe_bgp/api/api.py | 2 +- networking_bagpipe/bagpipe_bgp/api/controllers.py | 124 +- networking_bagpipe/bagpipe_bgp/bgp_daemon.py | 3 +- networking_bagpipe/bagpipe_bgp/cli/rest_attach.py | 73 +- networking_bagpipe/bagpipe_bgp/common/utils.py | 16 + networking_bagpipe/bagpipe_bgp/constants.py | 12 +- networking_bagpipe/bagpipe_bgp/engine/__init__.py | 5 +- .../bagpipe_bgp/engine/exabgp_peer_worker.py | 32 +- .../bagpipe_bgp/engine/route_table_manager.py | 56 +- .../bagpipe_bgp/engine/tracker_worker.py | 271 ++- networking_bagpipe/bagpipe_bgp/engine/worker.py | 9 +- .../bagpipe_bgp/vpn/dataplane_drivers.py | 56 +- .../bagpipe_bgp/vpn/evpn/__init__.py | 114 +- .../bagpipe_bgp/vpn/evpn/linux_vxlan.py | 114 +- networking_bagpipe/bagpipe_bgp/vpn/evpn/ovs.py | 380 ++++ .../bagpipe_bgp/vpn/ipvpn/__init__.py | 172 +- .../bagpipe_bgp/vpn/ipvpn/mpls_linux_dataplane.py | 13 +- .../bagpipe_bgp/vpn/ipvpn/mpls_ovs_dataplane.py | 528 ++--- networking_bagpipe/bagpipe_bgp/vpn/manager.py | 63 +- networking_bagpipe/bagpipe_bgp/vpn/vpn_instance.py | 378 ++-- .../alembic_migrations/versions/EXPAND_HEAD | 2 +- .../expand/d2c2dcb6c2d4_defining_sfc_data_model.py | 70 + networking_bagpipe/db/models/head.py | 2 +- networking_bagpipe/db/sfc_db.py | 143 ++ networking_bagpipe/driver/constants.py | 24 + networking_bagpipe/driver/mech_bagpipe.py | 185 +- networking_bagpipe/driver/sfc.py | 686 ++++++ networking_bagpipe/driver/type_route_target.py | 229 -- networking_bagpipe/objects/__init__.py | 0 networking_bagpipe/objects/bgpvpn.py | 423 ++++ networking_bagpipe/objects/sfc.py | 294 +++ networking_bagpipe/opts.py | 20 +- networking_bagpipe/rpc/__init__.py | 0 networking_bagpipe/rpc/agent.py | 56 - networking_bagpipe/rpc/client.py | 73 - .../fullstack/resources/bagpipe_ml2/config.py | 7 +- .../fullstack/resources/bagpipe_ml2/process.py | 20 - .../fullstack/resources/common/environment.py | 11 +- .../fullstack/test_bagpipe_ml2_connectivity.py | 2 - .../bagpipe_bgp_agent/test_service_bagpipe_l2.py | 256 --- .../agent/bagpipe_bgp_agent/test_service_bgpvpn.py | 1095 --------- .../bagpipe_bgp_agent/test_service_combined.py | 496 ----- .../unit/agent/bagpipe_ml2/test_agent_extension.py | 146 ++ .../unit/agent/bgpvpn/test_agent_extension.py | 2230 +++++++++++++++++++ .../unit/agent/test_bgpvpn_agent_extension.py | 85 - .../unit/agent/test_linuxbridge_agent_extension.py | 37 - .../unit/bagpipe_bgp/ipvpn/mpls_ovs_dataplane.py | 52 + .../unit/bagpipe_bgp/test_route_table_manager.py | 31 +- .../notes/linux_mpls-1c4fd22486ad5733.yaml | 7 + releasenotes/source/conf.py | 11 +- releasenotes/source/index.rst | 1 + releasenotes/source/pike.rst | 6 + requirements.txt | 36 +- setup.cfg | 10 +- test-requirements.txt | 16 +- tools/tox_install.sh | 7 +- 129 files changed, 14000 insertions(+), 5704 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index d265bee..e9cce77 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,14 +7,15 @@ Babel!=2.4.0,>=2.3.4 # BSD -netaddr!=0.7.16,>=0.7.13 # BSD -neutron-lib>=1.9.0 # Apache-2.0 -oslo.db>=4.24.0 # Apache-2.0 -oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0 -oslo.concurrency>=3.8.0 # Apache-2.0 -oslo.i18n!=3.15.2,>=2.1.0 # Apache-2.0 -oslo.log>=3.22.0 # Apache-2.0 -oslo.messaging!=5.25.0,>=5.24.2 # Apache-2.0 -oslo.rootwrap>=5.0.0 # Apache-2.0 -oslo.serialization!=2.19.1,>=1.10.0 # Apache-2.0 -oslo.service>=1.10.0 # Apache-2.0 -pyroute2>=0.4.17 # Apache-2.0 (+ dual licensed GPL2) -sphinxcontrib-blockdiag # BSD -sphinxcontrib-seqdiag # BSD +netaddr>=0.7.18 # BSD +neutron-lib>=1.13.0 # Apache-2.0 +oslo.db>=4.27.0 # Apache-2.0 +oslo.config>=5.1.0 # Apache-2.0 +oslo.concurrency>=3.25.0 # Apache-2.0 +oslo.i18n>=3.15.3 # Apache-2.0 +oslo.log>=3.36.0 # Apache-2.0 +oslo.messaging>=5.29.0 # Apache-2.0 +oslo.rootwrap>=5.8.0 # Apache-2.0 +oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0 +oslo.service!=1.28.1,>=1.24.0 # Apache-2.0 +oslo.versionedobjects>=1.31.2 # Apache-2.0 +pyroute2>=0.4.21;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) +sphinxcontrib-blockdiag>=1.5.4 # BSD +sphinxcontrib-seqdiag>=0.8.4 # BSD @@ -22 +23 @@ stevedore>=1.20.0 # Apache-2.0 -exabgp>=4.0.1 # BSD +exabgp>=4.0.4 # BSD @@ -23,0 +25,5 @@ pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD + +# dependencies managed in tools/tox_install.sh for master branch: +# - openstack/neutron +# - openstack/networking-bgpvpn +# - openstack/networking-sfc diff --git a/test-requirements.txt b/test-requirements.txt index 84bfe1d..5d3b0f4 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -8,5 +8,5 @@ coverage!=4.4,>=4.0 # Apache-2.0 -python-subunit>=0.0.18 # Apache-2.0/BSD -sphinx>=1.6.2 # BSD -openstackdocstheme>=1.16.0 # Apache-2.0 -oslotest>=1.10.0 # Apache-2.0 -os-testr>=0.8.0 # Apache-2.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 +oslotest>=3.2.0 # Apache-2.0 +os-testr>=1.0.0 # Apache-2.0 @@ -14 +14 @@ pylint==1.4.5 # GPLv2 -testresources>=0.2.4 # Apache-2.0/BSD +testresources>=2.0.0 # Apache-2.0/BSD @@ -16,2 +16,2 @@ testscenarios>=0.4 # Apache-2.0/BSD -testtools>=1.4.0 # MIT -reno!=2.3.1,>=1.8.0 # Apache-2.0 +testtools>=2.2.0 # MIT +reno>=2.5.0 # Apache-2.0