Hi, how are you?
I have been used the LWIP library for several years already.
Now I developed a new application that exchange larger packets, like 2K bytes.
Commits in use (SHA-1) :
- lwip : d70d9bf8660827e2919d5fc9c9469532196225e1
- lwip-contrib: 4e553f7b3d3af4ac1f3f6c70f38371e4395fdccd
To simulate my real scenario and you can try to reproduce the problem I am facing, I have made alterations in the "simhost.c", "lwipopts.h" and "tcpecho.c" from lwip-contrib. The ethernet data for teh netif is provided by a socket-raw driver (Linux). The tcpecho just consume the data, no reply (no echo). The "simhost" (server) is generated with the own Makefile associated avaliable in the "lwip-contrib" git.
In addition, I wrote a small "client" (use the TCP-IP/Linux stack).
When the "client" sends small packets, all works fine. But when it sends larger packets (for instance, 2048 bytes), just the first are sent fast (normal) but just after the locking occurs.
a) 02 Oracle VMBox (VM#1 and #2) - Linux host
b) Sequence to run:
- VM#1 (server):
> sudo your_path1/simhost
- VM#2 (client):
> your_path2/client ip_netif port size_data
- example: > ./client 10.0.2.121 5124 2065 /* block */
- example: > ./client 10.0.2.121 5124 1000 /* no block */
c) Altered files (from lwip-contrib), attacheds:
- .../ ports/unix/proj/unixsim/simhost.c
d) Client app (attacheds files)
Just to compare, when I use another server with TCP-IP/Linux, not LWIP stack, but the same attached client, no problem found, including larger packets.
Please, what I am doing or configuring wrong ?
Thank you very much.