From 2bc3fb288b1b632836ac0c19533cbde621f551d6 Mon Sep 17 00:00:00 2001 From: Lemmy Huang Date: Thu, 15 Jun 2023 13:06:39 +0800 Subject: [PATCH] adapt to dpdk-19.11 and dpdk-21.11 Signed-off-by: Lemmy Huang (cherry picked from commit c4801c6ffdba87b527b32c2025aa6ed23994ae2a) --- 0066-adapt-to-dpdk-19.11-and-dpdk-21.11.patch | 144 ++++++++++++++++++ lwip.spec | 8 +- 2 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 0066-adapt-to-dpdk-19.11-and-dpdk-21.11.patch diff --git a/0066-adapt-to-dpdk-19.11-and-dpdk-21.11.patch b/0066-adapt-to-dpdk-19.11-and-dpdk-21.11.patch new file mode 100644 index 0000000..ebd81af --- /dev/null +++ b/0066-adapt-to-dpdk-19.11-and-dpdk-21.11.patch @@ -0,0 +1,144 @@ +From a8ca1b0361d5b31e437fd70d17860248dd44ddf7 Mon Sep 17 00:00:00 2001 +From: Lemmy Huang +Date: Thu, 15 Jun 2023 09:06:58 +0800 +Subject: [PATCH] adapt to dpdk-19.11 and dpdk-21.11 + +Signed-off-by: Lemmy Huang +--- + src/Makefile | 3 +++ + src/include/arch/sys_arch.h | 1 + + src/include/dpdk_cksum.h | 3 +++ + src/include/dpdk_version.h | 52 +++++++++++++++++++++++++++++++++++++ + src/include/eventpoll.h | 1 + + src/include/reg_sock.h | 2 ++ + 6 files changed, 62 insertions(+) + create mode 100644 src/include/dpdk_version.h + +diff --git a/src/Makefile b/src/Makefile +index f445601b..480470fb 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -19,6 +19,9 @@ ARFLAGS = crDP + ifeq ($(shell $(CC) -dumpmachine | cut -d"-" -f1), x86_64) + CFLAGS += -mssse3 + endif ++ifeq ($(DPDK_VERSION_1911), 1) ++ CFLAGS += -DDPDK_VERSION_1911=1 ++endif + + SRCS = + DIRS = api core netif +diff --git a/src/include/arch/sys_arch.h b/src/include/arch/sys_arch.h +index 04e3192a..5e95f3d3 100644 +--- a/src/include/arch/sys_arch.h ++++ b/src/include/arch/sys_arch.h +@@ -79,6 +79,7 @@ typedef struct sys_thread *sys_thread_t; + #if GAZELLE_ENABLE + extern int eth_dev_poll(void); + #include ++#include "dpdk_version.h" + + /* + gazelle custom rte ring interface +diff --git a/src/include/dpdk_cksum.h b/src/include/dpdk_cksum.h +index e41644b5..b48c9267 100644 +--- a/src/include/dpdk_cksum.h ++++ b/src/include/dpdk_cksum.h +@@ -34,8 +34,11 @@ + #define __DPDK_CKSUM_H__ + + #include "lwipopts.h" ++ + #if GAZELLE_ENABLE ++#include + #include ++#include "dpdk_version.h" + + #if CHECKSUM_OFFLOAD_ALL + #include +diff --git a/src/include/dpdk_version.h b/src/include/dpdk_version.h +new file mode 100644 +index 00000000..43b254a8 +--- /dev/null ++++ b/src/include/dpdk_version.h +@@ -0,0 +1,52 @@ ++/* ++ * Copyright (c) 2001-2004 Swedish Institute of Computer Science. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without modification, ++ * are permitted provided that the following conditions are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright notice, ++ * this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright notice, ++ * this list of conditions and the following disclaimer in the documentation ++ * and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED ++ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT ++ * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT ++ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING ++ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY ++ * OF SUCH DAMAGE. ++ * ++ * This file is part of the lwIP TCP/IP stack. ++ * ++ * Author: Huawei Technologies ++ * ++ */ ++ ++#ifndef __DPDK_VERSION_H__ ++#define __DPDK_VERSION_H__ ++ ++#if DPDK_VERSION_1911 ++#define __rte_ring_enqueue_elems(r, prod_head, obj_table, esize, n) \ ++ ENQUEUE_PTRS(r, &r[1], prod_head, (obj_table), n, void *) ++ ++#define __rte_ring_dequeue_elems(r, cons_head, obj_table, esize, n) \ ++ DEQUEUE_PTRS(r, &r[1], cons_head, (obj_table), n, void *) ++ ++#define RTE_MBUF_F_RX_IP_CKSUM_BAD PKT_RX_IP_CKSUM_BAD ++#define RTE_MBUF_F_RX_L4_CKSUM_BAD PKT_RX_L4_CKSUM_BAD ++#define RTE_MBUF_F_TX_IPV4 PKT_TX_IPV4 ++#define RTE_MBUF_F_TX_IP_CKSUM PKT_TX_IP_CKSUM ++#define RTE_MBUF_F_TX_TCP_CKSUM PKT_TX_TCP_CKSUM ++#define RTE_MBUF_F_TX_TCP_SEG PKT_TX_TCP_SEG ++ ++#endif /* DPDK_VERSION_1911 */ ++ ++#endif /* __DPDK_VERSION_H__ */ +diff --git a/src/include/eventpoll.h b/src/include/eventpoll.h +index a10c84bf..dd65a4d5 100644 +--- a/src/include/eventpoll.h ++++ b/src/include/eventpoll.h +@@ -35,6 +35,7 @@ + + #include + ++#include "arch/sys_arch.h" + #include "lwip/api.h" + #include "list.h" + +diff --git a/src/include/reg_sock.h b/src/include/reg_sock.h +index e349e854..5d5710d7 100644 +--- a/src/include/reg_sock.h ++++ b/src/include/reg_sock.h +@@ -33,6 +33,8 @@ + #ifndef __REG_SOCK_H__ + #define __REG_SOCK_H__ + ++#include ++ + enum reg_ring_type { + REG_RING_TCP_LISTEN = 0, + REG_RING_TCP_LISTEN_CLOSE, +-- +2.22.0.windows.1 + diff --git a/lwip.spec b/lwip.spec index 50036e6..db05753 100644 --- a/lwip.spec +++ b/lwip.spec @@ -4,7 +4,7 @@ Summary: lwip is a small independent implementation of the TCP/IP protocol suite Name: lwip Version: 2.1.3 -Release: 69 +Release: 70 License: BSD URL: http://savannah.nongnu.org/projects/lwip/ Source0: http://download.savannah.nongnu.org/releases/lwip/%{name}-%{version}.zip @@ -77,6 +77,7 @@ Patch9061: 0062-drop-netbuf-in-recv_udp-to-fix-mem-overflow.patch Patch9062: 0063-optimize-avoid-too-many-empty-acks-in-tcp_input.patch Patch9063: 0064-fix-udp-send-recv-in-multiple-queue.patch Patch9064: 0065-fix-udp-recvmbox-size-not-set.patch +Patch9065: 0066-adapt-to-dpdk-19.11-and-dpdk-21.11.patch BuildRequires: gcc-c++ dos2unix dpdk-devel @@ -158,8 +159,10 @@ find %{_builddir}/%{name}-%{version} -type f -exec dos2unix -q {} \; %patch9062 -p1 %patch9063 -p1 %patch9064 -p1 +%patch9065 -p1 %build +#export DPDK_VERSION_1911=1 cd %{_builddir}/%{name}-%{version}/src %make_build @@ -173,6 +176,9 @@ cd %{_builddir}/%{name}-%{version}/src %{_libdir}/liblwip.a %changelog +* Thu Jun 15 2023 Lemmy Huang - 2.1.3-70 +- adapt to dpdk-19.11 and dpdk-21.11 + * Wed Jun 14 2023 jiangheng - 2.1.3-69 - fix udp recvmbox size not set