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 構造¶
現在確認されている component は ACCESS_LIST のみ。
フィールド一覧¶
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
COUNTER_MODE |
string | - | ACL カウンタの粒度。観測値: per-rule、PER-RULE |
LOOKUP_MODE |
string | - | ACL TCAM ルックアップ戦略。観測値: optimized、advanced、LEGACY |
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:
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
ACL_TABLE、ACL_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-rule と PER-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