2332632_ja-JP

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

2332632_ja-JP

2332632_ja-JP

PFE L2ブリッジにおけるポートベースVLAN(PVID)マッピングとタグなし外部トラフィックのサポート
1. 環境

プラットフォーム: S32G3

ソフトウェア:
* NXP RTD: SW32G_RTD_4.4_5.0.0_QLP04
* PFEファームウェア:1.12.0
* ツール: libfci_cli

PFEはVLAN_BRIDGEモードで動作しています。

---

2. 目標

外部トラフィックはすべてタグなしで保持しつつ、ポートベースのVLANアイソレータはPFE内部でのみ実装したいと考えています。

望ましい動作:

「`」
emac0 ↔ hif0 (内部VLAN 10)
emac1 ↔ hif1 (内部VLAN 20)
emac2 ↔ hif2 (内部VLAN 30)
「`」

つまり、
* 外部PCはVLANタグなしでフレームを送受信する
* VLANは、ポートベースのトラフィック分離のためにPFE内部でのみ使用されます。
* 目的は、マスター/スレーブアーキテクチャにおける不要なブロードキャスト/フラッディングを防止することです。

---

3. 現在の構成

VLANとブリッジドメインは以下のように設定されます。

主なコマンド:
「`sh
# ブリッジドメインとインターフェースの設定
libfci_cli bd-add --vlan 10
libfci_cli bd-add --vlan 20
libfci_cli bd-add --vlan 30

libfci_cli bd-update --vlan 10 --ucast-hit FORWARD --ucast-miss FLOOD --mcast-hit FORWARD --mcast-miss FLOOD
libfci_cli bd-update --vlan 20 --ucast-hit FORWARD --ucast-miss FLOOD --mcast-hit FORWARD --mcast-miss FLOOD
libfci_cli bd-update --vlan 30 --ucast-hit FORWARD --ucast-miss FLOOD --mcast-hit FORWARD --mcast-miss FLOOD

libfci_cli bd-insif --vlan 10 --i hif0 --tag OFF
libfci_cli bd-insif --vlan 10 --i emac0 --tag OFF
libfci_cli bd-insif --vlan 20 --i hif1 --tag OFF
libfci_cli bd-insif --vlan 20 --i emac1 --tag OFF
libfci_cli bd-insif --vlan 30 --i hif2 --tag OFF
libfci_cli bd-insif --vlan 30 --i emac2 --tag OFF

# PHYインターフェースモード設定
libfci_cli phyif-update --i emac0 -E --promisc OFF --mode VLAN_BRIDGE
libfci_cli phyif-update --i emac1 -E --promisc OFF --mode VLAN_BRIDGE
libfci_cli phyif-update --i emac2 -E --promisc OFF --mode VLAN_BRIDGE
libfci_cli phyif-update --i hif0 -E --promisc OFF --mode VLAN_BRIDGE
libfci_cli phyif-update --i hif1 -E --promisc OFF --mode VLAN_BRIDGE
libfci_cli phyif-update --i hif2 -E --promisc ON --mode VLAN_BRIDGE

libfci_cli bd-stent-add --vlan 10 --mac --i hif0
libfci_cli bd-stent-update --vlan 10 --mac --egress hif0
libfci_cli bd-stent-add --vlan 20 --mac --i hif1
libfci_cli bd-stent-update --vlan 20 --mac --egress hif1
libfci_cli bd-stent-add --vlan 30 --mac --i hif2
libfci_cli bd-stent-update --vlan 30 --mac --egress hif2
「`」

要約すると:
- 各VLAN(10/20/30)には、emac/hifのペアが割り当てられます。
- すべてのトラフィックは外部からタグ付けされません
- VLANは内部分離のみに使用されます

 

4. 問題

タグなしフレームが外部から到着した場合(例:PC → ping)、各ドメインのイングレスカウンタはゼロのままです。

「`」
ドメイン10イングレス: 0
ドメイン10イングレス: 0
ドメイン20 イングレス: 0
「`」

つまり、タグなしフレームは内部VLANにマッピングされないため、意図したポートベースの分離が機能しない。

