13eeb7511SMark Peek.\" Copyright (c) 2018 VMware, Inc. 263a93856SMark Peek.\" 38c302b2eSMark Peek.\" SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0) 463a93856SMark Peek.Dd February 10, 2018 563a93856SMark Peek.Dt VMCI 4 663a93856SMark Peek.Os 763a93856SMark Peek.Sh NAME 863a93856SMark Peek.Nm vmci 963a93856SMark Peek.Nd VMware Virtual Machine Communication Interface 1063a93856SMark Peek.Sh SYNOPSIS 1163a93856SMark PeekTo compile this driver into the kernel, 1263a93856SMark Peekplace the following line in your 1363a93856SMark Peekkernel configuration file: 1463a93856SMark Peek.Bd -ragged -offset indent 1563a93856SMark Peek.Cd "device vmci" 1663a93856SMark Peek.Ed 1763a93856SMark Peek.Pp 1863a93856SMark PeekAlternatively, to load the driver as a 1963a93856SMark Peekmodule at boot time, place the following line in 2063a93856SMark Peek.Xr loader.conf 5 : 2163a93856SMark Peek.Bd -literal -offset indent 2263a93856SMark Peekif_vmci_load="YES" 2363a93856SMark Peek.Ed 2463a93856SMark Peek.Sh DESCRIPTION 2563a93856SMark PeekThe 2663a93856SMark Peek.Nm 2763a93856SMark Peekdriver provides support for the VMware Virtual Machine Communication Interface 2863a93856SMark Peek(VMCI) in virtual machines by VMware. 2963a93856SMark Peek.Pp 3063a93856SMark PeekVMCI allows virtual machines to communicate with host kernel modules and the 3163a93856SMark PeekVMware hypervisors. 3263a93856SMark PeekUser level applications in a virtual machine can use VMCI through vSockets 3363a93856SMark Peek(also known as VMCI Sockets and not included in this kernel module), a socket 3463a93856SMark Peekaddress family designed to be compatible with UDP and TCP at the interface 3563a93856SMark Peeklevel. 3663a93856SMark PeekToday, VMCI and vSockets are used by various VMware Tools components inside 3763a93856SMark Peekthe guest for zero-config, network-less access to VMware host services. 3863a93856SMark PeekIn addition to this, VMware's users are using vSockets for various 3963a93856SMark Peekapplications, where network access of the virtual machine is restricted 4063a93856SMark Peekor non-existent. 4163a93856SMark PeekExamples of this are VMs communicating with device proxies for proprietary 4263a93856SMark Peekhardware running as host applications and automated testing of applications 4363a93856SMark Peekrunning within virtual machines. 4463a93856SMark Peek.Pp 4563a93856SMark PeekIn a virtual machine, VMCI is exposed as a regular PCI device. 4663a93856SMark PeekThe primary communication mechanisms supported are a point-to-point 4763a93856SMark Peekbidirectional transport based on a pair of memory-mapped queues, and 4863a93856SMark Peekasynchronous notifications in the form of datagrams and doorbells. 4963a93856SMark PeekThese features are available to kernel level components such as vSockets 5063a93856SMark Peekthrough the VMCI kernel API. 5163a93856SMark PeekIn addition to this, the VMCI kernel API provides support for receiving 5263a93856SMark Peekevents related to the state of the VMCI communication channels, and the 5363a93856SMark Peekvirtual machine itself. 5463a93856SMark Peek.Sh SEE ALSO 55eb687a6eSJoel Dahl.Xr socket 2 , 56eb687a6eSJoel Dahl.Xr pci 9 5763a93856SMark Peek.Rs 5863a93856SMark Peek.%T "VMware vSockets Documentation" 5963a93856SMark Peek.%U https://www.vmware.com/support/developer/vmci-sdk/ 60*1adc28f5SChristian Brueffer.Re 6163a93856SMark Peek.Sh HISTORY 6263a93856SMark PeekThe 6363a93856SMark Peek.Nm 6463a93856SMark Peekdriver first appeared in 6563a93856SMark Peek.Fx 12.0 . 6663a93856SMark Peek.Sh AUTHORS 6763a93856SMark PeekThe 6863a93856SMark Peek.Nm 6963a93856SMark Peekdriver and man page were written by 7063a93856SMark Peek.An Vishnu Dasa Aq Mt vdasahar@gmail.com . 71