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