...
(any other dependent BPs?)
Initial list of high-level working items
The table below provides a list of high-level work items required to enable support for OVS-DPDK in Airship. This list is not considered to be complete but a starting point for design discussions in the feature project. Please feel free to add / modify / extend work items.
Task name | Description | Airship component |
---|---|---|
create openvswitch agent chart | create helm chart for openvswitch agent (https://review.openstack.org/#/c/626894/) | openstack-helm |
create ovs-dpdk chart | create helm chart for openvswitch dpdk container | openstack-helm |
deploy neutron openvswitch agent | ensure chart of openvswitch agent is deployed | openstack-helm & Armada |
DPDK host config: enable 1G hugepages | modify kernel cmdline to enable 1G hugepages (hugepagez=1G hugepages=8 iommu=pt intel_iommu=on ) | drydock / MAAS (or divingbell) |
DPDK host config: mount hugepages | mount hugepages into local file system on system boot (hardcoded mount point) | drydock (or divingbell) |
DPDK host config: make hugepage mount point a config option | make mount point config option for e.g. use by helm charts | openstack-helm |
specify PCI IDs of NICs for use by DPDK | specify in site config which PCI IDs (NICs) should be decided to DPDK | |
DPDK host config: install DPDK kernel modules and tools on host OS | either install host OS dpdk package or build from source | drydock (or divingbell) |
DPDK host config: load DPDK kernel module in host OS | load dpdk kernel modules uio and igb_uio during host boot-up | drydock (or divingbell) |
DPDK host config: bind NICs to DPDK | use dpdk-devbind to bind specified NICs to DPDK | drydock (or divingbell) |
DPDK host config: enable hugepage support for kubelet | enable hugepage support for k8s kubelet via feature-gate option | promenade |
ensure communication between OVS agent and OVS | ensure common socket configuration | openstack-helm |
create docker image with dpdk-enabled OVS | create and host a docker image including an OVS with DPDK enabled (consider matching kernel and dpdk versions with host OS). Potential Kolla images: https://hub.docker.com/r/kolla/ubuntu-binary-ovsdpdk/ or https://hub.docker.com/r/kolla/ubuntu-source-ovsdpdk/ | kolla or loci |
update site configuration to deploy ovs-dpdk | create a site configuration which actually deploys ovs-dpdk as data plane | treasuremap |