コンテンツにスキップ

HARDWARE テーブル

概要

HARDWARE|ACCESS_LIST は ACL ハードウェア動作モードを CONFIG_DB に宣言するためのテーブルである。COUNTER_MODE(カウンタ粒度)、LOOKUP_MODE(TCAM ルックアップ戦略)、TCAM_SHARING(TCAM 共有グループ)の 3 フィールドを持つ。

community 実装での dead consumer

community sonic-swss/orchagent はこのテーブルを購読しない。 値を書き込んでも AclOrch には届かず、SAI にも影響しない。sonic-gnmi testdata および sonic-mgmt-common のテスト初期化スクリプトにのみ参照が確認できる。YANG モジュールも存在しないため、CVL (Config Validation Layer) による値検証も行われない。

Dell 等のベンダー向け gNMI/translib スタック(sonic-mgmt-common の transformer 層)でのみ消費されると推定される。

YANG 未定義

HARDWARE テーブルは sonic-yang-models に対応 YANG モジュールが存在しない。スキーマの正本となるソースコードは community SONiC リポジトリ内には未確認。

データフロー

flowchart LR
  CDB[("CONFIG_DB<br/>HARDWARE|ACCESS_LIST")]
  GNMI["sonic-gnmi<br/>(testdata のみ参照)"]
  MGMT["sonic-mgmt-common<br/>(dbinit.py テスト用)"]
  CDB -. dead consumer .-> GNMI
  CDB -. dead consumer .-> MGMT
  note["orchagent: 未購読"]

凡例

community orchagent はこのテーブルを消費しない。破線はテスト/testdata 内での参照を示す。

key 構造

HARDWARE|<component>

現在確認されている component は ACCESS_LIST のみ。

フィールド一覧

フィールド 必須 説明
COUNTER_MODE string - ACL カウンタの粒度。観測値: per-rulePER-RULE
LOOKUP_MODE string - ACL TCAM ルックアップ戦略。観測値: optimizedadvancedLEGACY
TCAM_SHARING leaf-list (string) - TCAM 共有グループ名リスト(@ サフィックス付き Redis leaf-list エンコーディング)。空リストが観測されている

観測例

sonic-gnmi/testdata/db_dump.json1:

"HARDWARE|ACCESS_LIST": {
  "TCAM_SHARING@": "",
  "COUNTER_MODE": "per-rule",
  "LOOKUP_MODE":  "advanced"
}

sonic-mgmt-common/tools/test/dbinit.py2:

db_hmset(ConfigDB, "HARDWARE|ACCESS_LIST", {
    "COUNTER_MODE": "per-rule",
    "LOOKUP_MODE":  "optimized",
})

sonic-gnmi/testdata/db_dump.json (HARDWARE_TABLE 変種)1:

"HARDWARE_TABLE|ACCESS_LIST": {
  "LOOKUP_MODE": "LEGACY",
  "COUNTER_MODE": "PER-RULE"
}

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: ACL_TABLEACL_RULE
  • 関連 CLI: なし(コマンドは確認されていない)
  • 関連 YANG: なし(YANG 未定義)

例外条件・特殊挙動

条件 挙動
community orchagent 実行中に HARDWARE|ACCESS_LIST を書き込む orchagent は無視。SAI / ASIC への影響なし
COUNTER_MODE 不正値 YANG 検証なし、consumer なし。書き込み成功するが効果なし
LOOKUP_MODE 不正値 YANG 検証なし、consumer なし。書き込み成功するが効果なし
TCAM_SHARING フィールド leaf-list として @ サフィックス付きで格納。空リストはデフォルト
HARDWARE_TABLE|ACCESS_LIST (アンダースコア版) testdata にのみ出現。community SONiC では使用意図不明

コード由来の暗黙デフォルト

フィールド YANG default コード fallback 乖離種類
COUNTER_MODE なし (YANG 未定義) なし — dead consumer dead consumer
LOOKUP_MODE なし (YANG 未定義) なし — dead consumer dead consumer
TCAM_SHARING なし (YANG 未定義) なし — dead consumer dead consumer

大文字小文字制約: COUNTER_MODE の値 per-rulePER-RULE が並存しており、統一基準なし。consumer 不在のため実際の正規化ルールは不明。

フィールド由来: sonic-gnmi/testdata と sonic-mgmt-common/dbinit.py で確認。community sonic-swss (grep -rn 'COUNTER_MODE\|LOOKUP_MODE\|TCAM_SHARING' sonic-swss/) は 0 件。

詳細探索証跡: meta/_intermediate/cdb-flow/hardware-defaults.md

引用元


  1. sonic-net/sonic-gnmi testdata/db_dump.json @ eb635b7679b260c3fd0786a6d0734fc8e82c9a22 

  2. sonic-net/sonic-mgmt-common tools/test/dbinit.py @ f71cf829883c36963455cf4d90fe16dae35f0b80