show flowcnt-trap / flowcnt-route サブコマンド¶
概要¶
show flowcnt-trap と show flowcnt-route は フローカウンタ 機能の表示コマンド。show/flow_counters.py で定義され、show/main.py 側で cli.add_command(flow_counters.flowcnt_trap) / cli.add_command(flow_counters.flowcnt_route) として登録されている1。両グループとも flow_counters_stat スクリプトを内部で呼び出す。
flowcnt-trap: コントロールプレーンへ送られる trap パケット (ARP, LLDP, BGP, etc.) を type 別にカウントflowcnt-route: 設定された prefix pattern にマッチする ルート毎 のフローカウンタ
flowcnt-route はプラットフォームサポートが必要で、未対応プラットフォームでは exit_if_route_flow_counter_not_support() で即終了する2。
コマンド一覧¶
| コマンド | 用途 |
|---|---|
show flowcnt-trap stats |
trap 種別ごとのフロー統計 |
show flowcnt-route config |
設定済みの route flow counter パターン一覧 |
show flowcnt-route stats |
全ルートフローカウンタの統計 |
show flowcnt-route stats pattern <prefix-pattern> |
指定パターンの統計 |
show flowcnt-route stats route <prefix> |
指定 prefix の統計 |
各コマンドの詳細¶
show flowcnt-trap stats¶
用法:
動作:
flow_counters_stat -t trap を実行。namespace 指定があれば -n <ns> を追加。
📋 検証エビデンス: sonic-net/sonic-utilities/show/flow_counters.py#L19-L27 (sha: 39732bceb8bdefe706518ab40623bbbba6ff33b9)
出典:
sonic-net/sonic-utilities/show/flow_counters.py#L19-L27 (sha: 39732bceb8bdefe706518ab40623bbbba6ff33b9)
抜粋:
show flowcnt-route config¶
用法:
動作:
CONFIG_DB の FLOW_COUNTER_ROUTE_PATTERN テーブルを db.cfgdb.get_table で取得し、key (<vrf>|<prefix>) を extract_route_pattern で分解、max フィールドとともに tabulate 表示する3。
show flowcnt-route stats [pattern|route]¶
用法:
show flowcnt-route stats [--verbose] [-n|--namespace <ns>]
show flowcnt-route stats pattern <prefix-pattern> [--vrf <vrf>] [-n ...]
show flowcnt-route stats route <prefix> [--vrf <vrf>] [-n ...]
動作:
- 引数なし:
flow_counters_stat -t routeで全体集計 pattern <p>:flow_counters_stat -t route --prefix_pattern <p>route <p>:flow_counters_stat -t route --prefix <p>
いずれも --vrf で VRF/VNET フィルタが可能。stats は invoke_without_command=True の group になっており、引数なしで呼ぶと内部の本体ロジックが、subcommand を付けると pattern/route 関数が走る Click パターン。
📋 検証エビデンス: sonic-net/sonic-utilities/show/flow_counters.py#L53-L93 (sha: 39732bceb8bdefe706518ab40623bbbba6ff33b9)
出典:
sonic-net/sonic-utilities/show/flow_counters.py#L53-L93 (sha: 39732bceb8bdefe706518ab40623bbbba6ff33b9)
抜粋:
@flowcnt_route.group(invoke_without_command=True)
def stats(ctx, verbose, namespace):
if ctx.invoked_subcommand is None:
command = ['flow_counters_stat', '-t', 'route']
...
@stats.command()
def pattern(prefix_pattern, vrf, verbose, namespace):
command = ['flow_counters_stat', '-t', 'route', '--prefix_pattern', str(prefix_pattern)]
@stats.command()
def route(prefix, vrf, verbose, namespace):
command = ['flow_counters_stat', '-t', 'route', '--prefix', str(prefix)]
関連する CONFIG_DB¶
| テーブル | フィールド | 操作するコマンド |
|---|---|---|
FLOW_COUNTER_ROUTE_PATTERN |
key=<vrf>|<prefix>, field=max |
config flowcnt-route ... で書き込み、show flowcnt-route config で表示 |
データフロー (自動生成)¶
flowchart LR
CLI["show flowcnt-trap"]
CDB0[("CONFIG_DB<br/>FLOW_COUNTER_ROUTE_PATTERN")]
CDB0 --> CLI
凡例
show 系 (CONFIG_DB → CLI) のミニ図。テーブル → daemon 対応は docs/reference/config-db-orch-map.md から機械生成。
関連リファレンス¶
- CONFIG_DB:
FLOW_COUNTER_ROUTE_PATTERN
引用元¶
関連 CLI コマンド¶
config mirror session— config mirror_session サブコマンドconfig sflow— config sflow サブコマンドconfig snmp— config snmp / snmpagentaddress / snmptrap サブコマンドconfig syslog— config syslog サブコマンドshow snmpagentaddress— show snmpagentaddress サブコマンド
関連ページ¶
-
cli.add_command(flow_counters.flowcnt_route)/cli.add_command(flow_counters.flowcnt_trap)がshow/main.pyL311-L312 にある。https://github.com/sonic-net/sonic-utilities/blob/39732bceb8bdefe706518ab40623bbbba6ff33b9/show/main.py#L311 ↩ -
exit_if_route_flow_counter_not_supportはプラットフォーム capability を確認する。サポート無しならflowcnt-routeグループ全体が事実上無効化。 ↩ -
https://github.com/sonic-net/sonic-utilities/blob/39732bceb8bdefe706518ab40623bbbba6ff33b9/show/flow_counters.py ↩