Commit Graph

51 Commits (a1a50a473f6c2bd00c72c017983c553af60172e5)

Author SHA1 Message Date
Slawek Kaplonski b84b9f2dcc Add port_forwarding to devstack plugin
This commit adds possibility to configure fip port_forwarding
service plugin and l3 extension with devstack plugin.

Change-Id: If01dd1db1b4a44ba2f7e2d8f8326e331f9dc79e9
(cherry picked from commit 4d50adb592)
4 years ago
Lucas Alvares Gomes bbb60c0d69 DevStack: OVS: Only install kernel-* packages when needed
If the host OS is using an older kernel and invoke the compile_ovs
function from the DevStack OVS library (devstack/lib/ovs), that function
will try to install the kernel-dev and kernel-headers package even if
the "build_modules" parameter is set to False.

That could fail because the specific kernel-* packages for the version
of the kernel running may not be present in the distro's repository
anymore. Plus, if the kernel modules will not be compiled, there's no
reason to install such packages.

This patch is fixing this problem by using the "build_modules" parameter
as a flag to whether install or not those kernel-* packages.

Change-Id: I11af0e22d25973e6334e867ab2659fbdf9f10d86
Closes-Bug: #1802101
Signed-off-by: Lucas Alvares Gomes <>
(cherry picked from commit cdfeeaf2bc)
5 years ago
Stephen Finucane 626a8976e1 trivial: Fix file permissions
None of these should be executable, from what I can tell.

Side note: never backup a git repo to an NTFS drive or you lose all your
permissions and need hacks to restore them.

Change-Id: I34de5488129c575a66b38b400c31393fb511765f
Signed-off-by: Stephen Finucane <>
5 years ago
LIU Yulong 6e50a77fc7 Try to enable L3 agent extension `fip_qos`
Adds devstack configs to try to enable the L3 agent
extension `fip_qos` by checking the API service
extension router, agent and QoS.

Once this L3 agent extension works during the devstack
zuul job installation, we can continue to run the
neutron-tempest-plugin tests for floating IP QoS.

Partially-Implements blueprint: floating-ip-rate-limit

Change-Id: Ibef48e7842a276fe77c901403d67760871f2b7e0
5 years ago
Nguyen Phuong An b27164f0a8 [log]: Devstack plugin for logging api
This patch implements devstack plugin for logging api. The logging
api service base on logging api spec [1].


Change-Id: Ib86535ad24319cb0e10a48df50651264201673c3
Depends-On: Ib8668dd25ee7c5000a6dafcc7db3dbc33ad190be
Partially-implements: blueprint security-group-logging
Related-Bug: #1468366
6 years ago
Jens Harbott 6a8f3b9b0d Add dns-integration setup to devstack plugin
This will be used in a job that will run neutron designate integration
tests from the neutron-tempest-plugin repo.

Change-Id: Ib380d8a98e991a475b20140f5c37e3747aa5fc0c
Needed-By: I9c2eadf1dc86cb60190fb22393a02ffa02770620
6 years ago
Jenkins 2b815e1209 Merge "devstack: Adapt to lib/neutron" 6 years ago
Miguel Lavalle 39a9e09716 Add API test for port dns_domain
This patchset adds a Tempest API test for the port dns_domain attribute.

It also enables the dns-domain-ports extension for testing, which is a
super-set of the dns extension.

Change-Id: I5c1da61a8a49c190aad549713da646a3abb8ccb1
6 years ago
Miguel Angel Ajo 0177568c93 devstack: fix ovs install on fedora like OS
This patch I3d0981fbe30f2436f00c200919b50aeb97491252
resolved custom kernel version, but introduced a bug
for the 3.x series. This patch avoids the replacement
in the case of the 3.x series.

Closes-Bug: #1704077

Co-Authored-By: Moshe Levi <>

Change-Id: Iff1c5a39fe4b0d9320910d0cfafdd36873825d03
6 years ago
Moshe Levi 7ee4d4564c stop ovs that installed from git on unstack
Change-Id: I6a30ca3e371787d147785944de61746c3cdd6046
6 years ago
Moshe Levi 908f0e4f04 devstack ovs: get correct kernel rpm version on customed kernel
When building custom kernel version
uname -r returns 4.10.0-00054-ge4cd924
but the rpm name is kernel-4.10.0_00054_ge4cd924-1.x86_64
This is because dash is illegal character in rpm version

