lwip -- lwipopts.h

lwipopts.h 是协议栈给用户的配置接口。

src/include/lwip/opt.h 文件中包含了 lwipopts.h。协议栈在 src/include/lwip/opt.h 做好了默认配置,如果用户在lwipopts.h 中配置的相关参数后则会优先使用用户的配置。

// 无操作系统,使用FreeRTOS时为0,使用AutoSar或baremental时为1
#define NO_SYS 1

#if NO_SYS == 0
// 当NO_SYS 为0时,可以使能下面两个选项,NO_SYS为1时下面选项必须配置为0,或不配置,默认为0
// 代表两种应用编程接口
#define LWIP_NETCONN 1
#define LWIP_SOCKET 1

// 网卡相关的函数接口,在FreeRTOS下能用改接口,AutoSar或baremental下不能用。
#define LWIP_NETIF_API 1
#endif

// 内存类相关配置
// 内存对齐,一般是4字节对齐
#define MEM_ALIGNMENT 4

// mem_malloc 使用该内存
// pbuf_alloc 的type==PBUF_RAM时调用mem_malloc 使用该内存
#define MEM_SIZE (22 * 1024)

// udp_new 在不释放的情况下最多创建udp_pcb的个数
#define MEMP_NUM_UDP_PCB 6
// 在不释放的情况下最多创建tcp_pcb的个数
#define MEMP_NUM_TCP_PCB 10
// 在不释放的情况下最多创建的tcp_pcb_listen的个数,监听pcb(服务端pcb)
#define MEMP_NUM_TCP_PCB_LISTEN 6

// 结构体 struct tcp_seg的个数,
// memp_malloc(MEMP_TCP_SEG), 在tcp_write函数中使用
#define MEMP_NUM_TCP_SEG 22

// 超时结构体,struct sys_timeo的个数,
// memp_malloc(MEMP_SYS_TIMEOUT)
// 改值得设置需要大于协议栈的超时时间的个数
// src/core/timeout.c 中数组struct lwip_cyclic_timer lwip_cyclic_timers[]的元素个数
#define MEMP_NUM_SYS_TIMEOUT 10

// pbuf 结构体的个数, 用作pbuf引用。仅申请pbuf结构体,引用别处的payload
// memp_malloc(MEMP_PBUF)
#define MEMP_NUM_PBUF      15

// memp_malloc(MEMP_PBUF_POOL),申请pbuf池中的pbuf(pbuf结构体+payload)
// payload 的长度固定为 PBUF_POOL_BUFSIZE
// pbuf内存池中的pbuf的最大个数
#define PBUF_POOL_SIZE     16
// 一个pbuf的payload 的长度,应设置为以太网帧最大的值
#define PBUF_POOL_BUFSIZE  LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_ENCAPSULATION_HLEN+PBUF_LINK_HLEN)

// TCP包在网络中生存时间,默认为255
#define TCP_TTL 255
// 传输层最大段的大小
#define TCP_MSS (1500 - 40)

// 每个tcp_pcb的发送缓存区最大值,在创建tcp_pcb时初始化为改值。
// 不能小于 (2*TCP_MSS)
#define TCP_SND_BUF (6 * TCP_MSS)

#define TCP_SND_QUEUELEN (3 * TCP_SND_BUF) / TCP_MSS

// 每个tcp_pcb的接收窗口最大值,在创建tcp_pcb时初始化为改值。
#define TCP_WND     (16 * TCP_MSS)

// 协议栈使能TCP
#define LWIP_TCP 1
// 在使用IPv4的情况下使能ICMP, IPv6下是LWIP_ICMP6
#define LWIP_ICMP 1
// 在使用IPv4的情况下使能DHCP, LWIP_IPV6_DHCP6
#define LWIP_DHCP 1
// 协议栈使能UDP
#define LWIP_UDP 1

// TCP包在网络中生存时间,默认为255
#define TCP_TTL 255

// UDP包在网络中生存时间,默认为255
#define UDP_TTL 255

// 校验选项配置
#ifdef CHECKSUM_BY_HARDWARE
/* CHECKSUM_GEN_IP==0: Generate checksums by hardware for outgoing IP packets.*/
#define CHECKSUM_GEN_IP 0
/* CHECKSUM_GEN_UDP==0: Generate checksums by hardware for outgoing UDP packets.*/
#define CHECKSUM_GEN_UDP 0
/* CHECKSUM_GEN_TCP==0: Generate checksums by hardware for outgoing TCP packets.*/
#define CHECKSUM_GEN_TCP 0
/* CHECKSUM_CHECK_IP==0: Check checksums by hardware for incoming IP packets.*/
#define CHECKSUM_CHECK_IP 0
/* CHECKSUM_CHECK_UDP==0: Check checksums by hardware for incoming UDP packets.*/
#define CHECKSUM_CHECK_UDP 0
/* CHECKSUM_CHECK_TCP==0: Check checksums by hardware for incoming TCP packets.*/
#define CHECKSUM_CHECK_TCP 0
#else
/* CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets.*/
#define CHECKSUM_GEN_IP    1
/* CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets.*/
#define CHECKSUM_GEN_UDP   1
/* CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets.*/
#define CHECKSUM_GEN_TCP   1
/* CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets.*/
#define CHECKSUM_CHECK_IP  1
/* CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets.*/
#define CHECKSUM_CHECK_UDP 1
/* CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets.*/
#define CHECKSUM_CHECK_TCP 1
#endif

//#define LWIP_TIMERS                     1
//#define TCP_TMR_INTERVAL      20
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值