#ifndef VBOX_LWIP_OPTS_H_
#define VBOX_LWIP_OPTS_H_
* to be done before redefining any of the functions therein. */
* defined as well, but it's not the case. So include it manually. */
#ifdef RT_OS_OS2
#endif
/** Make lwIP use the libc malloc, or more precisely (see below) the IPRT
* memory allocation functions. */
/** Set proper memory alignment. */
#if HC_ARCH_BITS == 64
#else
#endif
/* IP */
/** Increase maximum TCP window size. */
/** Increase TCP maximum segment size. */
/** Enable queueing of out-of-order segments. */
/** TCP sender buffer space (bytes). */
/* TCP sender buffer space (pbufs). This must be at least = 2 *
TCP_SND_BUF/TCP_MSS for things to work. */
/* 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.
NB: This is for PBUF_ROM and PBUF_REF pbufs only!
Number of PBUF_POOL pbufs is controlled by PBUF_POOL_SIZE that,
somewhat confusingly, breaks MEMP_NUM_* pattern.
PBUF_RAM pbufs are allocated with mem_malloc (with MEM_LIBC_MALLOC
set to 1 this is just system malloc), not memp_malloc. */
/* MEMP_NUM_MLD6_GROUP: Maximum number of IPv6 multicast groups that
can be joined.
We need to be able to join solicited node multicast for each
address (potentially different) and two groups for DHCP6. All
routers multicast is hardcoded in ip6.c and does not require
explicit joining. Provide also for a few extra groups just in
case. */
/* MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP
segments. */
/* MEMP_NUM_TCP_PCB: the number of simulatenously active TCP
connections. */
/* MEMP_NUM_TCPIP_MSG_*: the number of struct tcpip_msg, which is used
for sequential API communication and incoming packets. Used in
/* MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One
per active UDP "connection". */
/* Pbuf options */
/* PBUF_POOL_SIZE: the number of buffers in the pbuf pool.
This is only for PBUF_POOL pbufs, primarily used by netif drivers.
This should have been named with the MEMP_NUM_ prefix (cf.
MEMP_NUM_PBUF for PBUF_ROM and PBUF_REF) as it controls the size of
yet another memp_malloc() pool. */
/* PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool.
Use default that is based on TCP_MSS and PBUF_LINK_HLEN. */
/** Turn on support for lightweight critical region protection. Leaving this
* off uses synchronization code in pbuf.c which is totally polluted with
* races. All the other lwip source files would fall back to semaphore-based
* synchronization, but pbuf.c is just broken, leading to incorrect allocation
* and as a result to assertions due to buffers being double freed. */
/** Attempt to get rid of htons etc. macro issues. */
#define LWIP_TCPIP_CORE_LOCKING_INPUT 0
#define LWIP_TCPIP_CORE_LOCKING 0
#define ARP_PROXY 0
#define LWIP_COMPAT_SOCKETS 0
#define LWIP_IPV6_FORWARD 0
#define LWIP_ND6_PROXY 0
/* IPv6 autoconfig we don't need in proxy, but it required for very seldom cases
* iSCSI over intnet with IPv6
*/
#if LWIP_IPV6_FORWARD /* otherwise use the default from lwip/opt.h */
#define LWIP_IPV6_DUP_DETECT_ATTEMPTS 0
#endif
/**
* aka Slirp mode.
*/
#define LWIP_CONNECTION_PROXY 0
#define IP_FORWARD 0
/* MEMP_NUM_SYS_TIMEOUT: the number of simultaneously active
timeouts. */
/* this is required for IPv6 and IGMP needs */
/* Debugging stuff. */
#ifdef DEBUG
# define LWIP_DEBUG
# include "lwip-log.h"
#endif /* DEBUG */
/* printf formatter definitions */
/* Redirect libc memory alloc functions to IPRT. */
#include "lwip-namespace.h"
#endif