
On Mon, Dec 23, 2024 at 01:58:41PM +0300, Mikhail Kshevetskiy wrote:
Legacy TCP stack is bad. Here are some of the known issues:
- tcp packet from other connection can break a current one
- tcp send sequence always starts from zero
- bad tcp options processing
- strange assumptions on packet size for selective acknowledge
- tcp interface assumes one of the two scenarios:
so it's not possible to upload large amount of data from the board to remote host.
- data downloading from remote host to a board
- request-response exchange with a small packets
- wget test generate bad tcp stream, test should fail but it passes instead
This series of patches fixes all of the above issues.
The benefits:
- A lot of bug was fixed
- Better and more reliable TCP state machine
- Tcp clients becomes smaller/simpler
- Data uploading was fixed (now it's possible to transmit a huge amount of data from the board to remote host)
Modification was verified with
- firmware downloading via u-boot wget command
- fastboot over tcp
- netcat linux client using test netcat implementation (not included to this patch series)
- Firefox/Chrome/Edge using test web-server implementation (not included to this patch series)
This fails on the EFI self test on qemu-arm64. You can see this with "bootefi selftest" on the platform, and the excerpt from the full failure log at: https://source.denx.de/u-boot/u-boot/-/jobs/984858 https://dev.azure.com/u-boot/u-boot/_build/results?buildId=10224&view=lo... is: Setting up 'http protocol' succeeded Executing 'http protocol' 93.184.215.14 Packets received 5, Transfer Successful lib/efi_selftest/efi_selftest_http.c(216): ERROR: File not found lib/efi_selftest/efi_selftest.c(114): ERROR: Executing 'http protocol' failed Tearing down 'http protocol'