[U-Boot] [PATCH v10 0/3] Why netboot:

Joe Hershberger joe.hershberger at ni.com
Tue May 1 21:29:13 UTC 2018


On Mon, Apr 30, 2018 at 8:57 PM, Joe Hershberger <joe.hershberger at ni.com> wrote:
> On Sat, Apr 14, 2018 at 6:43 PM,  <DH at synoia.com> wrote:
>> From: Duncan Hare <DuncanCHare at yahoo.com>
>>
>> Central management, including logs and change control,
>> coupled with with enhanced security and unauthorized
>> change detection and remediation by exposing a
>> small attack surface.
>>
>> Why TCP:
>>
>> Currently file transfer are done using tftp or NFS both
>> over udp. This requires a request to be sent from client
>> (u-boot) to the boot server.
>>
>> For a 4 Mbyte kernel, with a 1k block size this requires
>> 4,000 request for a block.
>>
>> Using a large block size, one greater than the Ethernet
>> maximum frame size limitation, would require fragmentation,
>> which u-boot supports. However missing fragment recovery
>> requires timeout detection and re-transmission requests
>> for missing fragments.
>>
>> UDP is ideally suited to fast single packet exchanges,
>> inquiry/response, for example dns, becuse of the lack of
>> connection overhead.
>>
>> UDP as a file transport mechanism is slow, even in low
>> latency networks, because file transfer with udp requires
>> poll/response mechanism to provide transfer integrity.
>>
>> In networks with large latency, for example: the internet,
>> UDP is even slower. What is a 30 second transfer on a local
>> boot server and LAN increase to over 3 minutes, because of
>> all the requests/response traffic.
>>
>> This was anticipated in the evolution of the IP protocols
>> and TCP was developed and then enhanced for high latency high
>> bandwidth networks.
>>
>> The current standard is TCP with selective acknowledgment.
>>
>> In our testing we have reduce kernel transmission time to
>> around 0.4 seconds for a 4Mbyte kernel, with a 100 Mbps
>> downlink.
>>
>> Why http and wget:
>>
>> HTTP is the most efficient file retrieval protocol in common
>> use. The client send a single request, after TCP connection,
>> to receive a file of any length.
>>
>> WGET is the application which implements http file transfer
>> outside browsers as a file transfer protocol. Versions of
>> wget exists on many operating systems.
>>
>> Changes in v10:
>> Initial changes for adding TCP
>>
>> Duncan Hare (3):
>>   Adding TCP and wget into u-boot
>>   Adding TCP
>>   Adding wget
>
> From https://www.denx.de/wiki/U-Boot/Patches
> """
> Use the imperative tense in your summary line (e.g., "Add support for
> X" rather than "Adds support for X"). In general, you can think of the
> summary line as "this commit is meant to 'Add support for X'"
> """
>
> These patch subjects don't comply.

Additionally, please prefix each of these patches with "net: " like
all other patches to the net subsystem.

Thanks,
-Joe

>>
>>  cmd/Kconfig        |   5 +
>>  cmd/net.c          |  13 +
>>  include/net.h      |  33 ++-
>>  include/net/tcp.h  | 218 ++++++++++++++++
>>  include/net/wget.h |  17 ++
>>  net/Kconfig        |  10 +
>>  net/Makefile       |   3 +-
>>  net/net.c          |  89 +++++--
>>  net/ping.c         |   9 +-
>>  net/tcp.c          | 749 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  net/wget.c         | 420 ++++++++++++++++++++++++++++++
>>  11 files changed, 1532 insertions(+), 34 deletions(-)
>>  create mode 100644 include/net/tcp.h
>>  create mode 100644 include/net/wget.h
>>  create mode 100644 net/tcp.c
>>  create mode 100644 net/wget.c
>>
>> --
>> 2.11.0
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> https://lists.denx.de/listinfo/u-boot


More information about the U-Boot mailing list