config MV_ETH_PORTS_NUM
	int "Number of Marvell Giga Ethernet controllers"
	depends on MV_ETH_LEGACY
	default 1 

menu "Network Interface Configuration"

config  OVERRIDE_ETH_CMDLINE
	bool "Override command line definitions for SoC Networking"
	default n
	---help---
	Choosing this option will override MAC address and MTU definition of kernel command line.
	The GbE driver will use the setting from kernel config

config  MV_ETH_0_MTU
	int "Giga port #0 MTU value"
	depends on (MV_ETH_PORTS_NUM != 0)
 	default 1500
        ---help---
	Default MTU value for Marvell Giga port #0

config  MV_ETH_0_MACADDR
        string "Giga port #0 MAC Address"
        depends on (MV_ETH_PORTS_NUM != 0)
        default "00:00:00:00:00:80"
        ---help---
        Default MAC address for Marvell Giga port #0 

config  MV_ETH_1_MTU
        int "Giga port #1 MTU value"
        depends on (MV_ETH_PORTS_NUM != 0) && (MV_ETH_PORTS_NUM != 1)
        default 1500
        ---help---
	Default MTU value for Marvell Giga port #1

config  MV_ETH_1_MACADDR
        string "Giga port #1 MAC Address"
        depends on (MV_ETH_PORTS_NUM != 0) && (MV_ETH_PORTS_NUM != 1)
        default "00:00:00:00:00:81"
        ---help---
        Default MAC address for Marvell Giga port #1

config  MV_ETH_2_MTU
        int "Giga port #2 MTU value"
        depends on (MV_ETH_PORTS_NUM != 0) && (MV_ETH_PORTS_NUM != 1) && (MV_ETH_PORTS_NUM != 2)
        default 1500
        ---help---
        Default MTU value for Marvell Giga port #2

config  MV_ETH_2_MACADDR
        string "Giga port #2 MAC Address"
        depends on (MV_ETH_PORTS_NUM != 0) && (MV_ETH_PORTS_NUM != 1) && (MV_ETH_PORTS_NUM != 2)
        default "00:00:00:00:00:82"
        ---help---
        Default MAC address for Marvell Giga port #2

config  MV_ETH_3_MTU
        int "Giga port #3 MTU value"
        depends on (MV_ETH_PORTS_NUM != 0) && (MV_ETH_PORTS_NUM != 1) && (MV_ETH_PORTS_NUM != 2) && (MV_ETH_PORTS_NUM != 3)
        default 1500
        ---help---
        Default MTU value for Marvell Giga port #3

config  MV_ETH_3_MACADDR
        string "Giga port #3 MAC Address"
        depends on (MV_ETH_PORTS_NUM != 0) && (MV_ETH_PORTS_NUM != 1) && (MV_ETH_PORTS_NUM != 2) && (MV_ETH_PORTS_NUM != 3)
        default "00:00:00:00:00:83"
        ---help---
        Default MAC address for Marvell Giga port #3

endmenu

menu "Rx/Tx Queue Configuration"

config  MV_ETH_RXQ
        int "Number of RX queues"
        default 1
        ---help---
          Multiple RX queue support.

config  MV_ETH_TXQ
        int "Number of TX queues"
        default 1
        ---help---
          Multiple TX queue support.

config MV_ETH_NUM_OF_RX_DESCR
	int "Number of Rx descriptors"
	depends on (MV_ETH_PORTS_NUM != 0)
	default 128
        ---help---
	The number of Rx descriptors in each Rx queue.

config MV_ETH_NUM_OF_TX_DESCR
	int "Number of Tx descriptors"
	depends on (MV_ETH_PORTS_NUM != 0)
	default 532
        ---help---
	The number of Tx descriptors in each Tx queue.

endmenu

menu "TCP/UDP Offloading"

config  MV_ETH_TSO
        bool "TSO Support for Marvell network interface"
	default y
        ---help---
        Adds TSO support for TCP segmentation offload on Marvell network interface.

config  MV_ETH_UFO
        bool "UFO Support for Marvell network interface"
        ---help---
        Adds UFO support for transmit UDP buffers larger than MTU size on 
        Marvell network interface.
        UFO stands for UDP Fragmentation Offload
endmenu

menu "Control and Statistics"

config  MV_ETH_TOOL
	bool "Support ethtool controls"
	default y
	---help---
	Support kernel's SIOCETHTOOL for ethtool utility

config  MV_ETH_PROC
	bool "Support eth proc FS "
	default y
	---help---
	  Use mv_eth_tool to control Marvell network interface driver.

config  MV_ETH_STATS_ERROR
        bool "Collect error statistics"
	---help---
	Marvell network interface driver collect minimal number of statistics. 
	Only for error conditions. Can be displayed using mv_eth_tool.

config  MV_ETH_STATS_INFO
        bool "Collect event statistics"
        ---help---
	Marvell network interface driver collect event statistics. 
	Provide more information about driver functionality and almost doesn't 
	effect performance. Can be displayed using mv_eth_tool.

config  MV_ETH_STATS_DEBUG
        bool "Collect debug statistics"
        ---help---
	Marvell network interface driver collect a lot of statistics. 
	Used for Debug mode. Decrease performance. Can be displayed using mv_eth_tool.

