有些網卡會加入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有沒有計算的判斷式
像是這樣...