When the module is loaded, /dev/vsock will be created with restricted permissions. Access to /dev/vsock is required to use VMCI sockets, so it's recommended that permissions be relaxed via a udev policy file. For reference, the VMware Tools init script changes the permissions of /dev/vsock to 666.
Normally, issuing a socket(2) system call will automatically load the kernel module providing that socket family, but as the vsock module is out-of-tree, there is no in-tree socket family reservation for VMCI sockets. Before sockets are created, userspace applications must call VMCISock_GetAFValue (defined in vmci_sockets.h) which will instruct the vsock module to dynamically acquire a socket family reservation from the kernel. This function is implemented via ioctl(2) into the vsock module, so the vsock module must be manually loaded by the user (perhaps using /etc/modules).
The vmci_sockets.h header should be installed in a system-wide location. We recommend /usr/include/vmci.
The vsock module depends on symbols from the vmci module, and so the vmci module must be loaded first.
This manual page was put together from homepage materials by Daniel Baumann <daniel@debian.org>, for the Debian project (but may be used by others).