diff --git a/0027-modify-EISCONN-condition.patch b/0027-modify-EISCONN-condition.patch new file mode 100644 index 0000000000000000000000000000000000000000..2693e91a75668b93dc8f63d229d4b7a51be74751 --- /dev/null +++ b/0027-modify-EISCONN-condition.patch @@ -0,0 +1,39 @@ +From b8c388a7adef4dc53d3bb135102da64bf8a08b76 Mon Sep 17 00:00:00 2001 +From: wuchangsheng +Date: Thu, 6 Oct 2022 15:57:33 +0800 +Subject: [PATCH] modify-EISCONN-condition + +--- + src/api/api_msg.c | 2 +- + src/include/lwipsock.h | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/api/api_msg.c b/src/api/api_msg.c +index 7839526..2dded75 100644 +--- a/src/api/api_msg.c ++++ b/src/api/api_msg.c +@@ -1417,7 +1417,7 @@ lwip_netconn_do_connect(void *m) + /* Prevent connect while doing any other action. */ + if (msg->conn->state == NETCONN_CONNECT) { + err = ERR_ALREADY; +- } else if (msg->conn->state != NETCONN_NONE) { ++ } else if (msg->conn->pcb.tcp->state != ESTABLISHED) { + err = ERR_ISCONN; + } else { + setup_tcp(msg->conn); +diff --git a/src/include/lwipsock.h b/src/include/lwipsock.h +index 16e0dd3..3c5c44b 100644 +--- a/src/include/lwipsock.h ++++ b/src/include/lwipsock.h +@@ -98,6 +98,8 @@ struct lwip_sock { + struct list_node recv_list __rte_cache_aligned; + struct list_node event_list __rte_cache_aligned; + struct list_node send_list __rte_cache_aligned; ++ uint32_t in_send __rte_cache_aligned; /* avoid sock too much send rpc msg*/ ++ uint32_t send_flag __rte_cache_aligned; /* avoid sock too much send rpc msg*/ + uint32_t epoll_events; /* registered events, EPOLLONESHOT write frequently */ + char pad __rte_cache_aligned; + +-- +2.27.0 + diff --git a/lwip.spec b/lwip.spec index e48a58834bb171680ac5c81be452e75e28f92c27..0ea170cf87945433cb6a9ba6dd5928ddfaf147a7 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: 14 +Release: 15 License: BSD URL: http://savannah.nongnu.org/projects/lwip/ Source0: http://download.savannah.nongnu.org/releases/lwip/%{name}-%{version}.tar.gz @@ -38,6 +38,7 @@ Patch9022: 0023-refactor-event-and-checksum-offload-support.patch Patch9023: 0024-refactor-pkt-read-send-performance.patch Patch9024: 0025-Replace-gettid-with-syscall-SYS_gettid.patch Patch9025: 0026-del-redundant-wait_close-and-move-epoll_events-pos.patch +Patch9026: 0027-modify-EISCONN-condition.patch BuildRequires: gcc-c++ dos2unix dpdk-devel @@ -66,6 +67,10 @@ cd %{_builddir}/%{name}-%{version}/src %{_libdir}/liblwip.a %changelog +* Thu Oct 6 2022 wuchangsheng - 2.1.3-15 +- modify EISCONN path condition + add in_send and send_flag value in sock + * Tue Jul 26 2022 wuchangsheng - 2.1.3-14 - del redundant wait_close in lwip_sock move epoll_events into cache aligned area