# libfci_cli bd-print
ドメイン01 [デフォルト]
phyifs (タグ付き): ---
phyifs (タグなし): ---
ucast-hitアクション:3(破棄)
ucast-miss アクション : 3 (破棄)
mcast-hitアクション:3(破棄)
mcast-miss アクション : 3 (破棄)
侵入者数:4173人
受信バイト数:560619
出口:958
送信バイト数:234538
ドメイン00 [フォールバック]
phyifs (タグ付き): ---
phyifs (タグなし): ---
ucast-hitアクション:3(破棄)
ucast-miss アクション : 3 (破棄)
mcast-hitアクション:3(破棄)
mcast-miss アクション : 3 (破棄)
侵入: 0
受信バイト数:0
出口: 0
送信バイト数:0
ドメイン10
phyifs (タグ付き): ---
phyifs (タグなし): emac0、hif0
ucast-hit アクション: 0 (前方)
ucast-miss action : 1 (FLOOD)
mcast-hit アクション: 0 (前方)
mcast-miss アクション : 1 (FLOOD)
侵入: 0
受信バイト数:0
出口: 0
送信バイト数:0
ドメイン20
phyifs (タグ付き): ---
phyifs (タグなし): emac1、hif1
ucast-hit アクション: 0 (前方)
ucast-miss action : 1 (FLOOD)
mcast-hit アクション: 0 (前方)
mcast-miss アクション : 1 (FLOOD)
侵入: 0
受信バイト数:0
出口: 0
送信バイト数:0
ドメイン30
phyifs (タグ付き): ---
phyifs (タグなし): emac2、hif2
ucast-hit アクション: 0 (前方)
ucast-miss action : 1 (FLOOD)
mcast-hit アクション: 0 (前方)
mcast-miss アクション : 1 (FLOOD)
侵入: 0
受信バイト数:0
出口: 0
送信バイト数:0
コマンドは正常に実行されました。

---

5. 質問

外部トラフィックをタグ付けせずに、PFE内部でのみVLANベースのアイソレータを実現することは可能ですか?

* タグなし入力フレームをポートごとに特定の VLAN にマッピングします (PVID 機能)
* VLANはPFE内部でのみ使用されます
* 外部デバイスはVLANタグなしで動作します

言い換えると、
「`」
入力(タグなし)→ VLAN 10 → 出力(タグなし)
入力(タグなし)→ VLAN 20 → 出力(タグなし)
入力(タグなし)→ VLAN 30 → 出力(タグなし)
「`」
これは望ましい動作です。

1. PFEはポートベースのVLANをサポートしていますか?
2. はいの場合、どのファームウェア機能または設定でそれが可能になりますか?
3. これは、fwfeat-print に表示される vlan_conf または ingress_vlan 機能に関連していますか?
Re: Port-based VLAN (PVID) Mapping and Untagged External Traffic Support in PFE L2 Bridge

こんにちは、
詳しい説明をありがとうございました。

「3. 現在の構成」 で説明したLinuxコマンドが、 根本的にサポートされていない構成を表しているのか、あるいは私の側に何らかの構成上の不足があるのかどうかを確認したいと思います。

私の現在のテスト環境は以下のとおりです。

• パソコン1台

• このPCには3つのNICが搭載されています

・各NICはボードのEMACポートのいずれかに直接コネクテッドされています。

 

PC側では、 VLANインターフェースの設定は一切行っていません。単に通常のpingを送信しているだけです

 

私が期待する動作は以下のとおりです。

PCがpingを送信すると、ボードは宛先IPアドレスと対応するブリッジドメイン(BD)に基づいてパケットを転送し、そのVLANに属するポートに送信する必要があります。

 

私が実現したい構成は以下のとおりです。

VLAN10:HIF0、EMAC0

VLAN20:HIF1、EMAC1

VLAN30:HIF2、EMAC2

VLAN40:HIF3、EMAC0、EMAC1、EMAC2

言い換えると:

• EMAC0/1/2 はそれぞれ専用の VLAN (10/20/30)にコネクテッドです。

• 同時に、 HIF3 と通信する 共有 VLAN40 にも参加します 。

 

現在のLinuxコマンドでは:

• すべてのポートを VLAN1 に設定すると 、すべてが期待どおりに動作します。

• しかし、それらを VLAN10/20/30 に分割すると 、 入力/出力カウンターは VLAN1 でのみ増加し 、VLAN10/20/30 では増加しません。

 

そこで、私には2つの質問があります。

1. このタイプのVLAN構成はPFE VLAN_BRIDGEモデルでサポートされています?それとも、私が何か設定手順を見落としているのでしょうか?

2. 現在、PC はタグなしパケット (通常の ping)を送信しています

このCASE、PFEが受信トラフィックを特定のVLAN BDに分類することは不可能なのでしょうか?

