ReactOS  0.4.12-dev-720-g6accaef
opt.h File Reference
#include "lwipopts.h"
#include "lwip/debug.h"
Include dependency graph for opt.h:

Go to the source code of this file.


#define NO_SYS   0
#define NO_SYS_NO_TIMERS   0
#define MEMCPY(dst, src, len)   memcpy(dst,src,len)
#define SMEMCPY(dst, src, len)   memcpy(dst,src,len)
#define MEM_LIBC_MALLOC   0
#define MEMP_MEM_MALLOC   0
#define MEM_ALIGNMENT   1
#define MEM_SIZE   1600
#define MEM_USE_POOLS   0
#define MEMP_NUM_PBUF   16
#define MEMP_NUM_RAW_PCB   4
#define MEMP_NUM_UDP_PCB   4
#define MEMP_NUM_TCP_PCB   5
#define MEMP_NUM_TCP_SEG   16
#define MEMP_NUM_FRAG_PBUF   15
#define MEMP_NUM_ARP_QUEUE   30
#define MEMP_NUM_NETBUF   2
#define MEMP_NUM_NETCONN   4
#define MEMP_NUM_SNMP_NODE   50
#define MEMP_NUM_NETDB   1
#define PBUF_POOL_SIZE   16
#define LWIP_ARP   1
#define ARP_TABLE_SIZE   10
#define ARP_QUEUEING   0
#define ETH_PAD_SIZE   0
#define IP_FORWARD   0
#define IP_REASSEMBLY   1
#define IP_FRAG   1
#define IP_REASS_MAXAGE   3
#define IP_REASS_MAX_PBUFS   10
#define IP_DEFAULT_TTL   255
#define IP_SOF_BROADCAST   0
#define LWIP_ICMP   1
#define LWIP_RAW   1
#define LWIP_DHCP   0
#define LWIP_AUTOIP   0
#define LWIP_SNMP   0
#define SNMP_PRIVATE_MIB   0
#define SNMP_MAX_TREE_DEPTH   15
#define LWIP_IGMP   0
#define LWIP_DNS   0
#define DNS_TABLE_SIZE   4
#define DNS_MAX_NAME_LENGTH   256
#define DNS_MAX_SERVERS   2
#define DNS_MSG_SIZE   512
#define LWIP_UDP   1
#define LWIP_UDPLITE   0
#define LWIP_TCP   1
#define TCP_WND   (4 * TCP_MSS)
#define TCP_MAXRTX   12
#define TCP_SYNMAXRTX   6
#define TCP_MSS   536
#define TCP_SND_BUF   (2 * TCP_MSS)
#define TCP_SND_QUEUELEN   ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
#define TCP_SNDLOWAT   LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1)
#define LWIP_EVENT_API   0
#define PBUF_LINK_HLEN   (14 + ETH_PAD_SIZE)
#define LWIP_NETIF_API   0
#define LWIP_HAVE_LOOPIF   0
#define LWIP_HAVE_SLIPIF   0
#define TCPIP_THREAD_NAME   "tcpip_thread"
#define TCPIP_MBOX_SIZE   0
#define SLIPIF_THREAD_NAME   "slipif_loop"
#define PPP_THREAD_NAME   "pppInputThread"
#define PPP_THREAD_PRIO   1
#define LWIP_NETCONN   1
#define LWIP_SOCKET   1
#define LWIP_SO_SNDTIMEO   0
#define LWIP_SO_RCVTIMEO   0
#define LWIP_SO_RCVBUF   0
#define SO_REUSE   0
#define SO_REUSE_RXTOALL   0
#define LWIP_STATS   1
#define LINK_STATS   1
#define IP_STATS   1
#define ICMP_STATS   1
#define UDP_STATS   (LWIP_UDP)
#define TCP_STATS   (LWIP_TCP)
#define MEM_STATS   ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
#define SYS_STATS   (NO_SYS == 0)
#define PPP_SUPPORT   0
#define PPPOE_SUPPORT   0
#define CHECKSUM_GEN_IP   1
#define CHECKSUM_GEN_UDP   1
#define CHECKSUM_GEN_TCP   1

Detailed Description

lwIP Options Configuration

Definition in file opt.h.

Macro Definition Documentation



API_LIB_DEBUG: Enable debugging in api_lib.c.

Definition at line 1919 of file opt.h.



API_MSG_DEBUG: Enable debugging in api_msg.c.

Definition at line 1926 of file opt.h.


#define ARP_QUEUEING   0

ARP_QUEUEING==1: Multiple outgoing packets are queued during hardware address resolution. By default, only the most recent packet is queued per IP address. This is sufficient for most protocols and mainly reduces TCP connection startup time. Set this to 1 if you know your application sends more than one packet in a row to an IP address that is not in the ARP cache.

Definition at line 444 of file opt.h.


#define ARP_TABLE_SIZE   10

ARP_TABLE_SIZE: Number of active MAC-IP address pairs cached.

Definition at line 433 of file opt.h.



AUTOIP_DEBUG: Enable debugging in autoip.c.

Definition at line 2109 of file opt.h.



CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets.

Definition at line 1819 of file opt.h.



CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets.

Definition at line 1833 of file opt.h.



CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets.

Definition at line 1826 of file opt.h.



CHECKSUM_GEN_ICMP==1: Generate checksums in software for outgoing ICMP packets.