This patch fix the kernel version is rpm based OS
but converting all the dashes to underscores

Change-Id: I3d0981fbe30f2436f00c200919b50aeb97491252
6 years ago
YAMAMOTO Takashi 895756d9b9 devstack: Adapt to lib/neutron
Change-Id: Idcb903002aec823aa1e546e8e90815ebac614e5b
6 years ago
James Anziano 2d77118771 Enable segments plugin in gate
Change-Id: I821f7c07f21a10c8a8d2b3c7e79da205b805d525
6 years ago
YAMAMOTO Takashi 38feb491dd devstack: Add neutron-sriov-agent alias for lib/neutron
Change-Id: Id6f7cf1d859f4884aae5cbb950c91e136f5be669
6 years ago
Jenkins ec97d258d4 Merge "devstack: use neutron_service_plugin_class_add for service plugins" 6 years ago
Jakub Libosvar 5bcba03471 Remove unused functions from devstack/lib/ovs
We don't need condinional ovs compilation since we run on Ubuntu Xenial.
This patch removes remaining bits that are not used by Neutron nor any
other big tent project.

Depends-On: Ia8f63b91334f73519878ba90957db84e7cf176f9
Change-Id: Icfa2eb0258af7c44638dcca688c1fa5ed343455a
6 years ago
Jakub Libosvar 70b82034ac fullstack: Compile openvswitch module for fullstack test
After switching to UCA, we started getting ovs 2.5.2. There was a
condition that compiled openvswitch only if the version was lower than
2.5.1. This patch always compiles only kernel part of openvswitch so we
get VXLAN tunnelling working with fullstack.

Closes-bug: 1684897

Change-Id: I13898fc661d590609d2ef40873daef987956db6b
6 years ago
Jenkins 2924ac1061 Merge "devstack: configure ml2 extension drivers using lib/neutron" 6 years ago
Ihar Hrachyshka c1acf1cb24 devstack: use neutron_service_plugin_class_add for service plugins
This function is public and works for both lib/neutron as well as
lib/neutron-legacy modes.

Co-Authored-By: YAMAMOTO Takashi <>
Change-Id: Ib9da52b32bc9adca337e02383194f3fbd9256e9a
Depends-On: I9068fd608e82e70db8d725f92269a26920efebcb
6 years ago
Ihar Hrachyshka abd38171ba devstack: switch to new NEUTRON_* variables
Those are generally defined by new lib/neutron code.

Change-Id: I2dd0128267b8a836c392d7ac26ade5bd0f421997
Co-Authored-By: YAMAMOTO Takashi <>
6 years ago
Ihar Hrachyshka a86896f176 devstack: configure ml2 extension drivers using lib/neutron
Change-Id: If3b863432ee12fc449bc3b7bfa60686dd2ca49b0
Depends-On: I45f017d1b8a3054452c3166ed4fb460d21959adb
6 years ago
YAMAMOTO Takashi b1405cbe1e Use gate_hook to enable q-trunk for rally.
Instead of making devstack enable it, because it can have
undesired effects for other rally-using gate jobs.
(See Closes-Bug for an example)

Closes-Bug: #1643451
Change-Id: Id971432955196a7d5f64c598aeebf1a7bc245321
6 years ago
Jakub Libosvar b0ea7c95a3 Don't compile OVS kernel modules for functional job
The only reason we need newer openvswitch is following fix [1] for
user-space part of openvswitch. This patch fixes our
test_install_flood_to_tun tests.

Current 2.6 branch has issues with ovsdb where connection with native
interface is getting lost and functional job gets stuck. To mitigate
that, this patch switches back to OVS 2.5.1 version for functional jobs,
compiling only user-space part as OVS 2.5.1 kernel modules are not
supported by Xenial.

Fullstack job remains running with 2.6 because the job needs OVS kernel patch
for local VXLAN tunneling.

[1] 56de2148f6

