2013-03-12 48 views
3

我正在编程一个linux网络驱动程序。这几乎完成了。当我在两台PC之间ping时,一切都很完美。然后我尝试使用一些TCP/UDP协议,接收器从不回复。我使用wireshark来查看发生了什么,并且我发现所有TCP数据包都有不正确的校验和。据说错误的校验和是由TCP校验和卸载造成的。我试图用ethtool关闭它。当我使用sudo ethtool -K uwn0 tx off,它回答了我编程Linux网络驱动程序以支持关闭TCP校验和卸载

Cannot get device rx-checksumming settings: Operation not supported 
Cannot get device tx-checksumming settings: Operation not supported 
Cannot get device scatter-gather settings: Operation not supported 
Cannot get device tcp-segmentation-offload settings: Operation not supported 
Cannot get device udp-fragmentation-offload settings: Operation not supported 
Cannot get device generic-segmentation-offload settings: Operation not supported 
Cannot get device generic-receive-offload settings: Operation not supported 
Cannot get device flags: Operation not supported 

有没有办法让我的驱动程序支持TCP校验和卸载?或者只是在软件中计算校验和? 谢谢

+0

这是一个很好的问题,但应该在http://serverfault.com/ – 2013-03-12 21:20:14

+4

@JamesC不在,它属于这里,因为它是关于*编写网络设备驱动程序*而不是如何配置现有的驱动程序。 – zwol 2013-03-12 21:21:02

回答