SKB中有
275 union {
276 __wsum csum;
277 __u32 csum_offset;
278 }
282 __u8 ip_summed:2
csum在校验状态为CHECKSUM_NONE时,用于存放所负载数据报的数据部分的校验和,为计算完成的传输层校验和做准备。csum_offset在校验状态为CHECKSUM_PARTIAL时,记录传输层首部中的校验和字段的偏移。由于两种状态是互斥的,因此csum和csum_offset作为一个联合体来存储。
ip_summed标记传输层校验和的状态,如表
ip_summed 描述CHECKSUM_NONE 表示硬件不支持,完全由软件来执行校验和。
CHECKSUM_PARTIAL 表示由硬件来执行校验和。
CHECKSUM_UNNECESSARY 表示没有必要执行校验和。
CHECKSUM_COMPLETE 表示已经完成执行校验和。