为了获得关于硬件校验和负载转移支持的数据,框架将在 cap 参数中发送 MAC_CAPA _HCKSUM。 请参见硬件校验和负载转移功能信息。
要在启用硬件校验和的情况下查询校验和负载转移元数据以及检索每个包的硬件校验和元数据,请使用 mac_hcksum_get(9F)。 请参见mac_hcksum_get()() 函数标志。
要设置校验和负载转移元数据,请使用 mac_hcksum_set(9F)。请参见mac_hcksum_set()() 函数标志。
有关更多信息,请参见硬件校验和:硬件和硬件校验和:MAC 层。
要将关于 MAC_CAPAB_HCKSUM 功能的信息传递给框架,驱动程序必须在指向 uint32_t 的 cap_data 中设置以下标志的组合。 这些标志指明驱动程序能够为外发包执行的硬件校验和负载转移的级别。
1 的补码的部分校验和功能
针对 IPv4 包的 1 的补码的完全校验和能力
针对 IPv6 包的 1 的补码的完全校验和能力
IPv4 头校验和负载转移功能
mac_hcksum_get() 的 flags 参数是以下值的组合:
计算此包的完整校验和。
完整校验和已在硬件中通过验证,证实是正确的。
根据传递给 mac_hcksum_get() 的其他参数计算 1 的补码的部分校验和。HCK_PARTIALCKSUM 与 HCK_FULLCKSUM 互斥。
计算 IP 报头校验和。
IP 头校验和已在硬件中通过验证,证实是正确的。
mac_hcksum_set 的 flags() 参数是以下值的组合:
通过 value 参数计算和传递完整校验和。
完整校验和已在硬件中通过验证,证实是正确的。
通过 value 参数计算和传递部分校验和。HCK_PARTIALCKSUM 与 HCK_FULLCKSUM 互斥。
通过 value 参数计算和传递 IP 头校验和。··
IP 头校验和已在硬件中通过验证,证实是正确的。