帮酷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  |  如果智培  |  酷兔英语