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