From 91aba2ac6f6799562cf5d29761016b9a1eccb182 Mon Sep 17 00:00:00 2001 From: bingwang-ms <66248323+bingwang-ms@users.noreply.github.com> Date: Tue, 9 Aug 2022 09:34:13 +0800 Subject: [PATCH] Support TC value above 7 in yang model (#11630) --- .../tests_config/qosmaps.json | 56 ++++++++++++++++++- .../yang-models/sonic-dot1p-tc-map.yang | 11 ++-- .../yang-models/sonic-dscp-tc-map.yang | 11 ++-- .../sonic-tc-priority-group-map.yang | 11 ++-- .../yang-models/sonic-tc-queue-map.yang | 11 ++-- .../yang-templates/sonic-types.yang.j2 | 9 +++ 6 files changed, 83 insertions(+), 26 deletions(-) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/qosmaps.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/qosmaps.json index f5e5701938c3..a05d80631f1f 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/qosmaps.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/qosmaps.json @@ -13,6 +13,10 @@ { "dscp":"2", "tc":"2" + }, + { + "dscp":"8", + "tc":"8" } ] }, @@ -26,6 +30,10 @@ { "dscp":"2", "tc":"2" + }, + { + "dscp":"8", + "tc":"8" } ] } @@ -65,7 +73,7 @@ "DSCP_TO_TC_MAP": [ { "dscp": "1", - "tc": "8" + "tc": "16" }, { "dscp":"2", @@ -92,6 +100,10 @@ { "dot1p":"2", "tc":"2" + }, + { + "dot1p":"3", + "tc":"8" } ] }, @@ -105,6 +117,10 @@ { "dot1p":"2", "tc":"2" + }, + { + "dot1p":"3", + "tc":"8" } ] } @@ -144,7 +160,7 @@ "DOT1P_TO_TC_MAP": [ { "dot1p": "1", - "tc": "8" + "tc": "16" }, { "dot1p":"2", @@ -171,6 +187,10 @@ { "tc":"2", "qindex":"2" + }, + { + "tc":"8", + "qindex":"3" } ] }, @@ -184,6 +204,10 @@ { "tc":"2", "qindex":"2" + }, + { + "tc":"8", + "qindex":"3" } ] } @@ -250,6 +274,10 @@ { "tc":"2", "pg":"2" + }, + { + "tc":"8", + "pg":"3" } ] }, @@ -263,6 +291,10 @@ { "tc":"2", "pg":"2" + }, + { + "tc":"8", + "pg":"3" } ] } @@ -487,6 +519,10 @@ { "dscp":"2", "tc":"2" + }, + { + "dscp":"8", + "tc":"8" } ] } @@ -507,6 +543,10 @@ { "dot1p":"2", "tc":"2" + }, + { + "dot1p":"3", + "tc":"8" } ] } @@ -527,6 +567,10 @@ { "tc":"2", "qindex":"2" + }, + { + "tc":"8", + "qindex":"3" } ] } @@ -546,6 +590,10 @@ { "tc":"2", "pg":"2" + }, + { + "tc":"8", + "pg":"3" } ] } @@ -643,6 +691,10 @@ { "dscp":"2", "tc":"2" + }, + { + "dscp":"8", + "tc":"8" } ] } diff --git a/src/sonic-yang-models/yang-models/sonic-dot1p-tc-map.yang b/src/sonic-yang-models/yang-models/sonic-dot1p-tc-map.yang index 0a756298c97e..1636f43f6c64 100644 --- a/src/sonic-yang-models/yang-models/sonic-dot1p-tc-map.yang +++ b/src/sonic-yang-models/yang-models/sonic-dot1p-tc-map.yang @@ -6,6 +6,10 @@ module sonic-dot1p-tc-map { prefix dot1ptm; + import sonic-types { + prefix stypes; + } + organization "SONiC"; @@ -54,12 +58,7 @@ module sonic-dot1p-tc-map { } leaf tc { - type string { - pattern "[0-7]?"{ - error-message "Invalid Traffic Class"; - error-app-tag tc-invalid; - } - } + type stypes:tc_type; } } } diff --git a/src/sonic-yang-models/yang-models/sonic-dscp-tc-map.yang b/src/sonic-yang-models/yang-models/sonic-dscp-tc-map.yang index 71d9fcd4884d..fb590b85c6ff 100644 --- a/src/sonic-yang-models/yang-models/sonic-dscp-tc-map.yang +++ b/src/sonic-yang-models/yang-models/sonic-dscp-tc-map.yang @@ -6,6 +6,10 @@ module sonic-dscp-tc-map { prefix dtm; + import sonic-types { + prefix stypes; + } + organization "SONiC"; @@ -54,12 +58,7 @@ module sonic-dscp-tc-map { } leaf tc { - type string { - pattern "[0-7]?" { - error-message "Invalid Traffic Class"; - error-app-tag tc-invalid; - } - } + type stypes:tc_type; } } } diff --git a/src/sonic-yang-models/yang-models/sonic-tc-priority-group-map.yang b/src/sonic-yang-models/yang-models/sonic-tc-priority-group-map.yang index 4290b79c3ee7..1b21673f58a0 100644 --- a/src/sonic-yang-models/yang-models/sonic-tc-priority-group-map.yang +++ b/src/sonic-yang-models/yang-models/sonic-tc-priority-group-map.yang @@ -6,6 +6,10 @@ module sonic-tc-priority-group-map { prefix tpgm; + import sonic-types { + prefix stypes; + } + organization "SONiC"; @@ -45,12 +49,7 @@ module sonic-tc-priority-group-map { key "tc"; leaf tc { - type string { - pattern "[0-7]?" { - error-message "Invalid Traffic Class"; - error-app-tag tc-invalid; - } - } + type stypes:tc_type; } leaf pg { diff --git a/src/sonic-yang-models/yang-models/sonic-tc-queue-map.yang b/src/sonic-yang-models/yang-models/sonic-tc-queue-map.yang index fa22a8331294..3bcfab1f4598 100644 --- a/src/sonic-yang-models/yang-models/sonic-tc-queue-map.yang +++ b/src/sonic-yang-models/yang-models/sonic-tc-queue-map.yang @@ -6,6 +6,10 @@ module sonic-tc-queue-map { prefix tqm; + import sonic-types { + prefix stypes; + } + organization "SONiC"; @@ -45,12 +49,7 @@ module sonic-tc-queue-map { key "tc"; leaf tc { - type string { - pattern "[0-7]?" { - error-message "Invalid Traffic Class"; - error-app-tag tc-invalid; - } - } + type stypes:tc_type; } leaf qindex { diff --git a/src/sonic-yang-models/yang-templates/sonic-types.yang.j2 b/src/sonic-yang-models/yang-templates/sonic-types.yang.j2 index 6d8bd198d216..5f24b45dff1c 100644 --- a/src/sonic-yang-models/yang-templates/sonic-types.yang.j2 +++ b/src/sonic-yang-models/yang-templates/sonic-types.yang.j2 @@ -262,6 +262,15 @@ module sonic-types { } } + typedef tc_type { + type uint8 { + range "0..15" { + error-message "Invalid Traffic Class"; + error-app-tag tc-invalid; + } + } + } + {% if yang_model_type == "cvl" %} /* Required for CVL */ container operation {