menu "Network stack"

menu "light weight TCP/IP stack"
config RT_USING_LWIP
	bool "Enable lwIP stack"
	default n

	if RT_USING_LWIP
		choice 
			prompt "lwIP version"
			default RT_USING_LWIP141
			help 
				Select the lwIP version

			config RT_USING_LWIP141
				bool "lwIP v1.4.1"

			config RT_USING_LWIP200
				bool "lwIP v2.0.0"
		endchoice

		config RT_LWIP_IGMP
			bool "IGMP protocol"
			default n

		config RT_LWIP_ICMP
			bool "ICMP protocol"
			default y

		config RT_LWIP_SNMP
			bool "SNMP protocol"
			default n

		config RT_LWIP_DNS
			bool "Enble DNS for name resolution"
			select RT_LWIP_UDP
			default y

		config RT_LWIP_DHCP
			bool "Enable alloc ip address through DHCP"
			select RT_LWIP_UDP
			default y

		config RT_LWIP_UDP
			bool "UDP protocol"
			default y

		config RT_LWIP_TCP
			bool "TCP protocol"
			default y

		config RT_LWIP_PPP
			bool "PPP protocol"
			default n

		config RT_LWIP_PPPOE
			bool "PPPoE protocol"
			default n

		config RT_LWIP_PPPOS
			bool "PPPoS protocol"
			default n

		config RT_LWIP_RAW_PCB_NUM
			int "the number of raw connection"
			default 4

		config RT_LWIP_UDP_PCB_NUM
			int "the number of UDP socket"
			default 4

		if RT_LWIP_TCP
		config RT_LWIP_TCP_PCB_NUM
			int "the number of TCP socket"
			default 4

		config RT_LWIP_TCP_SEG_NUM
			int "the number of TCP segment"
			default 4

		config RT_LWIP_TCP_SND_BUF
			int "the size of send buffer"
			default 8196

		config RT_LWIP_TCP_WND
			int "the size of TCP send window"
			default 8196
		endif

		config RT_LWIP_TCPTHREAD_PRIORITY
			int "the priority level value of lwIP thread"
			default 10

		config RT_LWIP_TCPTHREAD_MBOX_SIZE
			int "the number of mail in the lwIP thread mailbox"
			default 8

		config RT_LWIP_TCPTHREAD_STACKSIZE
			int "the stack size of lwIP thread"
			default 1024

		config RT_LWIP_REASSEMBLY_FRAG
			bool "Enable IP reassembly and frag"
			default n

		config SO_REUSE
			bool "Enable SO_REUSEADDR option"
			default n

		config LWIP_SO_RCVTIMEO
			bool "Enable receive timeout for sockets/netconns and SO_RCVTIMEO processing."
			default n

		config LWIP_SO_SNDTIMEO
			bool "Enable send timeout for sockets/netconns and SO_SNDTIMEO processing."
			default n

		config LWIP_SO_RCVBUF
			bool "Enable SO_RCVBUF processing"
			default n
	endif

endmenu

endmenu