つまり、この設定ではPCがVLANタグ付きパケットを送信する必要があるのでしょうか

例えば、タグ付きトラフィックを送信するには、PCをこのように設定すべきでしょうか?

 

ip link add link eth0 name eth0.40 type vlan id 40

ip link set eth0.40 up

ping -I eth0.40 192.168.xx

 

この構成が実現可能かどうか、あるいはこのシナリオに適した推奨されるアプローチがあるかどうかについて、ご助言いただければ大変ありがたいです。

 

よろしくお願いします。

Re: Port-based VLAN (PVID) Mapping and Untagged External Traffic Support in PFE L2 Bridge

こんにちは、 @minJ さん

私の回答は以下のとおりです。

  • 外部トラフィックをタグ付けせずに、PFE内部でのみVLANベースのアイソレータを実現することは可能ですか?
    • ドキュメントを見る限り、いいえ、タグなしの外部トラフィックはCAN使用できず、内部トラフィックではVLANタグのみを使用できます。ポートをBD(ブリッジドメイン)に設定すると、デフォルトBD、フォールバックBD、標準BDの3つの動作モードがあります。いずれの場合も、特定のルールに基づいてVLANがチェックされ、フレームを受け入れるか破棄するかが決定されます。PFE-SW_S32G_FCI_API_ReferenceManual_2.7.0「L2 ブリッジ VLAN 認識とドメイン」のセクションを参照してください。これらの規則の詳細については、こちらをご覧ください。
  • PFEはポートベースのVLANをサポートしていますか?
    • 直接はできません。VLANごとに異なるBDを作成し、各ポートをそれぞれのドメインに設定する必要があります。要約すると、BDベースのVLANを設定でき、各BDは異なるポートを使用します。上記で言及した文書の該当箇所をご確認ください。
  • はいの場合、どのファームウェア機能または設定でそれが可能になりますか?
    • これは、他の2つの質問からの情報に基づいて回答されるべきです。
  • これは、fwfeat-printに表示されるvlan_confまたはingress_vlan機能に関連していますか?
    • vlan_conf_check のことであれば、どちらもこのトピックに関連していますが、これらのオプションを有効化/設定すると、VLAN を含まないフレームが破棄されるようにポートが設定されます。

マスタースレーブ構成でのフラッディングを回避するための解決策としては、そのモードの使用を避け、代わりにIPCFを使用してフレームを他のドメインに転送することが考えられます。たとえば、M7_0がPFEの所有者である場合、一部のフレームのみをA53/Linuxドメインに転送します。ご要望によっては、これは有効な選択肢となり得ます。このアイデアについてさらに詳しい説明が必要な場合はお知らせください。


他に質問があればお知らせください。

Re: Port-based VLAN (PVID) Mapping and Untagged External Traffic Support in PFE L2 Bridge

こんにちは、 @minJ さん

3. 現在の構成について言及している文書はどれですか? PFE Linux ドキュメントのすべての文書を確認しましたが、そのセクションは見つかりませんでした。該当箇所のページ番号と文書の改訂版番号を明記してください。

VLANポートにおけるタグなしパッケージの分類に関して、以前のドキュメントを誤解していました。そのためには、BDをデフォルト設定で構成する必要があります。その説明は以下のとおりです。

デフォルトのBD:
このブリッジドメインの工場出荷時のデフォルトVLAN IDは1です。このドメインは、デフォルトのBD VLAN IDと同じVLANタグを持つ入力フレーム、またはVLANタグがまったくない入力フレーム(タグなしイーサネットフレーム)を処理します。

これはタグなしフレームを処理できる唯一のBD構成です。したがって、この構成ではホストからタグ付きメッセージを送信する必要はありません。さらに、他のタイプのBDはVLANタグのないフレームを処理しません。


先ほどは混乱させてしまい、申し訳ありませんでした。他に質問があれば教えてください。

Re: Port-based VLAN (PVID) Mapping and Untagged External Traffic Support in PFE L2 Bridge

こんにちは、

「3.私が言及した「現在の構成」とは、最初の質問で述べたLinuxコマンドのことです。
この点をもっと早く明確にしておかなかったことをお詫び申し上げます。


# ブリッジドメインとインターフェースの設定
libfci_cli bd-add --vlan 10
libfci_cli bd-add --vlan 20
libfci_cli bd-add --vlan 30

