On a Hyper-V system we can only register one listening endpoint (with
a GUID), so we need to accept connections, read a header and then
start the proxy.
If the binary has argv[0] == "proxy-vsockd" then run this new frontend.
Signed-off-by: David Scott <dave.scott@docker.com>
The tap-vsockd service is started from eth1's pre-up script.
On the Mac: the bind of the AF_HYPERV socket fails, and eth1 is skipped.
On Windows: if there is no database then eth1 is skipped.
On Windows: if the database has network=native then eth1 is brought up.
Signed-off-by: David Scott <dave.scott@docker.com>
This will make it easier to add a vsock interface as well as a regular
TCP/IP one.
As a side-effect, the server is now able to handle more than one concurrent
request!
Signed-off-by: David Scott <dave.scott@docker.com>
This is a bit ugly as we copied and then modified the chronyd init.d
script as shipped in the package.
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
- Don't start hv_fcopy_daemon. It seems to exit and we are not
using it anyway. Also, remove it from the initrd
- Move hv_kvp_daemon and hv_vss_daemon to start earlier
(before networking and docker being started)
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
LLMNR is the Windows equivalent of mDNS.
Import the LLMNR daemon from https://github.com/tklauser/llmnrd
It needed some small modification to compile cleanly on Moby
LLMNRD is only started when running inside a Hyper-V VM
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
These are WIP taken from git@github.com:stefanha/linux.git#vsock
(==4c9d2a6be1c6, using "cherry-pick -x") and correspond to RFC v5 of the
frontend patches posted in
http://thread.gmane.org/gmane.linux.kernel.virtualization/27455
There is no corresponding spec proposal update yet, but this set of patches
correspond (roughly) to addressing the feedback on v4 of the spec proposal
http://thread.gmane.org/gmane.comp.emulators.virtio.devel/1062.
kernel_config.arm modifications copied from x86, not tested.
Added /etc/kernel-patches/ directory to the image to be consumed by the
licensing.
Signed-off-by: Ian Campbell <ian.campbell@docker.com>
A client like `pinata diagnose` can do the equivalent of:
nc 192.168.64.2 62374 > foo.tar
and find `foo.tar` contains
- the output of `/usr/bin/diagnostics`
- `iptables -L`
- `netstat -an`
- `ps uax`
- `docker ps`
- `dig docker.com`
- `wget http://docker.com`
This will allow us to diagnose various in-VM faults, without having
to ask the user to access the console and run commands.
Signed-off-by: David Scott <dave.scott@docker.com>
The busybox adduser and addgroup commands are ignored by docker,
as it avoids symlinks, but they are not compatible so this is
kind of a good idea.
See https://github.com/docker/docker/blob/master/pkg/idtools/usergroupadd_linux.go
However, these do not yet deal with creating mapping ranges in /etc/subuid and
/etc/subgid, so initially we provide a set that match the default docker name
so at least docker daemon --userns-remap=default should work.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
The daemons allow proper shutdown of a VM, heartbeats,
inquiring and setting the network configuratio etc etc.
They are only started with running in a Hyper-V VM
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>