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

Reply via email to