# SPDX-License-Identifier: GPL-2.0-only
#
# Vsock protocol
#

config VSOCKETS
	tristate "Virtual Socket protocol"
	help
	  Virtual Socket Protocol is a socket protocol similar to TCP/IP
	  allowing communication between Virtual Machines and hypervisor
	  or host.

	  You should also select one or more hypervisor-specific transports
	  below.

	  To compile this driver as a module, choose M here: the module
	  will be called vsock. If unsure, say N.

config VSOCKETS_DIAG
	tristate "Virtual Sockets monitoring interface"
	depends on VSOCKETS
	default y
	help
	  Support for PF_VSOCK sockets monitoring interface used by the ss tool.
	  If unsure, say Y.

	  Enable this module so userspace applications can query open sockets.

config VSOCKETS_LOOPBACK
	tristate "Virtual Sockets loopback transport"
	depends on VSOCKETS
	default y
	select VIRTIO_VSOCKETS_COMMON
	help
	  This module implements a loopback transport for Virtual Sockets,
	  using vmw_vsock_virtio_transport_common.

	  To compile this driver as a module, choose M here: the module
	  will be called vsock_loopback. If unsure, say N.

config VMWARE_VMCI_VSOCKETS
	tristate "VMware VMCI transport for Virtual Sockets"
	depends on VSOCKETS && VMWARE_VMCI
	help
	  This module implements a VMCI transport for Virtual Sockets.

	  Enable this transport if your Virtual Machine runs on a VMware
	  hypervisor.

	  To compile this driver as a module, choose M here: the module
	  will be called vmw_vsock_vmci_transport. If unsure, say N.

config VIRTIO_VSOCKETS
	tristate "virtio transport for Virtual Sockets"
	depends on VSOCKETS && VIRTIO
	select VIRTIO_VSOCKETS_COMMON
	help
	  This module implements a virtio transport for Virtual Sockets.

	  Enable this transport if your Virtual Machine host supports Virtual
	  Sockets over virtio.

	  To compile this driver as a module, choose M here: the module will be
	  called vmw_vsock_virtio_transport. If unsure, say N.

config VIRTIO_VSOCKETS_COMMON
	tristate
	help
	  This option is selected by any driver which needs to access
	  the virtio_vsock.  The module will be called
	  vmw_vsock_virtio_transport_common.

config HYPERV_VSOCKETS
	tristate "Hyper-V transport for Virtual Sockets"
	depends on VSOCKETS && HYPERV
	help
	  This module implements a Hyper-V transport for Virtual Sockets.

	  Enable this transport if your Virtual Machine host supports Virtual
	  Sockets over Hyper-V VMBus.

	  To compile this driver as a module, choose M here: the module will be
	  called hv_sock. If unsure, say N.