uc-sdk
|
Go to the source code of this file.
lwIP Options Configuration
Definition in file opt.h.
#define API_LIB_DEBUG LWIP_DBG_OFF |
#define API_MSG_DEBUG LWIP_DBG_OFF |
#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.
#define ARP_TABLE_SIZE 10 |
#define AUTOIP_DEBUG LWIP_DBG_OFF |
#define CHECKSUM_CHECK_IP 1 |
#define CHECKSUM_CHECK_TCP 1 |
#define CHECKSUM_CHECK_UDP 1 |
#define CHECKSUM_GEN_IP 1 |
#define CHECKSUM_GEN_TCP 1 |
#define CHECKSUM_GEN_UDP 1 |
#define DEFAULT_ACCEPTMBOX_SIZE 0 |
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.
#define DEFAULT_RAW_RECVMBOX_SIZE 0 |
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.
#define DEFAULT_TCP_RECVMBOX_SIZE 0 |
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.
#define DEFAULT_THREAD_NAME "lwIP" |
#define DEFAULT_THREAD_PRIO 1 |
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.
#define DEFAULT_THREAD_STACKSIZE 0 |
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.
#define DEFAULT_UDP_RECVMBOX_SIZE 0 |
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.
#define DHCP_DEBUG LWIP_DBG_OFF |
#define DNS_DEBUG LWIP_DBG_OFF |
#define DNS_DOES_NAME_CHECK 1 |
#define DNS_LOCAL_HOSTLIST 0 |
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.
#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0 |
#define DNS_MAX_NAME_LENGTH 256 |
#define DNS_MSG_SIZE 512 |
#define DNS_TABLE_SIZE 4 |
#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.
#define ETHARP_DEBUG LWIP_DBG_OFF |
#define ETHARP_STATS (LWIP_ARP) |
#define ETHARP_SUPPORT_STATIC_ENTRIES 0 |
#define ETHARP_SUPPORT_VLAN 0 |
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.
#define ETHARP_TRUST_IP_MAC 0 |
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!
#define ICMP_DEBUG LWIP_DBG_OFF |
#define ICMP_TTL (IP_DEFAULT_TTL) |
#define IGMP_DEBUG LWIP_DBG_OFF |
#define IGMP_STATS (LWIP_IGMP) |
#define INET_DEBUG LWIP_DBG_OFF |
#define IP_DEBUG LWIP_DBG_OFF |
#define IP_DEFAULT_TTL 255 |
#define IP_FORWARD 0 |
#define IP_FRAG 1 |
#define IP_FRAG_USES_STATIC_BUF 0 |
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!
#define IP_OPTIONS_ALLOWED 1 |
#define IP_REASS_DEBUG LWIP_DBG_OFF |
#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!
#define IP_REASS_MAXAGE 3 |
#define IP_REASSEMBLY 1 |
#define IP_SOF_BROADCAST 0 |
#define IP_SOF_BROADCAST_RECV 0 |
#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG) |
#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0 |
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:
#define LWIP_BROADCAST_PING 0 |
#define LWIP_CHECKSUM_ON_COPY 0 |
#define LWIP_COMPAT_SOCKETS 1 |
#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL |
#define LWIP_DBG_TYPES_ON LWIP_DBG_ON |
#define LWIP_DHCP_AUTOIP_COOP 0 |
#define LWIP_DHCP_AUTOIP_COOP_TRIES 9 |
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.
#define LWIP_DNS 0 |
#define LWIP_ETHERNET (LWIP_ARP || PPPOE_SUPPORT) |
#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.
#define LWIP_HAVE_LOOPIF 0 |
#define LWIP_HAVE_SLIPIF 0 |
#define LWIP_ICMP 1 |
#define LWIP_LOOPBACK_MAX_PBUFS 0 |
#define LWIP_MULTICAST_PING 0 |
#define LWIP_NETBUF_RECVINFO 0 |
#define LWIP_NETCONN 1 |
#define LWIP_NETIF_API 0 |
LWIP_NETIF_API==1: Support netif api (in netifapi.c)
#define LWIP_NETIF_HOSTNAME 0 |
#define LWIP_NETIF_HWADDRHINT 0 |
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.
#define LWIP_NETIF_LINK_CALLBACK 0 |
#define LWIP_NETIF_LOOPBACK 0 |
#define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS) |
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.
#define LWIP_NETIF_STATUS_CALLBACK 0 |
#define LWIP_NETIF_TX_SINGLE_PBUF 0 |
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!
#define LWIP_POSIX_SOCKETS_IO_NAMES 1 |
#define LWIP_RAW 1 |
#define LWIP_SNMP 0 |
#define LWIP_SO_RCVBUF 0 |
#define LWIP_SO_RCVTIMEO 0 |
#define LWIP_SOCKET 1 |
#define LWIP_STATS 1 |
#define LWIP_STATS_DISPLAY 0 |
#define LWIP_TCP_KEEPALIVE 0 |
#define LWIP_TCP_TIMESTAMPS 0 |
#define LWIP_TCPIP_CORE_LOCKING 0 |
#define LWIP_TCPIP_CORE_LOCKING_INPUT 0 |
#define LWIP_TCPIP_TIMEOUT 1 |
#define LWIP_UDPLITE 0 |
#define MEM_ALIGNMENT 1 |
#define MEM_DEBUG LWIP_DBG_OFF |
#define MEM_LIBC_MALLOC 0 |
#define MEM_SIZE 1600 |
#define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0)) |
#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.
#define MEM_USE_POOLS_TRY_BIGGER_POOL 0 |
#define MEMCPY | ( | dst, | |
src, | |||
len | |||
) | memcpy(dst,src,len) |
#define MEMP_DEBUG LWIP_DBG_OFF |
#define MEMP_MEM_MALLOC 0 |
#define MEMP_NUM_ARP_QUEUE 30 |
#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.
#define MEMP_NUM_IGMP_GROUP 8 |
#define MEMP_NUM_LOCALHOSTLIST 1 |
#define MEMP_NUM_NETBUF 2 |
#define MEMP_NUM_NETCONN 4 |
#define MEMP_NUM_NETDB 1 |
#define MEMP_NUM_PBUF 16 |
#define MEMP_NUM_PPPOE_INTERFACES 1 |
#define MEMP_NUM_RAW_PCB 4 |
#define MEMP_NUM_REASSDATA 5 |
#define MEMP_NUM_SNMP_NODE 50 |
#define MEMP_NUM_SNMP_ROOTNODE 30 |
#define MEMP_NUM_SNMP_VALUE 3 |
#define MEMP_NUM_SNMP_VARBIND 2 |
#define MEMP_NUM_SYS_TIMEOUT 3 |
#define MEMP_NUM_TCP_PCB 5 |
#define MEMP_NUM_TCP_PCB_LISTEN 8 |
#define MEMP_NUM_TCP_SEG 16 |
#define MEMP_NUM_TCPIP_MSG_API 8 |
#define MEMP_NUM_TCPIP_MSG_INPKT 8 |
#define MEMP_NUM_UDP_PCB 4 |
#define MEMP_OVERFLOW_CHECK 0 |
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!)
#define MEMP_SANITY_CHECK 0 |
MEMP_SANITY_CHECK==1: run a sanity check after each memp_free() to make sure that there are no cycles in the linked lists.
#define MEMP_SEPARATE_POOLS 0 |
#define MEMP_STATS (MEMP_MEM_MALLOC == 0) |
#define MEMP_USE_CUSTOM_POOLS 0 |
#define NETIF_DEBUG LWIP_DBG_OFF |
#define NO_SYS 0 |
#define NO_SYS_NO_TIMERS 0 |
#define PBUF_DEBUG LWIP_DBG_OFF |
#define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE) |
#define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN) |
#define PBUF_POOL_SIZE 16 |
#define PPP_DEBUG LWIP_DBG_OFF |
#define PPP_THREAD_NAME "pppInputThread" |
#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.
#define PPP_THREAD_STACKSIZE 0 |
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.
#define PPPOE_SUPPORT 0 |
#define PPPOS_SUPPORT PPP_SUPPORT |
#define RAW_DEBUG LWIP_DBG_OFF |
#define RAW_TTL (IP_DEFAULT_TTL) |
#define RECV_BUFSIZE_DEFAULT INT_MAX |
#define SLIP_DEBUG LWIP_DBG_OFF |
#define SLIPIF_THREAD_NAME "slipif_loop" |
#define SLIPIF_THREAD_PRIO 1 |
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.
#define SLIPIF_THREAD_STACKSIZE 0 |
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.
#define SMEMCPY | ( | dst, | |
src, | |||
len | |||
) | memcpy(dst,src,len) |
#define SNMP_CONCURRENT_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 SNMP_MIB_DEBUG LWIP_DBG_OFF |
#define SNMP_MSG_DEBUG LWIP_DBG_OFF |
#define SNMP_PRIVATE_MIB 0 |
#define SNMP_SAFE_REQUESTS 1 |
#define SNMP_TRAP_DESTINATIONS 1 |
#define SO_REUSE_RXTOALL 0 |
#define SOCKETS_DEBUG LWIP_DBG_OFF |
#define SYS_DEBUG LWIP_DBG_OFF |
#define SYS_LIGHTWEIGHT_PROT 0 |
#define SYS_STATS (NO_SYS == 0) |
#define TCP_CALCULATE_EFF_SEND_MSS 1 |
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.
#define TCP_CWND_DEBUG LWIP_DBG_OFF |
#define TCP_DEBUG LWIP_DBG_OFF |
#define TCP_DEFAULT_LISTEN_BACKLOG 0xff |
#define TCP_FR_DEBUG LWIP_DBG_OFF |
#define TCP_INPUT_DEBUG LWIP_DBG_OFF |
#define TCP_LISTEN_BACKLOG 0 |
#define TCP_MAXRTX 12 |
#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.
#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF |
#define TCP_OVERSIZE TCP_MSS |
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.
#define TCP_QLEN_DEBUG LWIP_DBG_OFF |
#define TCP_QUEUE_OOSEQ (LWIP_TCP) |
#define TCP_RST_DEBUG LWIP_DBG_OFF |
#define TCP_RTO_DEBUG LWIP_DBG_OFF |
#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_STATS (LWIP_TCP) |
#define TCP_SYNMAXRTX 6 |
#define TCP_TTL (IP_DEFAULT_TTL) |
#define TCP_WND (4 * TCP_MSS) |
#define TCP_WND_DEBUG LWIP_DBG_OFF |
#define TCP_WND_UPDATE_THRESHOLD (TCP_WND / 4) |
#define TCPIP_DEBUG LWIP_DBG_OFF |
#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.
#define TCPIP_THREAD_NAME "tcpip_thread" |
#define TCPIP_THREAD_PRIO 1 |
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.
#define TCPIP_THREAD_STACKSIZE 0 |
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.
#define TIMERS_DEBUG LWIP_DBG_OFF |
#define UDP_DEBUG LWIP_DBG_OFF |
#define UDP_STATS (LWIP_UDP) |
#define UDP_TTL (IP_DEFAULT_TTL) |