lwip源码:
——doc
——rawapi.txt:告诉读者怎么样使用协议栈的Raw/Callback API进行编程。
——sys_arch.txt:在移植的时候会被用到,包含了移植说明,规定了移植需要实现的函数、宏定义等。
——test:协议栈内核测试代码。
——src:
——API:Lwip的Sequential API和Socket API两类接口函数以及实现相关的源代码。
——include:整个协议栈需要使用的头文件。
——netif:包含了与底层网络接口相关的文件。
——PPP:包含了PPP协议实现的源代码(点对点协议),提供了一种在点对点线路上传输多协议数据包的标准格式,为链路的建立,控制,认证提供了标准
——etharp.c:包含了ARP协议实现的相关函数。
——ethernetif.c:与以太网网卡相关的初始化、发送、接收等函数的实现。移植需要根据网卡属性完成这些函数。
——slipif.c:串行链路上传输IP数据包的函数定义。
——core:Lwip的内核源代码:
——IP、ICMP、IGMP、TCP、UDP、DNS、DHCP、SNMP
——mem.c内存堆,memp.c内存池
——netif,c 网络接口管理 pbuf.c 数据包管理 tcp.c tcp_in.c tcp_out.cudp.c等等
——sys.c:与OS有关,没有OS时候不会编译
——timer.c:在无OS时候使用系统时钟函数sys_now来获取当前系统时间,从而判断各个事件是否超时;
在有OS时候实现对OS模拟层,实现了对OS模拟层邮箱等待函数的再次封装,得到一个具有协议特色的邮箱操作函数(在邮箱等待函数中加入一种机制,在邮箱上等待消息的同时可以同时实现协议栈中各个定时事件的正确处理)
——sys_arch.c:操作系统模拟层文件。