Full link: https://www.youtube.com/watch?v=p4BwAjLHd0M
We will be working through the DVR backlog during juno-3 to harden the implementation before release.
There is work in progress to add an experimental gate job which runs tempest tests with DVR enabled by default. After these changes land, as a developer/committer you can use the experimental pipeline to trigger a single-host DVR-backed OpenStack deployment to run Tempest tests.
We need infrastructure core members to review these changes.
- Adds DVR related env variable to devstack-vm-gate.sh
- Add experimental job Neutron DVR testing on single node
Until we can get the attention of the infrastructure team, we will use a separate commit to hard-code DVR as the default.
Reviewing DVR Code
All of the DVR code can be found on the bp/neutron-ovs-dvr gerrit topic. However, if you want to review the patches that matter the most now, you'll want to read this guide. The bulk of the functionality is handled by these patches:
- API Extension (Merged)
(carl_baldwin) I am maintaining a branch in github where I merge the latest version of all of the patches to openstack. The result can be found on the master branch here: . I use a forced push (git push -f) to update this branch so you'll need to use fetch/reset instead of merge or pull to get updates.
Enabling Distributed Virtual Routing Functionality in OpenStack Neutron
This wiki provides information on HowTo Configure and deploy the Distributed Virtual Router functionality in the current OpenStack Neutron implementations.
First, be sure that your database is at the correct version. There are a number of migration scripts that need to be run using the neutron-db-manage script.
The configuration section will provide information on all the config parameters that need to be set before deploying the Distributed Virtual Router. There are Global Configurations that need to be set and as well as the Agent specific configurations that need to be set.
Note: Be sure that your firewall or security groups allows UDP traffic over the vxlan port to pass between the hosts
If you pull the devstack patch for review (https://review.openstack.org/#/c/107157/), the needed configuration for single node deployment will be set up. You only need to add these items to localrc:
The values for Q_DVR_MODE are disabled, dvr_snat (controller or single node), or dvr (compute node in multi-node).
For reference, here are the settings done...
- In its initial form, DVR will depend on ml2/ovs and vxlan.
- l2pop (see below)
- https://review.openstack.org/#/c/77578/ (ignore this for now)
- router_distributed = True
- This sets the default for new router creation to be DVR.
- The admin user can convert existing routers to distributed without setting this option to True.
These options have changed in recent patch set versions
- Network host (or single node deployment)
- agent_mode = dvr_snat
- Compute host
- agent_mode = dvr
L2 Agent.ini (ml2_conf.ini)
- ml2 section
- append ",l2population" to mechanism_drivers
- agent section
- l2_population = True
- tunnel_types = vxlan
- enable_distributed_routing = True
- ml2 section