Related-bug: bug/1646107
Change-Id: Ic5419afe7170e759749afd7055441c82c317efe0
7 years ago
Jenkins c6dbc68ed3 Merge "Install OVS from git if current version < 2.5.1" 7 years ago
Omer Anson 7403bccbc3 Install OVS from git if current version < 2.5.1
In OVS version 2.5.1 there are several bug fixes to issues that Neutron
encounters. This fix allows devstack to install a newer version of OVS,
by default version 2.5.1.

Specifically, for bug 1640283, we need the following commit from OVS:
8c0b419a0b9ac0141d6973dcc80306dfc6a83d31 ofproto/trace: Fix "unchanged"
output for Final flow

The version is overridable by NEUTRON_OVERRIDE_OVS_BRANCH variable.

Change-Id: Icc9d9811e6fc1935966241ed499c5e597a675877
Related-Bug: 1602567
Closes-Bug: 1640283
7 years ago
Armando Migliaccio f5e30abcc5 Add rally hook to neutron devstack plugin
This allows us to configure neutron when running the rally job in
the gate. This effort stems from patch [1]. Blame Kevin for not
wanting to squash the two together.

[1] I12aaf6121b677e9696131601b3539a7091e2858c
Change-Id: I006957784ac7900021bcfee57cbc83b5a6c533c4
7 years ago
Kevin Benton 971cf85034 Add missing revision number altercations
This adds revises_on_change for the following models
and API tests to ensure the correct behavior:

* port security (network and port)
* DNS domain (network and port)
* extra dhcp opts (port)
* extra routes (router)
* subnet service type (subnet)

Additionally, it configures the DNS extension to be loaded
in the gate since the extension is enabled for tempest.

Closes-Bug: #1627649
Change-Id: Ifa969c8c2582f8f41d42df07652f259781a36bb5
7 years ago
Jakub Libosvar c8de31cc36 devstack: the last fix of is_kernel_supported_for_ovs25 condition
Previously we didn't consider kernels higher than 4. This patch returns
True right away if the verions is lesser than 4. If it is 4, then it must
be lesser or equal to 3 to return True. All other versions are not

Change-Id: I3e9fa088d7cb9cfecbe7670c84a051e15be2a3a9
7 years ago
Ihar Hrachyshka 3a58bb1cf5 devstack: finally fix the is_kernel_supported_for_ovs25 condition
The previous condition was mistakenly using -le (less or equal) where
strict -lt (less than) condition is needed, making all 4.x matching.

Note: it's the third version of the condition. Reviewers, please
actually review. :)

Change-Id: I34d832ec762f30de16e148ba5bea4888a0606c92
7 years ago
Ihar Hrachyshka 286b55f3bf devstack: fix kernel version matching to detect ovs compilation support
The previous check was mistakenly not matching for 3.4+ kernels that
support compilation.

The ovs 2.5 version delivers stability fixes, apart from features.
That's why the fix is expected to fix recent gate failures we started to

Change-Id: I21749a59a040abc8b9f6a6a6c69f3fa96515962f
Closes-Bug: #1621789
7 years ago
Jakub Libosvar fa5e23cbe6 gate_hook: Compile ovs only with supported kernels
The intention of this patch is not to break current compilations on
Xenial boxes that run with 4.4 kernel which is not supported by OVS
openvswitch kernel module. After we are confident to switch master
branch to be running on Xenial only, we will get rid of the compilation
itself until it's needed by other features.

Change-Id: I1c890bf5a6564a69e36b8289a5d8dc0deee2a429
7 years ago
Jenkins d4df22ae94 Merge "Enable CRUD for trunk ports" 7 years ago
Ryan Tidwell 9cda319687 Enable CRUD for trunk ports
This patch enables basic CRUD operations on trunk ports and defines
related API extensions. Trunk ports and sub-ports can be persisted
in the Neutron model and are made visible through the API, but the
L2 agent is not notified and no trunk ports or subports are actually
instantiated on compute hosts.

This one of the main patches in the series that implement the end
to end functionality.

Partially-implements: blueprint vlan-aware-vms