Definition at line 1812 of file opt.h.


#define CHECKSUM_GEN_IP   1

CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets.

Definition at line 1791 of file opt.h.


#define CHECKSUM_GEN_TCP   1

CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets.

Definition at line 1805 of file opt.h.


#define CHECKSUM_GEN_UDP   1

CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets.

Definition at line 1798 of file opt.h.



DEFAULT_ACCEPTMBOX_SIZE: The mailbox size for the incoming connections. The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the acceptmbox is created.

Definition at line 1379 of file opt.h.



DEFAULT_RAW_RECVMBOX_SIZE: The mailbox size for the incoming packets on a NETCONN_RAW. The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.

Definition at line 1352 of file opt.h.



DEFAULT_TCP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a NETCONN_TCP. The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.

Definition at line 1370 of file opt.h.



DEFAULT_THREAD_NAME: The name assigned to any other lwIP thread.

Definition at line 1325 of file opt.h.



DEFAULT_THREAD_PRIO: The priority assigned to any other lwIP thread. The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

Definition at line 1343 of file opt.h.



DEFAULT_THREAD_STACKSIZE: The stack size used by any other lwIP thread. The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

Definition at line 1334 of file opt.h.



DEFAULT_UDP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a NETCONN_UDP. The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.

Definition at line 1361 of file opt.h.



DHCP_DEBUG: Enable debugging in dhcp.c.

Definition at line 2102 of file opt.h.



DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address.

Definition at line 689 of file opt.h.



DNS_DEBUG: Enable debugging for DNS.

Definition at line 2130 of file opt.h.



DNS do a name checking between the query and the response.

Definition at line 838 of file opt.h.



DNS_LOCAL_HOSTLIST: Implements a local host-to-address list. If enabled, you have to define define DNS_LOCAL_HOSTLIST_INIT {{"host1", 0x123}, {"host2", 0x234}} (an array of structs name/address, where address is an u32_t in network byte order).

Instead, you can also use an external function: define DNS_LOOKUP_LOCAL_EXTERN(x) extern u32_t my_lookup_function(const char *name) that returns the IP address or INADDR_NONE if not found.

Definition at line 857 of file opt.h.



If this is turned on, the local host-list can be dynamically changed at runtime.

Definition at line 863 of file opt.h.


#define DNS_MAX_NAME_LENGTH   256

DNS maximum host name length supported in the name table.

Definition at line 828 of file opt.h.


#define DNS_MAX_SERVERS   2

The maximum of DNS servers

Definition at line 833 of file opt.h.


#define DNS_MSG_SIZE   512

DNS message max. size. Default value is RFC compliant.

Definition at line 843 of file opt.h.


#define DNS_TABLE_SIZE   4

DNS maximum number of entries to maintain locally.

Definition at line 823 of file opt.h.


#define ETH_PAD_SIZE   0

ETH_PAD_SIZE: number of bytes added before the ethernet header to ensure alignment of payload after that header. Since the header is 14 bytes long, without this padding e.g. addresses in the IP header will not be aligned on a 32-bit boundary, so setting this to 2 can speed up 32-bit-platforms.

Definition at line 486 of file opt.h.



ETHARP_DEBUG: Enable debugging in etharp.c.

Definition at line 1898 of file opt.h.



ETHARP_STATS==1: Enable etharp stats.

Definition at line 1533 of file opt.h.



ETHARP_SUPPORT_STATIC_ENTRIES==1: enable code to support static ARP table entries (using etharp_add_static_entry/etharp_remove_static_entry).

Definition at line 493 of file opt.h.



ETHARP_SUPPORT_VLAN==1: support receiving ethernet packets with VLAN header. Additionally, you can define ETHARP_VLAN_CHECK to an u16_t VLAN ID to check. If ETHARP_VLAN_CHECK is defined, only VLAN-traffic for this VLAN is accepted. If ETHARP_VLAN_CHECK is not defined, all traffic is accepted. Alternatively, define a function/define ETHARP_VLAN_CHECK_FN(eth_hdr, vlan) that returns 1 to accept a packet or 0 to drop a packet.

Definition at line 470 of file opt.h.



ETHARP_TRUST_IP_MAC==1: Incoming IP packets cause the ARP table to be updated with the source MAC and IP addresses supplied in the packet. You may want to disable this if you do not trust LAN peers to have the correct addresses, or as a limited approach to attempt to handle spoofing. If disabled, lwIP will need to make a new ARP request if the peer is not already in the ARP table, adding a little latency. The peer is in the ARP table if it requested our address before. Also notice that this slows down input processing of every IP packet!

Definition at line 458 of file opt.h.



ICMP_DEBUG: Enable debugging in icmp.c.

Definition at line 1940 of file opt.h.


#define ICMP_STATS   1

ICMP_STATS==1: Enable ICMP stats.

Definition at line 1555 of file opt.h.



ICMP_TTL: Default value for Time-To-Live used by ICMP packets.

Definition at line 637 of file opt.h.



IGMP_DEBUG: Enable debugging in igmp.c.

Definition at line 1947 of file opt.h.



IGMP_STATS==1: Enable IGMP stats.

Definition at line 1562 of file opt.h.



INET_DEBUG: Enable debugging in inet.c.

Definition at line 1954 of file opt.h.



