[PATCH v10 00/13] net: tcp: improve tcp support

Mikhail Kshevetskiy mikhail.kshevetskiy at iopsys.eu
Wed Oct 9 10:21:37 CEST 2024


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 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?

I think it's ready.

>
> Regards,
> SImon


More information about the U-Boot mailing list