您的当前位置:首页LWIP配置说明

LWIP配置说明

2020-02-03 来源:飒榕旅游知识分享网
LWIP配置说明

#ifndef LWIPOPTS_H #define LWIPOPTS_H

//*****************************************************************************

//

//----------SNMP options---------- //

//*****************************************************************************

#define LWIP_SNMP0//SNMP协议启用 #if LWIP_SNMP

#define SNMP_CONCURRENT_REQUESTS1//SNMP当前允许请求数量

#define SNMP_TRAP_DESTINATIONS1//SNMP trap目的地址数目

#define SNMP_PRIVATE_MIB1//SNMP私有节点设置允许 #define SNMP_SAFE_REQUESTS1//仅回复SNMP安全请求 #endif

//*****************************************************************************

//

//----------Platform specific locking---------- //

//*****************************************************************************

#define SYS_LIGHTWEIGHT_PROT1//临界中断保护开关(多任务模式下开启)

#define NO_SYS0//LWIP独立运行或者基于操作系统,为0则基

于操作系统

//*****************************************************************************

//

//----------Memory options---------- //

//*****************************************************************************

#define MEM_LIBC_MALLOC0//采用LWIP自带函数分配动态内存

#define MEM_LIBC_MALLOC0//内存池不通过内存堆来分配 #define MEM_ALIGNMENT4//字节对齐(和CPU的位数有关,32位设置为4) #define MEM_SIZE8*1024//堆内存大小,用于发送数据

#define MEMP_SANITY_CHECK0//mem_free调用后检查链表是否有循环by zc

#define MEMP_OVERFLOW_CHECK0//lwip堆内存溢出检查 #define MEM_USE_POOLS0//内存堆不通过内存池分配 #define MEM_USE_POOLS_TRY_BIGGER_POOL0//申请内存失败不选择大内存池

#define MEMP_USE_CUSTOM_POOLS0//同上

//*****************************************************************************

//

//----------Internal Memory Pool Sizes---------- //

//*****************************************************************************

#define

MEMP_NUM_PBUF60//

memp

PBUF_ROM(ROM内存池)和PBUF_REF(RAM内存池)数目最大总和

#define MEMP_NUM_RAW_PCB4//RAW连接的PCB数目(需要

LWIP RAW有效)

#define MEMP_NUM_UDP_PCB4//能够同时连接的UDP的PCB数目

#define

MEMP_NUM_TCP_PCB(TCP_WND+TCP_SND_BUF)/TCP_MSS//能够同时连接的TCP的PCB 数目12

#define

MEMP_NUM_TCP_PCB_LISTEN1//(TCP_WND+TCP_SND_BUF)/TCP_MSS//能够同时监听的TCP的PCB数目

#define MEMP_NUM_TCP_SEG40//80能够同时在队列里的TCP的PCB数目

#define MEMP_NUM_REASSDATA8//最大同时等待重装的IP包数目,是整个IP包,不是IP分片

#define MEMP_NUM_ARP_QUEUE30//最大等待回复ARP请求的数目(ARP_QUEUEING有效)

#define MEMP_NUM_IGMP_GROUP8//多播组同时接收数据的最大成员数目(LWIP_IGMP有效)

#define MEMP_NUM_SYS_TIMEOUT20//能够同时激活的超时连接数目(NO_SYS==0有戏)

#define MEMP_NUM_NETBUF10//netbufs结构的数目 #define MEMP_NUM_NETCONN16//netconns结构的数目 #define MEMP_NUM_TCPIP_MSG_API40//tcpip_msg结构的最大数目,用于callback和API的通讯by zc

#define MEMP_NUM_TCPIP_MSG_INPKT40//tcpip_msg接受数据包结构的最大数目by zc

#define PBUF_POOL_SIZE48//内存池数量(小内存减小该选项可大大减小内存占用)

//*****************************************************************************

//

//----------ARP options---------- //

//*****************************************************************************

#define LWIP_ARP1//ARP协议允许

#define ARP_TABLE_SIZE10//ARP维护的表项大小

#define ARP_QUEUEING1//硬件地址解析时,将发送数据包计入队列