IP_DEBUG: Enable debugging for IP.

Definition at line 1961 of file opt.h.


#define IP_DEFAULT_TTL   255

IP_FRAG_MAX_MTU: Assumed max MTU on any interface for IP frag buffer (requires IP_FRAG_USES_STATIC_BUF==1)IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers.

Definition at line 580 of file opt.h.


#define IP_FORWARD   0

IP_FORWARD==1: Enables the ability to forward IP packets across network interfaces. If you are going to run lwIP on a device with only one network interface, define this to 0.

Definition at line 508 of file opt.h.



IP_FORWARD_ALLOW_TX_ON_RX_NETIF==1: allow ip_forward() to send packets back out on the netif where it was received. This should only be used for wireless networks. ATTENTION: When this is 1, make sure your netif driver correctly marks incoming link-layer-broadcast/multicast packets as such using the corresponding pbuf flags!

Definition at line 608 of file opt.h.


#define IP_FRAG   1

IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note that this option does not affect incoming packet sizes, which can be controlled via IP_REASSEMBLY.

Definition at line 535 of file opt.h.



IP_FRAG_USES_STATIC_BUF==1: Use a static MTU-sized buffer for IP fragmentation. Otherwise pbufs are allocated and reference the original packet data to be fragmented (or with LWIP_NETIF_TX_SINGLE_PBUF==1, new PBUF_RAM pbufs are used for fragments). ATTENTION: IP_FRAG_USES_STATIC_BUF==1 may not be used for DMA-enabled MACs!

Definition at line 565 of file opt.h.



IP_OPTIONS_ALLOWED: Defines the behavior for IP options. IP_OPTIONS_ALLOWED==0: All packets with IP options are dropped. IP_OPTIONS_ALLOWED==1: IP options are allowed (but not parsed).

Definition at line 517 of file opt.h.



IP_REASS_DEBUG: Enable debugging in ip_frag.c for both frag & reass.

Definition at line 1968 of file opt.h.


#define IP_REASS_MAX_PBUFS   10

IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled. Since the received pbufs are enqueued, be sure to configure PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive packets even if the maximum amount of fragments is enqueued for reassembly!

Definition at line 554 of file opt.h.


#define IP_REASS_MAXAGE   3

IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally) a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived in this time, the whole packet is discarded.

Definition at line 544 of file opt.h.


#define IP_REASSEMBLY   1

IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that this option does not affect outgoing packet sizes, which can be controlled via IP_FRAG.

Definition at line 526 of file opt.h.


#define IP_SOF_BROADCAST   0

IP_SOF_BROADCAST=1: Use the SOF_BROADCAST field to enable broadcast filter per pcb on udp and raw send operations. To enable broadcast filter on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1.

Definition at line 589 of file opt.h.



IP_SOF_BROADCAST_RECV (requires IP_SOF_BROADCAST=1) enable the broadcast filter on recv operations.

Definition at line 597 of file opt.h.


#define IP_STATS   1

IP_STATS==1: Enable IP stats.

Definition at line 1540 of file opt.h.



IPFRAG_STATS==1: Enable IP fragmentation stats. Default is on if using either frag or reass.

Definition at line 1548 of file opt.h.


#define LINK_STATS   1

LINK_STATS==1: Enable link stats.

Definition at line 1526 of file opt.h.



