This patch is the first patch for adding LwIP configuration.
And adds for config menu for LwIP memory options.
Change-Id: Ief52429e422e41aebb546e4c56322f4a45fe8244
Signed-off-by: EunBong Song <eunb.song@samsung.com>
CONFIG_NET_LWIP=y
#
-# LwIP DHCP options
+# LwIP options
#
-CONFIG_NET_LWIP_DHCPC=y
-CONFIG_NET_LWIP_DHCPS=y
+
+#
+# LwIP memory options
+#
+CONFIG_NET_LWIP_MEM_ALIGNMENT=4
+CONFIG_NET_LWIP_MEM_SIZE=153600
+CONFIG_NET_LWIP_MEMP_OVERFLOW_CHECK=1
+CONFIG_NET_LWIP_MEMP_SANITY_CHECK=y
+CONFIG_NET_LWIP_MEMP_NUM_PBUF=50
+CONFIG_NET_LWIP_MEMP_NUM_RAW_PCB=4
+CONFIG_NET_LWIP_MEMP_NUM_UDP_PCB=8
+CONFIG_NET_LWIP_MEMP_NUM_TCP_PCB=8
+CONFIG_NET_LWIP_MEMP_NUM_TCP_PCB_LISTEN=8
+CONFIG_NET_LWIP_MEMP_NUM_TCP_SEG=80
+CONFIG_NET_LWIP_MEMP_NUM_REASSDATA=5
+CONFIG_NET_LWIP_MEMP_NUM_FRAG_PBUF=15
+CONFIG_NET_LWIP_MEMP_NUM_ARP_QUEUE=30
CONFIG_NET_SECURITY_TLS=y
# CONFIG_TLS_WITH_SSS is not set
CONFIG_NET_NOINTS=y
CONFIG_MTD_PARTITION_NAMES=y
CONFIG_MTD_PROGMEM=y
CONFIG_MTD_CONFIG=y
-# CONFIG_MTD_BYTE_WRITE is not set
#
# MTD Configurations
# CONFIG_EXAMPLES_TLS_SELFTEST is not set
# CONFIG_EXAMPLES_TLS_SERVER is not set
# CONFIG_EXAMPLES_WAKAAMA_CLIENT is not set
-# CONFIG_EXAMPLES_WEBCLIENT is not set
# CONFIG_EXAMPLES_WORKQUEUE is not set
# CONFIG_EXAMPLES_ARTIK_DEMO is not set
CONFIG_EXAMPLES_SLSIWIFI=y
CONFIG_SLSI_WIFI_DEFAULT_WLAN_TX_POWER=30
CONFIG_SCSC_WLAN=y
CONFIG_SCSC_CORE=y
+# CONFIG_NETUTILS_MQTT is not set
#
# Platform-specific Support
#define MEMP_NUM_TCPIP_INPKT 16
/* ---------- Memory options ---------- */
+#if !defined(CONFIG_NET_LWIP_MEM_ALIGNMENT)
+#error "CONFIG_NET_LWIP_MEM_ALIGNMENT is undefined"
+#else
+#define MEM_ALIGNMENT CONFIG_NET_LWIP_MEM_ALIGNMENT
+#endif
+
+#if !defined(CONFIG_NET_LWIP_MEM_SIZE)
+#error "CONFIG_NET_LWIP_MEM_SIZE is undefined"
+#else
+#define MEM_SIZE CONFIG_NET_LWIP_MEM_SIZE
+#endif
+
+#ifdef CONFIG_NET_LWIP_MEMP_OVERFLOW_CHECK
+#define MEMP_OVERFLOW_CHECK CONFIG_NET_LWIP_MEMP_OVERFLOW_CHECK
+#else
+#define MEMP_OVERFLOW_CHECK 0
+#endif
+
+#ifdef CONFIG_NET_LWIP_MEMP_SANITY_CHECK
+#define MEMP_SANITY_CHECK 1
+#else
+#define MEMP_SANITY_CHECK 0
+#endif
+
+#define MEMP_MEM_MALLOC 1
+
+#ifdef CONFIG_NET_LWIP_MEMP_NUM_PBUF
+#define MEMP_NUM_PBUF CONFIG_NET_LWIP_MEMP_NUM_PBUF
+#endif
+
+#ifdef CONFIG_NET_LWIP_MEMP_NUM_RAW_PCB
+#define MEMP_NUM_RAW_PCB CONFIG_NET_LWIP_MEMP_NUM_RAW_PCB
+#endif
+
+#ifdef CONFIG_NET_LWIP_MEMP_NUM_UDP_PCB
+#define MEMP_NUM_UDP_PCB CONFIG_NET_LWIP_MEMP_NUM_UDP_PCB
+#endif
-/* MEM_ALIGNMENT: should be set to the alignment of the CPU for which
- lwIP is compiled. 4 byte alignment -> define MEM_ALIGNMENT to 4, 2
- byte alignment -> define MEM_ALIGNMENT to 2. */
-#define MEM_ALIGNMENT 4
-/* MEM_SIZE: the size of the heap memory. If the application will send
-a lot of data that needs to be copied, this should be set high. */
-#define MEM_SIZE (150*1024)
+#ifdef CONFIG_NET_LWIP_MEMP_NUM_TCP_PCB
+#define MEMP_NUM_TCP_PCB CONFIG_NET_LWIP_MEMP_NUM_TCP_PCB
+#endif
+
+#ifdef CONFIG_NET_LWIP_MEMP_NUM_TCP_PCB_LISTEN
+#define MEMP_NUM_TCP_PCB_LISTEN CONFIG_NET_LWIP_MEMP_NUM_TCP_PCB_LISTEN
+#endif
-/* MEMP_NUM_PBUF: the number of memp struct pbufs. If the application
- sends a lot of data out of ROM (or other static memory), this
- should be set high. */
-#define MEMP_NUM_PBUF 50
+#ifdef CONFIG_NET_LWIP_MEMP_NUM_TCP_SEG
+#define MEMP_NUM_TCP_SEG CONFIG_NET_LWIP_MEMP_NUM_TCP_SEG
+#endif
-/* MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One
- per active UDP "connection". */
-#define MEMP_NUM_UDP_PCB 8
+#ifdef CONFIG_NET_LWIP_MEMP_NUM_REASSDATA
+#define MEMP_NUM_REASSDATA CONFIG_NET_LWIP_MEMP_NUM_REASSDATA
+#endif
-/* MEMP_NUM_TCP_PCB: the number of simulatenously active TCP
- connections. */
-#define MEMP_NUM_TCP_PCB 8
+#ifdef CONFIG_NET_LWIP_MEMP_NUM_FRAG_PBUF
+#define MEMP_NUM_FRAG_PBUF CONFIG_NET_LWIP_MEMP_NUM_FRAG_PBUF
+#endif
-/* MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP
- connections. */
-#define MEMP_NUM_TCP_PCB_LISTEN 8
+#ifdef CONFIG_NET_LWIP_MEMP_NUM_ARP_QUEUE
+#define MEMP_NUM_ARP_QUEUE CONFIG_NET_LWIP_MEMP_NUM_ARP_QUEUE
+#endif
+/* ---------- Memory options ---------- */
-/* MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP
- segments. */
-#define MEMP_NUM_TCP_SEG (2 * TCP_SND_QUEUELEN)
/* ---------- Pbuf options ---------- */
/* PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */
#define PBUF_POOL_SIZE 50
-/*
-* MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator.
-* Especially useful with MEM_LIBC_MALLOC but handle with care regarding execution
-* speed and usage from interrupts!
-*/
-#define MEMP_MEM_MALLOC 1
-#define MEMP_OVERFLOW_CHECK 1
-#define MEMP_SANITY_CHECK 1
/*
------------------------------------
endchoice
+if NET_LWIP
+source net/lwip/Kconfig
+endif #NET_LWIP
+
config NET_SECURITY_TLS
bool "TLS Support"
default n
--- /dev/null
+#
+# 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"
+
+menu "LwIP memory options"
+
+config NET_LWIP_MEM_ALIGNMENT
+ int "Memory alignment size"
+ default 4
+ ---help---
+ should be set to the alignment of the CPU
+
+config NET_LWIP_MEM_SIZE
+ int "Size of LwIP memory pool"
+ default 1600
+ ---help---
+ the size of the heap memory. If the application will send
+ a lot of data that needs to be copied, this should be set high.
+
+config NET_LWIP_MEMP_OVERFLOW_CHECK
+ int "Memory pool overflow protection"
+ default 0
+ ---help---
+ memp overflow protection reserves a configurable amount of bytes
+ before and after each memp element in every pool and fills
+ it with a prominent default value.
+ if 0, no checking
+ if 1, checks each element when it is freed
+ if 2, checks each element in every pool every time memp_malloc()
+ or memp_free() is called (useful but slow!)
+
+config NET_LWIP_MEMP_SANITY_CHECK
+ bool "Memory pool sanity check"
+ default n
+ ---help---
+ run a sanity check after each memp_free() to make sure that
+ there are no cycles in the linked lists.
+
+config NET_LWIP_MEMP_NUM_PBUF
+ int "Number of Pbufs"
+ default 16
+ ---help---
+ The number of memp struct pbufs (used for PBUF_ROM and PBUF_REF).
+ If the application sends a lot of data out of ROM (or other static memory),
+ this should be set high.
+
+config NET_LWIP_MEMP_NUM_RAW_PCB
+ int "Number of raw connection PCBs"
+ default 4
+ depends on NET_LWIP_RAW
+ ---help---
+ Number of raw connection PCBs
+
+config NET_LWIP_MEMP_NUM_UDP_PCB
+ int "Number of udp connection PCBs"
+ default 4
+ depends on NET_LWIP_UDP
+ ---help---
+ Number of udp connection PCBs
+
+config NET_LWIP_MEMP_NUM_TCP_PCB
+ int "Number of tcp connection PCBs"
+ default 5
+ depends on NET_LWIP_TCP
+ ---help---
+ Number of tcp connection PCBs
+
+config NET_LWIP_MEMP_NUM_TCP_PCB_LISTEN
+ int "Number of listening tcp connections"
+ default 5
+ depends on NET_LWIP_TCP
+ ---help---
+ Number of simultaneously queued TCP segments
+
+config NET_LWIP_MEMP_NUM_TCP_SEG
+ int "Number of simultaneously queued TCP segments"
+ default 16
+ depends on NET_LWIP_TCP
+ ---help---
+ Number of simultaneously queued TCP segments
+
+config NET_LWIP_MEMP_NUM_REASSDATA
+ int "Number of IP reassemble packets"
+ default 5
+ ---help---
+ Number of IP fragments simultaneously sent
+ for reassembly (whole packets, not fragments!)
+
+config NET_LWIP_MEMP_NUM_FRAG_PBUF
+ int "Number of IP fragments packets"
+ default 15
+ ---help---
+ Number of IP fragments simultaneously sent
+ (fragments, not whole packets!).
+
+config NET_LWIP_MEMP_NUM_ARP_QUEUE
+ int "Maximum number of waiting arp request packet"
+ default 30
+ ---help---
+ Number of simultaneously queued outgoing packets (pbufs)
+ that are waiting for an ARP request (to resolve their
+ destination address) to finish.
+
+endmenu #LwIP memory options
+endmenu #LwIP options
\ No newline at end of file