Co-Authored-By: Armando Migliaccio <>
Change-Id: I26453eb9a1b25e116193417271400994ac57e4c1
7 years ago
chen-li bcd77d1c02 Remove 'origin/' in OVS_BRANCH
When use origin/master, if we re-installed the devstack with a
RECLONE=True, an error will happen with the error message:
  [ERROR] /opt/stack/devstack/functions-common:560 origin/master is neither branch nor tag

Use the branch name without 'origin/' works the same.

Similar change:

Change-Id: I16f6bd28ad27d4e957c226ed3fceb8881af6e84f
7 years ago
Andreas Scheuring 8e5623d624 Devstack support for macvtap agent
Macvtap agent can now be configured via this devstack.
Note that it is only supported in multinode environments
as compute node. The controller node still needs to run
linuxbridge or ovs.

Documentation will be added in devstack via [1]



OVS Controller
Make sure that the controller
- loads the macvtap ml2 driver
- uses vlan or flat networking

Macvtap Compute Node local.conf
enable_plugin neutron git://
enable_service n-cpu
enable_service q-agt
physical_interface_mappings = $PHYSICAL_NETWORK:eth1

Closes-Bug: #1557407
Change-Id: I0dd4c0d34d5f1c35b397e5e392ce107fb984b0ba
7 years ago
Armando Migliaccio e8d3626d1c Remove BGP code from neutron
Once the spinout is undergoing we should perform the eviction.

Partially-implements: blueprint bgp-spinout

Depends-on: I8be510153edbc496575cde34943ca4c56645e0fb
Change-Id: I20b6ddd37d10eae70e8294d578e53137c0f866fe
7 years ago
Jenkins 59d1673e86 Merge "Add support for building ovs from git sources on stacking" 7 years ago
Miguel Angel Ajo 2390064efa Add support for building ovs from git sources on stacking
This eases the deployment of a devstack machine with the latest
Open vSwitch bits, adding this to local.conf provides a fully
featured ovs-ct firewall setup:

  enable_plugin neutron git://


  firewall_driver = openvswitch

Change-Id: Ia7ad1658b95d7404384c7cae833008a57e3e5af1
7 years ago
chen-li 0de0034ed1 Add RECLONE support for ovs
When user sets "RECLONE=True" in local.conf, all components need
to be cloned. This flag is not handled in the ovs script, and when
the repo exists - it won't be refreshed.

Change-Id: I2831f77271880c5964627673cbc0a62c211a045a
7 years ago
Jakub Libosvar 92af3114a7 Define localstatedir for ovs compilation
By default localstatedir is PREFIX/var, which means logs are placed to
/usr/var/log/openvswitch directory. This patch redefines explicitly to
put the log files into /var/log/openvswitch, also /var/run/openvswitch
will be correctly used for pid file.

Change-Id: I1a02e8f33e745da82addfbf34efd487adf726e71
Closes-Bug: 1566569
7 years ago
Gary Kotton dc3fb1ce46 BGP: remove unnecessary configuration setting
By default oslo CFG sets the default value as None. There is no
need to specifically do this.

The patch also moves the RYU_BGP_SPEAKER_DRIVER to the devstack
settings file.


Change-Id: Ic33871a0a42fa9a5e5af3158532ecdad9817e5ab
7 years ago
vikram.choudhary b33c4dd2ce BGP Dynamic Routing: introduce BgpDriver
This patch introduces BgpDriver interface which will be used by
the BgpDrAgent for passing BGP speaker, peer and route information
to the registered BGP driver.

In addition, this patch also implements Ryu as a reference
BGP driver for the proof of concept.

Partially-Implements: blueprint bgp-dynamic-routing
Co-Authored-By: Ryan Tidwell <>
Co-Authored-By: Jaume Devesa <>
Co-Authored-By: vikram.choudhary <>
Co-Authored-By: Numan Siddique <>
Change-Id: If9a7e2c4c45c395b8e93bd1293667bf67f53dcfa
7 years ago
vikram.choudhary fbe754b04b BGP Dynamic Routing: introduce BgpDrAgent
This patch implements a new agent named "BgpDrAgent". The new agent
will host different BGP speaking drivers and makes the required BGP
peering session/s for neutron. The agent takes the needed "peer/s and
route/s" information from the BGP speaker entity and synchronize the
same to the registerd driver.

