[PATCH v10 00/13] net: tcp: improve tcp support
Simon Glass
sjg at chromium.org
Wed Oct 9 03:57:27 CEST 2024
Hi Mikhail,
On Mon, 7 Oct 2024 at 14:55, Mikhail Kshevetskiy
<mikhail.kshevetskiy at 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:
> - data downloading from remote host to a board
> - request-response exchange with a small packets
> so it's not possible to upload large amount of data from the
> board to remote host.
> * 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?
Regards,
SImon
More information about the U-Boot
mailing list