#include "lwipopts.h"
#include "lwip/debug.h"
Defines | |
#define | SYS_LIGHTWEIGHT_PROT 0 |
#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 | MEMP_SEPARATE_POOLS 0 |
#define | MEMP_OVERFLOW_CHECK 0 |
#define | MEMP_SANITY_CHECK 0 |
#define | MEM_USE_POOLS 0 |
#define | MEM_USE_POOLS_TRY_BIGGER_POOL 0 |
#define | MEMP_USE_CUSTOM_POOLS 0 |
#define | LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 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_PCB_LISTEN 8 |
#define | MEMP_NUM_TCP_SEG 16 |
#define | MEMP_NUM_REASSDATA 5 |
#define | MEMP_NUM_FRAG_PBUF 15 |
#define | MEMP_NUM_ARP_QUEUE 30 |
#define | MEMP_NUM_IGMP_GROUP 8 |
#define | MEMP_NUM_SYS_TIMEOUT 3 |
#define | MEMP_NUM_NETBUF 2 |
#define | MEMP_NUM_NETCONN 4 |
#define | MEMP_NUM_TCPIP_MSG_API 8 |
#define | MEMP_NUM_TCPIP_MSG_INPKT 8 |
#define | MEMP_NUM_SNMP_NODE 50 |
#define | MEMP_NUM_SNMP_ROOTNODE 30 |
#define | MEMP_NUM_SNMP_VARBIND 2 |
#define | MEMP_NUM_SNMP_VALUE 3 |
#define | MEMP_NUM_NETDB 1 |
#define | MEMP_NUM_LOCALHOSTLIST 1 |
#define | MEMP_NUM_PPPOE_INTERFACES 1 |
#define | PBUF_POOL_SIZE 16 |
#define | LWIP_ARP 1 |
#define | ARP_TABLE_SIZE 10 |
#define | ARP_QUEUEING 0 |
#define | ETHARP_TRUST_IP_MAC 0 |
#define | ETHARP_SUPPORT_VLAN 0 |
#define | LWIP_ETHERNET (LWIP_ARP || PPPOE_SUPPORT) |
#define | ETH_PAD_SIZE 0 |
#define | ETHARP_SUPPORT_STATIC_ENTRIES 0 |
#define | IP_FORWARD 0 |
#define | IP_OPTIONS_ALLOWED 1 |
#define | IP_REASSEMBLY 1 |
#define | IP_FRAG 1 |
#define | IP_REASS_MAXAGE 3 |
#define | IP_REASS_MAX_PBUFS 10 |
#define | IP_FRAG_USES_STATIC_BUF 0 |
#define | IP_DEFAULT_TTL 255 |
#define | IP_SOF_BROADCAST 0 |
#define | IP_SOF_BROADCAST_RECV 0 |
#define | LWIP_ICMP 1 |
#define | ICMP_TTL (IP_DEFAULT_TTL) |
#define | LWIP_BROADCAST_PING 0 |
#define | LWIP_MULTICAST_PING 0 |
#define | LWIP_RAW 1 |
#define | RAW_TTL (IP_DEFAULT_TTL) |
#define | LWIP_DHCP 0 |
#define | DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP)) |
#define | LWIP_AUTOIP 0 |
#define | LWIP_DHCP_AUTOIP_COOP 0 |
#define | LWIP_DHCP_AUTOIP_COOP_TRIES 9 |
#define | LWIP_SNMP 0 |
#define | SNMP_CONCURRENT_REQUESTS 1 |
#define | SNMP_TRAP_DESTINATIONS 1 |
#define | SNMP_PRIVATE_MIB 0 |
#define | SNMP_SAFE_REQUESTS 1 |
#define | SNMP_MAX_OCTET_STRING_LEN 127 |
#define | SNMP_MAX_TREE_DEPTH 15 |
#define | SNMP_MAX_VALUE_SIZE LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN)+1, sizeof(s32_t)*(SNMP_MAX_TREE_DEPTH)) |
#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_DOES_NAME_CHECK 1 |
#define | DNS_MSG_SIZE 512 |
#define | DNS_LOCAL_HOSTLIST 0 |
#define | DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0 |
#define | LWIP_UDP 1 |
#define | LWIP_UDPLITE 0 |
#define | UDP_TTL (IP_DEFAULT_TTL) |
#define | LWIP_NETBUF_RECVINFO 0 |
#define | LWIP_TCP 1 |
#define | TCP_TTL (IP_DEFAULT_TTL) |
#define | TCP_WND (4 * TCP_MSS) |
#define | TCP_MAXRTX 12 |
#define | TCP_SYNMAXRTX 6 |
#define | TCP_QUEUE_OOSEQ (LWIP_TCP) |
#define | TCP_MSS 536 |
#define | TCP_CALCULATE_EFF_SEND_MSS 1 |
#define | TCP_SND_BUF 256 |
#define | TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS)) |
#define | TCP_SNDLOWAT ((TCP_SND_BUF)/2) |
#define | TCP_SNDQUEUELOWAT ((TCP_SND_QUEUELEN)/2) |
#define | TCP_LISTEN_BACKLOG 0 |
#define | TCP_DEFAULT_LISTEN_BACKLOG 0xff |
#define | TCP_OVERSIZE TCP_MSS |
#define | LWIP_TCP_TIMESTAMPS 0 |
#define | TCP_WND_UPDATE_THRESHOLD (TCP_WND / 4) |
#define | LWIP_EVENT_API 0 |
#define | PBUF_LINK_HLEN (14 + ETH_PAD_SIZE) |
#define | PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN) |
#define | LWIP_NETIF_HOSTNAME 0 |
#define | LWIP_NETIF_API 0 |
#define | LWIP_NETIF_STATUS_CALLBACK 0 |
#define | LWIP_NETIF_LINK_CALLBACK 0 |
#define | LWIP_NETIF_HWADDRHINT 0 |
#define | LWIP_NETIF_LOOPBACK 0 |
#define | LWIP_LOOPBACK_MAX_PBUFS 0 |
#define | LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS) |
#define | LWIP_NETIF_TX_SINGLE_PBUF 0 |
#define | LWIP_HAVE_LOOPIF 0 |
#define | LWIP_HAVE_SLIPIF 0 |
#define | TCPIP_THREAD_NAME "tcpip_thread" |
#define | TCPIP_THREAD_STACKSIZE 0 |
#define | TCPIP_THREAD_PRIO 1 |
#define | TCPIP_MBOX_SIZE 0 |
#define | SLIPIF_THREAD_NAME "slipif_loop" |
#define | SLIPIF_THREAD_STACKSIZE 0 |
#define | SLIPIF_THREAD_PRIO 1 |
#define | PPP_THREAD_NAME "pppInputThread" |
#define | PPP_THREAD_STACKSIZE 0 |
#define | PPP_THREAD_PRIO 1 |
#define | DEFAULT_THREAD_NAME "lwIP" |
#define | DEFAULT_THREAD_STACKSIZE 0 |
#define | DEFAULT_THREAD_PRIO 1 |
#define | DEFAULT_RAW_RECVMBOX_SIZE 0 |
#define | DEFAULT_UDP_RECVMBOX_SIZE 0 |
#define | DEFAULT_TCP_RECVMBOX_SIZE 0 |
#define | DEFAULT_ACCEPTMBOX_SIZE 0 |
#define | LWIP_TCPIP_CORE_LOCKING 0 |
#define | LWIP_TCPIP_CORE_LOCKING_INPUT 0 |
#define | LWIP_NETCONN 1 |
#define | LWIP_TCPIP_TIMEOUT 1 |
#define | LWIP_SOCKET 1 |
#define | LWIP_COMPAT_SOCKETS 1 |
#define | LWIP_POSIX_SOCKETS_IO_NAMES 1 |
#define | LWIP_TCP_KEEPALIVE 0 |
#define | LWIP_SO_RCVTIMEO 0 |
#define | LWIP_SO_RCVBUF 0 |
#define | RECV_BUFSIZE_DEFAULT INT_MAX |
#define | SO_REUSE 0 |
#define | SO_REUSE_RXTOALL 0 |
#define | LWIP_STATS 1 |
#define | LWIP_STATS_DISPLAY 0 |
#define | LINK_STATS 1 |
#define | ETHARP_STATS (LWIP_ARP) |
#define | IP_STATS 1 |
#define | IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG) |
#define | ICMP_STATS 1 |
#define | IGMP_STATS (LWIP_IGMP) |
#define | UDP_STATS (LWIP_UDP) |
#define | TCP_STATS (LWIP_TCP) |
#define | MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0)) |
#define | MEMP_STATS (MEMP_MEM_MALLOC == 0) |
#define | SYS_STATS (NO_SYS == 0) |
#define | PPP_SUPPORT 0 |
#define | PPPOE_SUPPORT 0 |
#define | PPPOS_SUPPORT PPP_SUPPORT |
#define | CHECKSUM_GEN_IP 1 |
#define | CHECKSUM_GEN_UDP 1 |
#define | CHECKSUM_GEN_TCP 1 |
#define | CHECKSUM_CHECK_IP 1 |
#define | CHECKSUM_CHECK_UDP 1 |
#define | CHECKSUM_CHECK_TCP 1 |
#define | LWIP_CHECKSUM_ON_COPY 0 |
#define | LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL |
#define | LWIP_DBG_TYPES_ON LWIP_DBG_ON |
#define | ETHARP_DEBUG LWIP_DBG_OFF |
#define | NETIF_DEBUG LWIP_DBG_OFF |
#define | PBUF_DEBUG LWIP_DBG_OFF |
#define | API_LIB_DEBUG LWIP_DBG_OFF |
#define | API_MSG_DEBUG LWIP_DBG_OFF |
#define | SOCKETS_DEBUG LWIP_DBG_OFF |
#define | ICMP_DEBUG LWIP_DBG_OFF |
#define | IGMP_DEBUG LWIP_DBG_OFF |
#define | INET_DEBUG LWIP_DBG_OFF |
#define | IP_DEBUG LWIP_DBG_OFF |
#define | IP_REASS_DEBUG LWIP_DBG_OFF |
#define | RAW_DEBUG LWIP_DBG_OFF |
#define | MEM_DEBUG LWIP_DBG_OFF |
#define | MEMP_DEBUG LWIP_DBG_OFF |
#define | SYS_DEBUG LWIP_DBG_OFF |
#define | TIMERS_DEBUG LWIP_DBG_OFF |
#define | TCP_DEBUG LWIP_DBG_OFF |
#define | TCP_INPUT_DEBUG LWIP_DBG_OFF |
#define | TCP_FR_DEBUG LWIP_DBG_OFF |
#define | TCP_RTO_DEBUG LWIP_DBG_OFF |
#define | TCP_CWND_DEBUG LWIP_DBG_OFF |
#define | TCP_WND_DEBUG LWIP_DBG_OFF |
#define | TCP_OUTPUT_DEBUG LWIP_DBG_OFF |
#define | TCP_RST_DEBUG LWIP_DBG_OFF |
#define | TCP_QLEN_DEBUG LWIP_DBG_OFF |
#define | UDP_DEBUG LWIP_DBG_OFF |
#define | TCPIP_DEBUG LWIP_DBG_OFF |
#define | PPP_DEBUG LWIP_DBG_OFF |
#define | SLIP_DEBUG LWIP_DBG_OFF |
#define | DHCP_DEBUG LWIP_DBG_OFF |
#define | AUTOIP_DEBUG LWIP_DBG_OFF |
#define | SNMP_MSG_DEBUG LWIP_DBG_OFF |
#define | SNMP_MIB_DEBUG LWIP_DBG_OFF |
#define | DNS_DEBUG LWIP_DBG_OFF |
|
API_LIB_DEBUG: Enable debugging in api_lib.c. |
|
API_MSG_DEBUG: Enable debugging in api_msg.c. |
|
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. |
|
ARP_TABLE_SIZE: Number of active MAC-IP address pairs cached. |
|
AUTOIP_DEBUG: Enable debugging in autoip.c. |
|
CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets. |
|
CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets. |
|
CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets. |
|
CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets. |
|
CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets. |
|
CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets. |
|
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. |
|
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. |
|
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. |
|
DEFAULT_THREAD_NAME: The name assigned to any other lwIP thread. |
|
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. |
|
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. |
|
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. |
|
DHCP_DEBUG: Enable debugging in dhcp.c. |
|
DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address. |
|
DNS_DEBUG: Enable debugging for DNS. |
|
DNS do a name checking between the query and the response. |
|
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. |
|
If this is turned on, the local host-list can be dynamically changed at runtime. |
|
DNS maximum host name length supported in the name table. |
|
The maximum of DNS servers |
|
DNS message max. size. Default value is RFC compliant. |
|
DNS maximum number of entries to maintain locally. |
|
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. |
|
ETHARP_DEBUG: Enable debugging in etharp.c. |
|
ETHARP_STATS==1: Enable etharp stats. |
|
ETHARP_SUPPORT_STATIC_ENTRIES==1: enable code to support static ARP table entries (using etharp_add_static_entry/etharp_remove_static_entry). |
|
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. |
|
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! |
|
ICMP_DEBUG: Enable debugging in icmp.c. |
|
ICMP_STATS==1: Enable ICMP stats. |
|
ICMP_TTL: Default value for Time-To-Live used by ICMP packets. |
|
IGMP_DEBUG: Enable debugging in igmp.c. |
|
IGMP_STATS==1: Enable IGMP stats. |
|
INET_DEBUG: Enable debugging in inet.c. |
|
IP_DEBUG: Enable debugging for IP. |
|
IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers. |
|
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. |
|
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. |
|
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! |
|
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). |
|
IP_REASS_DEBUG: Enable debugging in ip_frag.c for both frag & reass. |
|
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! |
|
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. |
|
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. |
|
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. |
|
IP_SOF_BROADCAST_RECV (requires IP_SOF_BROADCAST=1) enable the broadcast filter on recv operations. |
|
IP_STATS==1: Enable IP stats. |
|
IPFRAG_STATS==1: Enable IP fragmentation stats. Default is on if using either frag or reass. |
|
LINK_STATS==1: Enable link stats. |
|
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:
|
|
LWIP_ARP==1: Enable ARP functionality. |
|
LWIP_AUTOIP==1: Enable AUTOIP module. |
|
LWIP_BROADCAST_PING==1: respond to broadcast pings (default is unicast only) |
|
LWIP_CHECKSUM_ON_COPY==1: Calculate checksum when copying data from application buffers to pbufs. |
|
LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names. (only used if you use sockets.c) |
|
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. |
|
LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable debug messages of certain types. |
|
LWIP_DHCP==1: Enable DHCP module. |
|
LWIP_DHCP_AUTOIP_COOP==1: Allow DHCP and AUTOIP to be both enabled on the same interface at the same time. |
|
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. |
|
LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS transport. |
|
LWIP_ETHERNET==1: enable ethernet support for PPPoE even though ARP might be disabled |
|
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. |
|
LWIP_HAVE_LOOPIF==1: Support loop interface (127.0.0.1) and loopif.c |
|
LWIP_HAVE_SLIPIF==1: Support slip interface and slipif.c |
|
LWIP_ICMP==1: Enable ICMP module inside the IP stack. Be careful, disable that make your product non-compliant to RFC1122 |
|
LWIP_IGMP==1: Turn on IGMP module. |
|
LWIP_LOOPBACK_MAX_PBUFS: Maximum number of pbufs on queue for loopback sending for each netif (0 = disabled) |
|
LWIP_MULTICAST_PING==1: respond to multicast pings (default is unicast only) |
|
LWIP_NETBUF_RECVINFO==1: append destination addr and port to every netbuf. |
|
LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c) |
|
LWIP_NETIF_API==1: Support netif api (in netifapi.c) |
|
LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname field. |
|
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. |
|
LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface whenever the link changes (i.e., link down) |
|
LWIP_NETIF_LOOPBACK==1: Support sending packets with a destination IP address equal to the netif IP address, looping them back up the stack. |
|
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. |
|
LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface changes its up/down status (i.e., due to DHCP IP acquistion) |
|
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!
|
|
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) |
|
LWIP_RAW==1: Enable application layer to hook into the IP layer itself. |
|
LWIP_SNMP==1: Turn on SNMP module. UDP must be available for SNMP transport. |
|
LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing. |
|
LWIP_SO_RCVTIMEO==1: Enable SO_RCVTIMEO processing. |
|
LWIP_SOCKET==1: Enable Socket API (require to use sockets.c) |
|
LWIP_STATS==1: Enable statistics collection in lwip_stats. |
|
LWIP_STATS_DISPLAY==1: Compile in the statistics output functions. |
|
LWIP_TCP==1: Turn on TCP. |
|
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) |
|
LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option. |
|
LWIP_TCPIP_CORE_LOCKING: (EXPERIMENTAL!) Don't use it if you're not an active lwIP project member |
|
LWIP_TCPIP_CORE_LOCKING_INPUT: (EXPERIMENTAL!) Don't use it if you're not an active lwIP project member |
|
LWIP_TCPIP_TIMEOUT==1: Enable tcpip_timeout/tcpip_untimeout tod create timers running in tcpip_thread from another thread. |
|
LWIP_UDP==1: Turn on UDP. |
|
LWIP_UDPLITE==1: Turn on UDP-Lite. (Requires LWIP_UDP) |
|
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 |
|
MEM_DEBUG: Enable debugging in mem.c. |
|
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. |
|
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. |
|
MEM_STATS==1: Enable mem.c stats. |
|
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. |
|
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. |
|
MEMCPY: override this if you have a faster implementation at hand than the one included in your C library |
|
MEMP_DEBUG: Enable debugging in memp.c. |
|
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! |
|
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) |
|
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. |
|
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) |
|
MEMP_NUM_LOCALHOSTLIST: the number of host entries in the local host list if DNS_LOCAL_HOSTLIST_IS_DYNAMIC==1. |
|
MEMP_NUM_NETBUF: the number of struct netbufs. (only needed if you use the sequential API, like api_lib.c) |
|
MEMP_NUM_NETCONN: the number of struct netconns. (only needed if you use the sequential API, like api_lib.c) |
|
MEMP_NUM_NETDB: the number of concurrently running lwip_addrinfo() calls (before freeing the corresponding memory using lwip_freeaddrinfo()). |
|
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. |
|
MEMP_NUM_PPPOE_INTERFACES: the number of concurrently active PPPoE interfaces (only used with PPPOE_SUPPORT==1) |
|
MEMP_NUM_RAW_PCB: Number of raw connection PCBs (requires the LWIP_RAW option) |
|
MEMP_NUM_REASSDATA: the number of IP packets simultaneously queued for reassembly (whole packets, not fragments!) |
|
MEMP_NUM_SNMP_NODE: the number of leafs in the SNMP tree. |
|
MEMP_NUM_SNMP_ROOTNODE: the number of branches in the SNMP tree. Every branch has one leaf (MEMP_NUM_SNMP_NODE) at least! |
|
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) |
|
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) |
|
MEMP_NUM_SYS_TIMEOUT: the number of simulateously active timeouts. (requires NO_SYS==0) |
|
MEMP_NUM_TCP_PCB: the number of simulatenously active TCP connections. (requires the LWIP_TCP option) |
|
MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections. (requires the LWIP_TCP option) |
|
MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments. (requires the LWIP_TCP option) |
|
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) |
|
MEMP_NUM_TCPIP_MSG_INPKT: the number of struct tcpip_msg, which are used for incoming packets. (only needed if you use tcpip.c) |
|
MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One per active UDP "connection". (requires the LWIP_UDP option) |
|
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!) |
|
MEMP_SANITY_CHECK==1: run a sanity check after each memp_free() to make sure that there are no cycles in the linked lists. |
|
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 |
|
MEMP_STATS==1: Enable memp.c pool stats. |
|
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. |
|
NETIF_DEBUG: Enable debugging in netif.c. |
|
NO_SYS==1: Provides VERY minimal functionality. Otherwise, use lwIP facilities. |
|
NO_SYS_NO_TIMERS==1: Drop support for sys_timeout when NO_SYS==1 Mainly for compatibility to old versions. |
|
PBUF_DEBUG: Enable debugging in pbuf.c. |
|
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. |
|
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. |
|
PBUF_POOL_SIZE: the number of buffers in the pbuf pool. |
|
PPP_DEBUG: Enable debugging for PPP. |
|
PPP_SUPPORT==1: Enable PPP. |
|
PPP_THREAD_NAME: The name assigned to the pppInputThread. |
|
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. |
|
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. |
|
PPPOE_SUPPORT==1: Enable PPP Over Ethernet |
|
PPPOS_SUPPORT==1: Enable PPP Over Serial |
|
RAW_DEBUG: Enable debugging in raw.c. |
|
LWIP_RAW==1: Enable application layer to hook into the IP layer itself. |
|
If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize. |
|
SLIP_DEBUG: Enable debugging in slipif.c. |
|
SLIPIF_THREAD_NAME: The name assigned to the slipif_loop thread. |
|
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. |
|
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. |
|
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. |
|
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 |
|
The maximum length of strings used. This affects the size of MEMP_SNMP_VALUE elements. |
|
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. |
|
The size of the MEMP_SNMP_VALUE elements, normally calculated from SNMP_MAX_OCTET_STRING_LEN and SNMP_MAX_TREE_DEPTH. |
|
SNMP_MIB_DEBUG: Enable debugging for SNMP MIBs. |
|
SNMP_MSG_DEBUG: Enable debugging for SNMP messages. |
|
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. |
|
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! |
|
SNMP_TRAP_DESTINATIONS: Number of trap destinations. At least one trap destination is required |
|
SO_REUSE==1: Enable SO_REUSEADDR option. |
|
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! |
|
SOCKETS_DEBUG: Enable debugging in sockets.c. |
|
SYS_DEBUG: Enable debugging in sys.c. |
|
SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain critical regions during buffer allocation, deallocation and memory allocation and deallocation. |
|
SYS_STATS==1: Enable system stats (sem and mbox counts, etc). |
|
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. |
|
TCP_CWND_DEBUG: Enable debugging for TCP congestion window. |
|
TCP_DEBUG: Enable debugging for TCP. |
|
The maximum allowed backlog for TCP listen netconns. This backlog is used unless another is explicitly specified. 0xff is the maximum (u8_t). |
|
TCP_FR_DEBUG: Enable debugging in tcp_in.c for fast retransmit. |
|
TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug. |
|
TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb. |
|
TCP_MAXRTX: Maximum number of retransmissions of data segments. |
|
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. |
|
TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions. |
|
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. |
|
TCP_QLEN_DEBUG: Enable debugging for TCP queue lengths. |
|
TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order. Define to 0 if your device is low on memory. |
|
TCP_RST_DEBUG: Enable debugging for TCP with the RST message. |
|
TCP_RTO_DEBUG: Enable debugging in TCP for retransmit timeout. |
|
TCP_SND_BUF: TCP sender buffer space (bytes). |
|
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. |
|
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). |
|
TCP_SNDQUEUELOWAT: TCP writable bufs (pbuf count). This must be grater than TCP_SND_QUEUELEN. If the number of pbufs queued on a pcb drops below this number, select returns writable (combined with TCP_SNDLOWAT). |
|
TCP_STATS==1: Enable TCP stats. Default is on if TCP enabled, otherwise off. |
|
TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments. |
|
TCP_TTL: Default Time-To-Live value. |
|
TCP_WND: The size of a TCP window. This must be at least (2 * TCP_MSS) for things to work well |
|
TCP_WND_DEBUG: Enable debugging in tcp_in.c for window updating. |
|
TCP_WND_UPDATE_THRESHOLD: difference in window to trigger an explicit window update |
|
TCPIP_DEBUG: Enable debugging in tcpip.c. |
|
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. |
|
TCPIP_THREAD_NAME: The name assigned to the main tcpip thread. |
|
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. |
|
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. |
|
TIMERS_DEBUG: Enable debugging in timers.c. |
|
UDP_DEBUG: Enable debugging in UDP. |
|
UDP_STATS==1: Enable UDP stats. Default is on if UDP enabled, otherwise off. |
|
UDP_TTL: Default Time-To-Live value. |