【发布时间】:2017-12-14 19:11:09
【问题描述】:
您好,我已经为 DPDK 实现了 pingpong。 客户端发送数据包,服务器接收数据包然后返回。
服务端部分的实现类似于DPDK官网的L2转发示例。
在进行 L2 转发时,我注意到在将数据包从接收队列转发到传输队列时存在数据包丢失。
我的问题是……有没有办法让丢包为零?
我找不到解决方案,因为 DPDK 网站的示例应用程序都有丢包。
丢包由下面的回调函数统计
rte_eth_tx_buffer_set_err_callback(tx_buffer[portid], rte_eth_tx_buffer_count_callback, &port_statistics[portid].dropped);
这是我从 L2 转发得到的结果
Port statistics ====================================
Statistics for port 0 ------------------------------
Packets sent: 384126
Packets received: 379889
Packets dropped: 4237
Aggregate statistics ===============================
Total packets sent: 384126
Total packets received: 379889
Total packets dropped: 4237
====================================================
由于我的实现只是乒乓球并且实现非常简单,因此我认为在我的情况下不应该有任何丢包。
【问题讨论】:
标签: networking dpdk