Maybe try window scaling?

On November 12, 2024 17:18:41 Meganathan Raja Mani <[email protected]> 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.
One thread receives the packets from DPDK and enqueues into rte ring.
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).
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
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to