Commit Graph

864 Commits

Author SHA1 Message Date
David Scott
1142bbb611 tap-vsockd: remove the Windows compatibility shim
Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 14:51:32 +01:00
David Scott
a493947c9c tap-vsockd: support daemonization via a --daemon arg
We daemonize after checking the command-line and binding/connecting
the socket and creating the tap device. Only the ethernet frame
processing happens afterwards.

This patch also includes a new well-known service GUID for the
VPN-proxy ethernet service.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 14:50:52 +01:00
David Scott
54001a1d06 tap-vsockd: support both connect() and accept()
Older versions of the Linux AF_HVSOCK can only accept() as they
don't allow connections to the parent partition. Support both
modes for now.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 14:49:55 +01:00
David Scott
6ad649b77b tap-vsockd: add a --pidfile <pidfile> argument
Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 14:49:55 +01:00
David Scott
f498bf69e1 tap-vsockd: exit non-zero if the server cannot start
Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 14:49:55 +01:00
David Scott
1103dc40e9 tap-vsockd: add basic logging support
By default we write to syslog. If the `--debug` argument is provided
then we also write to stderr.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 14:49:55 +01:00
David Scott
3fcf9b7e9b tap-vsockd: set the MAC address on the TAP device
The vmnet protocol expects to tell the client what the MAC address is.
This patch sets it on the TAP device.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 14:49:55 +01:00
David Scott
4fa693777f tap-vsockd: proxy between the hyper-v socket and the tap device
Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 14:49:55 +01:00
David Scott
20a92cfc3b tap-vsockd: open the tap device, connect the hvsock and negotiate
Signed-off-by: David Scott <dave@recoil.org>
2016-05-21 14:49:55 +01:00
David Scott
616b1c1f66 tap-vsockd: remove dead code and ASL references
Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 14:49:55 +01:00
David Scott
085969fa49 tap-vsockd: add the vmnet protocol definitions
Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 14:49:55 +01:00
David Scott
8669c643cf tap-vsockd: add a function to open a TAP device
Signed-off-by: David Scott <dave@recoil.org>
2016-05-21 14:49:55 +01:00
David Scott
292b94a1f4 tap-vsockd: add skeleton with hyper-v sockets
Signed-off-by: David Scott <dave@recoil.org>
2016-05-21 14:49:50 +01:00
David Scott
a19630c1f4 9pmount-vsock: retry the mount if it fails
The client on the host may time-out the connection attempt after we have
accepted it. If the mount fails, sleep for 1s and try again.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 13:56:40 +01:00
David Scott
1dfe82981a 9pmount-vsock: require <tag> and <path> arguments for the 9P mount
The program can now be used to mount more filesystems than the database
one.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 13:56:36 +01:00
David Scott
d7fc50c777 9pmount-vsock: remove Win32 compatibility code
There's no point having an ability to compile this code on
Windows, so simplify it.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 13:56:36 +01:00
David Scott
0a28aa11b3 9pmount-vsock: only try to accept 1 connection
The database has a reconnect loop, and we don't particularly want
to accept more than one of its connections per mount.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 13:56:36 +01:00
David Scott
bf005cdd1e 9pmount-vsock: make a connection then execv /bin/mount
The magic options are
  -o trans=fd,rfdno=<FD>,wfdno=<FD>

Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 13:56:36 +01:00
David Scott
9e353247cd 9pmount-vsock: add initial skeleton
Signed-off-by: David Scott <dave.scott@docker.com>
2016-05-21 13:56:36 +01:00
Rolf Neugebauer
1a1ba74f48 kernel: update VMBus fix patch from MSFT
Also rebase patches to 4.4.10 (no code changes)

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-21 11:28:02 +01:00
Justin Cormack
788e3a0756 Merge pull request #141 from justincormack/kernelup
update Linux to 4.4.11 stable release
2016-05-20 10:22:33 -07:00
Justin Cormack
a907297f2d update Linux to 4.4.11 stable release
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-05-20 10:21:52 -07:00
Rolf Neugebauer
0b61a4785e Merge pull request #140 from rneugeba/revert-126
moby: revert #126. setup-disk -m depends on syslinux for now
2016-05-20 09:49:35 +01:00
Rolf Neugebauer
a29e63d660 moby: revert #126. setup-disk -m depends on syslinux for now
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-20 09:42:46 +01:00
Rolf Neugebauer
ea0c773db6 Merge pull request #139 from rneugeba/moby-fs
kernel: enable VFAT and ISO9660 Filesystems in the kernel
2016-05-19 14:35:09 +01:00
Dave Scott
3ae0db1280 Merge pull request #137 from rneugeba/vsock-up
Add (optional) Hyper-V socket support to vsudd and diagnosis
2016-05-19 06:09:51 -07:00
Rolf Neugebauer
ebb5604d71 vsudd: use vendor'ed hvsock/vsock modules
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 13:54:48 +01:00
Rolf Neugebauer
6c2056055c proxy: use share vendored go packages
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 13:54:48 +01:00
Rolf Neugebauer
245fa32d28 diagnostics: add support for hyper-V sockets
Use the new shared vendor'ed packages

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 13:54:48 +01:00
Rolf Neugebauer
cdfc424823 go: add the logrus package used by the proxy
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 11:49:49 +01:00
Rolf Neugebauer
2e14f1c2a9 go: vendor shared hvsock/vsock packages
These packages will be shared by a number of utilities
so vendoring them in a shared place.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 11:49:49 +01:00
Rolf Neugebauer
56ab75386f kernel: enable VFAT and ISO9660 Filesystems in the kernel
DOS filesystems are handy for embedded development. ISO FS was
requested/suggested somewhere on a forum.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-19 10:35:53 +01:00
Justin Cormack
92f6148566 Merge pull request #136 from dave-tucker/proxy_2
Only watch proxy if keys are in the db
2016-05-18 07:47:44 -05:00
Dave Tucker
50412a6769 Only watch proxy if keys are in the db
My last change fails if the proxy keys aren't in the db...

