VSOCK: Introduce VM Sockets
authorAndy King <acking@vmware.com>
Wed, 6 Feb 2013 14:23:56 +0000 (14:23 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Feb 2013 00:41:08 +0000 (19:41 -0500)
commitd021c344051af91f42c5ba9fdedc176740cbd238
tree8c02cd94a59556da4b74823816e670dd007db72f
parentfd5023111cf720db890ef34f305ac5d427e690a0
VSOCK: Introduce VM Sockets

VM Sockets allows communication between virtual machines and the hypervisor.
User level applications both in a virtual machine and on the host can use the
VM Sockets API, which facilitates fast and efficient communication between
guest virtual machines and their host.  A socket address family, designed to be
compatible with UDP and TCP at the interface level, is provided.

Today, VM Sockets is used by various VMware Tools components inside the guest
for zero-config, network-less access to VMware host services.  In addition to
this, VMware's users are using VM Sockets for various applications, where
network access of the virtual machine is restricted or non-existent.  Examples
of this are VMs communicating with device proxies for proprietary hardware
running as host applications and automated testing of applications running
within virtual machines.

The VMware VM Sockets are similar to other socket types, like Berkeley UNIX
socket interface.  The VM Sockets module supports both connection-oriented
stream sockets like TCP, and connectionless datagram sockets like UDP. The VM
Sockets protocol family is defined as "AF_VSOCK" and the socket operations
split for SOCK_DGRAM and SOCK_STREAM.

For additional information about the use of VM Sockets, please refer to the
VM Sockets Programming Guide available at:

https://www.vmware.com/support/developer/vmci-sdk/

Signed-off-by: George Zhang <georgezhang@vmware.com>
Signed-off-by: Dmitry Torokhov <dtor@vmware.com>
Signed-off-by: Andy king <acking@vmware.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 files changed:
include/linux/socket.h
include/uapi/linux/vm_sockets.h [new file with mode: 0644]
net/Kconfig
net/Makefile
net/vmw_vsock/Kconfig [new file with mode: 0644]
net/vmw_vsock/Makefile [new file with mode: 0644]
net/vmw_vsock/af_vsock.c [new file with mode: 0644]
net/vmw_vsock/af_vsock.h [new file with mode: 0644]
net/vmw_vsock/vmci_transport.c [new file with mode: 0644]
net/vmw_vsock/vmci_transport.h [new file with mode: 0644]
net/vmw_vsock/vmci_transport_notify.c [new file with mode: 0644]
net/vmw_vsock/vmci_transport_notify.h [new file with mode: 0644]
net/vmw_vsock/vmci_transport_notify_qstate.c [new file with mode: 0644]
net/vmw_vsock/vsock_addr.c [new file with mode: 0644]
net/vmw_vsock/vsock_addr.h [new file with mode: 0644]
net/vmw_vsock/vsock_version.h [new file with mode: 0644]