コンテンツにスキップ

FABRIC_PORT テーブル

概要

FABRIC_PORT テーブルは VOQ chassis におけるラインカード間ファブリックリンクの設定を CONFIG_DB に保持する1portsyncd / orchagent がファブリックポートの isolate / unisolate 状態を SAI 側に反映する。

データフロー (自動生成)

flowchart LR
  CDB[("CONFIG_DB<br/>FABRIC_PORT")]
  DM["fabricmgrd"]
  CDB --> DM
  APPDB[("APP_DB<br/>APP_FABRIC_MONITOR_PORT_TABLE")]
  DM --> APPDB
  SYNCD["syncd"]
  APPDB --> SYNCD

凡例

CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。

key 構造

FABRIC_PORT|<name>
キー 説明
name string (1..128) ファブリックポート名

フィールド

フィールド デフォルト 説明
isolateStatus boolean_type False ポートのアイソレーション状態
alias string (1..128) ファブリックポートのエイリアス
lanes string (1..128) — (mandatory) レーン番号文字列
forceUnisolateStatus uint32 0 強制 unisolate のステータス値

値依存挙動マトリクス

isolateStatus (boolean_type: True/False, デフォルト False)

挙動
False (デフォルト) ファブリックポートが通常接続状態。FABRIC_MONITOR が自動制御
True fabricmgr が APPL_DB に isolateStatus=True を書き込み、syncd 経由で SAI がポートを fabric trunk から除外(fabricmgr.cpp:86-89)

forceUnisolateStatus (uint32, デフォルト 0)

挙動
0 (デフォルト) 通常の FABRIC_MONITOR 制御に委ねる
0 以外 FABRIC_MONITOR による自動 isolate を上書きして強制 unisolate(緊急用途)

lanes (string, mandatory)

挙動
プラットフォーム固有のレーン文字列 SAI 側でポートを特定するために使用
未設定 YANG mandatory 違反で reject

明示的な enum 制約なし(isolateStatus は boolean_type = "True"/"False" 文字列)。isolateStatus=True のまま FABRIC_MONITOR を disable にすると自動復帰がかからない。

制約

  • lanes は mandatory
  • isolateStatus の値は sonic-types:boolean_typeTrue/False 文字列)

購読者

  • orchagent の FabricPortOrch / ファブリック関連ロジック
  • fabricmgrd 系 daemon(プラットフォーム実装による)

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: FABRIC_MONITORSYSTEM_PORTCHASSIS_MODULE
  • 関連 YANG: sonic-fabric-portsonic-fabric-monitor
  • 関連 CLI: config fabricshow fabric

関連リファレンス

引用元

関連ページ

  • 関連 CONFIG_DB ページ: FABRIC_MONITOR(本バッチで追加)

運用ヒント

典型値

  • key 形式: FABRIC_PORT|<Fabric>
  • admin_status: upisolate_status: Falselanes: プラットフォーム既定値。

よくある誤設定

  • isolate_status=True のままにすると VOQ chassis 内で fabric リンクが trunk から外れたまま戻らない。

確認コマンド

sonic-db-cli CONFIG_DB keys 'FABRIC_PORT|*'
show fabric counters port

例外条件・特殊挙動

consumer 条件 挙動
orchagent SAI_SWITCH_ATTR_NUMBER_OF_FABRIC_PORTS 取得失敗 FABRIC_PORT_ERROR (0) を返し初期化失敗(fabricportsorch.cpp:179)
orchagent SAI_SWITCH_ATTR_FABRIC_PORT_LIST 取得失敗 throw runtime_error("FabricPortsOrch get port list failure") を送出、orchagent 異常終了(fabricportsorch.cpp:196)
orchagent ポートのレーン番号取得失敗 throw runtime_error("FabricPortsOrch get port lane failure") を送出(fabricportsorch.cpp:212)
orchagent キュー数・キューリスト取得失敗 throw runtime_error(...) を送出(fabricportsorch.cpp:280,296)
orchagent remote fabric port ID / remote port index 取得失敗 throw runtime_error(...) を送出(fabricportsorch.cpp:384,396)
orchagent CRC エラー率比較時に rxCells = 0 整数乗算比較でゼロ除算を回避し、エラーなしと判断(fabricportsorch.cpp:534-536)

Evidence: sonic-swss orchagent/fabricportsorch.cpp:179-396,534-536