{%- set PORT_ALL = [] %} {%- for port in PORT %} {%- if PORT_ALL.append(port) %}{% endif %} {%- endfor %} {%- if PORT_ALL | sort_by_port_index %}{% endif %} {%- set port_names_list_all = [] %} {%- for port in PORT_ALL %} {%- if port_names_list_all.append(port) %}{% endif %} {%- endfor %} {%- set port_names_all = port_names_list_all | join(',') -%} {%- set PORT_ACTIVE = [] %} {%- if DEVICE_NEIGHBOR is not defined %} {%- set PORT_ACTIVE = PORT_ALL %} {%- else %} {%- for port in DEVICE_NEIGHBOR.keys() %} {%- if PORT_ACTIVE.append(port) %}{%- endif %} {%- endfor %} {%- endif %} {%- if PORT_ACTIVE | sort_by_port_index %}{% endif %} {%- set port_names_list_active = [] %} {%- for port in PORT_ACTIVE %} {%- if port_names_list_active.append(port) %}{%- endif %} {%- endfor %} {%- set port_names_active = port_names_list_active | join(',') -%} {%- set pfc_to_pg_map_supported_asics = ['mellanox', 'barefoot', 'marvell'] -%} {%- set backend_device_types = ['BackEndToRRouter', 'BackEndLeafRouter'] -%} { {% if generate_tc_to_pg_map is defined %} {{- generate_tc_to_pg_map() }} {% else %} "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { "0": "0", "1": "0", "2": "0", "3": "3", "4": "4", "5": "0", "6": "0", "7": "7" } }, {% endif %} "MAP_PFC_PRIORITY_TO_QUEUE": { "AZURE": { "0": "0", "1": "1", "2": "2", "3": "3", "4": "4", "5": "5", "6": "6", "7": "7" } }, "TC_TO_QUEUE_MAP": { "AZURE": { "0": "0", "1": "1", "2": "2", "3": "3", "4": "4", "5": "5", "6": "6", "7": "7" } }, {% if 'type' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['type'] in backend_device_types %} "DOT1P_TO_TC_MAP": { "AZURE": { "0": "0", "1": "1", "2": "2", "3": "3", "4": "4", "5": "5", "6": "6", "7": "7" } }, {% else %} "DSCP_TO_TC_MAP": { "AZURE": { "0" : "1", "1" : "1", "2" : "1", "3" : "3", "4" : "4", "5" : "2", "6" : "1", "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": "1", "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": "6", "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" } }, {% endif %} "SCHEDULER": { "scheduler.0": { "type" : "DWRR", "weight": "14" }, "scheduler.1": { "type" : "DWRR", "weight": "15" } }, {% if asic_type in pfc_to_pg_map_supported_asics %} "PFC_PRIORITY_TO_PRIORITY_GROUP_MAP": { "AZURE": { "3": "3", "4": "4" } }, {% endif %} "PORT_QOS_MAP": { "{{ port_names_active }}": { {% if 'type' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['type'] in backend_device_types %} "dot1p_to_tc_map" : "[DOT1P_TO_TC_MAP|AZURE]", {% else %} "dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]", {% endif %} "tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]", "tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]", "pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]", {% if asic_type in pfc_to_pg_map_supported_asics %} "pfc_to_pg_map" : "[PFC_PRIORITY_TO_PRIORITY_GROUP_MAP|AZURE]", {% endif %} "pfc_enable" : "3,4" } }, "WRED_PROFILE": { "AZURE_LOSSLESS" : { "wred_green_enable" : "true", "wred_yellow_enable" : "true", "wred_red_enable" : "true", "ecn" : "ecn_all", "green_max_threshold" : "2097152", "green_min_threshold" : "1048576", "yellow_max_threshold" : "2097152", "yellow_min_threshold" : "1048576", "red_max_threshold" : "2097152", "red_min_threshold" : "1048576", "green_drop_probability" : "5", "yellow_drop_probability": "5", "red_drop_probability" : "5" } }, "QUEUE": { {% for port in PORT_ACTIVE %} "{{ port }}|3": { "scheduler" : "[SCHEDULER|scheduler.1]", "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" }, {% endfor %} {% for port in PORT_ACTIVE %} "{{ port }}|4": { "scheduler" : "[SCHEDULER|scheduler.1]", "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" }, {% endfor %} {% for port in PORT_ACTIVE %} "{{ port }}|0": { "scheduler": "[SCHEDULER|scheduler.0]" }, {% endfor %} {% for port in PORT_ACTIVE %} "{{ port }}|1": { "scheduler": "[SCHEDULER|scheduler.0]" }, {% endfor %} {% for port in PORT_ACTIVE %} "{{ port }}|2": { "scheduler": "[SCHEDULER|scheduler.0]" }, {% endfor %} {% for port in PORT_ACTIVE %} "{{ port }}|5": { "scheduler": "[SCHEDULER|scheduler.0]" }, {% endfor %} {% for port in PORT_ACTIVE %} "{{ port }}|6": { "scheduler": "[SCHEDULER|scheduler.0]" }{% if not loop.last %},{% endif %} {% endfor %} } }