Lwip與底層的介面

2022-08-14 21:27:16 字數 1214 閱讀 9975

lwip有

三套api

,分別是:

raw api

:使用方法為使用**函式,即先註冊乙個函式,當接受到資料之後呼叫這個函式。缺點是對於資料連續處理不好。

lwip api

:把接收與處理放在乙個執行緒裡面。

因為需要執行緒的概念,故需要作業系統,當然,

ucos雖然只有程序的概念,但是也可以用。

bsd api

:與unix相容,

移植容易,效率低。

附完整敘述大圖

咳,好了說正題,就是lwip

與硬體的介面,

lwip

與硬體的介面為乙個

netif結構體資料型別

,每乙個這樣的結構體代表乙個網絡卡。下面就是這個結構體的詳細結構:

其中next是指向下個網絡卡的資料結構,如果是單網絡卡,那

next

就為空。

input是乙個函式指標,指向我們寫的函式,這個函式的作用是接受底層硬體輸入的資料報注:

野火的接受資料方法為不斷執行ethernetif_input

函式,此函式實現如下:

其中low_level_input

為從底層接受資料並將其轉化為

pbuf

,netif->input

做的工作則是將其傳給上層的協議進行處理。

output也是乙個指標函式,指向用於向

ip層輸出的函式

linkoutput函式指向最底層網絡卡傳送資料報的函式

此外,其他屬性為ip

位址,子網掩碼,閘道器,

mac位址,最大傳輸單元,網絡卡允許使用的功能,網路介面的名字和編號等。

來自為知筆記(wiz)

LwIP協議棧介面

協議棧api函式 1 netconn new udp tcp struct netconn netconn new enum netconn type t 為新連線申請乙個連線結構netconn空間 2 netconn delete udp tcp err t netconn delete stru...

LwIP 網路介面管理

netif 各種型別網路介面的抽象 netif.c netif.h netif.h 網路介面最大實體地址長度,這裡定義為乙太網網絡卡 mac 位址的長度 6 define netif max hwaddr len 6u 下面幾個巨集為網路介面屬性 狀態相關的巨集,主要用於描述 netif 中 fla...

LwIP 網路介面管理

netif 各種型別網路介面的抽象 netif.c netif.h netif.h 網路介面最大實體地址長度,這裡定義為乙太網網絡卡 mac 位址的長度 6 define netif max hwaddr len 6u 下面幾個巨集為網路介面屬性 狀態相關的巨集,主要用於描述 netif 中 fla...