fdcavalcanti commented on PR #17358:
URL: https://github.com/apache/nuttx/pull/17358#issuecomment-3588892483
> > @mennovf with your change how to handle the case described by @zhhyu7 :
> > If the sending direction is unthrottled, during the TCP sending process,
if the buffer in the write queue is full of IOB, the driver will be unable to
receive any new packet (especially TCP-ACK), and the buffer in the write queue
will never be released, causing the entire IP protocol stack to hang. This is a
fatal problem.
>
> Yes, the TCP sending will be blocked. Note that this is already an issue
if _IOB_THROTTLE=0, regardless whether sending or receiving is marked
"throttled". As I said, this is a more fundamental issue with the current
networking stack. Ideally each socket's send & receive end should allocate some
minimum amount of memory on creation that's used to ensure forward progress.
>
> @fdcavalcanti I can't reproduce it. What relevant options are you using?
>
> I did seemingly run into another bug using iperf where the socket doesn't
seem to get cleaned up properly on ctr-c.
I use the default defconfig on `esp32c6-devkits:wifi`.
Some relevant options are:
```
CONFIG_IOB_BUFSIZE=128
CONFIG_IOB_NBUFFERS=160
CONFIG_IOB_THROTTLE=24
CONFIG_NETUTILS_IPERF=y
CONFIG_NET_BROADCAST=y
CONFIG_NET_ETH_PKTSIZE=1514
CONFIG_NET_ICMP_SOCKET=y
CONFIG_NET_TCP=y
CONFIG_NET_TCP_DELAYED_ACK=y
CONFIG_NET_TCP_KEEPALIVE=y
CONFIG_NET_TCP_WRITE_BUFFERS=y
CONFIG_NET_UDP=y
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]