
9 Oct
2024
9 Oct
'24
10:21 a.m.
Will try to fix spelling. Unfortunately my english is not very well.
On 09.10.2024 04:57, Simon Glass wrote:
Hi Mikhail,
On Mon, 7 Oct 2024 at 14:55, Mikhail Kshevetskiy mikhail.kshevetskiy@iopsys.eu wrote:
U-Boot support of LWIP is not ready for a moment, but we already have some kind of tcp support. Unfrotunately this support is really bad.
spelling
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 selectiv acknowledge
spelling
- 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 issuess.
spelling
The benefits:
- A lot of bug was fixed
- Better and more reliable TCP state machine
- Tcp cliens becomes smaller/simpler
spelling
- Data uploading was fixed (now it's possible to transmit a huge amount of data from the board to remote host)
- Netcat over tcp was implemented. Netcat supports data downloading/uploading from/to remote host in client/server mode.
- An example web-server implementation. This code can be used as a base for web-based firmware uploading used by some vendors.
Modification was verified with
- firmware downloading via u-boot wget command
- fastboot over tcp
- netcat linux client
- Firefox/Chrome/Edge using example web-server implementation
Changes v2:
- cover letter was added
- some patches were removed
Changes v3:
- better cover letter
Changes v4:
- fix bug in debug output
- add more comments
- codestyle fixes
Changes v5:
- old patches were ocasionally sent with v4
- add back web-server patches
- fix bug in debug output
- add more comments
- codestyle fixes
Changes v6:
- fix the wget test
- improve description of "simplify tcp header filling code" patch
Changes v7:
- fix include ordering
- improve option descriptions
- fix a lot of extra brackets and comparisons against NULL / 0
- add empty lines before final returns
- fixed a bug with zero size httpd uploads
Changes v8:
- [tcp] add function to restart rx inactivity timeout. This may help in the cases where remote peer waits for u-boot data, but u-boot is busy with long executing action
- [httpd] add function returning underlying tcp stream from request id. This (with the above change) allows avoid connection break for the long processing post requests.
Changes v9:
- rebase all changes on top of origin/next
- update test/cmd/wget patch description (bad tcp ack/seq issue was already fixed in origin/next)
- tcp: add rx/tx packet counters to a tcp_stream structure
- wget: use tcp rx packet counter instead of own one
- netcat: use tcp rx/tx packet counters instead of own one
Changes v10:
- netcat: fix bug appeared after rx/tx packet counter addition
- rebased on top of v2024.10
Is this series ready to go in?
I think it's ready.
Regards, SImon