FABRIC_MONITOR テーブル
概要
FABRIC_MONITOR テーブルは VOQ chassis のファブリックリンク監視 (FABRIC_PORT の自動 isolate/include) 用パラメータを CONFIG_DB に保持する。単一エントリ 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 |
受信セル総数の閾値。monErrThreshRxCells 中 monErrThreshCrcCells を超えるエラーで 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 (%)
monState は enable または disable
購読者
- ファブリックモニタ daemon(プラットフォーム / orchagent の FabricPortOrch 拡張)
関連 CONFIG_DB / YANG / CLI
- 関連 CONFIG_DB:
FABRIC_PORT、CHASSIS_MODULE
- 関連 YANG:
sonic-fabric-monitor、sonic-fabric-port
- 関連 CLI:
config fabric
関連リファレンス
引用元
関連ページ
運用ヒント
典型値
- 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