config  MV_LINUX_COUNTERS_DISABLE
	bool "Disable collection of SNMP statistics and Netfilter Contract statistics"
	default n
	---help---
	Disable collection of SNMP statistics and Netfilter Contract statistics to improve performance.

endmenu

menu "Advanced Features"

config  MV_ETH_TIMER_PERIOD
        int "Periodical timer period"
        default 10
        ---help---
          Periodical timer period for clenup in [msec].

config	MV_ETH_SKB_REUSE
	bool "Try to reuse SKB"
	default y
	---help---
	  Reuse SKB from TX to RX

config MV_ETH_SKB_REUSE_DEF
        depends on MV_ETH_SKB_REUSE
        int "Default value for SKB reuse:  0 - disable, 1 - enable"
        default 0
        ---help---

config  NET_SKB_HEADROOM
        int "SKB headroom size"
        default 64
        ---help---
          Customize SKB headroom size. Must be power of 2.

config  NET_SKB_RECYCLE
        bool "Try to recycle SKB"
        default y
        ---help---
          Recycle SKB via callback in 'struct sk_buff'

config NET_SKB_RECYCLE_DEF
        depends on NET_SKB_RECYCLE
        int "Default value for SKB recycle:  0 - disable, 1 - enable"
        default 0
        ---help---

config  MV_ETH_NFP
        tristate "Use Network Fast Processing (NFP)"
	default y
        ---help---
        Choosing this option will include NFP support in the image.

config MV_ETH_NFP_DEF
        depends on MV_ETH_NFP
        int "Default value for NFP:  0 - disable, 1 - enable"
        default 0
        ---help---

config MV_ETH_NFP_AGING_TIMER
        int "NFP aging timer interval"
        depends on MV_ETH_NFP
        default 15
        ---help---
        The NFP aging mechanism timer interval. If unsure, leave default value.

config  MV_ETH_NFP_TOS
        bool "Support ToS on NFP routing path"
	depends on MV_ETH_NFP && IP_NF_TARGET_TOS
        ---help---
        Choosing this option will include NFP ToS support in the image.

config MV_ETH_NFP_FIB
        bool "Support NFP routing"
        default y
        depends on MV_ETH_NFP
        ---help---
        Choosing this option will enable NFP routing support.

config MV_ETH_NFP_NAT
        bool "Support NFP NAT"
        depends on MV_ETH_NFP_FIB && (NF_CONNTRACK_ENABLED || NF_CONNTRACK_IPV4)
        ---help---
        Choosing this option will enable NFP NAT support.

config MV_ETH_NFP_FDB
	bool "Support NFP Bridging"
	depends on MV_ETH_NFP && BRIDGE
	default n
	 ---help---
	Choosing this option will enable NFP Bridging.

config MV_ETH_NFP_PPP
        bool "Support NFP PPPoE"
        depends on MV_ETH_NFP && PPPOE
        default n
         ---help---
        Choosing this option will enable NFP PPPoE protocol.

config MV_ETH_NFP_SEC
	bool "Support NFP Ipsec"
        depends on MV_ETH_NFP && !MV_CESA_OCF && !MV_CESA_TEST
        default n
         ---help---
        Choosing this option will enable NFP IPsec protocol.

config	MV_NFP_SEC_5TUPLE_KEY_SUPPORT 
	bool "Support 5 tuple key search match"
        depends on MV_ETH_NFP_SEC
        default y
         ---help---
        Choosing this option will enable 5 tuple key search match support.

config MV_ETH_NFP_SEC_HUB
	bool "Support hub and spoke vpn"
	depends on MV_ETH_NFP_SEC
	default n
	---help---
	Choosing this option will enable hub-and-spoke vpn with NFP.

config  MV_NFP_STATS
        bool "Collect NFP statistics"
	depends on MV_ETH_NFP
        default n
        ---help---
        Collect NFP statistics. Can be displayed using mv_eth_tool.

endmenu

config MV_GATEWAY
        bool "Gateway support"
	depends on MV_ETH_LEGACY
        ---help---
	Choose this option to support Gigabit Ethernet Controller connected to 
        on-board QuarterDeck switch family

if MV_GATEWAY

menu "Gateway Interface Configuration"

config  MV_GTW_CONFIG
	string "Network interface configuration"
	default "(00:11:66:11:66:11,0)(00:22:77:22:77:22,1:2:3:4),mtu=1500"
	---help---
	 Set the network interface configuration. For each interface, define the interface 
	 name, MAC address and participating ports, at the end (optionally) set the 
         interfaces MTU. For example, the default configuration defines two interfaces, 
         eth0 and eth1, and sets the MTU to 1500.

endmenu

menu "Gateway Features"

config  MV_GTW_IGMP
        bool "L2 IGMP Snooping support"
        default y
        ---help---
          Support L2 IGMP snooping at the switch level, i.e. directing L3 routed multicast
          stream to the specific L2 port which originally received an IGMP Join message,
          instead of fluding all VLAN ports.

config  MV_GTW_LINK_STATUS
	bool "Link status change indications"
	default y
	---help---
	  Support Phy link status change indications.

endmenu

endif # MV_GATEWAY
