From 8b9f1fb65dea3ecbf39e6ed53474bae6c93ea177 Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Thu, 28 Apr 2022 17:13:16 +0800 Subject: [PATCH] [Buffer] Separate buffer profile for Arista-7260CX3-C64 50G data is not accurate, needs further update. Signed-off-by: Kevin Wang --- .../Arista-7260CX3-C64/BALANCED | 1 + .../Arista-7260CX3-C64/RDMA-CENTRIC | 1 + .../Arista-7260CX3-C64/TCP-CENTRIC | 1 + .../Arista-7260CX3-C64/buffer_ports_t0.j2 | 6 + .../Arista-7260CX3-C64/buffer_ports_t1.j2 | 6 + .../Arista-7260CX3-C64/buffers_defaults_t0.j2 | 57 +--- .../Arista-7260CX3-C64/buffers_defaults_t1.j2 | 67 +--- .../Arista-7260CX3-C64/pg_profile_lookup.ini | 9 +- .../Arista-7260CX3-C64/qos.json.j2 | 293 +----------------- .../th2/7260/BALANCED/buffers_defaults_t0.j2 | 51 +++ .../th2/7260/BALANCED/buffers_defaults_t1.j2 | 61 ++++ .../th2/7260/BALANCED/pg_profile_lookup.ini | 11 + .../profiles/th2/7260/BALANCED/qos.json.j2 | 292 +++++++++++++++++ .../7260/RDMA-CENTRIC/buffers_defaults_t0.j2 | 51 +++ .../7260/RDMA-CENTRIC/buffers_defaults_t1.j2 | 61 ++++ .../7260/RDMA-CENTRIC/pg_profile_lookup.ini | 11 + .../th2/7260/RDMA-CENTRIC/qos.json.j2 | 292 +++++++++++++++++ device/common/profiles/th2/7260/TCP-CENTRIC | 1 + 18 files changed, 850 insertions(+), 422 deletions(-) create mode 120000 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/BALANCED create mode 120000 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/RDMA-CENTRIC create mode 120000 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/TCP-CENTRIC create mode 100644 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffer_ports_t0.j2 create mode 100644 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffer_ports_t1.j2 mode change 100644 => 120000 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t0.j2 mode change 100644 => 120000 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t1.j2 mode change 100644 => 120000 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/pg_profile_lookup.ini mode change 100644 => 120000 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 create mode 100644 device/common/profiles/th2/7260/BALANCED/buffers_defaults_t0.j2 create mode 100644 device/common/profiles/th2/7260/BALANCED/buffers_defaults_t1.j2 create mode 100644 device/common/profiles/th2/7260/BALANCED/pg_profile_lookup.ini create mode 100644 device/common/profiles/th2/7260/BALANCED/qos.json.j2 create mode 100644 device/common/profiles/th2/7260/RDMA-CENTRIC/buffers_defaults_t0.j2 create mode 100644 device/common/profiles/th2/7260/RDMA-CENTRIC/buffers_defaults_t1.j2 create mode 100644 device/common/profiles/th2/7260/RDMA-CENTRIC/pg_profile_lookup.ini create mode 100644 device/common/profiles/th2/7260/RDMA-CENTRIC/qos.json.j2 create mode 120000 device/common/profiles/th2/7260/TCP-CENTRIC diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/BALANCED b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/BALANCED new file mode 120000 index 0000000000..a270c70ffc --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/BALANCED @@ -0,0 +1 @@ +../../../common/profiles/th2/7260/BALANCED \ No newline at end of file diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/RDMA-CENTRIC b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/RDMA-CENTRIC new file mode 120000 index 0000000000..8d1ec6d277 --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/RDMA-CENTRIC @@ -0,0 +1 @@ +../../../common/profiles/th2/7260/RDMA-CENTRIC \ No newline at end of file diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/TCP-CENTRIC b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/TCP-CENTRIC new file mode 120000 index 0000000000..7ee783aac6 --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/TCP-CENTRIC @@ -0,0 +1 @@ +../../../common/profiles/th2/7260/TCP-CENTRIC \ No newline at end of file diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffer_ports_t0.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffer_ports_t0.j2 new file mode 100644 index 0000000000..2d56c4b38f --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffer_ports_t0.j2 @@ -0,0 +1,6 @@ +{%- macro generate_port_lists(PORT_ALL) %} + {# Generate list of ports #} + {%- for port_idx in range(0,64) %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} + {%- endfor %} +{%- endmacro %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffer_ports_t1.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffer_ports_t1.j2 new file mode 100644 index 0000000000..2d56c4b38f --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffer_ports_t1.j2 @@ -0,0 +1,6 @@ +{%- macro generate_port_lists(PORT_ALL) %} + {# Generate list of ports #} + {%- for port_idx in range(0,64) %} + {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} + {%- endfor %} +{%- endmacro %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t0.j2 deleted file mode 100644 index bee86a9b3a..0000000000 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t0.j2 +++ /dev/null @@ -1,56 +0,0 @@ -{%- set default_cable = '5m' %} - -{%- macro generate_port_lists(PORT_ALL) %} - {# Generate list of ports #} - {%- for port_idx in range(0,64) %} - {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} - {%- endfor %} -{%- endmacro %} - -{%- import 'buffers_pool_sizes_t0.j2' as defs with context %} -{%- set ingress_lossless_pool_size = defs.ingress_lossless_pool_size %} -{%- set egress_lossy_pool_size = defs.egress_lossy_pool_size %} - -{%- macro generate_buffer_pool_and_profiles() %} - "BUFFER_POOL": { - "ingress_lossless_pool": { - "size": "{{ ingress_lossless_pool_size }}", - "type": "ingress", - "mode": "dynamic", - "xoff": "7827456" - }, - "egress_lossy_pool": { - "size": "{{ egress_lossy_pool_size }}", - "type": "egress", - "mode": "dynamic" - }, - "egress_lossless_pool": { - "size": "42349632", - "type": "egress", - "mode": "static" - } - }, - "BUFFER_PROFILE": { - "ingress_lossy_profile": { - "pool":"ingress_lossless_pool", - "size":"0", - "static_th":"44302336" - }, - "egress_lossless_profile": { - "pool":"egress_lossless_pool", - "size":"0", - "static_th":"42349632" - }, - "egress_lossy_profile": { - "pool":"egress_lossy_pool", - "size":"1664", - "dynamic_th":"-1" - } - }, -{%- endmacro %} - -{% import 'buffers_extra_queues.j2' as defs with context %} - -{%- macro generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) %} -{{ defs.generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) }} -{%- endmacro %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t0.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t0.j2 new file mode 120000 index 0000000000..9524e6a476 --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t0.j2 @@ -0,0 +1 @@ +BALANCED/buffers_defaults_t0.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t1.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t1.j2 deleted file mode 100644 index 469f5fc400..0000000000 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t1.j2 +++ /dev/null @@ -1,66 +0,0 @@ -{%- set default_cable = '300m' %} - -{%- macro generate_port_lists(PORT_ALL) %} - {# Generate list of ports #} - {%- for port_idx in range(0,64) %} - {%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} - {%- endfor %} -{%- endmacro %} - -{%- import 'buffers_pool_sizes_t1.j2' as defs with context %} -{%- set ingress_lossless_pool_size = defs.ingress_lossless_pool_size %} -{%- set egress_lossy_pool_size = defs.egress_lossy_pool_size %} - -{%- macro generate_buffer_pool_and_profiles() %} - "BUFFER_POOL": { - "ingress_lossless_pool": { - {# SS Tab2 Row 71 #} - "size": "{{ ingress_lossless_pool_size }}", - "type": "ingress", - "mode": "dynamic", - {# SS Tab2 Row 68 #} - "xoff": "8965632" - }, - "egress_lossy_pool": { - {# SS Tab2 Row 60 #} - "size": "{{ egress_lossy_pool_size }}", - "type": "egress", - "mode": "dynamic" - }, - "egress_lossless_pool": { - {# SS Tab2 Row 56 #} - "size": "43481152", - "type": "egress", - "mode": "static" - } - }, - "BUFFER_PROFILE": { - "ingress_lossy_profile": { - "pool":"ingress_lossless_pool", - "size":"0", - {# SS Tab1 Row 9 #} - "static_th":"44302336" - }, - "egress_lossless_profile": { - "pool":"egress_lossless_pool", - "size":"0", - {# SS Tab2 Row 56 #} - "static_th":"43481152" - }, - "egress_lossy_profile": { - "pool":"egress_lossy_pool", - "size":"1664", - "dynamic_th":"-1" - } - }, -{%- endmacro %} - -{% import 'buffers_extra_queues.j2' as defs1 with context %} -{% import 'buffers_extra_pgs.j2' as defs2 with context %} - -{%- macro generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) %} -{{ defs1.generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) }} -{%- endmacro %} -{%- macro generate_pg_buffers_with_extra_lossy_pgs(port_names, port_names_require_no_extra_pgs) %} -{{ defs2.generate_pg_buffers_with_extra_lossy_pgs(port_names, port_names_require_no_extra_pgs) }} -{%- endmacro %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t1.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t1.j2 new file mode 120000 index 0000000000..c25cc95d6d --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/buffers_defaults_t1.j2 @@ -0,0 +1 @@ +BALANCED/buffers_defaults_t1.j2 \ No newline at end of file diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/pg_profile_lookup.ini b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/pg_profile_lookup.ini deleted file mode 100644 index 0e71479fc2..0000000000 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/pg_profile_lookup.ini +++ /dev/null @@ -1,8 +0,0 @@ -# PG lossless profiles. -# speed cable size xon xoff threshold xon_offset - 100000 5m 1248 1248 54080 -3 2496 - 100000 40m 1248 1248 59696 -3 2496 - 100000 300m 1248 1248 101088 -3 2496 - 40000 5m 1248 1248 29536 -3 2496 - 40000 40m 1248 1248 31616 -3 2496 - 40000 300m 1248 1248 48256 -3 2496 diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/pg_profile_lookup.ini b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/pg_profile_lookup.ini new file mode 120000 index 0000000000..297cddb2d2 --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/pg_profile_lookup.ini @@ -0,0 +1 @@ +BALANCED/pg_profile_lookup.ini \ No newline at end of file diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 deleted file mode 100644 index cb3ad17faa..0000000000 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 +++ /dev/null @@ -1,292 +0,0 @@ -{% if ('type' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['type'] == 'LeafRouter') %} -{%- macro generate_dscp_to_tc_map() %} - "DSCP_TO_TC_MAP": { - "AZURE": { - "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": "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": "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" - } - }, -{%- endmacro %} -{%- macro generate_tc_to_pg_map() %} - "TC_TO_PRIORITY_GROUP_MAP": { - "AZURE": { - "0": "0", - "1": "0", - "2": "2", - "3": "3", - "4": "4", - "5": "0", - "6": "6", - "7": "0" - } - }, -{%- endmacro %} -{% elif ('subtype' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['subtype'] == 'DualToR') %} -{%- macro generate_dscp_to_tc_map() %} - "DSCP_TO_TC_MAP": { - "AZURE": { - "0" : "1", - "1" : "1", - "2" : "1", - "3" : "3", - "4" : "4", - "5" : "1", - "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": "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", - "3" : "3", - "4" : "4", - "5" : "1", - "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": "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" - } - }, -{%- endmacro %} -{%- macro generate_tc_to_pg_map() %} - "TC_TO_PRIORITY_GROUP_MAP": { - "AZURE": { - "0": "0", - "1": "0", - "2": "2", - "3": "3", - "4": "4", - "5": "0", - "6": "6", - "7": "0", - "8": "0" - }, - "AZURE_TUNNEL": { - "0": "0", - "1": "0", - "2": "0", - "3": "2", - "4": "6", - "5": "0", - "6": "0", - "7": "0", - "8": "0" - } - }, -{%- endmacro %} -{%- macro generate_tc_to_queue_map() %} - "TC_TO_QUEUE_MAP": { - "AZURE": { - "0": "0", - "1": "1", - "2": "1", - "3": "3", - "4": "4", - "5": "5", - "6": "6", - "7": "7", - "8": "1" - }, - "AZURE_TUNNEL": { - "0": "0", - "1": "1", - "2": "1", - "3": "2", - "4": "6", - "5": "5", - "6": "1", - "7": "7", - "8": "1" - } - }, -{%- endmacro %} -{%- macro generate_tc_to_dscp_map() %} - "TC_TO_DSCP_MAP": { - "AZURE_TUNNEL": { - "0": "8", - "1": "0", - "2": "0", - "3": "2", - "4": "6", - "5": "46", - "6": "0", - "7": "48", - "8": "33" - } - }, -{%- endmacro %} -{% endif %} - -{%- include 'qos_config.j2' %} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 new file mode 120000 index 0000000000..aef6b6765c --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/qos.json.j2 @@ -0,0 +1 @@ +BALANCED/qos.json.j2 \ No newline at end of file diff --git a/device/common/profiles/th2/7260/BALANCED/buffers_defaults_t0.j2 b/device/common/profiles/th2/7260/BALANCED/buffers_defaults_t0.j2 new file mode 100644 index 0000000000..2d8e7cafe1 --- /dev/null +++ b/device/common/profiles/th2/7260/BALANCED/buffers_defaults_t0.j2 @@ -0,0 +1,51 @@ +{%- set default_cable = '5m' %} + +{%- include 'buffer_ports_t0.j2' %} + +{%- import 'buffers_pool_sizes_t0.j2' as defs with context %} +{%- set ingress_lossless_pool_size = defs.ingress_lossless_pool_size %} +{%- set egress_lossy_pool_size = defs.egress_lossy_pool_size %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "{{ ingress_lossless_pool_size }}", + "type": "ingress", + "mode": "dynamic", + "xoff": "7827456" + }, + "egress_lossy_pool": { + "size": "{{ egress_lossy_pool_size }}", + "type": "egress", + "mode": "dynamic" + }, + "egress_lossless_pool": { + "size": "42349632", + "type": "egress", + "mode": "static" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"ingress_lossless_pool", + "size":"0", + "static_th":"44302336" + }, + "egress_lossless_profile": { + "pool":"egress_lossless_pool", + "size":"0", + "static_th":"42349632" + }, + "egress_lossy_profile": { + "pool":"egress_lossy_pool", + "size":"1664", + "dynamic_th":"-1" + } + }, +{%- endmacro %} + +{% import 'buffers_extra_queues.j2' as defs with context %} + +{%- macro generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) %} +{{ defs.generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) }} +{%- endmacro %} diff --git a/device/common/profiles/th2/7260/BALANCED/buffers_defaults_t1.j2 b/device/common/profiles/th2/7260/BALANCED/buffers_defaults_t1.j2 new file mode 100644 index 0000000000..118dba4317 --- /dev/null +++ b/device/common/profiles/th2/7260/BALANCED/buffers_defaults_t1.j2 @@ -0,0 +1,61 @@ +{%- set default_cable = '300m' %} + +{%- include 'buffer_ports_t1.j2' %} + +{%- import 'buffers_pool_sizes_t1.j2' as defs with context %} +{%- set ingress_lossless_pool_size = defs.ingress_lossless_pool_size %} +{%- set egress_lossy_pool_size = defs.egress_lossy_pool_size %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + {# SS Tab2 Row 71 #} + "size": "{{ ingress_lossless_pool_size }}", + "type": "ingress", + "mode": "dynamic", + {# SS Tab2 Row 68 #} + "xoff": "8965632" + }, + "egress_lossy_pool": { + {# SS Tab2 Row 60 #} + "size": "{{ egress_lossy_pool_size }}", + "type": "egress", + "mode": "dynamic" + }, + "egress_lossless_pool": { + {# SS Tab2 Row 56 #} + "size": "43481152", + "type": "egress", + "mode": "static" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"ingress_lossless_pool", + "size":"0", + {# SS Tab1 Row 9 #} + "static_th":"44302336" + }, + "egress_lossless_profile": { + "pool":"egress_lossless_pool", + "size":"0", + {# SS Tab2 Row 56 #} + "static_th":"43481152" + }, + "egress_lossy_profile": { + "pool":"egress_lossy_pool", + "size":"1664", + "dynamic_th":"-1" + } + }, +{%- endmacro %} + +{% import 'buffers_extra_queues.j2' as defs1 with context %} +{% import 'buffers_extra_pgs.j2' as defs2 with context %} + +{%- macro generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) %} +{{ defs1.generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) }} +{%- endmacro %} +{%- macro generate_pg_buffers_with_extra_lossy_pgs(port_names, port_names_require_no_extra_pgs) %} +{{ defs2.generate_pg_buffers_with_extra_lossy_pgs(port_names, port_names_require_no_extra_pgs) }} +{%- endmacro %} diff --git a/device/common/profiles/th2/7260/BALANCED/pg_profile_lookup.ini b/device/common/profiles/th2/7260/BALANCED/pg_profile_lookup.ini new file mode 100644 index 0000000000..9d94e3fc1e --- /dev/null +++ b/device/common/profiles/th2/7260/BALANCED/pg_profile_lookup.ini @@ -0,0 +1,11 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 100000 5m 1248 1248 54080 -3 2496 + 100000 40m 1248 1248 59696 -3 2496 + 100000 300m 1248 1248 101088 -3 2496 + 50000 5m 1248 1248 54080 -3 2496 + 50000 40m 1248 1248 59696 -3 2496 + 50000 300m 1248 1248 101088 -3 2496 + 40000 5m 1248 1248 29536 -3 2496 + 40000 40m 1248 1248 31616 -3 2496 + 40000 300m 1248 1248 48256 -3 2496 diff --git a/device/common/profiles/th2/7260/BALANCED/qos.json.j2 b/device/common/profiles/th2/7260/BALANCED/qos.json.j2 new file mode 100644 index 0000000000..cb3ad17faa --- /dev/null +++ b/device/common/profiles/th2/7260/BALANCED/qos.json.j2 @@ -0,0 +1,292 @@ +{% if ('type' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['type'] == 'LeafRouter') %} +{%- macro generate_dscp_to_tc_map() %} + "DSCP_TO_TC_MAP": { + "AZURE": { + "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": "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": "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" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_pg_map() %} + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "2", + "3": "3", + "4": "4", + "5": "0", + "6": "6", + "7": "0" + } + }, +{%- endmacro %} +{% elif ('subtype' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['subtype'] == 'DualToR') %} +{%- macro generate_dscp_to_tc_map() %} + "DSCP_TO_TC_MAP": { + "AZURE": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "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": "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", + "3" : "3", + "4" : "4", + "5" : "1", + "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": "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" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_pg_map() %} + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "2", + "3": "3", + "4": "4", + "5": "0", + "6": "6", + "7": "0", + "8": "0" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "0", + "2": "0", + "3": "2", + "4": "6", + "5": "0", + "6": "0", + "7": "0", + "8": "0" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_queue_map() %} + "TC_TO_QUEUE_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "2": "1", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "1" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "1", + "2": "1", + "3": "2", + "4": "6", + "5": "5", + "6": "1", + "7": "7", + "8": "1" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_dscp_map() %} + "TC_TO_DSCP_MAP": { + "AZURE_TUNNEL": { + "0": "8", + "1": "0", + "2": "0", + "3": "2", + "4": "6", + "5": "46", + "6": "0", + "7": "48", + "8": "33" + } + }, +{%- endmacro %} +{% endif %} + +{%- include 'qos_config.j2' %} diff --git a/device/common/profiles/th2/7260/RDMA-CENTRIC/buffers_defaults_t0.j2 b/device/common/profiles/th2/7260/RDMA-CENTRIC/buffers_defaults_t0.j2 new file mode 100644 index 0000000000..2d8e7cafe1 --- /dev/null +++ b/device/common/profiles/th2/7260/RDMA-CENTRIC/buffers_defaults_t0.j2 @@ -0,0 +1,51 @@ +{%- set default_cable = '5m' %} + +{%- include 'buffer_ports_t0.j2' %} + +{%- import 'buffers_pool_sizes_t0.j2' as defs with context %} +{%- set ingress_lossless_pool_size = defs.ingress_lossless_pool_size %} +{%- set egress_lossy_pool_size = defs.egress_lossy_pool_size %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "{{ ingress_lossless_pool_size }}", + "type": "ingress", + "mode": "dynamic", + "xoff": "7827456" + }, + "egress_lossy_pool": { + "size": "{{ egress_lossy_pool_size }}", + "type": "egress", + "mode": "dynamic" + }, + "egress_lossless_pool": { + "size": "42349632", + "type": "egress", + "mode": "static" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"ingress_lossless_pool", + "size":"0", + "static_th":"44302336" + }, + "egress_lossless_profile": { + "pool":"egress_lossless_pool", + "size":"0", + "static_th":"42349632" + }, + "egress_lossy_profile": { + "pool":"egress_lossy_pool", + "size":"1664", + "dynamic_th":"-1" + } + }, +{%- endmacro %} + +{% import 'buffers_extra_queues.j2' as defs with context %} + +{%- macro generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) %} +{{ defs.generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) }} +{%- endmacro %} diff --git a/device/common/profiles/th2/7260/RDMA-CENTRIC/buffers_defaults_t1.j2 b/device/common/profiles/th2/7260/RDMA-CENTRIC/buffers_defaults_t1.j2 new file mode 100644 index 0000000000..118dba4317 --- /dev/null +++ b/device/common/profiles/th2/7260/RDMA-CENTRIC/buffers_defaults_t1.j2 @@ -0,0 +1,61 @@ +{%- set default_cable = '300m' %} + +{%- include 'buffer_ports_t1.j2' %} + +{%- import 'buffers_pool_sizes_t1.j2' as defs with context %} +{%- set ingress_lossless_pool_size = defs.ingress_lossless_pool_size %} +{%- set egress_lossy_pool_size = defs.egress_lossy_pool_size %} + +{%- macro generate_buffer_pool_and_profiles() %} + "BUFFER_POOL": { + "ingress_lossless_pool": { + {# SS Tab2 Row 71 #} + "size": "{{ ingress_lossless_pool_size }}", + "type": "ingress", + "mode": "dynamic", + {# SS Tab2 Row 68 #} + "xoff": "8965632" + }, + "egress_lossy_pool": { + {# SS Tab2 Row 60 #} + "size": "{{ egress_lossy_pool_size }}", + "type": "egress", + "mode": "dynamic" + }, + "egress_lossless_pool": { + {# SS Tab2 Row 56 #} + "size": "43481152", + "type": "egress", + "mode": "static" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"ingress_lossless_pool", + "size":"0", + {# SS Tab1 Row 9 #} + "static_th":"44302336" + }, + "egress_lossless_profile": { + "pool":"egress_lossless_pool", + "size":"0", + {# SS Tab2 Row 56 #} + "static_th":"43481152" + }, + "egress_lossy_profile": { + "pool":"egress_lossy_pool", + "size":"1664", + "dynamic_th":"-1" + } + }, +{%- endmacro %} + +{% import 'buffers_extra_queues.j2' as defs1 with context %} +{% import 'buffers_extra_pgs.j2' as defs2 with context %} + +{%- macro generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) %} +{{ defs1.generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) }} +{%- endmacro %} +{%- macro generate_pg_buffers_with_extra_lossy_pgs(port_names, port_names_require_no_extra_pgs) %} +{{ defs2.generate_pg_buffers_with_extra_lossy_pgs(port_names, port_names_require_no_extra_pgs) }} +{%- endmacro %} diff --git a/device/common/profiles/th2/7260/RDMA-CENTRIC/pg_profile_lookup.ini b/device/common/profiles/th2/7260/RDMA-CENTRIC/pg_profile_lookup.ini new file mode 100644 index 0000000000..9d94e3fc1e --- /dev/null +++ b/device/common/profiles/th2/7260/RDMA-CENTRIC/pg_profile_lookup.ini @@ -0,0 +1,11 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 100000 5m 1248 1248 54080 -3 2496 + 100000 40m 1248 1248 59696 -3 2496 + 100000 300m 1248 1248 101088 -3 2496 + 50000 5m 1248 1248 54080 -3 2496 + 50000 40m 1248 1248 59696 -3 2496 + 50000 300m 1248 1248 101088 -3 2496 + 40000 5m 1248 1248 29536 -3 2496 + 40000 40m 1248 1248 31616 -3 2496 + 40000 300m 1248 1248 48256 -3 2496 diff --git a/device/common/profiles/th2/7260/RDMA-CENTRIC/qos.json.j2 b/device/common/profiles/th2/7260/RDMA-CENTRIC/qos.json.j2 new file mode 100644 index 0000000000..cb3ad17faa --- /dev/null +++ b/device/common/profiles/th2/7260/RDMA-CENTRIC/qos.json.j2 @@ -0,0 +1,292 @@ +{% if ('type' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['type'] == 'LeafRouter') %} +{%- macro generate_dscp_to_tc_map() %} + "DSCP_TO_TC_MAP": { + "AZURE": { + "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": "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": "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" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_pg_map() %} + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "2", + "3": "3", + "4": "4", + "5": "0", + "6": "6", + "7": "0" + } + }, +{%- endmacro %} +{% elif ('subtype' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['subtype'] == 'DualToR') %} +{%- macro generate_dscp_to_tc_map() %} + "DSCP_TO_TC_MAP": { + "AZURE": { + "0" : "1", + "1" : "1", + "2" : "1", + "3" : "3", + "4" : "4", + "5" : "1", + "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": "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", + "3" : "3", + "4" : "4", + "5" : "1", + "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": "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" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_pg_map() %} + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "2", + "3": "3", + "4": "4", + "5": "0", + "6": "6", + "7": "0", + "8": "0" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "0", + "2": "0", + "3": "2", + "4": "6", + "5": "0", + "6": "0", + "7": "0", + "8": "0" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_queue_map() %} + "TC_TO_QUEUE_MAP": { + "AZURE": { + "0": "0", + "1": "1", + "2": "1", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "1" + }, + "AZURE_TUNNEL": { + "0": "0", + "1": "1", + "2": "1", + "3": "2", + "4": "6", + "5": "5", + "6": "1", + "7": "7", + "8": "1" + } + }, +{%- endmacro %} +{%- macro generate_tc_to_dscp_map() %} + "TC_TO_DSCP_MAP": { + "AZURE_TUNNEL": { + "0": "8", + "1": "0", + "2": "0", + "3": "2", + "4": "6", + "5": "46", + "6": "0", + "7": "48", + "8": "33" + } + }, +{%- endmacro %} +{% endif %} + +{%- include 'qos_config.j2' %} diff --git a/device/common/profiles/th2/7260/TCP-CENTRIC b/device/common/profiles/th2/7260/TCP-CENTRIC new file mode 120000 index 0000000000..d6f7127aa7 --- /dev/null +++ b/device/common/profiles/th2/7260/TCP-CENTRIC @@ -0,0 +1 @@ +BALANCED \ No newline at end of file