# SPDX-License-Identifier: GPL-2.0-only
#
# Open vSwitch
#

config OPENVSWITCH
	tristate "Open vSwitch"
	depends on INET
	depends on !NF_CONNTRACK || \
		   (NF_CONNTRACK && ((!NF_DEFRAG_IPV6 || NF_DEFRAG_IPV6) && \
				     (!NF_NAT || NF_NAT) && \
				     (!NETFILTER_CONNCOUNT || NETFILTER_CONNCOUNT)))
	depends on PSAMPLE || !PSAMPLE
	select MPLS
	select NET_CRC32C
	select NET_MPLS_GSO
	select DST_CACHE
	select NET_NSH
	select NF_CONNTRACK_OVS if NF_CONNTRACK
	select NF_NAT_OVS if NF_NAT
	help
	  Open vSwitch is a multilayer Ethernet switch targeted at virtualized
	  environments.  In addition to supporting a variety of features
	  expected in a traditional hardware switch, it enables fine-grained
	  programmatic extension and flow-based control of the network.  This
	  control is useful in a wide variety of applications but is
	  particularly important in multi-server virtualization deployments,
	  which are often characterized by highly dynamic endpoints and the
	  need to maintain logical abstractions for multiple tenants.

	  The Open vSwitch datapath provides an in-kernel fast path for packet
	  forwarding.  It is complemented by a userspace daemon, ovs-vswitchd,
	  which is able to accept configuration from a variety of sources and
	  translate it into packet processing rules.

	  See http://openvswitch.org for more information and userspace
	  utilities.

	  To compile this code as a module, choose M here: the module will be
	  called openvswitch.

	  If unsure, say N.
