SmartSwitch 関連¶
概要¶
SmartSwitch は、従来の単一 NPU 型 SONiC スイッチに 複数の DPU(SmartNIC / IPU)を内蔵し、L2/L3 スイッチング機能を NPU 側、ステートフルな NAT / ACL / フロー処理を DPU 側に分担させるアーキテクチャです。Microsoft が提案した DASH の上位プラットフォームとして整備され、HAMgrD を中心とした HA、DPU ごとの gNOI 経路、midplane ブリッジによる DPU IP 管理など、独自のサブシステムが多数あります。
このカテゴリでは、SmartSwitch を横断するページを NPU 側設計(CONFIG_DB / APPL_DB の DPU overlay と HA actor)・DPU 管理(IP 割当・gNMI フィードバック・独立アップグレード・graceful shutdown)・ENI Forwarding(DASH ベースの DPU 振り分け)・reboot 順序(NPU と DPU の協調 reboot)に分類しています。HLD は数多くあるものの、DPU 側ソフトウェアは別リポ管理が多く、SmartSwitch ページだけで完結する設計ではありません。
SmartSwitch を学ぶ際は、まず NPU と DPU の境界(どこが Redis ベース DB で、どこが DBUS / gNMI / gNOI 経由なのか)を押さえると全体が見えやすくなります。HA は DPU-Scope-DPU-Driven 構成が現行マスターブランチの主流で、HAMgrD の actor 分割が中心です。
主要キーワード: SmartSwitch, DPU, NPU, HA, gNMI, gNOI, HAMgrD, midplane
関連ページ¶
architecture(NPU 側設計 / HA)¶
- Smart Switch のデータベース構成(NPU 上の DPU overlay DB) (area:
architecture, verification:code-verified) — DPU APPL_DB / STATE_DB の overlay 構造 - SmartSwitch HA - DPU-Scope-DPU-Driven 構成 (area:
architecture, verification:code-verified) — 現行マスターの HA 主流 - SmartSwitch HA: HAMgrD(NPU 側 actor 分割と DPU 連携) (area:
architecture, verification:discrepancy-found)
overlay(ENI ベース転送)¶
- SmartSwitch ENI Based Forwarding(DashEniFwdOrch / ENI_REDIRECT ACL) (area:
overlay, verification:code-verified) — DPU 振り分け ACL
management(gNMI 経路)¶
- SmartSwitch gNMI フィードバック(DPU APPL_STATE_DB と version_id) (area:
management, verification:hld-only)
platform(PMON / graceful shutdown)¶
- SmartSwitch PMON(NPU 側 pmon と DPU 連携の境界) (area:
platform, verification:code-verified) - Smart Switch DPU Graceful Shutdown(gnoi_reboot_daemon HALT) (area:
platform, verification:discrepancy-found)
system(DPU IP / upgrade / reboot)¶
- Smart Switch DPU IP アドレス割当(midplane bridge / DHCP server) (area:
system, verification:code-verified) - Smart Switch: DPU 独立アップグレード(gNOI 経路) (area:
system, verification:code-verified) - SmartSwitch reboot 順序(NPU → 各 DPU の gNOI HALT → PCI detach → 個別 reboot) (area:
system, verification:code-verified)
典型的な読み進め方¶
- NPU と DPU の境界 →
smart-switch-database-design.mdで DB 構造と APPL_DB overlay を把握 - DPU 接続 →
smart-switch-ip-address-assignment.mdで midplane bridge と DHCP の流れ - ENI ベース転送 →
smartswitch-eni-based-forwarding.mdで DPU 振り分けの ACL 構造 - HA →
smartswitch-high-availability-high-level-design-dpu-scope-dpu-driven-setup.md→smartswitch-high-availability-manager-daemon-hamgrd-design.md - 運用(reboot / upgrade / shutdown) →
smart-switch-reboot-high-level-design.md→independent-dpu-upgrade.md→smartswitch-dpu-graceful-shutdown.md - PMON →
smartswitch-pmon-high-level-design.md
関連 Topics 章¶
- Topics 13: DASH / SmartSwitch — SmartSwitch を段階的に学ぶ章
- Topics 10: gNMI / OpenConfig — DPU 制御に使う gNOI の前提
- Topics 11: Reboot / Upgrade — SmartSwitch reboot 順序の前提
verification ステータス注意点¶
- hld-only:
smart-switch-gnmi-feedback-design-omit-in-toc.md— 実装側 PR が未マージで HLD 記述のまま - discrepancy-found:
smartswitch-high-availability-manager-daemon-hamgrd-design.md,smartswitch-dpu-graceful-shutdown.md— 実コードと HLD で記述差異あり。各ページの末尾参照