帮酷LOGO
0 0 评论
文章标签:type  队列  尺寸  

问题:


如何在netdev类型erspan上增加RX队列大小,以防止它出现RX溢出错误? 我理解netdev类型与gretap(除了GRE封装,它还处理ERSPAN封装)类似,


[root@sniffer2 centos]# ip link add dev erspan1 mtu 9100 type erspan seq key 1 erspan_ver 1 


[root@sniffer2 centos]# ip link set erspan1 up


[root@sniffer2 centos]# ifconfig erspan1


erspan1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9100


 inet6 fe80::14f6:cbff:fecb:46db prefixlen 64 scopeid 0x20<link>


 ether 16:f6:cb:cb:46:db txqueuelen 1000 (Ethernet)


 RX packets 2235281 bytes 311850140 (297.4 MiB)


 RX errors 4042724 dropped 2323 overruns 4042724 frame 0


 TX packets 0 bytes 0 (0.0 B)


 TX errors 5 dropped 0 overruns 0 carrier 0 collisions 0




[root@sniffer2 centos]# cat/proc/sys/net/core/netdev_max_backlog


1000


[root@sniffer2 centos]# cat/proc/sys/net/core/rmem_default


212992


[root@sniffer2 centos]# ethtool -g erspan1


Ring parameters for erspan1:


Cannot get device ring settings: Operation not supported



非常感谢,期待......


回答 1:

ERSPAN接口不是硬件接口,它没有真正的RX队列。 显然,你不能改变它的大小。 你的错误的本质在其他方面。

你正在使用 ifconfig,这是不推荐使用的,并且与最近的内核不完全兼容。 检查输出中的统计信息 ip -s -s -d link show dev erspan1 命令,你会看到你有什么错误,而且不是overrun。

如果你对c编程语言有一些了解你可以查看 ip_tunnel_rcv函数的源代码,找到各种错误类型和条件之间的对应关系,这些错误正在增加 。

fifo错误是由输入seqno不匹配引起, 我自己没有检查过,但是,在这里注明了 man ip-tunnelseqno无效 。 因此,尝试使用命令禁用它 ip link set dev erspan1 type erspan noiseq


回答 2:

当ERSPAN隧道接收镜像数据包时,它将检查镜像数据包是否在(基于ERSPAN标头中的序列号)中。 如果不是,内核将丢弃它。

添加"noiseq"(无输入序列号)可避免删除。 有关erspan的更多详细信息,请参见 https://github.com/williamtu/lpc18-erspan/blob/master/paper.pdf




文章标签:type  尺寸  队列  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语