コンテンツにスキップ

SAI 拡張属性追加系

概要

SAI (Switch Abstraction Interface) は OCP が定義する ASIC 抽象 API で、SONiC は libsairedis + syncd を経由して SAI を叩き、orchagent がアプリケーション層との橋渡しをします。SAI は version ごとに新しい属性 / API が追加されるため、SONiC 側でも capability 問い合わせsai_query_attribute_enum_values_capability / sai_query_stats_capability / sai_query_api_version)や 失敗時のハンドリングhandleSai*Status / ERROR_DB / dump 取得)が独立した HLD として整備されています。

このカテゴリは、SAI そのものを横断するページを集めます。capability 問い合わせ系ACL action / counter capability / API version check)・failure handling(dump-on-failure・virtual handleSaiStatus)・SAI POST(MACsec FIPS)・Generic SAI Extension の CRMSAI bulk API 系(Port Profile Init / Auto FEC)が中心です。

SAI 拡張の HLD は sonic-net/SONiCdoc/ 配下に多く、対応する実装が swss / sairedis / syncd / sonic-platform-common にまたがります。たとえば egress mirroring + action capability checkaclorch が SAI capability を見てフォールバックする実装で、sai_query_stats_capabilitycounter capsCounterCheck 系から呼びます。

主要キーワード: SAI, attribute, capability, API, failure handling, POST, CRM

関連ページ

capability / API version

bulk API / Port

failure handling / POST / CRM

典型的な読み進め方

  1. SAI と SONiC の境界 → 隣接カテゴリ Container / Build system 関連 の前に、まず Topics 20 を見ると syncd / sairedis の役割が掴める
  2. capabilityegress-mirroring-support-and-acl-action-capability-check.md で「ASIC ごとに何ができるか」を見る方法を学ぶ
  3. API version 検査sai-api-version-check.md でビルド時の整合性検査
  4. bulk APIport-profile-init-hld.md で fast-boot 高速化、sonic-port-auto-fec-design.md で Auto FEC
  5. 失敗時の挙動hld-for-handling-sai-failures.mddump-on-sai-failure.md
  6. 拡張テーブルの監視generic-sai-extension-critical-resource-monitoring-crm.md で CRM 経由の使用量監視
  7. MACsec POSTsonic-sai-post-support-for-macsec.md(FIPS 環境)

関連 Topics 章

verification ステータス注意点

  • hld-only: sonic-port-auto-fec-design.md
  • discrepancy-found: hld-for-handling-sai-failures.md, dump-on-sai-failure.md — handleSai*Status の派生クラスや syncd_dump 経路が実コードと差異

関連カテゴリ

関連 Topics