#
# 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
	---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_APP_ABM_NIC
	bool "NFP4000/NFP6000 Advanced buffer management NIC support"
	depends on NFP
	depends on NET_SWITCHDEV
	default y
	help
	  Enable driver support for Advanced buffer management NIC on NFP.
	  ABM NIC allows advanced configuration of queuing and scheduling
	  of packets, including ECN marking. Say Y, if you are planning to
	  use one of the NFP4000 and NFP6000 platforms which support this
	  functionality.
	  Code will be built into the nfp.ko driver.

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
