コンテンツにスキップ

PORT_STORM_CONTROL テーブル

概要

物理ポートで BUM (broadcast / unknown-unicast / unknown-multicast) トラフィックのレート制限 (storm control) を設定するテーブル1。 3 種類のトラフィックに対して個別にレートを指定でき、orchagentSAI SAI_PORT_ATTR_*_STORM_CONTROL_POLICER_ID 系で SAI policer を作って attach する。

データフロー (自動生成)

flowchart LR
  CDB[("CONFIG_DB<br/>PORT_STORM_CONTROL")]
  DM["PolicerOrch"]
  CDB --> DM
  SAI["SAI<br/>sai_policer_api"]
  DM --> SAI

凡例

CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。

key 構造

PORT_STORM_CONTROL|<ifname>|<storm_type>
  • <ifname>: PORT.name への leafref (物理ポートのみ。LAG / VLAN は非対応)
  • <storm_type>: broadcast / unknown-unicast / unknown-multicast のいずれか

フィールド

フィールド 説明
kbps uint64 (0..100000000) レート制限 [kbps]。0 で無制限相当 (実装依存)

制約

  • ifnamePORT_LIST.name への leafref のため、PORT に存在しないインタフェースは指定不可
  • 3 種類の storm_type を別々のエントリで設定する
  • range 上限 100 Gbps 相当 (実装側でハードウェア上限による更なる制約あり)

購読者

  • orchagent (PortsOrch の storm-control パス)。内部で SAI policer を作成し、ATTR_BROADCAST_STORM_CONTROL_POLICER_ID / UNKNOWN_UNICAST_STORM_CONTROL_POLICER_ID / UNKNOWN_MULTICAST_STORM_CONTROL_POLICER_ID を更新

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: PORT, POLICER
  • 関連 CLI: config interface storm-control <type> <ifname> <kbps>
  • 関連 YANG: sonic-storm-control

値依存挙動マトリクス

PORT_STORM_CONTROL キー: storm_type

SAI 属性 挙動
broadcast SAI_PORT_ATTR_BROADCAST_STORM_CONTROL_POLICER_ID broadcast トラフィックをレート制限
unknown-unicast SAI_PORT_ATTR_FLOOD_STORM_CONTROL_POLICER_ID unknown unicast をレート制限
unknown-multicast SAI_PORT_ATTR_MULTICAST_STORM_CONTROL_POLICER_ID unknown multicast をレート制限
その他 - Unknown storm_type %s SWSS_LOG_ERROR

PORT_STORM_CONTROL.kbps

挙動
0 実装依存 (SAI が 0 を無制限として扱うかはプラットフォーム依存)
1..100000000 SAI policer CIR として設定 (BYTES / STORM_CONTROL モード固定)
範囲外 YANG range 違反 reject

PORT_STORM_CONTROL キー: ifname

挙動
物理ポート (PORT.name) 正常: storm control policer を attach
LAG / VLAN など非物理 IF Unsupported / Invalid interface %s SWSS_LOG_ERROR
存在しないポート Failed to apply storm-control %s to port %s. Port not found SWSS_LOG_ERROR

enum なし — storm_type はキーの一部として broadcast/unknown-unicast/unknown-multicast を pattern 制約。kbps は uint64。

例外条件・特殊挙動

consumer (policerorch) 例外動作

  • 不正/非サポートインターフェース: Unsupported / Invalid interface %s → SWSS_LOG_ERROR。
  • ポート未発見: Failed to apply storm-control %s to port %s. Port not found → SWSS_LOG_ERROR。
  • 不明な storm_type: Unknown storm_type %s → SWSS_LOG_ERROR。
  • 不明な storm control attribute: Unknown storm control attribute %s specified → SWSS_LOG_ERROR。
  • SAI policer create 失敗: Failed to create storm control policer %s → SWSS_LOG_ERROR。
  • SAI attribute update 失敗: Failed to update policer %s attribute, rv:%d → SWSS_LOG_ERROR。
  • SAI remove storm-control 失敗: Failed to remove storm-control %s from port %s, rv:%d → SWSS_LOG_ERROR。
  • 未設定 storm policer の参照: Policer %s not configured → SWSS_LOG_ERROR。

関連リファレンス

引用元

関連ページ

運用ヒント

典型値

  • key 形式: PORT_STORM_CONTROL|<Ethernet>|<traffic-type> (broadcast/unknown-unicast/unknown-multicast)`。
  • kbps: 帯域上限。サーバ向けは 1000〜10000kbps、uplink は無効化することが多い。

よくある誤設定

  • uplink にも storm-control を当てて BUM トラフィックを誤遮断する。

確認コマンド

sonic-db-cli CONFIG_DB keys 'PORT_STORM_CONTROL|*'
show storm-control all