For realizing HA, two BgpDrAgents should host the same BGP speaker.

Partially-Implements: blueprint bgp-dynamic-routing
Co-Authored-By: Ryan Tidwell <>
Co-Authored-By: Jaume Devesa <>
Co-Authored-By: Numan Siddique <>
Change-Id: I3217795bdd0fa2d9d4b39274f4f95fc013c8d29d
7 years ago
Ryan Tidwell 773a3916ea Add BGP Dynamic Routing DB Model and Basic CRUD
This patch enables basic CRUD on BGP dynamic routing
entities bgp_speaker and bgp_peer, as well as
bgp_speaker-bgp_peer and bgp_speaker-network

An admin user can create BgpSpeakers and configure
peering entities (BgpPeers) for BgpSpeakers. BgpSpeaker
to BgpPeer association is n-to-n. An admin user can
also associate networks with BgpSpeakers. Relationship
between BgpSpeaker and Network is 1-to-n.

This patch provides BGP-related functionality only to
the admin users.

Partially-Implements: blueprint bgp-dynamic-routing
Co-Authored-By: Ryan Tidwell <>
Co-Authored-By: Jaume Devesa <>
Co-Authored-By: vikram.choudhary <>
Change-Id: I2412c1689683da9d7ec884a4cea506d4eed99453
7 years ago
Russell Bryant 5b029a8965 devstack: Fix check for blank prefix arg.
The check to see if the prefix arg was specified would always be true, even if
the argument was not specified.  This fixes it.

Change-Id: I60825c884e4d64aab2abc11d8da9bc1979baf0de
Signed-off-by: Russell Bryant <>
7 years ago
Jakub Libosvar 00f7313162 Compile OVS for functional tests
The patch takes OVS with conntrack support, compiles it and loads its
kernel modules. The patch steals parts from networking-ovn
project [1]. To run compilation of OVS, an environment variable
COMPILE_OVS must be set to True. Optional environment variables
OVS_REPO and OVS_BRANCH can be defined as a source of bits.

Once Neutron starts using neutron-lib, next steps will be taking
content of devstack/lib/ovs and putting it into neutron-lib project
in order to let other projects like networking-ovn to re-use the


Change-Id: Id2f51853a6339da72dbde7a82f94f99a4c306565
7 years ago
Ihar Hrachyshka a859f1ced2 devstack: use stevedore entry point for flavor service plugin
It's discouraged to use python import paths. Instead, we should use
stevedore entry points.

Change-Id: I7e3fce5e63ad309d761d9fec713a31fa33966eef
7 years ago
James Arendt 6bc53cc7f8 Fix Neutron flavor framework
Make flavor service profile store actual driver instead of
hardcoded dummy driver.  Ensure service type on flavor persisted.

Raise ServiceProfileDriverNotFound if non-empty driver is not part
of ServiceTypeManager providers.

Raise ServiceProfileEmpty if profile has neither a driver nor
any metainfo.

Raise InvalidFlavorServiceType if invalid service type passed.

Show flavors associated with a profile, not just profiles associated
with a flavor, to ease diagnosis when ServiceProfileInUse raised.

Create method to extract provider given a flavor for use with
neutron-lbaas plus tests.

Ensure various boolean forms accepted for enabled flag.

To enable in DevStack, add to local.conf:
enable_plugin neutron
enable_service q-flavors

Add associated unit tests. Fix tempest api test that used invalid
LOADBALANCERS service type.

Change-Id: I5c22ab655a8e2a2e586c10eae9de9b72db49755f
Implements: blueprint neutron-flavor-framework
8 years ago
Cedric Brandily 83c9578fcc Remove deprecated sriov agent_required option
The SR-IOV option agent_required has been deprecated in Liberty.

This change removes it and from now agents are mandatory for SR-IOV
mechanism in order to support extended features: QoS, port security.

Closes-Bug: #1508182
Related-Bug: #1488807
Change-Id: I4e6497da6b287531a211084a5208028c84112a83
8 years ago
Moshe Levi bd07b74045 SR-IOV: devstack support for SR-IOV agent
Change-Id: Ia0649962bd0c68d9c99fd54cc84ce8dd67d792e8
8 years ago