#define ETHARP_TRUST_IP_MAC1//所有IP数据包都会直接引起ARP table的更新,

//为0则非表项内IP-MAC关系会引起ARP请求,可以避免IP欺骗,不过会造成延时

#define ETHARP_SUPPORT_VLAN0//非虚拟局域网,为1则仅虚拟局域网通讯有效

//*****************************************************************************

//

//----------IP options---------- //

//*****************************************************************************

#define IP_FORWARD0//不允许不匹配数据包转发,多接口时为1 #define IP_OPTIONS_ALLOWED1//带IP选项数据包允许为0则丢弃所有IP数据包

#define IP_REASSEMBLY1//允许接收IP包分片包(为0不允许,不能够接收大于MTU的包) #define IP_FRAG1//允许发送IP包分片包

#define IP_REASS_MAXAGE3//允许接收的最大分段数 #define IP_REASS_MAX_PBUFS10//最大允许存在的IP分片包占用的内存池个数

#define IP_FRAG_USES_STATIC_BUF1//IP分片使用静态缓冲区 #define IP_FRAG_MAX_MTU1500//IP分片最大缓冲数量 #define IP_DEFAULT_TTL255//IP数据包最大经历设备数目 #define IP_SOF_BROADCAST0//IP发送广播包过滤 #define IP_SOF_BROADCAST_RECV0//IP接收广播包过滤 //*****************************************************************************

//

//----------ICMP options---------- //

//*****************************************************************************

#define LWIP_ICMP1//开启ping包接收/发送

#define ICMP_TTL(IP_DEFAULT_TTL)//ping包最大经历设备数目

#define LWIP_BROADCAST_PING0//不回复广播ping包 #define LWIP_MULTICAST_PING0//不回复多播ping包 //*****************************************************************************

//

//----------RAW options---------- //

//*****************************************************************************

#define LWIP_RAW0//无操作系统基于回调函数驱动

#define RAW_TTL(IP_DEFAULT_TTL)//应用层数据传输次数(基于IP层的TTL)

//*****************************************************************************

//

//----------DHCP options---------- //

//*****************************************************************************

#define LWIP_DHCP0//动态主机协议配置(为1时) #define LWIP_AUTOIP0//动态主机IP地址配置(为1时) #define LWIP_DHCP_AUTOIP_COOP0//允许上述两种配置同时存在于1个接口(为1时)

#define LWIP_DHCP_AUTOIP_COOP_TRIES9//DHCP分配允许失败次数,失败则使用AUTOUP

//*****************************************************************************

//

//----------IGMP options---------- //

//*****************************************************************************

#define LWIP_IGMP0//LWIP组管理协议

//*****************************************************************************

//

//----------DNS options----------- //

//*****************************************************************************

#define LWIP_DNS0//域名服务器模块(依托UDP协议) #define DNS_TABLE_SIZE4//域名服务器维护的最大入口数目 #define DNS_MAX_NAME_LENGTH256//域名服务器主机地址最大长度

#define DNS_MAX_SERVERS2//域名服务器最大服务数目

#define DNS_DOES_NAME_CHECK1//查询域名服务器时检测地址名

#define DNS_USES_STATIC_BUF1//域名服务器使用静态地址 #define DNS_MSG_SIZE512//域名服务器接收最大通讯数据长度

#define DNS_LOCAL_HOSTLIST0//在本地维护域名服务器主机-地址表(为1时)

#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC0//主机-地址表实时更新(为1时)

//*****************************************************************************

//

//----------UDP options---------- //

//*****************************************************************************

#define LWIP_UDP1//启用UDP协议(snmp协议基于此) #define LWIP_UDPLITE1//UDP协议启用精简版

#define UDP_TTL(IP_DEFAULT_TTL)//UDP数据包传输次数 #define LWIP_NETBUF_RECVINFO0//接收到的数据包除首个外其它不附加目的地址和端口

//*****************************************************************************

//

//----------TCP options---------- //

//*****************************************************************************

#define LWIP_TCP1//启用TCP协议(http协议基于此) #define TCP_TTL(IP_DEFAULT_TTL)//TCP数据包传输次数

