diff --git a/specs/queens/triplo-ovs-hw-offload.rst b/specs/queens/triplo-ovs-hw-offload.rst new file mode 100644 index 00000000..03e4b8f6 --- /dev/null +++ b/specs/queens/triplo-ovs-hw-offload.rst @@ -0,0 +1,141 @@ +.. + This work is licensed under a Creative Commons Attribution 3.0 Unported + License. + + http://creativecommons.org/licenses/by/3.0/legalcode + +========================================== +Adding OVS Hardware Offload to TripleO +========================================== + +https://blueprints.launchpad.net/tripleo/+spec/tripleo-ovs-hw-offload + +OVS Hardware Offload leverages SR-IOV technology to control the SR-IOV +VF using VF representor port. OVS 2.8.0 supports the hw-offload option which +allows to offload OVS datapath rule to hardware using linux traffic control +tool and the VF representor port. This feature accelerates the OVS +with a SR-IOV NIC which support switchdev mode. + +Problem Description +=================== + +Today the installation and configuration of OVS hardware offload feature is +done manually after overcloud deployment. It shall be automated via tripleo. + +Proposed Change +=============== + +Overview +-------- + +* Configure the SR-IOV NIC to be in switchdev mode using the following + syntax :: for NeutronSriovNumVFs. + mode can be legacy or switchdev +* Configure the OVS with other_config:hw-offload. The options can + be added for the cluster without side effects, because if then NIC doesn't + support OVS will fall-back to kernel datapath. + +* Nova scheduler should be configured to use the PciPassthroughFilter + (same SR-IOV) +* Nova compute should be configured with passthrough_whitelist (same SR-IOV) + +Alternatives +------------ + +None + +Security Impact +--------------- + +None + +Other End User Impact +--------------------- + +None + +Performance Impact +------------------ + +* OVS Hardware Offload leverage the SR-IOV technology to provides near + native I/O performance for each virtual machine that managed by OpenVswitch. + +Other Deployer Impact +--------------------- + +* The operator shall ensure that the BIOS supports VT-d/IOMMU virtualization + technology on the compute nodes. + +* IOMMU needs to be enabled in the Compute+SR-IOV nodes. Boot parameters + (intel_iommu=on or amd_iommu=pt) shall be added in the grub.conf, using the + PreNetworkConfig. + +* Post deployment, operator shall + + * Create neutron ports prior to creating VM’s (nova boot) + openstack port create --vnic-type direct --binding-profile '{"capabilities": ["switchdev"]}' port1 + + * Create the VM with the required flavor and SR-IOV port id + openstack server create --image cirros-mellanox_sriov --port=port1 --flavor m1.tiny vm_a1 + +Developer Impact +---------------- + +None + +Implementation +============== + +Assignee(s) +----------- + +Primary assignee: + waleedm (waleedm@mellanox.com + +Other contributors: + moshele (moshele@mellanox.com) + +Work Items +---------- + +* Update tripleo::host::sriov::numvfs_persistence to allow configure SR-IOV + in switchdev mode. extending the vf_defs to + ::. Mode can be legacy which is default + SR-IOV or switchdev which is used for ovs hardware offload. +* Add a template parameter called NeutronOVSHwOffload to enable. +* provide environment YAML for OVS hardware offload in tripleo-heat-templates. + +Dependencies +============ + +None + + +Testing +======= + +* Since SR-IOV needs specific hardware support, this feature can be tested + under third party CI. We hope to provide Mellanox CI to SR-IOV and this + feature. + +Documentation Impact +==================== + +None + +References +========== + +* Introduction to SR-IOV + http://goo.gl/m7jP3 + +* SR-IOV OVS hardware offload netdevconf + http://netdevconf.org/1.2/papers/efraim-gerlitz-sriov-ovs-final.pdf + +* OVS hardware offload in OpenVswitch + https://mail.openvswitch.org/pipermail/ovs-dev/2017-April/330606.html + +* OpenStack OVS mechanism driver support in neutron/nova/os-vif + https://review.openstack.org/#/c/398265/ + https://review.openstack.org/#/c/275616/ + https://review.openstack.org/#/c/460278/