Apply separated DSCP_TO_TC_MAP and TC_TO_QUEUE_MAP to uplink ports on dualtor (#12730)

Why I did it
The PR is to apply separated DSCP_TO_TC_MAP and TC_TO_QUEUE_MAP to uplink ports on dualtor.
The traffic with DSCP 2 and DSCP 6 from T1 is treated as lossless traffic.

DSCP    TC    Queue
2      2     2
6      6     6
Traffic with DSCP 2 or DSCP 6 from downlink is still treated as lossy traffic as before.

How I did it
Define DSCP_TO_TC_MAP|AZURE_UPLINK and TC_TO_QUEUE_MAP|AZURE_UPLINK.

How to verify it
Verified by UT
Verified by coping the new template to a testbed, and rendering a config_db.json
This commit is contained in:
bingwang-ms 2022-11-22 03:42:28 +08:00 committed by GitHub
parent 576289d050
commit f402e6b5c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 516 additions and 36 deletions

View File

@ -1,4 +1,6 @@
{% if 'subtype' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['subtype'] == 'DualToR' %}
{% set different_dscp_to_tc_map = true %}
{% set different_tc_to_queue_map = true %}
{%- macro generate_dscp_to_tc_map() %}
"DSCP_TO_TC_MAP": {
"AZURE": {
@ -67,7 +69,73 @@
"62": "1",
"63": "1"
},
"AZURE_TUNNEL": {
"AZURE_UPLINK": {
"0" : "1",
"1" : "1",
"2" : "2",
"3" : "3",
"4" : "4",
"5" : "1",
"6" : "6",
"7" : "1",
"8" : "0",
"9" : "1",
"10": "1",
"11": "1",
"12": "1",
"13": "1",
"14": "1",
"15": "1",
"16": "1",
"17": "1",
"18": "1",
"19": "1",
"20": "1",
"21": "1",
"22": "1",
"23": "1",
"24": "1",
"25": "1",
"26": "1",
"27": "1",
"28": "1",
"29": "1",
"30": "1",
"31": "1",
"32": "1",
"33": "8",
"34": "1",
"35": "1",
"36": "1",
"37": "1",
"38": "1",
"39": "1",
"40": "1",
"41": "1",
"42": "1",
"43": "1",
"44": "1",
"45": "1",
"46": "5",
"47": "1",
"48": "7",
"49": "1",
"50": "1",
"51": "1",
"52": "1",
"53": "1",
"54": "1",
"55": "1",
"56": "1",
"57": "1",
"58": "1",
"59": "1",
"60": "1",
"61": "1",
"62": "1",
"63": "1"
},
"AZURE_TUNNEL": {
"0" : "1",
"1" : "1",
"2" : "1",
@ -174,6 +242,17 @@
"7": "7",
"8": "1"
},
"AZURE_UPLINK": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "1"
},
"AZURE_TUNNEL": {
"0": "0",
"1": "1",

View File

@ -1,4 +1,6 @@
{% if 'subtype' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['subtype'] == 'DualToR' %}
{% set different_dscp_to_tc_map = true %}
{% set different_tc_to_queue_map = true %}
{%- macro generate_dscp_to_tc_map() %}
"DSCP_TO_TC_MAP": {
"AZURE": {
@ -67,7 +69,73 @@
"62": "1",
"63": "1"
},
"AZURE_TUNNEL": {
"AZURE_UPLINK": {
"0" : "1",
"1" : "1",
"2" : "2",
"3" : "3",
"4" : "4",
"5" : "1",
"6" : "6",
"7" : "1",
"8" : "0",
"9" : "1",
"10": "1",
"11": "1",
"12": "1",
"13": "1",
"14": "1",
"15": "1",
"16": "1",
"17": "1",
"18": "1",
"19": "1",
"20": "1",
"21": "1",
"22": "1",
"23": "1",
"24": "1",
"25": "1",
"26": "1",
"27": "1",
"28": "1",
"29": "1",
"30": "1",
"31": "1",
"32": "1",
"33": "8",
"34": "1",
"35": "1",
"36": "1",
"37": "1",
"38": "1",
"39": "1",
"40": "1",
"41": "1",
"42": "1",
"43": "1",
"44": "1",
"45": "1",
"46": "5",
"47": "1",
"48": "7",
"49": "1",
"50": "1",
"51": "1",
"52": "1",
"53": "1",
"54": "1",
"55": "1",
"56": "1",
"57": "1",
"58": "1",
"59": "1",
"60": "1",
"61": "1",
"62": "1",
"63": "1"
},
"AZURE_TUNNEL": {
"0" : "1",
"1" : "1",
"2" : "1",
@ -174,6 +242,17 @@
"7": "7",
"8": "1"
},
"AZURE_UPLINK": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "1"
},
"AZURE_TUNNEL": {
"0": "0",
"1": "1",

View File

@ -151,6 +151,8 @@
},
{%- endmacro %}
{% elif ('subtype' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['subtype'] == 'DualToR') %}
{% set different_dscp_to_tc_map = true %}
{% set different_tc_to_queue_map = true %}
{%- macro generate_dscp_to_tc_map() %}
"DSCP_TO_TC_MAP": {
"AZURE": {
@ -219,6 +221,72 @@
"62": "1",
"63": "1"
},
"AZURE_UPLINK": {
"0" : "1",
"1" : "1",
"2" : "2",
"3" : "3",
"4" : "4",
"5" : "1",
"6" : "6",
"7" : "1",
"8" : "0",
"9" : "1",
"10": "1",
"11": "1",
"12": "1",
"13": "1",
"14": "1",
"15": "1",
"16": "1",
"17": "1",
"18": "1",
"19": "1",
"20": "1",
"21": "1",
"22": "1",
"23": "1",
"24": "1",
"25": "1",
"26": "1",
"27": "1",
"28": "1",
"29": "1",
"30": "1",
"31": "1",
"32": "1",
"33": "8",
"34": "1",
"35": "1",
"36": "1",
"37": "1",
"38": "1",
"39": "1",
"40": "1",
"41": "1",
"42": "1",
"43": "1",
"44": "1",
"45": "1",
"46": "5",
"47": "1",
"48": "7",
"49": "1",
"50": "1",
"51": "1",
"52": "1",
"53": "1",
"54": "1",
"55": "1",
"56": "1",
"57": "1",
"58": "1",
"59": "1",
"60": "1",
"61": "1",
"62": "1",
"63": "1"
},
"AZURE_TUNNEL": {
"0" : "1",
"1" : "1",
@ -326,6 +394,17 @@
"7": "7",
"8": "1"
},
"AZURE_UPLINK": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "1"
},
"AZURE_TUNNEL": {
"0": "0",
"1": "1",

View File

@ -218,6 +218,72 @@
"62": "1",
"63": "1"
},
"AZURE_UPLINK": {
"0" : "1",
"1" : "1",
"2" : "2",
"3" : "3",
"4" : "4",
"5" : "1",
"6" : "6",
"7" : "1",
"8" : "0",
"9" : "1",
"10": "1",
"11": "1",
"12": "1",
"13": "1",
"14": "1",
"15": "1",
"16": "1",
"17": "1",
"18": "1",
"19": "1",
"20": "1",
"21": "1",
"22": "1",
"23": "1",
"24": "1",
"25": "1",
"26": "1",
"27": "1",
"28": "1",
"29": "1",
"30": "1",
"31": "1",
"32": "1",
"33": "8",
"34": "1",
"35": "1",
"36": "1",
"37": "1",
"38": "1",
"39": "1",
"40": "1",
"41": "1",
"42": "1",
"43": "1",
"44": "1",
"45": "1",
"46": "5",
"47": "1",
"48": "7",
"49": "1",
"50": "1",
"51": "1",
"52": "1",
"53": "1",
"54": "1",
"55": "1",
"56": "1",
"57": "1",
"58": "1",
"59": "1",
"60": "1",
"61": "1",
"62": "1",
"63": "1"
},
"AZURE_TUNNEL": {
"0" : "1",
"1" : "1",
@ -325,6 +391,17 @@
"7": "7",
"8": "1"
},
"AZURE_UPLINK": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "1"
},
"AZURE_TUNNEL": {
"0": "0",
"1": "1",

View File

@ -240,13 +240,25 @@
{% if 'type' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['type'] in backend_device_types and 'storage_device' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['storage_device'] == 'true' %}
"dot1p_to_tc_map" : "AZURE",
{% else %}
{% if different_dscp_to_tc_map and port not in port_names_list_extra_queues and tunnel_qos_remap_enable %}
{# Apply separated DSCP_TO_TC_MAP to uplink ports on ToR and Leaf #}
{% if different_dscp_to_tc_map and tunnel_qos_remap_enable %}
{% if ('type' in DEVICE_METADATA['localhost']) and (DEVICE_METADATA['localhost']['type'] == 'LeafRouter') and (port not in port_names_list_extra_queues) %}
"dscp_to_tc_map" : "AZURE_UPLINK",
{% elif ('subtype' in DEVICE_METADATA['localhost']) and (DEVICE_METADATA['localhost']['subtype'] == 'DualToR') and (port in port_names_list_extra_queues) %}
"dscp_to_tc_map" : "AZURE_UPLINK",
{% else %}
"dscp_to_tc_map" : "AZURE",
{% endif %}
{% else %}
"dscp_to_tc_map" : "AZURE",
{% endif %}
{% endif %}
{# Apply separated TC_TO_QUEUE_MAP to uplink ports on ToR #}
{% if different_tc_to_queue_map and tunnel_qos_remap_enable and port in port_names_list_extra_queues %}
"tc_to_queue_map" : "AZURE_UPLINK",
{% else %}
"tc_to_queue_map" : "AZURE",
{% endif %}
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
{% if asic_type in pfc_to_pg_map_supported_asics %}

View File

@ -15,7 +15,7 @@
"AZURE": {
"0": "0",
"1": "1",
"2": "1",
"2": "1",
"3": "3",
"4": "4",
"5": "5",
@ -23,6 +23,17 @@
"7": "7",
"8": "1"
},
"AZURE_UPLINK": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "1"
},
"AZURE_TUNNEL": {
"0": "0",
"1": "1",
@ -102,6 +113,72 @@
"62": "1",
"63": "1"
},
"AZURE_UPLINK": {
"0" : "1",
"1" : "1",
"2" : "2",
"3" : "3",
"4" : "4",
"5" : "1",
"6" : "6",
"7" : "1",
"8" : "0",
"9" : "1",
"10": "1",
"11": "1",
"12": "1",
"13": "1",
"14": "1",
"15": "1",
"16": "1",
"17": "1",
"18": "1",
"19": "1",
"20": "1",
"21": "1",
"22": "1",
"23": "1",
"24": "1",
"25": "1",
"26": "1",
"27": "1",
"28": "1",
"29": "1",
"30": "1",
"31": "1",
"32": "1",
"33": "8",
"34": "1",
"35": "1",
"36": "1",
"37": "1",
"38": "1",
"39": "1",
"40": "1",
"41": "1",
"42": "1",
"43": "1",
"44": "1",
"45": "1",
"46": "5",
"47": "1",
"48": "7",
"49": "1",
"50": "1",
"51": "1",
"52": "1",
"53": "1",
"54": "1",
"55": "1",
"56": "1",
"57": "1",
"58": "1",
"59": "1",
"60": "1",
"61": "1",
"62": "1",
"63": "1"
},
"AZURE_TUNNEL": {
"0" : "1",
"1" : "1",
@ -269,32 +346,32 @@
"pfcwd_sw_enable" : "3,4"
},
"Ethernet24": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet28": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet32": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet36": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
@ -397,32 +474,32 @@
"pfcwd_sw_enable" : "3,4"
},
"Ethernet88": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet92": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet96": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet100": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",

View File

@ -23,6 +23,17 @@
"7": "7",
"8": "1"
},
"AZURE_UPLINK": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "1"
},
"AZURE_TUNNEL": {
"0": "0",
"1": "1",
@ -102,6 +113,72 @@
"62": "1",
"63": "1"
},
"AZURE_UPLINK": {
"0" : "1",
"1" : "1",
"2" : "2",
"3" : "3",
"4" : "4",
"5" : "1",
"6" : "6",
"7" : "1",
"8" : "0",
"9" : "1",
"10": "1",
"11": "1",
"12": "1",
"13": "1",
"14": "1",
"15": "1",
"16": "1",
"17": "1",
"18": "1",
"19": "1",
"20": "1",
"21": "1",
"22": "1",
"23": "1",
"24": "1",
"25": "1",
"26": "1",
"27": "1",
"28": "1",
"29": "1",
"30": "1",
"31": "1",
"32": "1",
"33": "8",
"34": "1",
"35": "1",
"36": "1",
"37": "1",
"38": "1",
"39": "1",
"40": "1",
"41": "1",
"42": "1",
"43": "1",
"44": "1",
"45": "1",
"46": "5",
"47": "1",
"48": "7",
"49": "1",
"50": "1",
"51": "1",
"52": "1",
"53": "1",
"54": "1",
"55": "1",
"56": "1",
"57": "1",
"58": "1",
"59": "1",
"60": "1",
"61": "1",
"62": "1",
"63": "1"
},
"AZURE_TUNNEL": {
"0" : "1",
"1" : "1",
@ -317,64 +394,64 @@
"pfcwd_sw_enable" : "3,4"
},
"Ethernet48": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet52": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet56": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet60": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet64": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet68": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet72": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",
"pfcwd_sw_enable" : "3,4"
},
"Ethernet76": {
"dscp_to_tc_map" : "AZURE",
"tc_to_queue_map" : "AZURE",
"dscp_to_tc_map" : "AZURE_UPLINK",
"tc_to_queue_map" : "AZURE_UPLINK",
"tc_to_pg_map" : "AZURE",
"pfc_to_queue_map": "AZURE",
"pfc_enable" : "2,3,4,6",