1953713_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1953713_ja-JP

1953713_ja-JP

DPAA2イーサネット・スイッチ(dpsw)はパケットを受信ポートに送ります

DPAA2のLX2160プロセッサ搭載のイーサネット・スイッチ(DPSW)で問題や制限に直面しました。

dpsw は、パケットの宛先 MAC が既にそのポートで学習されている場合 (つまり、宛先 MAC がそのポートの FDB に登録されている場合) に、そのパケットを受信ポートに返送します。

これにより、スイッチがCiscoのイーサネット・スイッチに接続されている場合に問題が生じます。Cisco イーサネット・スイッチ CDPは、同じ送信元と宛先MACでパケットを送信することでループバックテストを行うためです。DPSWはCisco Switchがポートをシャットダウンさせます。

NXP社が提案している回避策があります。各ポートのFDBに登録されているMACアドレスをスキャンし、それらをACLに追加して、受信ポートへの送信をブロックするスクリプトを作成してください。

例えば、eth2 の問題を修正する必要がある場合は、次のスクリプトを使用します。

tc qdisc add dev eth2 clsact
dest=`bridge fdb show | grep -i eth2 | grep -i self | awk  '{print substr($1,0,17)}'`

for dmac in $dest; do
tc filter add dev eth2 ingress flower dst_mac $dmac skip_sw action drop done

コマンドの機能:

- qdiscを作成します(ACLについては、お送りしたリンクを参照してください)。

- ブリッジFDBをダンプし、宛先ポートがeth2で、かつタイプが「self」であるすべてのエントリを表示します。

ダンプの結果はawkに渡され、FDBからdmacのみを出力します。

例: 00:04:9f:05:c3:c8 00:04:9f:05:c3:c9 00:04:9f:05:85:b2

-結果をdestに保存します。- dest を反復処理し、dest 内の各 MAC に対してイングレスに ACL フィルタを追加します。

eth2で受信されるすべてのフローのうち、上記の範囲内のdmacを持つものは、作成されたACLルールによって破棄されます。


しかし、この回避策は場当たり的なやり方のように思える。いくつか問題点があります。

- MACが学習されACLに割り当てられる間には小さなウィンドウが存在し、パケットが受信ポートにループバックされる可能性があります。

- また、デバイスが移動しても、ACL内のMACアドレスは削除されません。移動したデバイスは現在アクセスできない可能性があります。

- 継続的な走査、ACLへの追加およびACLプロセッシングによるパフォーマンスへの影響。


私の質問:これに対処するもっと良い方法はありますか?


Re: DPAA2 Ethernet Switch (dpsw) sends packets back to incoming port

「もしかしたら」この方法が効果的か、役立つかもしれませんか?内容を確認し、動作するか、あるいは理にかなっているかどうかについてフィードバックをお願いします。


--------------------------------------------------------------------------------------------------
DPSWポートに受信するeth型ループバック検出フレーム0x9000ドロップするための代替サンプル方法
----------------------------------------------------------------------------------------------

例えば、ループバック検出フレーム(ethタイプ0x9000)パケットがeth5 dpswポート経由で受信されている場合(そして、例えばdpmac-18がこのdpswポートにリンクされている場合)、
その場合、汎用的なethタイプ0x9000フレーム(MACアドレスに関係なく)を破棄することで、ハードウェアオフロードルールを実行する方がより良い選択肢となるでしょう。


1. 一時的または既存の設定をすべて削除します。

tc qdisc del dev eth5 clsact 2>/dev/null
tc qdisc add dev eth5 clsact

2. 厳格なハードウェアオフロードのドロップルールを適用する

tc filter add dev eth5 ingress protocol 0x9000 flower skip_sw action drop

----------------------
3. ステータスチェック:

tc -s filter show dev eth5 ingress

restool dpsw info dpsw.0 | grep -A 10 "dpmac.18"| grep "fltr_frame"

または

while :; do restool dpsw info dpsw.0 | grep -A 10 "dpmac.18"| grep "fltr_frame"; sleep 1; done



Re: DPAA2 Ethernet Switch (dpsw) sends packets back to incoming port

簡単に言えば、お客様に実装を提供する可能性は非常に低いです:

-ハードウェアはソースポートのプリミュニングをサポートしておらず、その機能を実現するにはファームウェアも大幅な変更が必要です(実現可能かどうかも不明です)。なぜなら、プリンを自律的にエミュレートする方法が不可能なからです。

Re: DPAA2 Ethernet Switch (dpsw) sends packets back to incoming port

AEチームと話し合っています。

Tags (1)
No ratings
Version history
Last update:
Sunday
Updated by: