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