Set this to 1 if you want to free PBUF_RAM pbufs (or call mem_free()) from interrupt context (or another context that doesn't allow waiting for a semaphore). If set to 1, mem_malloc will be protected by a semaphore and SYS_ARCH_PROTECT, while mem_free will only use SYS_ARCH_PROTECT. mem_malloc SYS_ARCH_UNPROTECTs with each loop so that mem_free can run.

ATTENTION: As you can see from the above description, this leads to dis-/ enabling interrupts often, which can be slow! Also, on low memory, mem_malloc can need longer.

If you don't want that, at least for NO_SYS=0, you can still use the following functions to enqueue a deallocation call which then runs in the tcpip_thread context:

  • pbuf_free_callback(p);
  • mem_free_callback(m);

Definition at line 212 of file opt.h.


#define LWIP_ARP   1

LWIP_ARP==1: Enable ARP functionality.

Definition at line 426 of file opt.h.


#define LWIP_AUTOIP   0

LWIP_AUTOIP==1: Enable AUTOIP module.

Definition at line 701 of file opt.h.



LWIP_BROADCAST_PING==1: respond to broadcast pings (default is unicast only)

Definition at line 644 of file opt.h.



Definition at line 1080 of file opt.h.



LWIP_CHECKSUM_ON_COPY==1: Calculate checksum when copying data from application buffers to pbufs.

Definition at line 1841 of file opt.h.



LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names. (only used if you use sockets.c)

Definition at line 1434 of file opt.h.



LWIP_HOOK_IP4_INPUT(pbuf, input_netif):

  • called from ip_input() (IPv4)
  • pbuf: received struct pbuf passed to ip_input()
  • input_netif: struct netif on which the packet has been received Return values:
  • 0: Hook has not consumed the packet, packet is processed as normal
  • != 0: Hook has consumed the packet. If the hook consumed the packet, 'pbuf' is in the responsibility of the hook (i.e. free it when done).LWIP_HOOK_IP4_ROUTE(dest):
  • called from ip_route() (IPv4)
  • dest: destination IPv4 address Returns the destination netif or NULL if no destination netif is found. In that case, ip_route() continues as normal.LWIP_DBG_MIN_LEVEL: After masking, the value of the debug is compared against this value. If it is smaller, then debugging messages are written.

Definition at line 1883 of file opt.h.



LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable debug messages of certain types.

Definition at line 1891 of file opt.h.


#define LWIP_DHCP   0

LWIP_DHCP==1: Enable DHCP module.

Definition at line 682 of file opt.h.



LWIP_DHCP_AUTOIP_COOP==1: Allow DHCP and AUTOIP to be both enabled on the same interface at the same time.

Definition at line 709 of file opt.h.



LWIP_DHCP_AUTOIP_COOP_TRIES: Set to the number of DHCP DISCOVER probes that should be sent before falling back on AUTOIP. This can be set as low as 1 to get an AutoIP address very quickly, but you should be prepared to handle a changing IP address when DHCP overrides AutoIP.

Definition at line 720 of file opt.h.


#define LWIP_DNS   0

LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS transport.

Definition at line 818 of file opt.h.



LWIP_ETHERNET==1: enable ethernet support for PPPoE even though ARP might be disabled

Definition at line 477 of file opt.h.


#define LWIP_EVENT_API   0

LWIP_EVENT_API and LWIP_CALLBACK_API: Only one of these should be set to 1. LWIP_EVENT_API==1: The user defines lwip_tcp_event() to receive all events (accept, sent, etc) that happen in the system. LWIP_CALLBACK_API==1: The PCB callback function is called directly for the event. This is the default.

Definition at line 1079 of file opt.h.


#define LWIP_HAVE_LOOPIF   0

LWIP_HAVE_LOOPIF==1: Support loop interface ( and loopif.c

Definition at line 1217 of file opt.h.


#define LWIP_HAVE_SLIPIF   0

LWIP_HAVE_SLIPIF==1: Support slip interface and slipif.c

Definition at line 1229 of file opt.h.


#define LWIP_ICMP   1

LWIP_ICMP==1: Enable ICMP module inside the IP stack. Be careful, disable that make your product non-compliant to RFC1122

Definition at line 630 of file opt.h.


#define LWIP_IGMP   0

LWIP_IGMP==1: Turn on IGMP module.

Definition at line 805 of file opt.h.



LWIP_LOOPBACK_MAX_PBUFS: Maximum number of pbufs on queue for loopback sending for each netif (0 = disabled)

Definition at line 1175 of file opt.h.



LWIP_MULTICAST_PING==1: respond to multicast pings (default is unicast only)

Definition at line 651 of file opt.h.



LWIP_NETBUF_RECVINFO==1: append destination addr and port to every netbuf.

Definition at line 896 of file opt.h.


#define LWIP_NETCONN   1

LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c)

Definition at line 1407 of file opt.h.


#define LWIP_NETIF_API   0

LWIP_NETIF_API==1: Support netif api (in netifapi.c)

Definition at line 1124 of file opt.h.



LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname field.

Definition at line 1117 of file opt.h.



LWIP_NETIF_HWADDRHINT==1: Cache link-layer-address hints (e.g. table indices) in struct netif. TCP and UDP can make use of this to prevent scanning the ARP table for every sent packet. While this is faster for big ARP tables or many concurrent connections, it might be counterproductive if you have a tiny ARP table or if there never are concurrent connections.

Definition at line 1159 of file opt.h.



LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface whenever the link changes (i.e., link down)

Definition at line 1140 of file opt.h.



LWIP_NETIF_LOOPBACK==1: Support sending packets with a destination IP address equal to the netif IP address, looping them back up the stack.

Definition at line 1167 of file opt.h.



LWIP_NETIF_LOOPBACK_MULTITHREADING: Indicates whether threading is enabled in the system, as netifs must change how they behave depending on this setting for the LWIP_NETIF_LOOPBACK option to work. Setting this is needed to avoid reentering non-reentrant functions like tcp_input(). LWIP_NETIF_LOOPBACK_MULTITHREADING==1: Indicates that the user is using a multithreaded environment like tcpip.c. In this case, netif->input() is called directly. LWIP_NETIF_LOOPBACK_MULTITHREADING==0: Indicates a polling (or NO_SYS) setup. The packets are put on a list and netif_poll() must be called in the main application loop.

Definition at line 1192 of file opt.h.



LWIP_NETIF_REMOVE_CALLBACK==1: Support a callback function that is called when a netif has been removed

Definition at line 1148 of file opt.h.



LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface changes its up/down status (i.e., due to DHCP IP acquistion)

Definition at line 1132 of file opt.h.



LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data to be sent into one single pbuf. This is for compatibility with DMA-enabled MACs that do not support scatter-gather. Beware that this might involve CPU-memcpy before transmitting that would not be needed without this flag! Use this only if you need to!

: TCP and IP-frag do not work with this, yet:

Definition at line 1205 of file opt.h.



LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names. Disable this option if you use a POSIX operating system that uses the same names (read, write & close). (only used if you use sockets.c)

Definition at line 1443 of file opt.h.



LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS==1: randomize the local port for the first local TCP/UDP pcb (default==0). This can prevent creating predictable port numbers after booting a device.

Definition at line 617 of file opt.h.


#define LWIP_RAW   1

LWIP_RAW==1: Enable application layer to hook into the IP layer itself.

Definition at line 663 of file opt.h.


#define LWIP_SNMP   0

LWIP_SNMP==1: Turn on SNMP module. UDP must be available for SNMP transport.

Definition at line 733 of file opt.h.


#define LWIP_SO_RCVBUF   0

LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.

Definition at line 1475 of file opt.h.


#define LWIP_SO_RCVTIMEO   0

LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and SO_RCVTIMEO processing.

Definition at line 1468 of file opt.h.


#define LWIP_SO_SNDTIMEO   0

LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and SO_SNDTIMEO processing.

Definition at line 1460 of file opt.h.


#define LWIP_SOCKET   1

LWIP_SOCKET==1: Enable Socket API (require to use sockets.c)

Definition at line 1426 of file opt.h.


#define LWIP_STATS   1

LWIP_STATS==1: Enable statistics collection in lwip_stats.

Definition at line 1510 of file opt.h.



LWIP_STATS_DISPLAY==1: Compile in the statistics output functions.

Definition at line 1519 of file opt.h.


#define LWIP_TCP   1

LWIP_TCP==1: Turn on TCP.

Definition at line 908 of file opt.h.



LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set in seconds. (does not require sockets.c, and will affect tcp.c)

Definition at line 1452 of file opt.h.



LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option.

Definition at line 1060 of file opt.h.



LWIP_TCPIP_CORE_LOCKING: (EXPERIMENTAL!) Don't use it if you're not an active lwIP project member

Definition at line 1392 of file opt.h.



LWIP_TCPIP_CORE_LOCKING_INPUT: (EXPERIMENTAL!) Don't use it if you're not an active lwIP project member

Definition at line 1400 of file opt.h.



LWIP_TCPIP_TIMEOUT==1: Enable tcpip_timeout/tcpip_untimeout tod create timers running in tcpip_thread from another thread.

Definition at line 1414 of file opt.h.


#define LWIP_UDP   1

LWIP_UDP==1: Turn on UDP.

Definition at line 875 of file opt.h.


#define LWIP_UDPLITE   0

LWIP_UDPLITE==1: Turn on UDP-Lite. (Requires LWIP_UDP)

Definition at line 882 of file opt.h.


#define MEM_ALIGNMENT   1

MEM_ALIGNMENT: should be set to the alignment of the CPU 4 byte alignment -> define MEM_ALIGNMENT 4 2 byte alignment -> define MEM_ALIGNMENT 2

Definition at line 124 of file opt.h.



MEM_DEBUG: Enable debugging in mem.c.

Definition at line 1982 of file opt.h.


#define MEM_LIBC_MALLOC   0

MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library instead of the lwip internal allocator. Can save code size if you already use it.

Definition at line 106 of file opt.h.


#define MEM_SIZE   1600

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.

Definition at line 132 of file opt.h.


#define MEM_STATS   ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))

MEM_STATS==1: Enable mem.c stats.

Definition at line 1585 of file opt.h.


#define MEM_USE_POOLS   0

MEM_USE_POOLS==1: Use an alternative to malloc() by allocating from a set of memory pools of various sizes. When mem_malloc is called, an element of the smallest pool that can provide the length needed is returned. To use this, MEMP_USE_CUSTOM_POOLS also has to be enabled.

Definition at line 172 of file opt.h.



MEM_USE_POOLS_TRY_BIGGER_POOL==1: if one malloc-pool is empty, try the next bigger pool - WARNING: THIS MIGHT WASTE MEMORY but it can make a system more reliable.

Definition at line 180 of file opt.h.


#define MEMCPY (   dst,
)    memcpy(dst,src,len)

