コンテンツにスキップ

DSCP_TO_TC_MAP テーブル

概要

DSCP 値 (0..63) を Traffic Class へマップする ingress QoS 分類定義1qosorchSAI QoS map (SAI_QOS_MAP_TYPE_DSCP_TO_TC) を生成し、ポートにバインドする (PORT_QOS_MAP.dscp_to_tc_map)。

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

flowchart LR
  CDB[("CONFIG_DB<br/>DSCP_TO_TC_MAP")]
  DM["QosOrch"]
  CDB --> DM
  SAI["SAI<br/>sai_qos_map_api"]
  DM --> SAI

凡例

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

key 構造

DSCP_TO_TC_MAP|<name>|<dscp>

<name> はマップ名(1..32 文字、[a-zA-Z0-9][-a-zA-Z0-9_]*)。<dscp> は 0..63。

フィールド一覧

フィールド 必須 説明
name (key) string (1..32) マップ名
dscp (key) string 0..63 DSCP
tc tc_type (0..7) - 対応 TC

YANG 上は親子 list 構造。Redis に展開すると DSCP_TO_TC_MAP|<name> の hash field として <dscp>: <tc> ペアが格納される。

値依存挙動マトリクス

dscp (key: string 0..63)

挙動
0..63 qosorch が SAI_QOS_MAP_TYPE_DSCP_TO_TC エントリを生成
範囲外 YANG 違反で reject

tc (tc_type: 0..7)

挙動
0..7 SAI QoS map オブジェクトの Traffic Class 値として設定
8 以上 ASIC が拒否(SAI エラー)

明示的な enum 制約なし(スパース定義可能)。PORT_QOS_MAP.dscp_to_tc_map から参照されない限り SAI に反映されない。未定義 DSCP はデフォルト TC=0 になるのが一般的。

購読者

  • qosorch: SAI QoS map 生成
  • bufferorch 経由でポート PG への影響あり

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: PORT_QOS_MAPTC_TO_QUEUE_MAPTC_TO_PRIORITY_GROUP_MAP
  • 関連 CLI: なし
  • 関連 YANG: sonic-dscp-tc-map

関連リファレンス

引用元

関連 Topics

運用ヒント

典型値

  • key 形式: DSCP_TO_TC_MAP|<name> (例 AZURE)。
  • 値: 0:0, 8:1, 16:0, 24:3, 48:6 等の dscp→TC マップ。

よくある誤設定

  • TC を 8 以上に書くと ASIC が拒否(TC は 0..7)。

確認コマンド

sonic-db-cli CONFIG_DB hgetall 'DSCP_TO_TC_MAP|AZURE'
show qos map dscp-tc

例外条件・特殊挙動

consumer 条件 挙動
orchagent DEL 時に PORT / TUNNEL から参照中 m_pendingRemove=true を立てて task_need_retry を返す(qosorch.cpp:181-186)
orchagent スイッチに DSCP→TC map 適用前の capability 確認 querySwitchCapability(SAI_SWITCH_ATTR_QOS_DSCP_TO_TC_MAP) で未対応の場合はスイッチレベルへの適用をスキップ(qosorch.cpp:1956)
orchagent スイッチレベルで DSCP map 解除 (null 設定) SAI_NULL_OBJECT_ID を渡して解除可能(qosorch.cpp:1993)
orchagent SAI 生成・変更・削除失敗 task_failed を返す。DOT1P_TO_TC_MAP と同一の QosMapHandler を使用(qosorch.cpp:151-191)

Evidence: sonic-swss orchagent/qosorch.cpp:1956,1993; orchagent/tunneldecaporch.cpp:831-834