From 755894494dc58e093d7376bf41f15dcbbdb5e53b Mon Sep 17 00:00:00 2001 From: Lukasz Pawlik Date: Fri, 4 Oct 2019 13:04:40 +0100 Subject: integration: fix ovs/dpdk with DPDK >= 18.02 In DPDK >= 18.02 disable-hw-vlan testpmd command line was changed. Parameter disable-hw-vlan is default and user has to explicitly enable it. This patch fix testpmd command line parameters. Also in DPDK >= 18.05 igb_uio kernel module was moved to different directory. Compilation of kernel module only is broken. This patch fix this. Now whole DPDK project is build. Change-Id: I6c8c44979192201c42e6a71b55c37a50fa64fd96 Signed-off-by: Lukasz Pawlik --- conf/04_vnf.conf | 3 +-- conf/integration/01b_dpdk_regression_tests.conf | 4 ++-- vnfs/qemu/qemu.py | 13 +++++++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/conf/04_vnf.conf b/conf/04_vnf.conf index 234f11b6..cf44a8ec 100644 --- a/conf/04_vnf.conf +++ b/conf/04_vnf.conf @@ -208,8 +208,7 @@ GUEST_BRIDGE_IP = ['#IP(1.1.1.5)/16'] # Note: Testpmd must be executed in interactive mode. It means, that # VSPERF won't work correctly if '-i' will be removed. GUEST_TESTPMD_PARAMS = ['-c 0x3 -n 4 --socket-mem 512 -- ' - '--burst=64 -i --txqflags=0xf00 ' - '--disable-hw-vlan'] + '--burst=64 -i '] # packet forwarding mode supported by testpmd; Please see DPDK documentation # for comprehensive list of modes supported by your version. diff --git a/conf/integration/01b_dpdk_regression_tests.conf b/conf/integration/01b_dpdk_regression_tests.conf index a637e3e2..c43f036f 100644 --- a/conf/integration/01b_dpdk_regression_tests.conf +++ b/conf/integration/01b_dpdk_regression_tests.conf @@ -587,11 +587,11 @@ INTEGRATION_TESTS = INTEGRATION_TESTS + [ # there must be separate CPU for each of RX/TX queues "GUEST_SMP" : ['5'], "GUEST_TESTPMD_PARAMS" : ['-c 0x1F -n 4 --socket-mem 512 -- ' - '--burst=64 -i --txqflags=0xf00 --nb-cores=4 ' + '--burst=64 -i --nb-cores=4 ' # map queue stats to separate regs to verify MQ functionality '--rx-queue-stats-mapping=\(0,0,0\),\(0,1,1\),\(1,0,2\),\(1,1,3\) ' '--tx-queue-stats-mapping=\(0,0,4\),\(0,1,5\),\(1,0,6\),\(1,1,7\) ' - '--disable-hw-vlan --rxq=2 --txq=2'], + '--rxq=2 --txq=2'], "TRAFFICGEN_DURATION" : 5, "TRAFFIC" : { "traffic_type" : "rfc2544_continuous", diff --git a/vnfs/qemu/qemu.py b/vnfs/qemu/qemu.py index 857793f8..a2c8d4be 100644 --- a/vnfs/qemu/qemu.py +++ b/vnfs/qemu/qemu.py @@ -503,11 +503,16 @@ class IVnfQemu(IVnf): pci_slots) elif driver == 'igb_uio_from_src': # build and insert igb_uio and rebind interfaces to it - self.execute_and_wait('make RTE_OUTPUT=$RTE_SDK/$RTE_TARGET -C ' - '$RTE_SDK/lib/librte_eal/linuxapp/igb_uio') + # from DPDK 18.05 Linux kernel driver changed location + # also it is not possible to compile driver without + # passing EXTRA_CFLAGS + self.execute_and_wait("make RTE_OUTPUT=$RTE_SDK/{0} \ + EXTRA_CFLAGS=\"-I$RTE_SDK/{1}/include\" \ + -C $RTE_SDK/kernel/linux/igb_uio"\ + .format(S.getValue('RTE_TARGET'), S.getValue('RTE_TARGET'))) self.execute_and_wait('modprobe uio') - self.execute_and_wait('insmod %s/kmod/igb_uio.ko' % - S.getValue('RTE_TARGET')) + self.execute_and_wait('insmod {}/kmod/igb_uio.ko'\ + .format(S.getValue('RTE_TARGET'))) self.execute_and_wait('./*tools/dpdk*bind.py -b igb_uio ' + pci_slots) else: self._logger.error( -- cgit 1.2.3-korg