MEMCPY: override this if you have a faster implementation at hand than the one included in your C library

Definition at line 84 of file opt.h.



MEMP_DEBUG: Enable debugging in memp.c.

Definition at line 1989 of file opt.h.


#define MEMP_MEM_MALLOC   0

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!

Definition at line 115 of file opt.h.


#define MEMP_NUM_ARP_QUEUE   30

MEMP_NUM_ARP_QUEUE: the number of simulateously queued outgoing packets (pbufs) that are waiting for an ARP request (to resolve their destination address) to finish. (requires the ARP_QUEUEING option)

Definition at line 296 of file opt.h.


#define MEMP_NUM_FRAG_PBUF   15

MEMP_NUM_FRAG_PBUF: the number of IP fragments simultaneously sent (fragments, not whole packets!). This is only used with IP_FRAG_USES_STATIC_BUF==0 and LWIP_NETIF_TX_SINGLE_PBUF==0 and only has to be > 1 with DMA-enabled MACs where the packet is not yet sent when netif->output returns.

Definition at line 286 of file opt.h.



MEMP_NUM_IGMP_GROUP: The number of multicast groups whose network interfaces can be members et the same time (one per netif - allsystems group -, plus one per netif membership). (requires the LWIP_IGMP option)

Definition at line 306 of file opt.h.



MEMP_NUM_LOCALHOSTLIST: the number of host entries in the local host list if DNS_LOCAL_HOSTLIST_IS_DYNAMIC==1.

Definition at line 399 of file opt.h.


#define MEMP_NUM_NETBUF   2

MEMP_NUM_NETBUF: the number of struct netbufs. (only needed if you use the sequential API, like api_lib.c)

