内部実装¶
Redis、SwSS、orchagent、counter、P4Orch など実装内部の構造を扱う章。
この章の趣旨¶
機能 HLD ではなく、SONiC 全体の 内部基盤 を扱う。具体的には:
- Redis DB スキーマ・分割: APPL_DB / STATE_DB / multi-namespace / 複数インスタンス分散
- SwSS / orchagent コア: producer/consumer state table、ZMQ、view switching
- FlexCounter / カウンタ集約: counter init 最適化、VOQ aggregate、レート計算
- P4Orch / 派生 orchestrator: P4Runtime 連携、PINS まわりの実装
機能(VLAN / VXLAN / BGP 等)の HLD は各機能章を読み、本章は「その機能を支えている共通レイヤがどう書かれているか」を確認するときに参照する。
この章の読み方¶
まず全体像や実装単位のページを読み、必要に応じて関連する機能別章またはリファレンス章に移動する。
主要ページ¶
- swss-schema(APPL_DB / STATE_DB の中心スキーマ参照)
- ZMQ ProducerStateTable / ConsumerStateTable 設計
- Multi-ASIC 名前空間の Redis(database_global.json と SonicDBConfig)
- 複数 Redis インスタンスのユーザ定義(database_config.json で DB を分散)
- FlexCounter リファクタ(CounterContext テンプレート化)
- flex counter 初期化最適化(pending_sai_objects + バッチ bulk_get_stats)
- P4Orch(PINS の P4Runtime 用 orchagent / 同期書き込み)
- dump utility(モジュール単位で複数 DB から関連 key を集約する debug CLI)
- L3 Scaling と Performance 強化(kernel ARP gc / sairedis bulk / fpmsyncd / show arp)
- バイト/パケットレートとポート使用率(RATES テーブル + EMA)
扱わない範囲¶
- 機能 HLD(VLAN / BGP / ACL 等の設計)は各機能章
- CONFIG_DB の テーブル別リファレンス は reference 章
- YANG モジュール / CLI コマンドの一覧も reference 章
- ベンダー実装に依存する SAI 拡張は対象外(コミュニティ
masterの sairedis / sai-redis-vs に閉じる)
検証状況¶
- ページ数: 12
- 分布: Code-verified: 10 / Discrepancy-found: 1 / HLD-only: 1
実装差分があるページ¶
HLD-only のページ¶
ページ一覧¶
| ページ | 検証 |
|---|---|
| FlexCounter リファクタ(CounterContext テンプレート化) | Code-verified |
| L3 Scaling と Performance 強化(kernel ARP gc / sairedis bulk / fpmsyncd / show arp) | Discrepancy-found |
| Multi-ASIC 名前空間の Redis(database_global.json と SonicDBConfig) | Code-verified |
| P4Orch(PINS の P4Runtime 用 orchagent / 同期書き込み) | Code-verified |
| VOQ カウンタ集約(chassis supervisor からの aggregate 表示) | Code-verified |
| ZMQ ProducerStateTable / ConsumerStateTable 設計 | Code-verified |
| dump utility(モジュール単位で複数 DB から関連 key を集約する debug CLI) | Code-verified |
| flex counter 初期化最適化(pending_sai_objects + バッチ bulk_get_stats) | Code-verified |
| swss-schema(APPL_DB / STATE_DB の中心スキーマ参照) | HLD-only |
| コンテナ health-check(k8s readiness probe) | Code-verified |
| バイト/パケットレートとポート使用率(RATES テーブル + EMA) | Code-verified |
| 複数 Redis インスタンスのユーザ定義(database_config.json で DB を分散) | Code-verified |