目前,网络上多数文章所使用的 LwIP 版本为 1.4.1,而在写本文时的最新版本为 2.0.3。从 1.4.1 到 2.0.3(貌似从 2.0.0 开始), LwIP 的源码有了一定的变化,甚至于源码的文件结构也不一样,内部的一些实现源文件也被更新和替换了。
- 2023.4.25 同步到 2.1.3 最新版
网络接口
LwIP 使用 struct netif
来描述一个硬件网络接口。netif
是 LwIP 抽象出来的各网络接口,协议栈可以使用多个不同的接口,而 ./src/netif/ethernet.c
、./src/netif/slipif.c
就提供了netif
访问硬件的各接口。
但是,由于网络接口是直接与硬件打交道的,硬件接口不同则处理可能不同,必须由用户提供最底层接口。源码目录 ./src/netif/
目录下就包含了各种接口定义: