#
# For a description of the syntax of this configuration file,
# see kconfig-language at https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt
#

menu "LwIP options"

menuconfig NET_IPv4
	bool "IPv4 support"
	default y
	---help---
		Build in support for IPv4.

source "net/lwip/configs/ipv4/Kconfig"

source "net/lwip/configs/socket/Kconfig"

menuconfig NET_ARP
	bool "ARP Support"
	default y
	depends on NET_ETHERNET && NET_IPv4
	---help---
		This setting is currently overridden by logic in include/nuttx/net

source "net/lwip/configs/arp/Kconfig"


menuconfig NET_UDP
	bool "UDP Support"
	depends on NET_IPv4
	default y
	---help---
		UDP support on or off

source "net/lwip/configs/udp/Kconfig"


menuconfig NET_TCP
	bool "TCP Support"
	depends on NET_IPv4
	default y
	---help---
		TCP support on or off

source "net/lwip/configs/tcp/Kconfig"


menuconfig NET_ICMP
	bool "ICMP Support"
	default n
	---help---
		Enable minimal ICMP support. Includes built-in support
		for sending replies to received ECHO (ping) requests.

source "net/lwip/configs/icmp/Kconfig"


menuconfig NET_LWIP_IGMP
	bool "IGMP Support"
	depends on NET_IPv4	
	default n

if NET_LWIP_IGMP

config NET_LWIP_MEMP_NUM_IGMP_GROUP
	int "Maximum number of IGMP group"
	default 8
	---help---
		Number of multicast groups whose network interfaces
		can be members at the same time
endif #NET_LWIP_IGMP


source "net/lwip/configs/mbox/Kconfig"
source "net/lwip/configs/mem/Kconfig"
source "net/lwip/configs/sys/Kconfig"
source "net/lwip/configs/debug/Kconfig"
source "net/lwip/configs/stats/Kconfig"

config NET_LWIP_VLAN
	bool "Support VLAN"
	default n
	---help---
		support receiving ethernet packets with VLAN header.
		Additionally, you can define ETHARP_VLAN_CHECK to an u16_t VLAN ID to check.
		If VLAN_CHECK is defined, only VLAN-traffic for this VLAN is accepted.

config NET_LWIP_VLAN_CHECK
	bool "Check VLAN ID for receiviing packet"
	default n
	depends on NET_LWIP_VLAN

config NET_LWIP_VLAN_CHECK_ID
	int "VLAN ID for receiviing packet"
	default 1
	depends on NET_LWIP_VLAN_CHECK

config NET_LWIP_LOOPBACK_INTERFACE
	bool "Support loopback interface"
	default n
	---help---
		Support loop interface (127.0.0.1).


################# SLIP #######################

menuconfig NET_LWIP_SLIP_INTERFACE
	bool "Support serial line IP interface"
	default n

if NET_LWIP_SLIP_INTERFACE

config NET_LWIP_SLIPIF_THREAD_NAME
	string "The name assigned to the slipif_loop thread"
	default "slipif_loop"

config NET_LWIP_SLIPIF_THREAD_STACKSIZE
	int "The stack size used by the slipif_loop thread"
	default 1024

config NET_LWIP_SLIPIF_THREAD_PRIO
	int "The priority assigned to the slipif_loop thread"
	default 100

endif #NET_LWIP_SLIP_INTERFACE


################# PPP #######################

menuconfig NET_LWIP_PPP_SUPPORT
	bool "Enable PPP"
	default n

if NET_LWIP_PPP_SUPPORT

config NET_LWIP_PPP_SESSIONS
	int "Max PPP sessions"
	default 1

config NET_LWIP_PAP_SUPPORT
	bool "Support PAP"
	default n

config NET_LWIP_CHAP_SUPPORT
	bool "Support CHAP"
	default n

config NET_LWIP_VJ_SUPPORT
	bool "Support VJ header compression"
	default n

config NET_LWIP_MD5_SUPPORT
	bool "Support MD5"
	default n

config NET_LWIP_PPP_MTU
	int "PPP MTU size in bytes"
	default 1500

config NET_LWIP_PPP_THREAD_NAME
	string "The name assigned to the pppInputThread"
	default "pppInputThread"

config NET_LWIP_PPP_THREAD_STACKSIZE
	int "The stack size used by the pppInputThread"
	default 1024

config NET_LWIP_PPP_THREAD_PRIO
	int "The priority assigned to the pppInputThread"
	default 100

endif #NET_LWIP_PPP_SUPPORT


################# SNMP #######################

menuconfig NET_LWIP_SNMP
	bool "Enable SNMP"
	default n
	depends on NET_UDP

if NET_LWIP_SNMP

config NET_LWIP_SNMP_CONCURRENT_REQUESTS
	int "Number of concurrent requests"
	default 1
	---help---
		Number of concurrent requests the module will allow.
		At least one request buffer is required.
		Does not have to be changed unless external MIBs answer
		request asynchronously

config NET_LWIP_SNMP_TRAP_DESTINATIONS
	int "Number of trap destinations"
	default 1	
	---help---
		Number of trap destinations. At least one trap destination
		is required

config NET_LWIP_SNMP_PRIVATE_MIB
	bool "Supports Private MIB"
	default n
	---help---
		When using a private MIB, you have to create a file 'private_mib.h'
		that contains a 'struct mib_array_node mib_private' which contains your MIB.

config NET_LWIP_SNMP_MAX_TREE_DEPTH
	int "The maximum depth of the SNMP tree"
	default 15
	---help---
		The maximum depth of the SNMP tree. With private MIBs enabled,
		this depends on your MIB! This affects the size of MEMP_SNMP_VALUE elements.

endif #NET_LWIP_SNMP

endmenu #LwIP options
