コンテンツにスキップ

FABRIC_MONITOR テーブル

概要

FABRIC_MONITOR テーブルは VOQ chassis のファブリックリンク監視 (FABRIC_PORT の自動 isolate/include) 用パラメータを CONFIG_DB に保持する1。単一エントリ FABRIC_MONITOR_DATA を持ち、CRC エラー閾値や検出/復旧ポーリング数を定義する。

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

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

凡例

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

key 構造

FABRIC_MONITOR|FABRIC_MONITOR_DATA

YANG では container FABRIC_MONITOR_DATA の直下にスカラー leaf が並ぶ単一インスタンス構造。

フィールド

フィールド 範囲 デフォルト 説明
monErrThreshCrcCells uint32 1 エラー検出閾値となる CRC エラーセル数
monErrThreshRxCells uint32 61035156 受信セル総数の閾値。monErrThreshRxCellsmonErrThreshCrcCells を超えるエラーで isolate
monPollThreshIsolation uint8 1..10 1 連続して閾値超過と判定された場合に isolate するポーリング回数
monPollThreshRecovery uint8 1..10 8 連続して閾値以下に戻った場合に include するポーリング回数
monCapacityThreshWarn uint8 5..100 10 up 状態ファブリックリンクの割合 (%) 警告閾値
monState mode-status (enable/disable) disable 監視機能のオン/オフ

値依存挙動マトリクス

monState (mode-status: enable/disable)

挙動
disable (デフォルト) 監視停止。不良ファブリックリンクが自動 isolate されない
enable fabricmgr が APPL_DB に monState=enable を書き込み、fabric 監視を開始(fabricmgr.cpp:70-74)

monPollThreshIsolation (uint8: 1..10, デフォルト 1)

挙動
1 閾値超過を 1 回検出で即時 isolate(CRC スパイクで誤 isolate のリスク)
2..10 値が大きいほど連続超過を待つ(安定性重視)
範囲外 (0 or >10) YANG range 違反で reject

monPollThreshRecovery (uint8: 1..10, デフォルト 8)

挙動
1 閾値以下に戻った次のポーリングで即時 unisolate(不安定リンクが頻繁に切り替わるリスク)
2..10 値が大きいほど復帰判定を遅らせる(安定性重視)
範囲外 YANG range 違反で reject

monCapacityThreshWarn (uint8: 5..100, デフォルト 10)

挙動
5..100 up 状態ファブリックリンクが全体の N% を下回ったとき警告ログ
範囲外 YANG range 違反で reject

制約

  • monPollThreshIsolation / monPollThreshRecovery は 1..10
  • monCapacityThreshWarn は 5..100 (%)
  • monStateenable または disable

購読者

  • ファブリックモニタ daemon(プラットフォーム / orchagent の FabricPortOrch 拡張)

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: FABRIC_PORTCHASSIS_MODULE
  • 関連 YANG: sonic-fabric-monitorsonic-fabric-port
  • 関連 CLI: config fabric

関連リファレンス

引用元

関連ページ

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

運用ヒント

典型値

  • key: FABRIC_MONITOR|FABRIC_MONITOR_DATA (シングルトン)。
  • monState: 運用開始時は enable。閾値はデフォルト (monErrThreshCrcCells=1, monErrThreshRxCells=61035156) で開始。

よくある誤設定

  • monPollThreshIsolation を 1 にすると一時的 CRC スパイクで isolate が頻発する。
  • monState=disable のまま運用し、不良ファブリックリンクが検出されない。

確認コマンド

sonic-db-cli CONFIG_DB hgetall 'FABRIC_MONITOR|FABRIC_MONITOR_DATA'
show fabric counters
show fabric isolation

例外条件・特殊挙動

consumer 条件 挙動
orchagent (fabricportsorch) FABRIC_MONITOR_DATA エントリが APPL_DB に存在しない LOG_INFO: "default values not set" を出力し、ハードコードされたコンパイル時定数 (ERROR_RATE_CRC_CELLS_CFG / ERROR_RATE_RX_CELLS_CFG) をデフォルトとして使用(fabricportsorch.cpp:139,447)
orchagent monErrThreshCrcCells / monErrThreshRxCells フィールドが欠落 欠落フィールドのみデフォルト定数を維持、取得できたフィールドのみ更新(fabricportsorch.cpp:459-465)
orchagent リンクアップ直後のエラーカウント skipCrcErrorsOnLinkupCount が閾値未満の間はエラーカウントを無視。ブート時誤検知防止(fabricportsorch.cpp:548-561,770-772)

Evidence: sonic-swss orchagent/fabricportsorch.cpp:139,447-465,548-772