コンテンツにスキップ

config qos サブコマンド

概要

config qosQoS と buffer 関連テンプレートを再生成して CONFIG_DB に反映する CLI グループ。clear は既存 QoS 設定を削除し、reload は platform/HWSKU の qos.json.j2buffers*.json.j2sonic-cfggen で展開する1

コマンド一覧

コマンド 用途
config qos clear [--verbose] QoS 設定を削除
config qos reload [options] QoS/buffer 設定をテンプレートから再投入

config qos reload

用法:

config qos reload [--ports <port[,port...]>]
                  [--no-dynamic-buffer]
                  [--dry_run <file-prefix>]
                  [--json-data <json>]
                  [--verbose]

--ports がある場合は、対象 port に関連する table だけを再計算する _qos_update_ports() に進む。対象 table は port 単独 key の PORT_QOS_MAP, BUFFER_PORT_INGRESS_PROFILE_LIST, BUFFER_PORT_EGRESS_PROFILE_LIST と、複合 key の QUEUE, BUFFER_PG, BUFFER_QUEUE2

--ports がない場合、既存 QoS を clear してから HWSKU 配下の template を展開する。Mellanox/Barefoot で --no-dynamic-buffer が無い場合は buffers_dynamic.json.j2 を使い、DEVICE_METADATA|localhostbuffer_modeldynamic に更新する。そうでない場合は buffers.json.j2 を使い、対応 ASIC では traditional に更新する3

--dry_run を指定すると CONFIG_DB に書かず、展開後 JSON をファイルへ出力する。

関連する CONFIG_DB

テーブル 操作
DEVICE_METADATA buffer_modeldynamic / traditional に更新
PORT_QOS_MAP port 別 QoS map
BUFFER_PORT_INGRESS_PROFILE_LIST ingress buffer profile list
BUFFER_PORT_EGRESS_PROFILE_LIST egress buffer profile list
BUFFER_PG / BUFFER_QUEUE port + PG/queue 単位の buffer 設定

関連リファレンス

引用元

実行例

典型的な使い方

# 例 1: QoS 設定の再ロード(platform 既定 template を再適用)
sudo config qos reload

よくある引数の組み合わせ

# 既存設定をクリアして再ロード
sudo config qos clear
sudo config qos reload --no-dynamic-buffer

# 特定ポートだけ再適用
sudo config qos reload --ports Ethernet0,Ethernet4

期待される出力 (抜粋)

Running command: /usr/local/bin/sonic-cfggen ...
QoS reload completed.

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

flowchart LR
  CLI["config qos"]
  SC["sonic-cfggen<br/>(config CLI のみ)"]
  CLI --> SC
  CDB0[("CONFIG_DB<br/>PORT_QOS_MAP")]
  SC --> CDB0
  DM0["QosOrch"]
  CDB0 --> DM0
  CDB1[("CONFIG_DB<br/>BUFFER_PORT_INGRESS_PROFILE_LIST")]
  SC --> CDB1
  DM1["buffermgrd"]
  CDB1 --> DM1
  CDB2[("CONFIG_DB<br/>BUFFER_PORT_EGRESS_PROFILE_LIST")]
  SC --> CDB2
  DM2["buffermgrd"]
  CDB2 --> DM2
  CDB3[("CONFIG_DB<br/>BUFFER_PG")]
  SC --> CDB3
  DM3["buffermgrd"]
  CDB3 --> DM3

凡例

config 系 (CLI → CONFIG_DB → daemon) のミニ図。テーブル → daemon 対応は docs/reference/config-db-orch-map.md から機械生成。

関連 Topics

運用ヒント

典型的な利用シーン

  • QoS プロファイルの再ロード、TC マップ・スケジューラ・WRED の更新。
  • DSCP / dot1p / PFC priority の対応付け確認。

よくある落とし穴

  • config qos reload は既存 buffer profile を一旦消すため、瞬断・パケロスが出る可能性。
  • --no-dynamic-buffer 機種で dynamic buffer 設定を投入しても無視される。
  • config reload <file> でパイプ文字を含む QoS マップ参照が YANG 検証エラーになる (issue #4107): PORT_QOS_MAPdot1p_to_tc_map / dscp_to_tc_map 等に "DOT1P_TO_TC_MAP|ROCE" のようにパイプ文字 (|) を含む参照値があると、config reload -y <explicit-file> の YANG 検証で Value does not satisfy the constraint エラーが出て中断する。ファイル指定なしの config reload -y は検証コードパスが異なり発生しない。回避策: (1) config reload -y (引数なし) を使う、または (2) 参照値をパイプなしの名称に変更する。

関連する show / debug

show qos
show priority-group persistent-watermark headroom
show queue counters

関連 CLI コマンド