Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ae0078fc authored by Dexuan Cui's avatar Dexuan Cui Committed by David S. Miller
Browse files

hv_sock: implements Hyper-V transport for Virtual Sockets (AF_VSOCK)

Hyper-V Sockets (hv_sock) supplies a byte-stream based communication
mechanism between the host and the guest. It uses VMBus ringbuffer as the
transportation layer.

With hv_sock, applications between the host (Windows 10, Windows Server
2016 or newer) and the guest can talk with each other using the traditional
socket APIs.

More info about Hyper-V Sockets is available here:

"Make your own integration services":
https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service



The patch implements the necessary support in Linux guest by introducing a new
vsock transport for AF_VSOCK.

Signed-off-by: default avatarDexuan Cui <decui@microsoft.com>
Cc: K. Y. Srinivasan <kys@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: Stephen Hemminger <sthemmin@microsoft.com>
Cc: Andy King <acking@vmware.com>
Cc: Dmitry Torokhov <dtor@vmware.com>
Cc: George Zhang <georgezhang@vmware.com>
Cc: Jorgen Hansen <jhansen@vmware.com>
Cc: Reilly Grant <grantr@vmware.com>
Cc: Asias He <asias@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: Cathy Avery <cavery@redhat.com>
Cc: Rolf Neugebauer <rolf.neugebauer@docker.com>
Cc: Marcelo Cerri <marcelo.cerri@canonical.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7cadf2cb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -6286,6 +6286,7 @@ F: drivers/net/hyperv/
F:	drivers/scsi/storvsc_drv.c
F:	drivers/uio/uio_hv_generic.c
F:	drivers/video/fbdev/hyperv_fb.c
F:	net/vmw_vsock/hyperv_transport.c
F:	include/linux/hyperv.h
F:	tools/hv/
F:	Documentation/ABI/stable/sysfs-bus-vmbus
+12 −0
Original line number Diff line number Diff line
@@ -46,3 +46,15 @@ config VIRTIO_VSOCKETS_COMMON
	  This option is selected by any driver which needs to access
	  the virtio_vsock.  The module will be called
	  vmw_vsock_virtio_transport_common.

config HYPERV_VSOCKETS
	tristate "Hyper-V transport for Virtual Sockets"
	depends on VSOCKETS && HYPERV
	help
	  This module implements a Hyper-V transport for Virtual Sockets.

	  Enable this transport if your Virtual Machine host supports Virtual
	  Sockets over Hyper-V VMBus.

	  To compile this driver as a module, choose M here: the module will be
	  called hv_sock. If unsure, say N.
+3 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ obj-$(CONFIG_VSOCKETS) += vsock.o
obj-$(CONFIG_VMWARE_VMCI_VSOCKETS) += vmw_vsock_vmci_transport.o
obj-$(CONFIG_VIRTIO_VSOCKETS) += vmw_vsock_virtio_transport.o
obj-$(CONFIG_VIRTIO_VSOCKETS_COMMON) += vmw_vsock_virtio_transport_common.o
obj-$(CONFIG_HYPERV_VSOCKETS) += hv_sock.o

vsock-y += af_vsock.o af_vsock_tap.o vsock_addr.o

@@ -11,3 +12,5 @@ vmw_vsock_vmci_transport-y += vmci_transport.o vmci_transport_notify.o \
vmw_vsock_virtio_transport-y += virtio_transport.o

vmw_vsock_virtio_transport_common-y += virtio_transport_common.o

hv_sock-y += hyperv_transport.o
+904 −0

File added.

Preview size limit exceeded, changes collapsed.