Hi Norbert, Thank you for your reply. I tried with the option below, but got the same result only.
#define LWIP_WND_SCALE 1 #define TCP_RCV_SCALE 7 #define LWIP_TCP_SACK_OUT 1 Regards, Meganathan On Tue, Nov 12, 2024 at 9:06 AM Norbert Morawski <norbertzpil...@gmail.com> wrote: > Maybe try window scaling? > > On November 12, 2024 17:18:41 Meganathan Raja Mani < > meganathanr...@gmail.com> wrote: > >> Hi >> >> Integrated the lwIP stack over DPDK and the application is written by >> using the lwIP raw API(NO_SYS=1). >> >> The main purpose of the application is to get max TCP throughput(10Gbps). >> >> Application is in full receiving(server) mode, which just sends ACK for >> the client data. >> >> The lwIP application and client app are cross connected with 10Gbps intel >> 82599 NIC card. >> >> The application has three threads. Each thread is pinned to a separate >> core(Intel Xeon 3.1 GHz). >> >> All the threads are running in a poll mode. >> >> 1. One thread receives the packets from DPDK and enqueues into rte >> ring. >> 2. Second thread takes the packets from rte ring and converts into >> pbuf and then passes it to lwIP stack by calling ip_input function. In the >> receive callback, the app just frees the pbuf(does nothing). >> 3. Third thread reads data from lwIP stack and sends out to DPDK >> >> >> >> Changed following things in lwIP stack. >> >> #define TCP_TMR_INTERVAL 5 /* The TCP timer interval in >> milliseconds. */ >> >> #define MEMP_NUM_PBUF (10028) >> >> #define MEMP_NUM_TCP_SEG 160 >> >> #define TCP_SND_QUEUELEN MEMP_NUM_TCP_SEG >> >> #define PBUF_POOL_SIZE (10 * 1024) >> >> #define TCP_MSS 1460 >> >> #define TCP_WND 65535 >> >> #define LWIP_CHECKSUM_ON_COPY 1 >> >> #define TCP_SND_BUF 65535 >> >> #define TCP_SNDLOWAT TCP_SND_BUF/2 >> >> #define MEMP_NUM_TCPIP_MSG_INPKT 160 >> >> #define CHECKSUM_CHECK_IP 0 >> >> #define CHECKSUM_CHECK_TCP 0 >> >> #define LWIP_DEBUG 0 >> >> #define LWIP_ICMP 1 >> >> #define MEM_USE_POOLS 1 >> >> #define MEM_SIZE (128 * 1024 * 1024) >> >> #define MEM_ALIGNMENT 4 >> >> #define ETH_PAD_SIZE 2 >> >> #define LWIP_CHKSUM_ALGORITHM 2 >> >> #define LWIP_TCP_KEEPALIVE 1 >> >> Disable nagle(tcp_nagle_disable) for the pcb >> >> The stats_display() function doesn’t show any errors. >> >> With this,I can get max 2K packets per second(25 Mbps), which is very low. >> >> Any info about the max throughput can we get it with lwIP TCP protocol on >> any platform? >> >> Please let me know what I should do to get max throughput (line rate 10 >> Gbps). >> >> >> >> Regards, >> >> Meganathan >> >> _______________________________________________ >> lwip-users mailing list >> lwip-users@nongnu.org >> https://lists.nongnu.org/mailman/listinfo/lwip-users >> > > _______________________________________________ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users >
_______________________________________________ lwip-users mailing list lwip-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/lwip-users