libfci_cli bd-update --vlan 10 --ucast-hit FORWARD --ucast-miss FLOOD --mcast-hit FORWARD --mcast-miss FLOOD
libfci_cli bd-update --vlan 20 --ucast-hit FORWARD --ucast-miss FLOOD --mcast-hit FORWARD --mcast-miss FLOOD
libfci_cli bd-update --vlan 30 --ucast-hit FORWARD --ucast-miss FLOOD --mcast-hit FORWARD --mcast-miss FLOOD

libfci_cli bd-insif --vlan 10 --i hif0 --tag OFF
libfci_cli bd-insif --vlan 10 --i emac0 --tag OFF
libfci_cli bd-insif --vlan 20 --i hif1 --tag OFF
libfci_cli bd-insif --vlan 20 --i emac1 --tag OFF
libfci_cli bd-insif --vlan 30 --i hif2 --tag OFF
libfci_cli bd-insif --vlan 30 --i emac2 --tag OFF

# PHYインターフェースモード設定
libfci_cli phyif-update --i emac0 -E --promisc OFF --mode VLAN_BRIDGE
libfci_cli phyif-update --i emac1 -E --promisc OFF --mode VLAN_BRIDGE
libfci_cli phyif-update --i emac2 -E --promisc OFF --mode VLAN_BRIDGE
libfci_cli phyif-update --i hif0 -E --promisc OFF --mode VLAN_BRIDGE
libfci_cli phyif-update --i hif1 -E --promisc OFF --mode VLAN_BRIDGE
libfci_cli phyif-update --i hif2 -E --promisc ON --mode VLAN_BRIDGE

libfci_cli bd-stent-add --vlan 10 --mac --i hif0
libfci_cli bd-stent-update --vlan 10 --mac --egress hif0
libfci_cli bd-stent-add --vlan 20 --mac --i hif1
libfci_cli bd-stent-update --vlan 20 --mac --egress hif1
libfci_cli bd-stent-add --vlan 30 --mac --i hif2
libfci_cli bd-stent-update --vlan 30 --mac --egress hif2


私が書いた Linux コマンドは、次のドキュメントに基づいています: LNX PFE ドライバ ユーザー マニュアル (Rev.25.0) PFE FCI API リファレンス (Rev.2.7.0) p144。

あなたの回答によると、上記のLinuxコマンドのようにL2ブリッジとVLANを設定した場合、PCから送信されるタグなしパケットは処理できないということでしょうか?
静的MACアドレスを指定した場合でも、タグなしパケットがVLANメンバー(HIF、EMAC)によって処理されないかどうかを知りたいです。
さらに、VLANタグなしで(つまり、タグなしパケットとして)パケットをPCに転送することが可能かどうかについても興味があります。

ありがとう。

Re: Port-based VLAN (PVID) Mapping and Untagged External Traffic Support in PFE L2 Bridge

こんにちは、 @minJ さん

返信が遅くなり申し訳ありません。現在、業務が多忙なため、問題の分析にもう少し時間が必要です。


ご辛抱いただきありがとうございます。

Re: Port-based VLAN (PVID) Mapping and Untagged External Traffic Support in PFE L2 Bridge

こんにちは、 @minJ さん

大変お待たせして申し訳ございませんでした。「上記のLinuxコマンドのようにL2ブリッジとVLANを設定した場合、PCから送信されるタグなしパケットは処理できないということでしょうか? 」という質問にお答えします。直接的な回答を見つけることができませんでしたが、使用しているコマンドを比較すると、主な違いは、Linux PFE ドキュメントでは VLAN 1 が使用されていることです。これはデフォルトの BDであり (削除できないことに注意してください)、この VLAN は ID 1 または VLAN タグのないすべてのメッセージをキャッチします。明示的には、試みている構成がサポートされていないとは述べられていませんが、デフォルトのBDのみがタグなしフレームを処理でき、標準BDは一致するIDを持つタグ付きフレームのみを取得するため、そのように考えられます。

社内ドキュメントをいくつか調べてみたところ、デフォルトのBDは1つしかなく、別のBDを作成するオプションがないことがわかりました。このユースケースに対する推奨される回避策は、ポートごとに異なるマルチキャストアドレスを使用することです。これが現実的な解決策ではない可能性は承知していますが、言及する価値はあると思います。


重ねてお待たせして申し訳ありませんでした。

他に質問があれば教えてください。

Tags (1)
No ratings
Version history
Last update:
‎03-26-2026 02:42 AM
Updated by: