Change OVS-DPDK to consume DPDK static libraries

StarlingX relies on dpdk-pmdinfo.py to verify which system NICs support
the current DPDK version, therefore the /usr/sbin/ovs-vswitchd ELF file
needs to be a static build so the ELF .rodata contains PMD vendor and
device information to be parsed.

This change adds a deb_patch that modifies our OVS-DPDK build in order
to make DPDK libraries statically linked to openvswitch-switch-dpdk.

Test Plan:
PASS - Run downloader -b -s
PASS - Run build-pkgs -c -p openvswitch
PASS - Run build image
PASS - Deploy an AIO-SX system (vswitch_type=none)
PASS - Manually execute the script "python /usr/bin/dpdk-pmdinfo.py
       -r /usr/sbin/ovs-vswitchd" and ensure a list of PMD supported
       vendor/devices is returned
PASS - Manually execute the script
       "query_pci_id -v 0x0000 -d 0x0000" and ensure that no python
       error is thrown (related to file/directory not found)
PASS - Deploy an AIO-SX system (vswitch_type=ovs-dpdk)*

* Installations with vswitch_type=ovs-dpdk will not successfully finish
  until LP [1] is fixed, but it is possible to check that the ELF file
  is working properly in order to mark the ports with Accelerated flag.

[1] https://bugs.launchpad.net/starlingx/+bug/2008124

Depends-On: https://review.opendev.org/c/starlingx/tools/+/885662
Closes-Bug: 2008124

Signed-off-by: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Change-Id: I33b3b942bc2b20b1169b2123e48fc4fba619e1c2
This commit is contained in:
Thales Elero Cervi 2023-06-08 19:53:54 -03:00
parent d52137d9c7
commit 66bb2cbae7
2 changed files with 35 additions and 0 deletions

View File

@ -0,0 +1,34 @@
From b373ca183ebe2c9088649e5e41905e586828d8cd Mon Sep 17 00:00:00 2001
From: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Date: Thu, 8 Jun 2023 15:26:39 -0300
Subject: [PATCH] DPDK static build
The OVS-DPDK StarlingX OpenStack application use case requires that
openvswitch is statically linked against DPDK libraries.
This patch modifies the debian/rules accordingly.
StarlingX relies on dpdk-pmdinfo.py to verify which system NICs support
the current DPDK version, therefore the /usr/sbin/ovs-vswitchd ELF file
needs to be a static build so the ELF .rodata contains PMD vendor and
device information to be parsed.
---
debian/rules | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/debian/rules b/debian/rules
index 3020b0315..92891df6e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -32,7 +32,7 @@ ifneq (,$(filter i386 amd64 ppc64el arm64, $(DEB_HOST_ARCH)))
test -e Makefile || \
../configure --prefix=/usr --localstatedir=/var --enable-ssl --enable-shared \
--libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
- --with-dpdk=shared --sysconfdir=/etc \
+ --with-dpdk=static --sysconfdir=/etc \
$(DATAPATH_CONFIGURE_OPTS))
endif
--
2.25.1

View File

@ -1 +1,2 @@
fix-openvswitch-vtep-race.patch
dpdk-static-build.patch