diff options
author | Harald Seiler <hws@denx.de> | 2020-05-14 10:37:05 +0200 |
---|---|---|
committer | Harald Seiler <hws@denx.de> | 2020-05-20 10:03:08 +0200 |
commit | ce9c2a594d64b403495f8824fe16dfc952a99531 (patch) | |
tree | dd8a73d805c15b6f52194680344775034c957c7c | |
parent | 9596a7d56f8e4b6653ae1735075b3fc95b268fe9 (diff) |
Make docker bind the TFTP server to the correct interface
With UDP, docker sometimes can't route UDP packets to the correct
address because the source address gets mangled [1]. This happens
indeterministically because by default the kernel uses some heuristics
to decide which interface to use. But in some rare circumstances, those
can fail and a wrong source address is used. This can be worked around
by explicitly binding to a concrete interface instead of 0.0.0.0.
[1]: https://github.com/moby/libnetwork/issues/1729
Signed-off-by: Harald Seiler <hws@denx.de>
-rwxr-xr-x | lavalab-gen.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lavalab-gen.py b/lavalab-gen.py index 96d25c1..19f76c0 100755 --- a/lavalab-gen.py +++ b/lavalab-gen.py @@ -558,7 +558,10 @@ def main(): if "use_tftp" in worker: use_tftp = worker["use_tftp"] if use_tftp: - dockcomp["services"][name]["ports"].append("69:69/udp") + if "dispatcher_ip" in worker: + dockcomp["services"][name]["ports"].append(worker["dispatcher_ip"] + ":69:69/udp") + else: + dockcomp["services"][name]["ports"].append("69:69/udp") use_docker = False if "use_docker" in worker: use_docker = worker["use_docker"] |