欢迎来到 DPDK交流社区 ,有什么问题可以尽管在这里提问,您将会收到社区其他成员的回答;也可以将您的总结写在这里,为社区其他成员提供帮助。 (QQ交流群:127163755)

virtio_user 内核发包无法offload cksum/tso到物理网卡

+1 投票
测试环境:使用igb i350 及ixgbe 82599EB万兆网卡测试;

virtio_user网卡启动命令:

testpmd -l 4-5 -n 4 --vdev=virtio_user0,iface=veth1,path=/dev/vhost-net,queue_size=1024 -- -i --txqflags=0x0 --disable-hw-vlan --enable-lro --enable-rx-cksum --rxd=1024 --txd=1024

发现的问题:

1. tcp/udp包 cksum总是错误,抓包发现从内核veth1一直到外面主机,cksum字段都是一样。

暂时解决方法:ethtool -K veth1 tx off

问题根源:与virtio PMD rx接收函数收包时 打上RX flag有关,而不是打上类似vhost-user dequeue TX flag。

物理网卡的ip/tcp/udp/sctp cksum 及 tso等都已开启。

2. 设置start device失败不处理错误,导致后面出现奇怪的错误。

如大页内存为2M且比较分散,而初始化时分配512个大页,导致VHOST_USER_SET_MEM_TABLE出现内存分段数超过vhost默认的64个,引发后续一连串的初始化失败。提示诸如“VHOST_NET_SET_BACKEND fails”
最新提问 5月 18, 2017 分类:经验之谈 | 用户: netware (130 分)

登录 或者 注册 后回答这个问题。

...