SYSTEM_DEFAULTS テーブル¶
概要¶
システム共通の機能既定値 (デフォルトの enable / disable 状態) を定義する。init_cfg.json 由来の値を保持し、db_migrator が初期化時にエントリの有無を確認する1。具体的なキーは tunnel_qos_remap、synchronous_mode、dhcp_server など (時期により異なる) で、各機能の起動前提として参照される。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>SYSTEM_DEFAULTS")]
DM["db_migrator"]
CDB --> DM
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
<name> は string (1..32)。
主要フィールド¶
| フィールド | 型 | 説明 |
|---|---|---|
status |
enum enabled/disabled (admin_mode) |
機能既定状態 |
設計上の位置づけ¶
- 単一の "ツマミ" として ON/OFF を保持し、より詳細な動作は対応する機能の設定テーブル (
FEATURE含む) で行う db_migrator.pyが古い image からアップグレードした際にデフォルト値を補完する
購読者¶
- 各 daemon が起動時に該当
<name>を読み、自身の動作を切替
関連 CONFIG_DB / YANG / CLI¶
関連リファレンス¶
引用元¶
値依存挙動マトリクス¶
status (admin_mode): enabled / disabled¶
代表的な <name> エントリと各値の意味:
| name | enabled 時 |
disabled 時 |
|---|---|---|
tunnel_qos_remap |
IPinIP デカプセル時の QoS リマップを有効化 (muxorch 起動時のみ参照) | QoS リマップなし |
synchronous_mode |
orchagent が SAI 操作を同期実行 (P4RT 連携時に必要) | 非同期実行 |
dhcp_server |
組み込み DHCP サーバを有効化 | 無効 |
mux_tunnel_egress_acl |
Dual-ToR mux ACL を適用 (Mellanox: enabled が init_cfg デフォルト) | ACL 未適用 |
| 状態 | 挙動 |
|---|---|
| エントリ不在 (DEL 後) | 各機能は不在を disabled として扱う |
tunnel_qos_remap 実行中変更 |
muxorch は起動時のみ参照のため、サービス再起動まで反映されない |
例外条件・特殊挙動¶
- テーブル不在時の安全フォールバック:
config_samples.pyはテーブルが存在しない場合に空 dict を補完する。各機能コードもエントリ不在を "disabled" として扱い KeyError を起こさない。 tunnel_qos_remapは起動時のみ参照:muxorchが起動時にSYSTEM_DEFAULTSを一回だけ読み取り QoS remap の有効/無効を決定する。実行中に CONFIG_DB を書き換えてもサービス再起動なしには反映されない。- enum 制約違反は YANG 層でブロック:
statusフィールドはadmin_modeenum(enabled/disabled)で制約されており、不正値は CONFIG_DB への書き込み時に YANG バリデーション層で拒否される。 - エントリ削除の副作用: 機能コードがエントリ不在をデフォルト(通常 disabled)として扱うため、エントリを DEL すると機能が暗黙的に無効化される。
運用ヒント¶
典型値¶
- key 形式:
SYSTEM_DEFAULTS|<feature>。 tunnel_qos_remap/synchronous_mode等のフラグをenabled/disabledで制御。
よくある誤設定¶
- synchronous_mode=enabled のままで遅い orchagent と組み合わせると config push 全体が詰まる。