From b1586ee26b61fedd74e3bc076f7ff58d7a72f615 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Fri, 14 Jan 2022 14:13:19 +0000
Subject: host: fix build with DPDK v21.11 LTS

Some APIs were changed with the latest DPDK LTS release,
add some ifdefs to fix the build.

Fixes https://github.com/EttusResearch/uhd/issues/547

Updated CMake file to reflect updated DPDK version.
Fixed mbuf size to take ethernet headers into account.
Updated documentation.

Co-authored-by: Martin Anderseck <martin.anderseck@ni.com>
---
 host/docs/dpdk.dox | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

(limited to 'host/docs')

diff --git a/host/docs/dpdk.dox b/host/docs/dpdk.dox
index 54ed1c6e4..539a6ce18 100644
--- a/host/docs/dpdk.dox
+++ b/host/docs/dpdk.dox
@@ -26,7 +26,7 @@ computer.
 \subsection dpdk_installation DPDK Installation Instructions
 
 As a new and developing technology, the DPDK APIs are unstable. UHD requires
-version 19.11 or 20.11.
+version 19.11, 20.11 or 21.11.
 
 On Ubuntu 20.04, Fedora 33-36, or Debian Bullseye/Buster (via backports),
 DPDK is available in your distribution's repositories. For example, on Debian
@@ -35,8 +35,8 @@ systems, it can be obtained with the following command:
     sudo apt install dpdk dpdk-dev
 
 Otherwise, you'll need to follow the build guide at
-https://doc.dpdk.org/guides-20.11/linux_gsg/build_dpdk.html . The software
-releases can be found at https://core.dpdk.org/download/. Version 20.11 builds
+https://doc.dpdk.org/guides-21.11/linux_gsg/build_dpdk.html . The software
+releases can be found at https://core.dpdk.org/download/. Version >=20.11 builds
 with appropriate options when using the default build procedure.
 
 Note that if you are using a Mellanox NIC, the MLNX-OFED drivers available from
@@ -61,7 +61,7 @@ following line:
 \subsection dpdk_system_configuration System Configuration
 
 The official documentation regarding system configuration can be found at
-https://doc.dpdk.org/guides-20.11/linux_gsg/sys_reqs.html.
+https://doc.dpdk.org/guides-21.11/linux_gsg/sys_reqs.html.
 
 First, you'll need to enable the IOMMU and set up some hugepages. DPDK will
 completely take over all available hugepages, so don't allocate all your memory
@@ -107,7 +107,7 @@ If successful, the script might provide an updated status like this:
     [...]
 
 
-See https://doc.dpdk.org/guides-20.11/linux_gsg/linux_drivers.html#binding-and-unbinding-network-ports-to-from-the-kernel-modules
+See https://doc.dpdk.org/guides-21.11/linux_gsg/linux_drivers.html#binding-and-unbinding-network-ports-to-from-the-kernel-modules
 for more details.
 
 With the hugepages, IOMMU, and drivers set up, the system is ready for DPDK to
@@ -141,7 +141,7 @@ options:
     ;create a separate folder with symlinks to the librte_pmd_* and librte_mempool_* libraries.
     dpdk_driver=/usr/local/lib/x86_64-linux-gnu/dpdk/pmds-21.0/
     ;dpdk_corelist is the -l flag for the DPDK EAL. See more at the link
-    ; https://doc.dpdk.org/guides-20.11/linux_gsg/build_sample_apps.html#running-a-sample-application
+    ; https://doc.dpdk.org/guides-21.11/linux_gsg/build_sample_apps.html#running-a-sample-application
     dpdk_corelist=0,1
     ;dpdk_num_mbufs is the total number of packet buffers allocated
     ;to each direction's packet buffer pool
-- 
cgit v1.2.3