Add OVS 2.6 support in TripleO for DPDK

Registered by Saravanan KR on 2017-02-03

The method to enable DPDK in OVS has been modified from OVS2.5 to OVS2.6, and a new interface type has been exposed for reconnect issue. The details changes are listed below:

* In OVS 2.6, the DPDK configuration parameters like (pmd-cpu-mask, dpdk-lcore-mask, dpdk-socket-mem) needs to be passed to ovs-vswitchd via the other_config column of the Open_vSwitch table. For OVS2.5, there are existing puppet manifests (puppet-vswitch) to generate these configuration parameters as DPDK_OPTIONS in /etc/sysconfig/openvswitch, which is not supported in OVS2.6.

Following are the list of commands, which will replace the DPDK_OPTIONS configuration:
              ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
              ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=$SOCKET_MEMORY
              ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=$PMD_CORE_MASK
              ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=$OVS_CORE_MAS

Another important change would be, currently DPDK is enabled in OVS at Step4 of the deployment, during puppet-vswitch execution, which is very late, because when os-net-config creates the DPDK ports, those ports will be inactive until DPDK is enabled in OVS. To avoid this, DPDK shall be enabled in OVS, at the PreNetworkConfig step itself, which is actually before the os-net-config runs.

* Support for a new port type ovs_dpdk_vhost_user_client need to be added in os-net-config. This is required to resolve the issue of VM loosing connection when OVS-DPDK crashes or restarts. Also by using this new port type, we are overcoming workarounds, which has been done earlier via post-config deployment step.

* Deployment Upgrade shall be supported for this migration.

Blueprint information

Status:
Complete
Approver:
Emilien Macchi
Priority:
Medium
Drafter:
Saravanan KR
Direction:
Approved
Assignee:
Saravanan KR
Definition:
Approved
Series goal:
Proposed for pike
Implementation:
Implemented
Milestone target:
milestone icon pike-3
Started by
Saravanan KR on 2017-02-10
Completed by
Saravanan KR on 2017-07-17

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#/q/topic:bp/ovs-2-6-dpdk,n,z

Addressed by: https://review.openstack.org/#/c/432165/
    OVS2.6 changes for DPDK

Gerrit topic: https://review.openstack.org/#q,topic:bp/ovs-2-6-dpdk,n,z

Addressed by: https://review.openstack.org/430215
    Populate Hiera data before PreNetworkConfig

Addressed by: https://review.openstack.org/437164
    WIP: Enable DPDK on boot during the PreNetworkConfig

Addressed by: https://review.openstack.org/460871
    Removed enable_upgrade hiera setting as the package update is done by ansible

Addressed by: https://review.openstack.org/447051
    Modify PreNetworkConfig config inline with role-specific parameters

Addressed by: https://review.openstack.org/467490
    Enable DPDK on boot using PreNetworkConfig

Gerrit topic: https://review.openstack.org/#q,topic:bug/1654975,n,z

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.