Hi Mikhail, On Mon, 7 Oct 2024 at 14:55, Mikhail Kshevetskiy <[email protected]> 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

