UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Visitor alan
Visitor
242 次查看

zynq 7000 发送1或2个字节的udp包,udp cksum错误为0xffff

转到解答

硬件平台 : zynq 7000

内核版本 : 4.0.0

 

发送少于两字节的udp包,udp校验和为0xffff, 多于两字节则正常,请问是什么原因?

附件是在某度上搜索到的内容,但是并没有附上解决方法。

3e2ea2da672200514bd6eff5e9c23d9.png
0 项奖励
1 个已接受解答

已接受的解答
Xilinx Employee
Xilinx Employee
168 次查看

回复: zynq 7000 发送1或2个字节的udp包,udp cksum错误为0xffff

转到解答

这个问题应该早期版本的Linux已经解决了。

https://github.com/Xilinx/linux-xlnx/commit/af2c4ebb7ac56cc5a55cbe55db05470d6e91cbe2

你能提供更详细的错误信息或出现错误的环境吗?

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
7 条回复
Explorer
Explorer
193 次查看

回复: zynq 7000 发送1或2个字节的udp包,udp cksum错误为0xffff

转到解答

那你就不要发少于2字节的包就可以了,这不很简单吗?

如果你要深究,你至少把你怎么做的,比如代码写出来,用的什么协议,比如 lwip, petalinux 的tcp/ip

0 项奖励
Visitor alan
Visitor
173 次查看

回复: zynq 7000 发送1或2个字节的udp包,udp cksum错误为0xffff

转到解答

发送1个字节的包,是RFC文档中的要求。校验和是用的zynq 7000的硬件校验和计算功能算的,与我们自己的代码无关。怀疑是硬件自身的问题,看看还有没有人遇到相似的问题

0 项奖励
Xilinx Employee
Xilinx Employee
169 次查看

回复: zynq 7000 发送1或2个字节的udp包,udp cksum错误为0xffff

转到解答

这个问题应该早期版本的Linux已经解决了。

https://github.com/Xilinx/linux-xlnx/commit/af2c4ebb7ac56cc5a55cbe55db05470d6e91cbe2

你能提供更详细的错误信息或出现错误的环境吗?

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Visitor alan
Visitor
151 次查看

回复: zynq 7000 发送1或2个字节的udp包,udp cksum错误为0xffff

转到解答

        确实是调用驱动发包前没有将checksum域清零导致的,非常感谢!!!

        有点儿疑惑的是多于两个字节的包即使没有将checksum清零,也没有发生计算错误的情况,所以一直没有往这方面考虑。再次谢谢各位的帮助!!!

        

 

0 项奖励
Explorer
Explorer
134 次查看

回复: zynq 7000 发送1或2个字节的udp包,udp cksum错误为0xffff

转到解答

我怎么看连接没看出道道来,最近也打算用udp, 按你说,这是绕不过的坎。能说得详细点吗?

0 项奖励
Visitor alan
Visitor
91 次查看

回复: zynq 7000 发送1或2个字节的udp包,udp cksum错误为0xffff

转到解答

计算校验和时,需要将校验和域先置零。具体就是ip头的checksum字段与udp头的checksum字段在计算前必须置为0.这个在RFC标准里有明确指出。我们是因为直接将校验和计算交给硬件去做了,就没考虑这个,结果因为这个出了错。

0 项奖励
Explorer
Explorer
50 次查看

回复: zynq 7000 发送1或2个字节的udp包,udp cksum错误为0xffff

转到解答

你的udp 程序怎么写的? 我调试了一个,可以收到信息,但不能得到地址,作为server , 就不能回答客户。

https://forums.xilinx.com/t5/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6%E5%BC%80%E5%8F%91-MPSoC-Zynq-7000/petalinux-%E4%B8%8Budp-server-%E5%8F%AF%E4%BB%A5%E6%94%B6%E5%88%B0%E4%BF%A1%E6%81%AF-%E4%BD%86%E6%94%B6%E4%B8%8D%E5%88%B0ip%E5%9C%B0%E5%9D%80...

提了问题,却没人回答我

 

0 项奖励