diff --git a/device/mellanox/x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/buffers_defaults_objects.j2 b/device/mellanox/x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/buffers_defaults_objects.j2 index bc5f29232636..b0400cbccf2c 100644 --- a/device/mellanox/x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/buffers_defaults_objects.j2 +++ b/device/mellanox/x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/buffers_defaults_objects.j2 @@ -155,22 +155,22 @@ }, {% endfor %} {% for port in port_names_active.split(',') %} - "{{ port }}|1-2": { + "{{ port }}|1-3": { "profile" : "q_lossy_minus_7_profile" }, {% endfor %} {% for port in port_names_active.split(',') %} - "{{ port }}|3": { + "{{ port }}|4": { "profile" : "q_lossy_profile" }, {% endfor %} {% for port in port_names_active.split(',') %} - "{{ port }}|4": { + "{{ port }}|5": { "profile" : "q_lossy_minus_3_profile" }, {% endfor %} {% for port in port_names_active.split(',') %} - "{{ port }}|5-6": { + "{{ port }}|6": { "profile" : "q_lossy_profile" }{% if not loop.last %},{% endif %} diff --git a/device/mellanox/x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/qos.json.j2 b/device/mellanox/x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/qos.json.j2 index 99f048a1cd90..e9f6868a40d9 100644 --- a/device/mellanox/x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/qos.json.j2 +++ b/device/mellanox/x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/qos.json.j2 @@ -16,47 +16,47 @@ {%- macro generate_dscp_to_tc_map_per_sku() -%} "DSCP_TO_TC_MAP": { "AZURE": { - "0" : "6", + "0" : "0", "1" : "1", - "2" : "2", - "3" : "3", - "4" : "3", - "5" : "4", - "6" : "5", + "2" : "1", + "3" : "2", + "4" : "2", + "5" : "3", + "6" : "3", "7" : "0", "8" : "0", "9" : "0", "10": "0", - "11": "0", - "12": "0", - "13": "0", - "14": "0", - "15": "0", - "16": "0", - "17": "0", - "18": "0", - "19": "0", - "20": "0", - "21": "0", - "22": "0", - "23": "0", - "24": "0", - "25": "0", - "26": "0", - "27": "0", - "28": "0", - "29": "0", - "30": "0", - "31": "0", - "32": "0", - "33": "0", - "34": "0", - "35": "0", - "36": "0", - "37": "0", - "38": "0", - "39": "0", - "40": "0", + "11": "4", + "12": "4", + "13": "4", + "14": "4", + "15": "4", + "16": "4", + "17": "4", + "18": "4", + "19": "4", + "20": "4", + "21": "4", + "22": "4", + "23": "4", + "24": "4", + "25": "4", + "26": "4", + "27": "4", + "28": "4", + "29": "4", + "30": "4", + "31": "5", + "32": "5", + "33": "5", + "34": "5", + "35": "5", + "36": "5", + "37": "5", + "38": "5", + "39": "5", + "40": "5", "41": "0", "42": "0", "43": "0", @@ -100,46 +100,46 @@ {%- macro generate_scheduler_per_sku() -%} "SCHEDULER": { - "scheduler.1": { + "scheduler.4": { "type" : "DWRR", - "weight": "1" + "weight": "4" }, - "scheduler.10": { + "scheduler.8": { "type" : "DWRR", - "weight": "10" + "weight": "8" }, - "scheduler.12": { + "scheduler.18": { "type" : "DWRR", - "weight": "12" + "weight": "18" }, - "scheduler.32": { + "scheduler.22": { "type" : "DWRR", - "weight": "32" + "weight": "22" } }, {%- endmacro -%} {%- macro generate_single_queue_per_sku(port) -%} "{{ port }}|0": { - "scheduler": "scheduler.1" + "scheduler": "scheduler.4" }, "{{ port }}|1": { - "scheduler": "scheduler.10" + "scheduler": "scheduler.8" }, "{{ port }}|2": { - "scheduler": "scheduler.12" + "scheduler": "scheduler.18" }, "{{ port }}|3": { - "scheduler": "scheduler.12" + "scheduler": "scheduler.22" }, "{{ port }}|4": { - "scheduler": "scheduler.32" + "scheduler": "scheduler.22" }, "{{ port }}|5": { - "scheduler": "scheduler.32" + "scheduler": "scheduler.22" }, "{{ port }}|6": { - "scheduler": "scheduler.1" + "scheduler": "scheduler.4" } {%- endmacro -%} diff --git a/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C224O8/buffers_defaults_objects.j2 b/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C224O8/buffers_defaults_objects.j2 index 2f04a30b0415..e404fb0aae10 120000 --- a/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C224O8/buffers_defaults_objects.j2 +++ b/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C224O8/buffers_defaults_objects.j2 @@ -1 +1 @@ -../Mellanox-SN5610N-C256S2/buffers_defaults_objects.j2 \ No newline at end of file +../../x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/buffers_defaults_objects.j2 \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C224O8/qos.json.j2 b/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C224O8/qos.json.j2 index c7fe6816246a..462ffcd7e1f3 120000 --- a/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C224O8/qos.json.j2 +++ b/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C224O8/qos.json.j2 @@ -1 +1 @@ -../Mellanox-SN5610N-C256S2/qos.json.j2 \ No newline at end of file +../../x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/qos.json.j2 \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/buffers_defaults_objects.j2 b/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/buffers_defaults_objects.j2 deleted file mode 100644 index ea5630e0446d..000000000000 --- a/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/buffers_defaults_objects.j2 +++ /dev/null @@ -1,213 +0,0 @@ -{# - SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES - Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. - Apache-2.0 - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -#} - -{%- macro generate_buffer_pool_and_profiles_with_inactive_ports(port_names_inactive) %} - "BUFFER_POOL": { - {% if dynamic_mode is not defined and port_names_inactive|length > 0 -%} - "ingress_zero_pool" : { - "mode": "static", - "type": "ingress", - "size": "0" - }, - {% endif -%} - "ingress_lossless_pool": { - {% if dynamic_mode is not defined -%} - "size": "{{ ingress_lossless_pool_size }}", - {% endif -%} - "type": "ingress", - "mode": "dynamic" - }, - "egress_lossless_pool": { - "size": "{{ egress_lossless_pool_size }}", - "type": "egress", - "mode": "dynamic" - }, - "egress_lossy_pool": { - {% if dynamic_mode is not defined -%} - "size": "{{ egress_lossy_pool_size }}", - {% endif -%} - "type": "egress", - "mode": "dynamic" - } - }, - "BUFFER_PROFILE": { - {% if dynamic_mode is not defined and port_names_inactive|length > 0 -%} - "ingress_lossy_pg_zero_profile" : { - "pool":"ingress_zero_pool", - "size":"0", - "static_th":"0" - }, - "ingress_lossless_zero_profile" : { - "pool":"ingress_lossless_pool", - "size":"0", - "dynamic_th":"-8" - }, - "egress_lossless_zero_profile" : { - "pool":"egress_lossless_pool", - "size":"0", - "dynamic_th":"-8" - }, - "egress_lossy_zero_profile" : { - "pool":"egress_lossy_pool", - "size":"0", - "dynamic_th":"-8" - }, - {% endif -%} - "ingress_lossy_profile": { - "pool":"ingress_lossless_pool", - "size":"0", - "dynamic_th":"3" - }, - "egress_lossless_profile": { - "pool":"egress_lossless_pool", - "size":"0", - "dynamic_th":"7" - }, - "egress_lossy_profile": { - "pool":"egress_lossy_pool", - "size":"9216", - "dynamic_th":"7" - }, - "q_lossy_profile": { - "pool":"egress_lossy_pool", - "size":"0", - "dynamic_th":"0" - }, - "q_lossy_minus_7_profile": { - "pool": "egress_lossy_pool", - "size": "0", - "dynamic_th" : "-7" - }, - "q_lossy_minus_3_profile": { - "pool": "egress_lossy_pool", - "size": "0", - "dynamic_th" : "-3" - } - }, -{%- endmacro %} - -{%- macro generate_profile_lists(port_names_active, port_names_inactive) %} - "BUFFER_PORT_INGRESS_PROFILE_LIST": { -{% for port in port_names_active.split(',') %} - "{{ port }}": { - "profile_list" : "ingress_lossy_profile" - }{% if not loop.last %},{% endif %} - -{% endfor %} -{% if port_names_inactive|length > 0 %} -, -{% for port in port_names_inactive.split(',') %} - "{{ port }}": { -{% if dynamic_mode is defined %} - "profile_list" : "ingress_lossy_profile" -{% else %} - "profile_list" : "ingress_lossless_zero_profile" -{% endif %} - }{% if not loop.last %},{% endif %} - -{% endfor %} -{% endif %} - }, - "BUFFER_PORT_EGRESS_PROFILE_LIST": { -{% for port in port_names_active.split(',') %} - "{{ port }}": { - "profile_list" : "egress_lossless_profile,egress_lossy_profile" - }{% if not loop.last %},{% endif %} - -{% endfor %} -{% if port_names_inactive|length > 0 %} -, -{% for port in port_names_inactive.split(',') %} - "{{ port }}": { -{% if dynamic_mode is defined %} - "profile_list" : "egress_lossless_profile,egress_lossy_profile" -{% else %} - "profile_list" : "egress_lossless_zero_profile,egress_lossy_zero_profile" -{% endif %} - }{% if not loop.last %},{% endif %} - -{% endfor %} -{% endif %} - } -{%- endmacro %} - -{%- macro generate_queue_buffers(port_names_active, port_names_inactive) %} - "BUFFER_QUEUE": { -{% if dynamic_mode is not defined %} -{% for port in port_names_active.split(',') %} - "{{ port }}|0": { - "profile" : "q_lossy_profile" - }, -{% endfor %} -{% for port in port_names_active.split(',') %} - "{{ port }}|1-2": { - "profile" : "q_lossy_minus_7_profile" - }, -{% endfor %} -{% for port in port_names_active.split(',') %} - "{{ port }}|3": { - "profile" : "q_lossy_profile" - }, -{% endfor %} -{% for port in port_names_active.split(',') %} - "{{ port }}|4": { - "profile" : "q_lossy_minus_3_profile" - }, -{% endfor %} -{% for port in port_names_active.split(',') %} - "{{ port }}|5-6": { - "profile" : "q_lossy_profile" - }{% if not loop.last %},{% endif %} - -{% endfor %} -{% if port_names_inactive|length > 0 %} -{% for port in port_names_inactive.split(',') %} - {%- if loop.first -%},{%- endif -%} - "{{ port }}|1-6": { - "profile" : "egress_lossy_zero_profile" - }{% if not loop.last %},{% endif %} - -{% endfor %} -{% endif %} -{% endif %} - } -{%- endmacro %} - -{%- macro generate_pg_profiles(port_names_active, port_names_inactive) %} - "BUFFER_PG": { -{% for port in port_names_active.split(',') %} - "{{ port }}|0": { - "profile" : "ingress_lossy_profile" - }{% if not loop.last %},{% endif %} - -{% endfor %} -{% if port_names_inactive|length > 0 %} -{%- for port in port_names_inactive.split(',') %} - {%- if loop.first -%},{%- endif -%} - "{{ port }}|0": { -{% if dynamic_mode is defined %} - "profile" : "ingress_lossy_profile" -{% else %} - "profile" : "ingress_lossy_pg_zero_profile" -{% endif %} - }{% if not loop.last %},{% endif %} - -{% endfor %} -{% endif %} - } -{%- endmacro %} diff --git a/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/buffers_defaults_objects.j2 b/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/buffers_defaults_objects.j2 new file mode 120000 index 000000000000..e404fb0aae10 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/buffers_defaults_objects.j2 @@ -0,0 +1 @@ +../../x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/buffers_defaults_objects.j2 \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/qos.json.j2 b/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/qos.json.j2 deleted file mode 100644 index 6acecb954a6e..000000000000 --- a/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/qos.json.j2 +++ /dev/null @@ -1,170 +0,0 @@ -{# - SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES - Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. - Apache-2.0 - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -#} - -{%- macro generate_dscp_to_tc_map_per_sku() -%} - "DSCP_TO_TC_MAP": { - "AZURE": { - "0" : "6", - "1" : "1", - "2" : "2", - "3" : "3", - "4" : "3", - "5" : "4", - "6" : "5", - "7" : "0", - "8" : "0", - "9" : "0", - "10": "0", - "11": "0", - "12": "0", - "13": "0", - "14": "0", - "15": "0", - "16": "0", - "17": "0", - "18": "0", - "19": "0", - "20": "0", - "21": "0", - "22": "0", - "23": "0", - "24": "0", - "25": "0", - "26": "0", - "27": "0", - "28": "0", - "29": "0", - "30": "0", - "31": "0", - "32": "0", - "33": "0", - "34": "0", - "35": "0", - "36": "0", - "37": "0", - "38": "0", - "39": "0", - "40": "0", - "41": "0", - "42": "0", - "43": "0", - "44": "0", - "45": "0", - "46": "0", - "47": "0", - "48": "0", - "49": "0", - "50": "0", - "51": "0", - "52": "0", - "53": "0", - "54": "0", - "55": "0", - "56": "0", - "57": "0", - "58": "0", - "59": "0", - "60": "0", - "61": "0", - "62": "0", - "63": "0" - } - }, -{%- endmacro -%} -{%- macro generate_tc_to_pg_map_per_sku() -%} - "TC_TO_PRIORITY_GROUP_MAP": { - "AZURE": { - "0": "0", - "1": "0", - "2": "0", - "3": "0", - "4": "0", - "5": "0", - "6": "0", - "7": "0" - } - }, -{%- endmacro -%} - -{%- macro generate_scheduler_per_sku() -%} - "SCHEDULER": { - "scheduler.1": { - "type" : "DWRR", - "weight": "1" - }, - "scheduler.10": { - "type" : "DWRR", - "weight": "10" - }, - "scheduler.12": { - "type" : "DWRR", - "weight": "12" - }, - "scheduler.32": { - "type" : "DWRR", - "weight": "32" - } - }, -{%- endmacro -%} - -{%- macro generate_single_queue_per_sku(port) -%} - "{{ port }}|0": { - "scheduler": "scheduler.1" - }, - "{{ port }}|1": { - "scheduler": "scheduler.10" - }, - "{{ port }}|2": { - "scheduler": "scheduler.12" - }, - "{{ port }}|3": { - "scheduler": "scheduler.12" - }, - "{{ port }}|4": { - "scheduler": "scheduler.32" - }, - "{{ port }}|5": { - "scheduler": "scheduler.32" - }, - "{{ port }}|6": { - "scheduler": "scheduler.1" - } -{%- endmacro -%} - -{%- macro generate_global_dscp_to_tc_map() %} -{# This is an empty macro since the global DSCP_TO_TC map is not required #} -{%- endmacro %} - -{%- macro generate_wred_profiles() %} - "WRED_PROFILE": { - "AZURE_LOSSLESS" : { - "wred_green_enable" : "true", - "wred_yellow_enable" : "true", - "wred_red_enable" : "true", - "ecn" : "ecn_all", - "green_max_threshold" : "10000000", - "green_min_threshold" : "2000000", - "yellow_max_threshold" : "10000000", - "yellow_min_threshold" : "2000000", - "red_max_threshold" : "10000000", - "red_min_threshold" : "2000000", - "green_drop_probability" : "5", - "yellow_drop_probability": "5", - "red_drop_probability" : "5" - } - }, -{%- endmacro %} - -{%- include 'qos_config.j2' %} diff --git a/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/qos.json.j2 b/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/qos.json.j2 new file mode 120000 index 000000000000..462ffcd7e1f3 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn5610n-r0/Mellanox-SN5610N-C256S2/qos.json.j2 @@ -0,0 +1 @@ +../../x86_64-nvidia_sn5600-r0/Mellanox-SN5600-C256S1/qos.json.j2 \ No newline at end of file