Definition at line 324 of file opt.h.


#define MEMP_NUM_NETCONN   4

MEMP_NUM_NETCONN: the number of struct netconns. (only needed if you use the sequential API, like api_lib.c)

Definition at line 332 of file opt.h.


#define MEMP_NUM_NETDB   1

MEMP_NUM_NETDB: the number of concurrently running lwip_addrinfo() calls (before freeing the corresponding memory using lwip_freeaddrinfo()).

Definition at line 391 of file opt.h.


#define MEMP_NUM_PBUF   16

MEMP_NUM_PBUF: 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.

Definition at line 226 of file opt.h.



MEMP_NUM_PPPOE_INTERFACES: the number of concurrently active PPPoE interfaces (only used with PPPOE_SUPPORT==1)

Definition at line 407 of file opt.h.


#define MEMP_NUM_RAW_PCB   4

MEMP_NUM_RAW_PCB: Number of raw connection PCBs (requires the LWIP_RAW option)

Definition at line 234 of file opt.h.



MEMP_NUM_REASSDATA: the number of IP packets simultaneously queued for reassembly (whole packets, not fragments!)

Definition at line 275 of file opt.h.


#define MEMP_NUM_SNMP_NODE   50

MEMP_NUM_SNMP_NODE: the number of leafs in the SNMP tree.

Definition at line 357 of file opt.h.



MEMP_NUM_SNMP_ROOTNODE: the number of branches in the SNMP tree. Every branch has one leaf (MEMP_NUM_SNMP_NODE) at least!

Definition at line 365 of file opt.h.



MEMP_NUM_SNMP_VALUE: the number of OID or values concurrently used (does not have to be changed normally) - 3 of these are used per request (1 for the value read and 2 for OIDs - input and output)

Definition at line 383 of file opt.h.



MEMP_NUM_SNMP_VARBIND: the number of concurrent requests (does not have to be changed normally) - 2 of these are used per request (1 for input, 1 for output)

Definition at line 374 of file opt.h.



MEMP_NUM_SYS_TIMEOUT: the number of simulateously active timeouts. (requires NO_SYS==0) The default number of timeouts is calculated here for all enabled modules. The formula expects settings to be either '0' or '1'.

Definition at line 316 of file opt.h.


#define MEMP_NUM_TCP_PCB   5

MEMP_NUM_TCP_PCB: the number of simulatenously active TCP connections. (requires the LWIP_TCP option)

Definition at line 251 of file opt.h.



MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections. (requires the LWIP_TCP option)

Definition at line 259 of file opt.h.


#define MEMP_NUM_TCP_SEG   16

MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments. (requires the LWIP_TCP option)

Definition at line 267 of file opt.h.



MEMP_NUM_TCPIP_MSG_API: the number of struct tcpip_msg, which are used for callback/timeout API communication. (only needed if you use tcpip.c)

Definition at line 341 of file opt.h.



MEMP_NUM_TCPIP_MSG_INPKT: the number of struct tcpip_msg, which are used for incoming packets. (only needed if you use tcpip.c)

Definition at line 350 of file opt.h.


#define MEMP_NUM_UDP_PCB   4

MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One per active UDP "connection". (requires the LWIP_UDP option)

Definition at line 243 of file opt.h.



MEMP_OVERFLOW_CHECK: 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. MEMP_OVERFLOW_CHECK == 0 no checking MEMP_OVERFLOW_CHECK == 1 checks each element when it is freed MEMP_OVERFLOW_CHECK >= 2 checks each element in every pool every time memp_malloc() or memp_free() is called (useful but slow!)

Definition at line 154 of file opt.h.



MEMP_SANITY_CHECK==1: run a sanity check after each memp_free() to make sure that there are no cycles in the linked lists.

Definition at line 162 of file opt.h.



MEMP_SEPARATE_POOLS: if defined to 1, each pool is placed in its own array. This can be used to individually change the location of each pool. Default is one big array for all pools

Definition at line 141 of file opt.h.



MEMP_STATS==1: Enable memp.c pool stats.

Definition at line 1592 of file opt.h.



MEMP_USE_CUSTOM_POOLS==1: whether to include a user file lwippools.h that defines additional pools beyond the "standard" ones required by lwIP. If you set this to 1, you must have lwippools.h in your inlude path somewhere.

Definition at line 190 of file opt.h.



NETIF_DEBUG: Enable debugging in netif.c.

Definition at line 1905 of file opt.h.


#define NO_SYS   0

NO_SYS==1: Provides VERY minimal functionality. Otherwise, use lwIP facilities.

Definition at line 68 of file opt.h.


#define NO_SYS_NO_TIMERS   0

NO_SYS_NO_TIMERS==1: Drop support for sys_timeout when NO_SYS==1 Mainly for compatibility to old versions.

Definition at line 76 of file opt.h.



PBUF_DEBUG: Enable debugging in pbuf.c.

Definition at line 1912 of file opt.h.


#define PBUF_LINK_HLEN   (14 + ETH_PAD_SIZE)

PBUF_LINK_HLEN: the number of bytes that should be allocated for a link level header. The default is 14, the standard value for Ethernet.

Definition at line 1095 of file opt.h.



PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. The default is designed to accomodate single full size TCP frame in one pbuf, including TCP_MSS, IP header, and link header.

