xref: /freebsd/share/man/man4/vmci.4 (revision 63a938566d524836885917d95bd491aa4400b181)
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