From bc42971f798343d774d87d553f11dd258c4d9016 Mon Sep 17 00:00:00 2001 From: kircher Date: Wed, 21 Jun 2023 17:32:49 +0800 Subject: [PATCH] add udp cksum in lwip (cherry picked from commit 6843c82bf7e0d2fdac567be6ac3ab9c8652f345d) --- 0068-enable-UDP-CKSUM-in-lwip.patch | 61 +++++++++++++++++++++++++++++ lwip.spec | 6 ++- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 0068-enable-UDP-CKSUM-in-lwip.patch diff --git a/0068-enable-UDP-CKSUM-in-lwip.patch b/0068-enable-UDP-CKSUM-in-lwip.patch new file mode 100644 index 0000000..f426635 --- /dev/null +++ b/0068-enable-UDP-CKSUM-in-lwip.patch @@ -0,0 +1,61 @@ +From 809a98b0c138f5369b94a170f3745fe2beacf4b7 Mon Sep 17 00:00:00 2001 +From: enable UDP CKSUM in lwip +Date: Tue, 27 Jun 2023 11:15:06 +0800 +Subject: [PATCH] enable UDP CKSUM in lwip + +--- + src/include/dpdk_cksum.h | 1 + + src/include/dpdk_version.h | 5 +++-- + src/include/lwipopts.h | 6 ++++++ + 3 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/include/dpdk_cksum.h b/src/include/dpdk_cksum.h +index b48c926..2c5b31e 100644 +--- a/src/include/dpdk_cksum.h ++++ b/src/include/dpdk_cksum.h +@@ -87,6 +87,7 @@ static inline void tcph_cksum_set(struct pbuf *p, u16_t len) { + + static inline void udph_cksum_set(struct pbuf *p, u16_t len) { + p->l4_len = len; ++ p->ol_flags |= RTE_MBUF_F_TX_UDP_CKSUM; + } + + static inline u16_t ip_chksum_pseudo_offload(u8_t proto, u16_t proto_len, +diff --git a/src/include/dpdk_version.h b/src/include/dpdk_version.h +index 43b254a..dc7120c 100644 +--- a/src/include/dpdk_version.h ++++ b/src/include/dpdk_version.h +@@ -42,10 +42,11 @@ + + #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_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 ++#define RTE_MBUF_F_TX_UDP_CKSUM PKT_TX_UDP_CKSUM + + #endif /* DPDK_VERSION_1911 */ + +diff --git a/src/include/lwipopts.h b/src/include/lwipopts.h +index f0df0e3..2ba1e4c 100644 +--- a/src/include/lwipopts.h ++++ b/src/include/lwipopts.h +@@ -180,6 +180,12 @@ + --------------------------------- + */ + #define LWIP_UDP 1 ++ ++#define UDP_HLEN 8 ++ ++#define MEMP_NUM_UDP_PCB 16 ++#define MEMP_NUM_IGMP_GROUP 16 ++ + #define DEFAULT_UDP_RECVMBOX_SIZE 4096 + + +-- +2.27.0 + diff --git a/lwip.spec b/lwip.spec index 783689f..b65f238 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: 72 +Release: 73 License: BSD URL: http://savannah.nongnu.org/projects/lwip/ Source0: http://download.savannah.nongnu.org/releases/lwip/%{name}-%{version}.zip @@ -79,6 +79,7 @@ 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 Patch9066: 0067-fix-null-pointer-when-all-zero-address-listen.patch +Patch9067: 0068-enable-UDP-CKSUM-in-lwip.patch BuildRequires: gcc-c++ dos2unix dpdk-devel @@ -109,6 +110,9 @@ cd %{_builddir}/%{name}-%{version}/src %{_libdir}/liblwip.a %changelog +* Wed Jun 21 2023 kircher - 2.1.3-73 +- enable udp cksum in lwip + * Thu Jun 15 2023 Lemmy Huang - 2.1.3-72 - fix null pointer when zero port listen -- Gitee