1*63a93856SMark Peek.\" Copyright (c) 2018 VMware, Inc. All Rights Reserved. 2*63a93856SMark Peek.\" 3*63a93856SMark Peek.\" SPDX-License-Identifier: (BSD-2-Clause AND GPL-2.0) 4*63a93856SMark Peek.\" 5*63a93856SMark Peek.\" $FreeBSD$ 6*63a93856SMark Peek.Dd February 10, 2018 7*63a93856SMark Peek.Dt VMCI 4 8*63a93856SMark Peek.Os 9*63a93856SMark Peek.Sh NAME 10*63a93856SMark Peek.Nm vmci 11*63a93856SMark Peek.Nd VMware Virtual Machine Communication Interface 12*63a93856SMark Peek.Sh SYNOPSIS 13*63a93856SMark PeekTo compile this driver into the kernel, 14*63a93856SMark Peekplace the following line in your 15*63a93856SMark Peekkernel configuration file: 16*63a93856SMark Peek.Bd -ragged -offset indent 17*63a93856SMark Peek.Cd "device vmci" 18*63a93856SMark Peek.Ed 19*63a93856SMark Peek.Pp 20*63a93856SMark PeekAlternatively, to load the driver as a 21*63a93856SMark Peekmodule at boot time, place the following line in 22*63a93856SMark Peek.Xr loader.conf 5 : 23*63a93856SMark Peek.Bd -literal -offset indent 24*63a93856SMark Peekif_vmci_load="YES" 25*63a93856SMark Peek.Ed 26*63a93856SMark Peek.Sh DESCRIPTION 27*63a93856SMark PeekThe 28*63a93856SMark Peek.Nm 29*63a93856SMark Peekdriver provides support for the VMware Virtual Machine Communication Interface 30*63a93856SMark Peek(VMCI) in virtual machines by VMware. 31*63a93856SMark Peek.Pp 32*63a93856SMark PeekVMCI allows virtual machines to communicate with host kernel modules and the 33*63a93856SMark PeekVMware hypervisors. 34*63a93856SMark PeekUser level applications in a virtual machine can use VMCI through vSockets 35*63a93856SMark Peek(also known as VMCI Sockets and not included in this kernel module), a socket 36*63a93856SMark Peekaddress family designed to be compatible with UDP and TCP at the interface 37*63a93856SMark Peeklevel. 38*63a93856SMark PeekToday, VMCI and vSockets are used by various VMware Tools components inside 39*63a93856SMark Peekthe guest for zero-config, network-less access to VMware host services. 40*63a93856SMark PeekIn addition to this, VMware's users are using vSockets for various 41*63a93856SMark Peekapplications, where network access of the virtual machine is restricted 42*63a93856SMark Peekor non-existent. 43*63a93856SMark PeekExamples of this are VMs communicating with device proxies for proprietary 44*63a93856SMark Peekhardware running as host applications and automated testing of applications 45*63a93856SMark Peekrunning within virtual machines. 46*63a93856SMark Peek.Pp 47*63a93856SMark PeekIn a virtual machine, VMCI is exposed as a regular PCI device. 48*63a93856SMark PeekThe primary communication mechanisms supported are a point-to-point 49*63a93856SMark Peekbidirectional transport based on a pair of memory-mapped queues, and 50*63a93856SMark Peekasynchronous notifications in the form of datagrams and doorbells. 51*63a93856SMark PeekThese features are available to kernel level components such as vSockets 52*63a93856SMark Peekthrough the VMCI kernel API. 53*63a93856SMark PeekIn addition to this, the VMCI kernel API provides support for receiving 54*63a93856SMark Peekevents related to the state of the VMCI communication channels, and the 55*63a93856SMark Peekvirtual machine itself. 56*63a93856SMark Peek.Sh SEE ALSO 57*63a93856SMark Peek.Xr pci 9 , 58*63a93856SMark Peek.Xr socket 2 59*63a93856SMark Peek.Rs 60*63a93856SMark Peek.%T "VMware vSockets Documentation" 61*63a93856SMark Peek.%U https://www.vmware.com/support/developer/vmci-sdk/ 62*63a93856SMark Peek.Sh HISTORY 63*63a93856SMark PeekThe 64*63a93856SMark Peek.Nm 65*63a93856SMark Peekdriver first appeared in 66*63a93856SMark Peek.Fx 12.0 . 67*63a93856SMark Peek.Sh AUTHORS 68*63a93856SMark PeekThe 69*63a93856SMark Peek.Nm 70*63a93856SMark Peekdriver and man page were written by 71*63a93856SMark Peek.An Vishnu Dasa Aq Mt vdasahar@gmail.com . 72