1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<table class="head">
<tr>
<td class="head-ltitle">VMCI(4)</td>
<td class="head-vol">Device Drivers Manual</td>
<td class="head-rtitle">VMCI(4)</td>
</tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">vmci</code> — <span class="Nd">VMware
Virtual Machine Communication Interface</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp">To compile this driver into the kernel, place the following line
in your kernel configuration file:</p>
<div class="Bd Pp Bd-indent"><code class="Cd">device vmci</code></div>
<p class="Pp">Alternatively, to load the driver as a module at boot time, place
the following line in <a class="Xr">loader.conf(5)</a>:</p>
<div class="Bd Pp Bd-indent Li">
<pre>if_vmci_load="YES"</pre>
</div>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Nm">vmci</code> driver provides support for the
VMware Virtual Machine Communication Interface (VMCI) in virtual machines by
VMware.</p>
<p class="Pp">VMCI allows virtual machines to communicate with host kernel
modules and the VMware hypervisors. User level applications in a virtual
machine can use VMCI through vSockets (also known as VMCI Sockets and not
included in this kernel module), a socket address family designed to be
compatible with UDP and TCP at the interface level. Today, VMCI and vSockets
are used by various VMware Tools components inside the guest for
zero-config, network-less access to VMware host services. In addition to
this, VMware's users are using vSockets for various applications, where
network access of the virtual machine is restricted or non-existent.
Examples of this are VMs communicating with device proxies for proprietary
hardware running as host applications and automated testing of applications
running within virtual machines.</p>
<p class="Pp">In a virtual machine, VMCI is exposed as a regular PCI device. The
primary communication mechanisms supported are a point-to-point
bidirectional transport based on a pair of memory-mapped queues, and
asynchronous notifications in the form of datagrams and doorbells. These
features are available to kernel level components such as vSockets through
the VMCI kernel API. In addition to this, the VMCI kernel API provides
support for receiving events related to the state of the VMCI communication
channels, and the virtual machine itself.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
ALSO</a></h1>
<p class="Pp"><a class="Xr">socket(2)</a>, <a class="Xr">pci(9)</a></p>
<p class="Pp"><cite class="Rs"><span class="RsT">VMware vSockets
Documentation</span>,
<a class="RsU" href="https://www.vmware.com/support/developer/vmci-sdk/">https://www.vmware.com/support/developer/vmci-sdk/</a>.</cite></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">The <code class="Nm">vmci</code> driver first appeared in
<span class="Ux">FreeBSD 12.0</span>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp">The <code class="Nm">vmci</code> driver and man page were written
by <span class="An">Vishnu Dasa</span>
<<a class="Mt" href="mailto:vdasahar@gmail.com">vdasahar@gmail.com</a>>.</p>
</section>
</div>
<table class="foot">
<tr>
<td class="foot-date">February 10, 2018</td>
<td class="foot-os">FreeBSD 15.0</td>
</tr>
</table>
|