DSCP_TO_TC_MAP テーブル¶
概要¶
DSCP 値 (0..63) を Traffic Class へマップする ingress QoS 分類定義1。qosorch が SAI 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 構造¶
<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 になるのが一般的。
購読者¶
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
PORT_QOS_MAP、TC_TO_QUEUE_MAP、TC_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)。
確認コマンド¶
例外条件・特殊挙動¶
| 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