Definition at line 1104 of file opt.h.


#define PBUF_POOL_SIZE   16

PBUF_POOL_SIZE: the number of buffers in the pbuf pool.

Definition at line 414 of file opt.h.



PPP_DEBUG: Enable debugging for PPP.

Definition at line 2088 of file opt.h.


#define PPP_SUPPORT   0


Definition at line 1627 of file opt.h.


#define PPP_THREAD_NAME   "pppInputThread"

PPP_THREAD_NAME: The name assigned to the pppInputThread.

Definition at line 1300 of file opt.h.


#define PPP_THREAD_PRIO   1

PPP_THREAD_PRIO: The priority assigned to the pppInputThread. The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

Definition at line 1318 of file opt.h.



PPP_THREAD_STACKSIZE: The stack size used by the pppInputThread. The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

Definition at line 1309 of file opt.h.


#define PPPOE_SUPPORT   0

PPPOE_SUPPORT==1: Enable PPP Over Ethernet

Definition at line 1634 of file opt.h.



PPPOS_SUPPORT==1: Enable PPP Over Serial

Definition at line 1641 of file opt.h.



RAW_DEBUG: Enable debugging in raw.c.

Definition at line 1975 of file opt.h.



LWIP_RAW==1: Enable application layer to hook into the IP layer itself.

Definition at line 670 of file opt.h.



If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize.

Definition at line 1482 of file opt.h.



SLIP_DEBUG: Enable debugging in slipif.c.

Definition at line 2095 of file opt.h.


#define SLIPIF_THREAD_NAME   "slipif_loop"

SLIPIF_THREAD_NAME: The name assigned to the slipif_loop thread.

Definition at line 1275 of file opt.h.



SLIPIF_THREAD_PRIO: The priority assigned to the slipif_loop thread. The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

Definition at line 1293 of file opt.h.



SLIP_THREAD_STACKSIZE: The stack size used by the slipif_loop thread. The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

Definition at line 1284 of file opt.h.


#define SMEMCPY (   dst,
)    memcpy(dst,src,len)

SMEMCPY: override this with care! Some compilers (e.g. gcc) can inline a call to memcpy() if the length is known at compile time and is small.

Definition at line 92 of file opt.h.



SNMP_CONCURRENT_REQUESTS: 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

Definition at line 742 of file opt.h.



The maximum length of strings used. This affects the size of MEMP_SNMP_VALUE elements.

Definition at line 776 of file opt.h.


#define SNMP_MAX_TREE_DEPTH   15

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.

Definition at line 785 of file opt.h.


The size of the MEMP_SNMP_VALUE elements, normally calculated from SNMP_MAX_OCTET_STRING_LEN and SNMP_MAX_TREE_DEPTH.

Definition at line 793 of file opt.h.



SNMP_MIB_DEBUG: Enable debugging for SNMP MIBs.

Definition at line 2123 of file opt.h.



SNMP_MSG_DEBUG: Enable debugging for SNMP messages.

Definition at line 2116 of file opt.h.


#define SNMP_PRIVATE_MIB   0

SNMP_PRIVATE_MIB: 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.

Definition at line 759 of file opt.h.



Only allow SNMP write actions that are 'safe' (e.g. disabeling netifs is not a safe action and disabled when SNMP_SAFE_REQUESTS = 1). Unsafe requests are disabled by default!

Definition at line 768 of file opt.h.



SNMP_TRAP_DESTINATIONS: Number of trap destinations. At least one trap destination is required

Definition at line 750 of file opt.h.


#define SO_REUSE   0

SO_REUSE==1: Enable SO_REUSEADDR option.

Definition at line 1489 of file opt.h.


#define SO_REUSE_RXTOALL   0

SO_REUSE_RXTOALL==1: Pass a copy of incoming broadcast/multicast packets to all local matches if SO_REUSEADDR is turned on. WARNING: Adds a memcpy for every packet if passing to more than one pcb!

Definition at line 1498 of file opt.h.



SOCKETS_DEBUG: Enable debugging in sockets.c.

Definition at line 1933 of file opt.h.



SYS_DEBUG: Enable debugging in sys.c.

Definition at line 1996 of file opt.h.



SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain critical regions during buffer allocation, deallocation and memory allocation and deallocation.

Definition at line 60 of file opt.h.


#define SYS_STATS   (NO_SYS == 0)

SYS_STATS==1: Enable system stats (sem and mbox counts, etc).

Definition at line 1599 of file opt.h.



TCP_CALCULATE_EFF_SEND_MSS: "The maximum size of a segment that TCP really sends, the 'effective send MSS,' MUST be the smaller of the send MSS (which reflects the available reassembly buffer size at the remote host) and the largest size permitted by the IP layer" (RFC 1122) Setting this to 1 enables code that checks TCP_MSS against the MTU of the netif used for a connection and limits the MSS if it would be too big otherwise.

Definition at line 968 of file opt.h.



TCP_CWND_DEBUG: Enable debugging for TCP congestion window.

Definition at line 2039 of file opt.h.



TCP_DEBUG: Enable debugging for TCP.

Definition at line 2010 of file opt.h.



The maximum allowed backlog for TCP listen netconns. This backlog is used unless another is explicitly specified. 0xff is the maximum (u8_t).

Definition at line 1035 of file opt.h.



