gNMI / gNOI / OpenConfig 関連¶
概要¶
SONiC の管理プレーンは Management Framework(REST / gNMI / Translib / Transformer)と sonic-gnmi(gNMI Server)を中心に、CONFIG_DB と SONiC YANG / OpenConfig YANG の双方を扱う構造になっています。telemetryd が gNMI Subscribe を提供し、gnmi-native モード(SONiC YANG)と gnmi-translib モード(OpenConfig 経由)が共存します。設定経路では Generic Config Updater (GCU) が JSON Patch を YANG 制約に従って段階的に apply する仕組みを担当します。
gNOI は gRPC ベースの 運用 API(OS install / System reboot / File / FactoryReset / Healthz / Wake-on-LAN など)で、DBUS 経由でホスト側サービスを叩く構造になっています。SONiC 内では system / OS / file / factory_reset / healthz などのサービス実装が sonic-gnmi 配下にあり、SmartSwitch では DPU 単位の gNOI を持ちます。
このカテゴリは gNMI / gNOI / OpenConfig / YANG・Management Framework に関わるページを area 横断でまとめます。本ドキュメントで最も関連ページが多い(57 件)カテゴリで、YANG リファレンスが大半を占めるのは設計通りです。
主要キーワード: gNMI, gNOI, OpenConfig, YANG, REST, Management Framework, telemetry, GCU, Translib
関連ページ¶
management(HLD 本体・最重要)¶
- SONiC Management Framework(REST / gNMI / Translib / Transformer) (area:
management, verification:code-verified) — まずこれ - SONiC NOS の設定手段一覧(CLI / sonic-cfggen / config_db.json / RESTCONF / gNMI / ZTP / vtysh / redis / apply-patch) (area:
management, verification:code-verified) - SONiC gNMI Server インタフェース設計(CONFIG_DB / SONiC YANG / Generic Config Updater 連携) (area:
management, verification:code-verified) - gNMI クライアントツールの使い方(gnmi_get / gnmi_set / gnmi_cli) (area:
management, verification:code-verified) - gNMI Master Arbitration(election ID と SetRequest 拡張) (area:
management, verification:discrepancy-found) - gNMI Save-On-Set(Set ごとの ConfigDB 永続化) (area:
management, verification:hld-only) - SmartSwitch gNMI フィードバック(DPU APPL_STATE_DB と version_id) (area:
management, verification:hld-only) - YANG モデルによる ConfigDB 更新検証(GCU + ConfigDBConnector デコレータ) (area:
management, verification:code-verified) - JSON Patch ordering(YANG 制約に従う apply-patch のステップ分割) (area:
management, verification:code-verified) - SONiC CLI 自動生成ツール(YANG → click plugin 自動生成) (area:
management, verification:code-verified) - SONiC YANG モデル記述ガイドライン(ABNF.json → sonic-*.yang) (area:
management, verification:discrepancy-found) - OpenConfig Interfaces YANG(Ethernet 設定の REST/gNMI 対応と sonic-mgmt-common transformer) (area:
management, verification:code-verified)
management(gNOI 系)¶
- gNOI System Reboot / RebootStatus / CancelReboot(reboot method と sanity check) (area:
management, verification:code-verified) - gNOI OS API(Install / Activate / Verify と sonic-installer 連携) (area:
management, verification:code-verified) - gNOI Healthz API(Get / Acknowledge / Artifact + DBUS host service) (area:
management, verification:code-verified) - gNOI File.Remove と FactoryReset.Start(gNMI/UMF + DBUS host service) (area:
management, verification:code-verified)
platform / system(gNMI / gNOI 経路)¶
- 液冷漏洩検出(LiquidCoolingBase + thermalctld + system-health gNMI イベント) (area:
platform, verification:discrepancy-found) - Smart Switch DPU Graceful Shutdown(gnoi_reboot_daemon HALT) (area:
platform, verification:discrepancy-found) - Management Framework 経由の show techsupport(REST/gNMI/IETF since 形式) (area:
system, verification:code-verified) - telemetry dial-out モード(gNMIDialOut.Publish / TELEMETRY_CLIENT) (area:
system, verification:code-verified) - gNMI dial-out モード(dialout_client_cli + gNMIDialOut.Publish) (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)
routing / switching(OpenConfig 対応)¶
- gNMI Subscription for YANG Data(ON_CHANGE / SAMPLE / TARGET_DEFINED) (area:
routing, verification:code-verified) - FRR-BGP Unified Mgmt Framework(frrcfgd / OpenConfig BGP) (area:
routing, verification:code-verified) - VLAN インタフェースの OpenConfig YANG 対応(REST / gNMI) (area:
switching, verification:code-verified) - PortChannel (LAG) の OpenConfig YANG サポート(REST / gNMI) (area:
switching, verification:code-verified) - Wake-on-LAN(wol CLI と SonicWolService gNOI) (area:
switching, verification:discrepancy-found)
reference - YANG モジュール¶
- sonic-bgp-global YANG
- sonic-bgp-neighbor YANG
- sonic-bgp-peergroup YANG
- sonic-buffer-pg YANG
- sonic-buffer-pool YANG
- sonic-buffer-profile YANG
- sonic-buffer-queue YANG
- sonic-copp YANG
- sonic-device_metadata YANG
- sonic-dscp-tc-map YANG
- sonic-feature YANG
- sonic-interface YANG
- sonic-loopback-interface YANG
- sonic-mclag YANG
- sonic-mirror-session YANG
- sonic-ntp YANG
- sonic-pfcwd YANG
- sonic-port YANG
- sonic-portchannel YANG
- sonic-queue YANG
- sonic-route-common YANG
- sonic-route-map YANG
- sonic-scheduler YANG
- sonic-syslog YANG
- sonic-system-aaa YANG
- sonic-tc-queue-map YANG
- sonic-vlan YANG
- sonic-vrf YANG
- sonic-vxlan YANG
YANG リファレンスは全件 code-verified。詳細は reference/yang インデックス を参照。
典型的な読み進め方¶
- 管理プレーン全体像 →
sonic-management-framework.md→sonic-nos-configuration-methods.mdで REST / gNMI / Translib / vtysh / apply-patch の選択肢を俯瞰 - gNMI Server →
sonic-gnmi-server-interface-design.md→gnmi-usage.mdで実機操作 - 設定検証 →
sonic-config-update-validation-via-yang.md→json-patch-ordering-using-yang-models.mdで GCU / apply-patch - YANG モデル →
sonic-yang-model-guidelines.md→openconfig-support-for-ethernet-interfaces.mdで SONiC YANG と OpenConfig 双方 - gNOI →
gnoi-hld-for-system-apis.md→gnoi-hld-for-os-apis.md→gnoi-hld-for-healthz-api.md→gnoi-hld-for-file-and-factory-reset-apis.md - Telemetry →
gnmi-subscription-for-yang-data.md→sonic-telemetry-in-dial-out-mode.md - 個別機能の OpenConfig 対応 →
add-support-for-vlan-interface-using-openconfig-yang.md→openconfig-support-for-portchannel-aggregate-interface.md - YANG リファレンス → 個別モジュールページ
関連 Topics 章¶
- Topics 10: gNMI / OpenConfig — gNMI / gNOI / gNSI / OpenConfig / YANG を段階的に学ぶ章(
yang-reference章もあり) - Topics 09: Telemetry / SNMP — telemetry 経路の前提
- Topics 22: Reference Index — YANG リファレンスのインデックス
verification ステータス注意点¶
- hld-only:
save-on-set-hld.md,smart-switch-gnmi-feedback-design-omit-in-toc.md - discrepancy-found:
gnmi-master-arbitration-hld.md,sonic-yang-model-guidelines.md,liquid-cooling-leakage-detection-in-sonic.md,smartswitch-dpu-graceful-shutdown.md,wake-on-lan-in-sonic.md— HLD と実装に差異あり