Creates a core thread for the stack.
endchoice
+choice
+ prompt "Stack input mailbox size"
+ depends on LWIP_THREADS
+ default LWIP_STACKTHREAD_MBOX_SIZE_256
+ config LWIP_STACKTHREAD_MBOX_SIZE_32
+ bool "32"
+ config LWIP_STACKTHREAD_MBOX_SIZE_64
+ bool "64"
+ config LWIP_STACKTHREAD_MBOX_SIZE_128
+ bool "128"
+ config LWIP_STACKTHREAD_MBOX_SIZE_256
+ bool "256"
+ config LWIP_STACKTHREAD_MBOX_SIZE_512
+ bool "512"
+ config LWIP_STACKTHREAD_MBOX_SIZE_1024
+ bool "1024"
+ config LWIP_STACKTHREAD_MBOX_SIZE_2048
+ bool "2048"
+ help
+ This sets the size for the input mailbox that is used for receiving traffic from the network
+ interfaces.
+endchoice
+
+config LWIP_STACKTHREAD_MBOX_SIZE
+ int
+ default 32 if LWIP_STACKTHREAD_MBOX_SIZE_32
+ default 64 if LWIP_STACKTHREAD_MBOX_SIZE_64
+ default 128 if LWIP_STACKTHREAD_MBOX_SIZE_128
+ default 256 if LWIP_STACKTHREAD_MBOX_SIZE_256
+ default 512 if LWIP_STACKTHREAD_MBOX_SIZE_512
+ default 1024 if LWIP_STACKTHREAD_MBOX_SIZE_1024
+ default 2048 if LWIP_STACKTHREAD_MBOX_SIZE_2048
+
choice
prompt "Memory allocation mode"
default LWIP_HEAP
default 32
endif
-config LWIP_SOCKET
+menuconfig LWIP_SOCKET
+ depends on LWIP_THREADS && (LWIP_UDP || LWIP_TCP)
bool "Socket API"
select LIBVFSCORE
- depends on LWIP_THREADS && (LWIP_UDP || LWIP_TCP)
default y
if LWIP_SOCKET
default y
help
Enable ppoll() implementation.
+
+ config LWIP_UDP_RECVMBOX_FACTOR
+ int "Factor for UDP recvmbox"
+ depends on LWIP_UDP
+ range 1 5
+ default 2
+ help
+ How many times should the UDP recvmbox be bigger than the LWIP stackthread mbox size.
+ Default 2, maximum 5.
+
+ config LWIP_TCP_RECVMBOX_FACTOR
+ int "Factor for TCP recvmbox"
+ depends on LWIP_TCP
+ range 1 5
+ default 2
+ help
+ How many times should the TCP recvmbox be bigger than the LWIP stackthread mbox size.
+ Default 2, maximum 5.
endif
menuconfig LWIP_DEBUG
/* lightweight protection */
#define SYS_LIGHTWEIGHT_PROT 1
#define TCPIP_THREAD_NAME "lwip"
-#define TCPIP_MBOX_SIZE 256
+#define TCPIP_MBOX_SIZE CONFIG_LWIP_STACKTHREAD_MBOX_SIZE
+#define DEFAULT_UDP_RECVMBOX_SIZE ((CONFIG_LWIP_UDP_RECVMBOX_FACTOR) * (TCPIP_MBOX_SIZE))
+#define DEFAULT_TCP_RECVMBOX_SIZE ((CONFIG_LWIP_TCP_RECVMBOX_FACTOR) * (TCPIP_MBOX_SIZE))
+#define DEFAULT_ACCEPTMBOX_SIZE (TCPIP_MBOX_SIZE)
#endif /* CONFIG_LWIP_NOTHREADS */
/**
#include <uk/mbox.h>
#include <uk/arch/time.h>
#include <lwip/sys.h>
+#include <lwipopts.h>
#include <uk/essentials.h>
/* Creates an empty mailbox. */
err_t sys_mbox_new(sys_mbox_t *mbox, int size)
{
- if (size <= 0)
- size = 32;
+ if (size <= 0) {
+ LWIP_DEBUGF(SOCKETS_DEBUG,
+ ("Mailbox created with default size.\n"));
+ size = TCPIP_MBOX_SIZE;
+ }
UK_ASSERT(mbox);
mbox->a = uk_alloc_get_default();