#define TCP_WND4*TCP_MSS//tcp窗口大小

#define TCP_MAXRTX12//最大允许重传TCP数据包数目#define TCP_SYNMAXRTX6//最大允许重传SYN连接包数目#define TCP_QUEUE_OOSEQ(LWIP_TCP)//TCP接收队列外数据块排序

#define TCP_MSS1460//tcp报文最大分段长度

#define TCP_CALCULATE_EFF_SEND_MSS1//tcp预计发送的分段长度,为

#define

TCP_SND_QUEUELEN(4*(TCP_SND_BUF/TCP_MSS))//TCP发送队列长度

#define TCP_SNDLOWAT(TCP_SND_BUF/4)//TCP可发送数据长度

#define TCP_LISTEN_BACKLOG1//TCP多连接允许

#define TCP_DEFAULT_LISTEN_BACKLOG0xff//TCP连接和半连接的总数

#define LWIP_TCP_TIMESTAMPS0//TCP时间戳选项

#define TCP_WND_UPDATE_THRESHOLD(TCP_WND/4)//TCP窗口更新阈值

//TCP定时器设置选项

#define TCP_MSL10000UL//TCP连接存在时间单位ms #define TCP_FIN_WAIT_TIMEOUT20000UL//FIN等到ACK应答时间单位ms

#define TCP_TMR_INTERVAL20//TCP定时器计数间隔20ms //*****************************************************************************

//

//----------Internal Memory Pool Sizes---------- //

//*************************************************************

1

则根据窗口大小分配#define

TCP_SND_BUF(8*TCP_MSS)//TCP发送缓冲区zc7.1

****************

#define PBUF_LINK_HLEN14//为处理以太网头申请的包长度(本地MAC地址+远端MAC地址+协议类型)6+6+2

#define PBUF_POOL_BUFSIZE256//单个内存池长度,要考虑到4字节对齐和最佳大小

#define ETH_PAD_SIZE0//以太网填充长度,stm32设置为0根据发送包判断

//关系不大..默认即可

//*****************************************************************************

//

//----------Sequential layer options---------- //

//*****************************************************************************

#define LWIP_TCPIP_CORE_LOCKING0//?

#define LWIP_NETCONN1//应用层使用NETCONN相关函数 //*****************************************************************************

//

//----------Socket Options---------- //

//*****************************************************************************

#define LWIP_SOCKET0//关闭SOCKET通讯 //#define LWIP_COMPAT_SOCKETS1

//#define LWIP_POSIX_SOCKETS_IO_NAMES1 #define

LWIP_SO_RCVTIMEO0//conn->acceptmbox/recvmbox接收有超时限制,超时后自动断开连接

//#define LWIP_SO_RCVBUF0 //#define SO_REUSE0

//*****************************************************************************

//

//----------Statistics options---------- //

//*****************************************************************************

#define LWIP_STATS0//LWIP统计选项

//*****************************************************************************

//

//----------checksum options---------- //

//*****************************************************************************

#define CHECKSUM_GEN_IP1//IP校验和生成 #define CHECKSUM_GEN_UDP1//UDP校验和生成 #define CHECKSUM_GEN_TCP1//TCP校验和生成 #define CHECKSUM_CHECK_IP1//IP校验和校验 #define CHECKSUM_CHECK_UDP1//UDP校验和校验 #define CHECKSUM_CHECK_TCP1//TCP校验和校验

//*****************************************************************************

//

//----------TCP KEEPLIVE---------- //

//*****************************************************************************

#define LWIP_TCP_KEEPALIVE1//tcp保活定时器 #define TCP_KEEPIDLE_DEFAULT60000//保活时间60s #define TCP_KEEPINTVL_DEFAULT10000//保活探测10s #define TCP_KEEPCNT_DEFAULT9U

//*****************************************************************************

//

//----------DEBUG_OPTIONS---------- //

//*****************************************************************************

#define DEBUG_OPTIONS0//调试代码#endif

因篇幅问题不能全部显示,请点此查看更多更全内容