#
# Netronome device configuration
#

config NET_VENDOR_NETRONOME
	bool "Netronome(R) devices"
	default y
	---help---
	  If you have a Netronome(R) network (Ethernet) card or device, say Y.

	  Note that the answer to this question doesn't directly affect the
	  kernel: saying N will just cause the configurator to skip all
	  the questions about Netronome(R) cards. If you say Y, you will be
	  asked for your specific card in the following questions.

if NET_VENDOR_NETRONOME

config NFP
	tristate "Netronome(R) NFP4000/NFP6000 NIC driver"
	depends on PCI && PCI_MSI
	depends on VXLAN || VXLAN=n
	depends on MAY_USE_DEVLINK
	---help---
	  This driver supports the Netronome(R) NFP4000/NFP6000 based
	  cards working as a advanced Ethernet NIC.  It works with both
	  SR-IOV physical and virtual functions.

config NFP_APP_FLOWER
	bool "NFP4000/NFP6000 TC Flower offload support"
	depends on NFP
	depends on NET_SWITCHDEV
	default y
	---help---
	  Enable driver support for TC Flower offload on NFP4000 and NFP6000.
	  Say Y, if you are planning to make use of TC Flower offload
	  either directly, with Open vSwitch, or any other way.  Note that
	  TC Flower offload requires specific FW to work.

config NFP_DEBUG
	bool "Debug support for Netronome(R) NFP4000/NFP6000 NIC drivers"
	depends on NFP
	---help---
	  Enable extra sanity checks and debugfs support in
	  Netronome(R) NFP4000/NFP6000 NIC drivers.
	  Note: selecting this option may adversely impact
		performance.

endif
