ZBLOG

vpp 不转发数据包到tun接口,报错信息:no free tx slots ,该如何解决

该问题可能是由于 vpp 内部的网络接口队列满了导致的。可以通过以下步骤尝试解决:

  1. 增加 vpp 的 tx queue size

可以通过修改 vpp 配置文件(/etc/vpp/startup.conf)中的“interface-queue-size”参数来增加 tx queue 的大小。例如,将其设置为 2048:

set interface-queue-size GigabitEthernet0/8/0 rx 2048
set interface-queue-size GigabitEthernet0/8/0 tx 2048
  1. 调整系统网卡队列大小

在某些情况下,vpp 的 tx queue 大小已经足够大了,但系统内置的网卡队列大小较小,也会导致该问题。可以通过修改系统网卡配置文件来调整它们的队列大小。

例如,在 CentOS 系统中,可以编辑 /etc/sysconfig/network-scripts/ifcfg-ethX 文件并添加以下两行:

ETHTOOL_OPTS="txqueuelen 2048"
TXQUEUES=4

这将把 ethX 网卡的 tx queue 长度增加到 2048,并将 tx queues 数量增加到 4。

  1. 使用多个 vpp worker 线程

如果上述方法都无法解决问题,您还可以考虑使用多个 vpp worker 线程。默认情况下,vpp 只使用一个 worker 线程处理所有数据包。您可以通过在启动命令中指定 –nodaemonize 和 -w 参数来启动多个 worker 线程。

例如,以下命令将启动 4 个 worker 线程:

sudo vppctl exec /usr/bin/vpp -c /etc/vpp/startup.conf -n -- nodaemonize -w 4

这将使得 vpp 可以同时处理更多的数据包,并提高系统吞吐量。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=1058

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?