📄 opt.h
字号:
#ifndef IP_OPTIONS_ALLOWED#define IP_OPTIONS_ALLOWED 1#endif/** * 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. */#ifndef IP_REASSEMBLY#define IP_REASSEMBLY 1#endif/** * 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. */#ifndef IP_FRAG#define IP_FRAG 1#endif/** * 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. */#ifndef IP_REASS_MAXAGE#define IP_REASS_MAXAGE 3#endif/** * 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! */#ifndef IP_REASS_MAX_PBUFS#define IP_REASS_MAX_PBUFS 10#endif/** * 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! */#ifndef IP_FRAG_USES_STATIC_BUF#define IP_FRAG_USES_STATIC_BUF 0#endif/** * IP_FRAG_MAX_MTU: Assumed max MTU on any interface for IP frag buffer * (requires IP_FRAG_USES_STATIC_BUF==1) */#if IP_FRAG_USES_STATIC_BUF && !defined(IP_FRAG_MAX_MTU)#define IP_FRAG_MAX_MTU 1500#endif/** * IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers. */#ifndef IP_DEFAULT_TTL#define IP_DEFAULT_TTL 255#endif/** * 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. */#ifndef IP_SOF_BROADCAST#define IP_SOF_BROADCAST 0#endif/** * IP_SOF_BROADCAST_RECV (requires IP_SOF_BROADCAST=1) enable the broadcast * filter on recv operations. */#ifndef IP_SOF_BROADCAST_RECV#define IP_SOF_BROADCAST_RECV 0#endif/* ---------------------------------- ---------- ICMP options ---------- ----------------------------------*//** * LWIP_ICMP==1: Enable ICMP module inside the IP stack. * Be careful, disable that make your product non-compliant to RFC1122 */#ifndef LWIP_ICMP#define LWIP_ICMP 1#endif/** * ICMP_TTL: Default value for Time-To-Live used by ICMP packets. */#ifndef ICMP_TTL#define ICMP_TTL (IP_DEFAULT_TTL)#endif/** * LWIP_BROADCAST_PING==1: respond to broadcast pings (default is unicast only) */#ifndef LWIP_BROADCAST_PING#define LWIP_BROADCAST_PING 0#endif/** * LWIP_MULTICAST_PING==1: respond to multicast pings (default is unicast only) */#ifndef LWIP_MULTICAST_PING#define LWIP_MULTICAST_PING 0#endif/* --------------------------------- ---------- RAW options ---------- ---------------------------------*//** * LWIP_RAW==1: Enable application layer to hook into the IP layer itself. */#ifndef LWIP_RAW#define LWIP_RAW 1#endif/** * LWIP_RAW==1: Enable application layer to hook into the IP layer itself. */#ifndef RAW_TTL#define RAW_TTL (IP_DEFAULT_TTL)#endif/* ---------------------------------- ---------- DHCP options ---------- ----------------------------------*//** * LWIP_DHCP==1: Enable DHCP module. */#ifndef LWIP_DHCP#define LWIP_DHCP 0#endif/** * DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address. */#ifndef DHCP_DOES_ARP_CHECK#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))#endif/* ------------------------------------ ---------- AUTOIP options ---------- ------------------------------------*//** * LWIP_AUTOIP==1: Enable AUTOIP module. */#ifndef LWIP_AUTOIP#define LWIP_AUTOIP 0#endif/** * LWIP_DHCP_AUTOIP_COOP==1: Allow DHCP and AUTOIP to be both enabled on * the same interface at the same time. */#ifndef LWIP_DHCP_AUTOIP_COOP#define LWIP_DHCP_AUTOIP_COOP 0#endif/** * 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. */#ifndef LWIP_DHCP_AUTOIP_COOP_TRIES#define LWIP_DHCP_AUTOIP_COOP_TRIES 9#endif/* ---------------------------------- ---------- SNMP options ---------- ----------------------------------*//** * LWIP_SNMP==1: Turn on SNMP module. UDP must be available for SNMP * transport. */#ifndef LWIP_SNMP#define LWIP_SNMP 0#endif/** * 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 */#ifndef SNMP_CONCURRENT_REQUESTS#define SNMP_CONCURRENT_REQUESTS 1#endif/** * SNMP_TRAP_DESTINATIONS: Number of trap destinations. At least one trap * destination is required */#ifndef SNMP_TRAP_DESTINATIONS#define SNMP_TRAP_DESTINATIONS 1#endif/** * 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. */#ifndef SNMP_PRIVATE_MIB#define SNMP_PRIVATE_MIB 0#endif/** * 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! */#ifndef SNMP_SAFE_REQUESTS#define SNMP_SAFE_REQUESTS 1#endif/** * The maximum length of strings used. This affects the size of * MEMP_SNMP_VALUE elements. */#ifndef SNMP_MAX_OCTET_STRING_LEN#define SNMP_MAX_OCTET_STRING_LEN 127#endif/** * 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. */#ifndef SNMP_MAX_TREE_DEPTH#define SNMP_MAX_TREE_DEPTH 15#endif/** * The size of the MEMP_SNMP_VALUE elements, normally calculated from * SNMP_MAX_OCTET_STRING_LEN and SNMP_MAX_TREE_DEPTH. */#ifndef SNMP_MAX_VALUE_SIZE#define SNMP_MAX_VALUE_SIZE LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN)+1, sizeof(s32_t)*(SNMP_MAX_TREE_DEPTH))#endif/* ---------------------------------- ---------- IGMP options ---------- ----------------------------------*//** * LWIP_IGMP==1: Turn on IGMP module. */#ifndef LWIP_IGMP#define LWIP_IGMP 0#endif/* ---------------------------------- ---------- DNS options ----------- ----------------------------------*//** * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS * transport. */#ifndef LWIP_DNS#define LWIP_DNS 0#endif/** DNS maximum number of entries to maintain locally. */#ifndef DNS_TABLE_SIZE#define DNS_TABLE_SIZE 4#endif/** DNS maximum host name length supported in the name table. */#ifndef DNS_MAX_NAME_LENGTH#define DNS_MAX_NAME_LENGTH 256#endif/** The maximum of DNS servers */#ifndef DNS_MAX_SERVERS#define DNS_MAX_SERVERS 2#endif/** DNS do a name checking between the query and the response. */#ifndef DNS_DOES_NAME_CHECK#define DNS_DOES_NAME_CHECK 1#endif/** DNS message max. size. Default value is RFC compliant. */#ifndef DNS_MSG_SIZE#define DNS_MSG_SIZE 512#endif/** 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. */#ifndef DNS_LOCAL_HOSTLIST#define DNS_LOCAL_HOSTLIST 0#endif /* DNS_LOCAL_HOSTLIST *//** If this is turned on, the local host-list can be dynamically changed * at runtime. */#ifndef DNS_LOCAL_HOSTLIST_IS_DYNAMIC#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC *//* --------------------------------- ---------- UDP options ---------- ---------------------------------*//** * LWIP_UDP==1: Turn on UDP. */#ifndef LWIP_UDP#define LWIP_UDP 1#endif/** * LWIP_UDPLITE==1: Turn on UDP-Lite. (Requires LWIP_UDP) */#ifndef LWIP_UDPLITE#define LWIP_UDPLITE 0#endif/** * UDP_TTL: Default Time-To-Live value. */#ifndef UDP_TTL#define UDP_TTL (IP_DEFAULT_TTL)#endif/** * LWIP_NETBUF_RECVINFO==1: append destination addr and port to every netbuf. */#ifndef LWIP_NETBUF_RECVINFO#define LWIP_NETBUF_RECVINFO 0#endif/* --------------------------------- ---------- TCP options ---------- ---------------------------------*//** * LWIP_TCP==1: Turn on TCP. */#ifndef LWIP_TCP#define LWIP_TCP 1#endif/** * TCP_TTL: Default Time-To-Live value. */#ifndef TCP_TTL#define TCP_TTL (IP_DEFAULT_TTL)#endif/** * TCP_WND: The size of a TCP window. This must be at least * (2 * TCP_MSS) for things to work well */#ifndef TCP_WND#define TCP_WND (4 * TCP_MSS)#endif /** * TCP_MAXRTX: Maximum number of retransmissions of data segments. */#ifndef TCP_MAXRTX#define TCP_MAXRTX 12#endif/** * TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments. */#ifndef TCP_SYNMAXRTX#define TCP_SYNMAXRTX 6#endif/** * TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order. * Define to 0 if your device is low on memory. */#ifndef TCP_QUEUE_OOSEQ#define TCP_QUEUE_OOSEQ (LWIP_TCP)#endif/** * 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. */#ifndef TCP_MSS#define TCP_MSS 536#endif/** * 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. */#ifndef TCP_CALCULATE_EFF_SEND_MSS#define TCP_CALCULATE_EFF_SEND_MSS 1#endif/** * TCP_SND_BUF: TCP sender buffer space (bytes). */#ifndef TCP_SND_BUF#define TCP_SND_BUF 256#endif/** * 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. */#ifndef TCP_SND_QUEUELEN#define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))#endif/** * 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). */#ifndef TCP_SNDLOWAT#define TCP_SNDLOWAT ((TCP_SND_BUF)/2)#endif/** * 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). */#ifndef TCP_SNDQUEUELOWAT#define TCP_SNDQUEUELOWAT ((TCP_SND_QUEUELEN)/2)#endif/** * TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb. */#ifndef TCP_LISTEN_BACKLOG#define TCP_LISTEN_BACKLOG 0#endif/** * The maximum allowed backlog for TCP listen netconns. * This backlog is used unless another is explicitly specified. * 0xff is the maximum (u8_t). */#ifndef TCP_DEFAULT_LISTEN_BACKLOG#define TCP_DEFAULT_LISTEN_BACKLOG 0xff#endif/** * 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. */#ifndef TCP_OVERSIZE#define TCP_OVERSIZE TCP_MSS#endif/** * LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option. */#ifndef LWIP_TCP_TIMESTAMPS#define LWIP_TCP_TIMESTAMPS 0#endif/**
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -