show storm-control サブコマンド¶
概要¶
show storm-control は Storm Control(ブロードキャスト/マルチキャスト/不明ユニキャスト過剰トラフィックの抑制機能)の設定を表示する CLI グループ1。
CONFIG_DB の PORT_STORM_CONTROL テーブルに格納される (<interface>, <storm_type>) キーの設定を読み取り、tabulate で整形して出力する。
コマンド一覧¶
| コマンド | 用途 |
|---|---|
show storm-control [-n <namespace>] [-d <display>] |
全インターフェースの storm-control 設定を表示 |
show storm-control interface <interface> |
指定インターフェースの storm-control 設定を表示 |
各コマンドの詳細¶
show storm-control (default)¶
用法:
動作: サブコマンド未指定時:
--namespace省略時:display_storm_all()を実行し、全 PORT_STORM_CONTROL エントリを表示--namespace指定時:multi_asic.multi_asic_get_ip_intf_from_ns(namespace)で取得した interface ごとにget_storm_interface(intf, body)を呼び、tabulate でgrid表示する2
表示ヘッダ: Interface Name | Storm Type | Rate (kbps)
show storm-control interface <interface>¶
用法:
動作:
multi-ASIC 環境では parent context から取得した namespace が有効か検証 (multi_asic.get_namespace_list() に含まれるか) し、不一致なら -n/--namespace option required ... でエラー終了。検証通過後 display_storm_interface(interface) を呼び出して該当 interface の全 storm type エントリを表示する。
📋 検証エビデンス: sonic-net/sonic-utilities/show/main.py#L499-L533 (sha: 39732bceb8bdefe706518ab40623bbbba6ff33b9)
出典:
sonic-net/sonic-utilities/show/main.py#L499-L533 (sha: 39732bceb8bdefe706518ab40623bbbba6ff33b9)
抜粋:
@cli.group('storm-control', invoke_without_command=True)
def storm_control(ctx, namespace, display):
header = ['Interface Name', 'Storm Type', 'Rate (kbps)']
...
@storm_control.command('interface')
def interface(ctx, interface):
namespace = ctx.parent.params.get('namespace')
if multi_asic.is_multi_asic() and namespace not in multi_asic.get_namespace_list():
ctx.fail('-n/--namespace option required. ...')
関連する CONFIG_DB¶
| テーブル | キー | フィールド |
|---|---|---|
PORT_STORM_CONTROL |
<interface>\|<storm_type> |
kbps |
storm_type は broadcast / unknown-multicast / unknown-unicast の 3 種。
CLI の unknown-multicast と SAI の定義の差異 (issue #3897)
SONiC CLI は unknown-unicast と unknown-multicast を別の storm type として受け付けるが、SAI では SAI_PORT_ATTR_FLOOD_STORM_CONTROL_POLICER_ID が unknown-unicast と unknown-multicast を一括して「flood」として扱う。また SAI_PORT_ATTR_MULTICAST_STORM_CONTROL_POLICER_ID は registered multicast 専用であり、unknown-multicast とは異なる。CLI の unknown-multicast がどの SAI 属性にマップされるかはベンダー実装に依存する可能性があるため、ハードウェアの動作を実機で確認すること。
データフロー (自動生成)¶
flowchart LR
CLI["show storm-control"]
CDB0[("CONFIG_DB<br/>PORT_STORM_CONTROL")]
CDB0 --> CLI
凡例
show 系 (CONFIG_DB → CLI) のミニ図。テーブル → daemon 対応は docs/reference/config-db-orch-map.md から機械生成。
関連リファレンス¶
引用元¶
関連 CLI コマンド¶
config interface— config interface サブコマンドconfig portchannel— config portchannel サブコマンドconfig vlan— config vlan サブコマンドshow lldp— show lldp サブコマンドshow mac— show mac サブコマンド
-
show storm-controlグループ定義はshow/main.pyL499-L533。https://github.com/sonic-net/sonic-utilities/blob/39732bceb8bdefe706518ab40623bbbba6ff33b9/show/main.py#L499 ↩ -
display_storm_all/display_storm_interfaceは同じshow/main.py上部のヘルパ関数。 ↩