blob: 5a2910adbfaee04d2d13bc882443f95d14be444d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
.. index:: tftp (filesystem)
.. _filesystems_tftp:
TFTP filesystem
===============
barebox has read/write support for the Trivial File Transfer Protocol (TFTP,
`RFC1350 <https://tools.ietf.org/html/rfc1350>`_).
TFTP is not designed as a filesystem. It does not have support for listing
directories. This means a :ref:`ls <command_ls>` to a TFTP-mounted path will
show an empty directory. Nevertheless, the files are there.
Example:
.. code-block:: console
barebox:/ mount -t tftp 192.168.23.4 /mnt/tftp
In addition to the TFTP filesystem implementation, barebox does also have a
:ref:`tftp command <command_tftp>`.
RFC 7440 "windowsize" support
-----------------------------
barebox supports the tftp windowsize option for downloading files. It
is not implemented for uploads.
Generally, this option greatly improves the download speed (factors
4-30 are not uncommon). But choosing a too large windowsize can have
the opposite effect. Performance depends on:
- the network infrastructure: when the tftp server sends files with
1Gb/s but there are components in the network (switches or the
target nic) which support only 100 Mb/s, packets will be dropped.
The lower the internal buffers of the bottleneck components, the
lower the optimal window size.
In practice (iMX8MP on a Netgear GS108Ev3 with a port configured to
100 Mb/s) it had to be reduced to
.. code-block:: console
global tftp.windowsize=26
for example.
- the target network driver: datagrams from server will arive faster
than they can be processed and must be buffered internally. For
example, the `fec-imx` driver reserves place for
.. code-block:: c
#define FEC_RBD_NUM 64
packets before they are dropped
- partially the workload: copying downloaded files to ram will be
faster than burning them into flash. Latter can consume internal
buffers quicker so that windowsize might be reduced
|