|
日照
上午看了看棧底層接口,主要有這樣幾個功能:
1:eth_input(struct pbuf *p, struct netif *inp);
2:ethernetif_output(struct netif *netif, struct pbuf *p, struct ip_addr *ipaddr)
3:rt_err_t eth_device_init(struct eth_device* dev, const char* name)
第一個是用來把網絡上的數據預分揀,分成IP包和ARP包,大體的步驟流程是:首先取出以太網層的類型數據,然后判斷是IP還是ARP,然后對應著各自的處理程序,
第二個是用來把TCP/IP的上層封裝數據加入ARP頭之后放入BUFF中,然后分揀是IP包還是ARP包然后加入各自的頭,最后通過PHY上傳到以太網,基本上是輸入的逆運算,
第三個是 初始化, 加載結構類的幾個方法地址,比如說底層的收發,標志,MAC長度等一堆,最后:Set a network interface as the default network interface。
|
|