Armadilloフォーラム

NICの受信エラー

sakashita_spc

2019年7月20日 2時45分

Armadillo-840 At-Distの環境で使っており、ethernの通信について、確認させてください。

ifconfigを見ると、受信パケットのDropが確認されています。
ネットワークの構成は、840どうしをHUBで接続して、HUBにはMoble routerが接続されています。
HUBはGigaHubです。

Routerなどを取り除いて、840のみにして、シリアルコンソールで確認したところ、

[guest@armadillo840-0 (ttySC2) ~]$ ifconfig eth0;sleep 5;ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:11:0C:23:00:90
inet addr:192.168.0.151 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22124 errors:0 dropped:3127 overruns:0 frame:0
TX packets:13893 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1523632 (1.4 MiB) TX bytes:19373837 (18.4 MiB)
Interrupt:142 DMA chan:ff

eth0 Link encap:Ethernet HWaddr 00:11:0C:23:00:90
inet addr:192.168.0.151 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22129 errors:0 dropped:3132 overruns:0 frame:0
TX packets:13893 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1523932 (1.4 MiB) TX bytes:19373837 (18.4 MiB)
Interrupt:142 DMA chan:ff

となりました。この5秒間(sleep)で、RXは5パケット受信して、5バケットドロップになっています。
Droppedの数も全体の1割程度になっています。

これらのDroppedはどのようなパケットが含まれますか?
また、ドライバーのアップデートなどはあるのでしょうか?

よろしくお願いします。

コメント

溝渕です。

> これらのDroppedはどのようなパケットが含まれますか?

以下のファイル等で、"rx_dropped"をインクリメントする条件を満したパケットです。
net/core/dev.c

気になっているのは以下の条件です。
- Linuxカーネルが認識できないプロトコルタイプのパケットを受信した
- backlogの許容量を越えた

まず、以下の確認をしていただけますか。
- LANケーブルの信号品質に問題は無いか(LANケーブルの交換)
- 処理しきれない程の大量のパケットを受信していないか(送信パケットを減らしてみる)

> Routerなどを取り除いて、840のみにして、シリアルコンソールで確認したところ、

上記、a840同士をLANケーブルで直結したという理解で良いでしょうか。

お世話になります。

> 以下のファイル等で、"rx_dropped"をインクリメントする条件を満したパケットです。
> net/core/dev.c
https://elixir.bootlin.com/linux/v4.14/source/net/core/dev.c
を参考に見ると、受信パケットでShort packetぐらいがDropさせていますね。
この層はdriverの上位になると思うので、driverでdropされたパケットは含まれないと
考えていいでしょうか?

> 気になっているのは以下の条件です。
> - Linuxカーネルが認識できないプロトコルタイプのパケットを受信した
 
否定はできませんが、可能性は少ないと思います。ただ、Dropのパケット数が多いです。

> - backlogの許容量を越えた
これは、オープンしているソケット数ですか?
ぐらい的にはどのくらい以上になるのでしょうか?

> まず、以下の確認をしていただけますか。
> - LANケーブルの信号品質に問題は無いか(LANケーブルの交換)
> - 処理しきれない程の大量のパケットを受信していないか(送信パケットを減らしてみる)
>
> > Routerなどを取り除いて、840のみにして、シリアルコンソールで確認したところ、
>
> 上記、a840同士をLANケーブルで直結したという理解で良いでしょうか。

 GigaHUBを間に入れています。HUB(TP-Link社)には、840の2台のみです。

atmarkさんの環境では、全く問題ないさそうですか?
(たとえば、PCとPINGをした場合のケースなど。。。)

溝渕です。

> https://elixir.bootlin.com/linux/v4.14/source/net/core/dev.c
> を参考に見ると、受信パケットでShort packetぐらいがDropさせていますね。

Armadillo-840で動作しているLinuxカーネルのソースを参照した方が無難と思
います。ソースは以下より取得可能です。
https://users.atmark-techno.com/armadillo-840/software

> この層はdriverの上位になると思うので、driverでdropされたパケットは含まれないと
> 考えていいでしょうか?

MAC driver(drivers/net/ethernet/renesas/)から直接"rx_dropped"の値を変
更している箇所は見当りませんでした(grepしただけですが)。

上記driverで、ring bufferが溢れた場合にもパケットが破棄されますが、こ
の場合はdroppedではなくoverrunsになります。

> > 気になっているのは以下の条件です。
> > - Linuxカーネルが認識できないプロトコルタイプのパケットを受信した
>  
> 否定はできませんが、可能性は少ないと思います。ただ、Dropのパケット数が多いです。

経路内でのパケットの損傷/破損の可能性は低いということですね。

> これは、オープンしているソケット数ですか?
> ぐらい的にはどのくらい以上になるのでしょうか?

これは、backlog(未処理のパケット)の数を示しており、1000個までです。

>  GigaHUBを間に入れています。HUB(TP-Link社)には、840の2台のみです。

Armadillo-840同士をethernet cableで直結して確認してみていただけますか。

> atmarkさんの環境では、全く問題ないさそうですか?
> (たとえば、PCとPINGをした場合のケースなど。。。)

対PCでPINGしてみましたが、dropは1つもありませんでした。

溝渕です。

含みを持たせたような表現をしてしまったので補足します。

> 対PCでPINGしてみましたが、dropは1つもありませんでした。

上記、drop含め通信エラーが発生していないという意味です。

Armadillo-840のソフトウェアは出荷状態のもので、ネットワーク設定等も一
切変更してない状態です。各イメージファイルのバージョンは次の通りです。

- ブートローダー: v3.11.0
- Linuxカーネル: v1.21
- ユーザーランド: v1.14

対向のPCのethernet contorllerはI217-Vで、ドライバはe1000eです。GigaHUB
はTL-SG505を使っています。

ifconfigコマンドの結果は次の通りです。

[root@armadillo840-0 (ttySC2) ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr [MACアドレス]
          inet addr:[IPアドレス]  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2115 errors:0 dropped:0 overruns:0 frame:0
          TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:271522 (265.1 KiB)  TX bytes:7223 (7.0 KiB)
          Interrupt:142 DMA chan:ff 

溝渕様
お世話になります。

詳細情報ありがとうございます。

別の環境の840の確認したところ、同じソフトで、dropパケットの確認はありませんでした。
また、HUBを経由させずに通信したこと、drop現象はありませんでした。

確認されていた接続機器(HUB)を確認したいと思います。

ありがとうございました。

以上、よろしくお願いします。