Signed-off-by: Dave Tucker <dt@docker.com>
2016-05-18 11:23:02 +01:00
Justin Cormack
8977f9b358 Merge pull request #135 from justincormack/buildbase
use build-base not alpine-sdk as smaller
2016-05-17 10:01:32 -05:00
Justin Cormack
a66704fdc6 use build-base not alpine-sdk as smaller
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-05-17 10:00:58 -05:00
Justin Cormack
e3633f9d8e Merge pull request #128 from dave-tucker/proxy
Write Proxy Settings in Docker Init Script
2016-05-17 08:03:29 -05:00
Justin Cormack
a4027a5ce9 Merge pull request #133 from rneugeba/vmbus-up
kernel: cherry-pick more VMBus patches, fix for yet another kernel crash
2016-05-17 08:01:20 -05:00
Justin Cormack
2fefa65a6a Merge pull request #134 from ncopa/kernel-4.4.10
update to kernel 4.4.10, aufs 20160516
2016-05-17 08:00:59 -05:00
Natanael Copa
9ae4438222 update to kernel 4.4.10, aufs 20160516
Signed-off-by: Natanael Copa <natanael.copa@docker.com>
2016-05-17 12:55:24 +02:00
Rolf Neugebauer
a720403140 kernel: cherry-pick more VMBus patches, fix for yet another kernel crash
These are most of the changes to channel.c and channel_mgmt.c from upstream.

They are needed to apply a proposed patch to fix yet another kernel crash
we reported. This patch is also included.

With these patches applied many thousand connections with random data and up
to 10 concurrent connections are sustained without kernel crashes.

This patch also updates the core Hyper-V socket support to v11 (which
also obsoletes the previous patch added to work around a kernel bug)

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-17 11:06:07 +01:00
Dave Tucker
354c62a6df Make hupper watch for proxy changes too
Signed-off-by: Dave Tucker <dt@docker.com>
2016-05-17 09:04:56 +01:00
Dave Tucker
3a02f608d5 Set proxy setting in Docker init script
Signed-off-by: Dave Tucker <dt@docker.com>
2016-05-16 12:07:01 +01:00
Justin Cormack
4c1c51d723 Merge pull request #129 from rneugeba/hvsock-fix
kernel: Fix Null pointer de-reference in af_hvsock code
2016-05-15 13:01:36 +01:00
Rolf Neugebauer
3a00fe3849 kernel: Fix Null pointer de-reference in af_hvsock code
The Hyper-V socket patch has a bug which was triggered by a race condition when
the client connected and then immediately closed the connection before the
server would call accept(). This caused a kernel crash.

This patch was discussed with Dexuan Cui <decui@microsoft.com>, the original
author of the Hyper-V socket support.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-15 12:59:55 +01:00
Justin Cormack
fa11d05a7a Merge pull request #127 from rneugeba/hvsockup
kernel: Update Hyper-V socket patch to v10
2016-05-13 16:57:02 +01:00
Rolf Neugebauer
2c98dd61c5 kernel: Update Hyper-V socket patch to v10
This required pulling in the Qualcom IPC patches as those changed
the socket family enumeration.

All other patches should be the same.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-05-13 16:14:19 +01:00
Justin Cormack
a92a4b9ce3 Merge pull request #126 from justincormack/nosyslinux
We do not seem to need syslinux in the image, and it brings in libpng…
2016-05-11 15:00:30 +01:00
Justin Cormack
1c85e91989 We do not seem to need syslinux in the image, and it brings in libpng and things we do not need
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-05-11 14:56:58 +01:00
Justin Cormack
724ab13668 Merge pull request #125 from justincormack/caps
use capabilities not privileged for building ISO
2016-05-11 10:02:46 +01:00