TCP_FR_DEBUG: Enable debugging in tcp_in.c for fast retransmit.

Definition at line 2024 of file opt.h.



TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug.

Definition at line 2017 of file opt.h.



TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb.

Definition at line 1026 of file opt.h.


#define TCP_MAXRTX   12

TCP_MAXRTX: Maximum number of retransmissions of data segments.

Definition at line 930 of file opt.h.


#define TCP_MSS   536

TCP_MSS: TCP Maximum segment size. (default is 536, a conservative default, you might want to increase this.) For the receive side, this MSS is advertised to the remote side when opening a connection. For the transmit size, this MSS sets an upper limit on the MSS advertised by the remote host.

Definition at line 956 of file opt.h.



TCP_OOSEQ_MAX_BYTES: The maximum number of bytes queued on ooseq per pcb. Default is 0 (no limit). Only valid for TCP_QUEUE_OOSEQ==0.

Definition at line 1011 of file opt.h.



TCP_OOSEQ_MAX_PBUFS: The maximum number of pbufs queued on ooseq per pcb. Default is 0 (no limit). Only valid for TCP_QUEUE_OOSEQ==0.

Definition at line 1019 of file opt.h.



TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions.

Definition at line 2053 of file opt.h.



TCP_OVERSIZE: The maximum number of bytes that tcp_write may allocate ahead of time in an attempt to create shorter pbuf chains for transmission. The meaningful range is 0 to TCP_MSS. Some suggested values are:

0: Disable oversized allocation. Each tcp_write() allocates a new pbuf (old behaviour). 1: Allocate size-aligned pbufs with minimal excess. Use this if your scatter-gather DMA requires aligned fragments. 128: Limit the pbuf/memory overhead to 20%. TCP_MSS: Try to create unfragmented TCP packets. TCP_MSS/4: Try to create 4 fragments or less per TCP packet.

Definition at line 1053 of file opt.h.



TCP_QLEN_DEBUG: Enable debugging for TCP queue lengths.

Definition at line 2067 of file opt.h.



TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order. Define to 0 if your device is low on memory.

Definition at line 945 of file opt.h.



TCP_RST_DEBUG: Enable debugging for TCP with the RST message.

Definition at line 2060 of file opt.h.



TCP_RTO_DEBUG: Enable debugging in TCP for retransmit timeout.

Definition at line 2032 of file opt.h.


#define TCP_SND_BUF   (2 * TCP_MSS)

TCP_SND_BUF: TCP sender buffer space (bytes). To achieve good performance, this should be at least 2 * TCP_MSS.

Definition at line 977 of file opt.h.


#define TCP_SND_QUEUELEN   ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))

TCP_SND_QUEUELEN: TCP sender buffer space (pbufs). This must be at least as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work.

Definition at line 985 of file opt.h.


#define TCP_SNDLOWAT   LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1)

TCP_SNDLOWAT: TCP writable space (bytes). This must be less than TCP_SND_BUF. It is the amount of space which must be available in the TCP snd_buf for select to return writable (combined with TCP_SNDQUEUELOWAT).

Definition at line 994 of file opt.h.



TCP_SNDQUEUELOWAT: TCP writable bufs (pbuf count). This must be less than TCP_SND_QUEUELEN. If the number of pbufs queued on a pcb drops below this number, select returns writable (combined with TCP_SNDLOWAT).

Definition at line 1003 of file opt.h.


#define TCP_STATS   (LWIP_TCP)

TCP_STATS==1: Enable TCP stats. Default is on if TCP enabled, otherwise off.

Definition at line 1578 of file opt.h.


#define TCP_SYNMAXRTX   6

TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments.

Definition at line 937 of file opt.h.



TCP_TTL: Default Time-To-Live value.

Definition at line 915 of file opt.h.


#define TCP_WND   (4 * TCP_MSS)

TCP_WND: The size of a TCP window. This must be at least (2 * TCP_MSS) for things to work well

Definition at line 923 of file opt.h.



TCP_WND_DEBUG: Enable debugging in tcp_in.c for window updating.

Definition at line 2046 of file opt.h.



TCP_WND_UPDATE_THRESHOLD: difference in window to trigger an explicit window update

Definition at line 1068 of file opt.h.



TCPIP_DEBUG: Enable debugging in tcpip.c.

Definition at line 206 of file lwipopts.h.


#define TCPIP_MBOX_SIZE   0

TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when tcpip_init is called.

Definition at line 1268 of file opt.h.


#define TCPIP_THREAD_NAME   "tcpip_thread"

TCPIP_THREAD_NAME: The name assigned to the main tcpip thread.

Definition at line 1241 of file opt.h.



TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread. The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

Definition at line 1259 of file opt.h.



TCPIP_THREAD_STACKSIZE: The stack size used by the main tcpip thread. The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

Definition at line 1250 of file opt.h.



TIMERS_DEBUG: Enable debugging in timers.c.

Definition at line 2003 of file opt.h.



UDP_DEBUG: Enable debugging in UDP.

Definition at line 2074 of file opt.h.


#define UDP_STATS   (LWIP_UDP)

UDP_STATS==1: Enable UDP stats. Default is on if UDP enabled, otherwise off.

Definition at line 1570 of file opt.h.



UDP_TTL: Default Time-To-Live value.

Definition at line 889 of file opt.h.