有些網卡會加入checksum offload的機制

所謂的checksum offlaod 就是讓硬體自己算完checksum後再加入packet中

像是IP header 的checksum, TCP/UDP的checksum 就看網卡硬體本身有實作哪些checksum的機制

在linux中 也有加入這些功能喔

再寫網卡driver的時候 linux net_device 的資料結構中 有features這個欄位

就是要讓你告訴linux 你的網卡有哪些功能

如果你的linux有checksum offload的功能 就必須把NETIF_F_IP_CSUM 這個flag給設起來

如此一來在linux網路架構中 checksum的這個欄位就會空下來給硬體去算囉

在tx的function裡 應當就會有判斷這筆packet的checksum有沒有計算的判斷式

像是這樣...

jpsix 發表在 痞客邦 留言(0) 人氣()