Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add QOS and buffer profiles for SKU Arista-7800R3-48CQM2-C48 #10752

Merged
merged 2 commits into from
May 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{%- set default_topo = 't2' %}
{%- include 'buffers_config.j2' %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{%- set default_cable = '5m' %}

{%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #}
{%- for port_idx in range(0,192,4) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
{%- endfor %}
{%- endmacro %}

{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "3220805000",
"type": "both",
"mode": "dynamic",
"xoff": "2102272"
}
},
"BUFFER_PROFILE": {
"ingress_lossless_profile": {
"pool":"ingress_lossless_pool",
"size":"1280",
"dynamic_th":"-2",
"xon_offset":"2560",
"xon":"0",
"xoff":"66048"
},
"ingress_lossy_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"xon_offset":"0",
"static_th":"30535680"
},
"egress_lossless_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"static_th":"33030144"
},
"egress_lossy_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"dynamic_th":"-1"
}
},
{%- endmacro %}

{%- macro generate_queue_buffers(port_names) %}
"BUFFER_QUEUE": {
{% for port in port_names.split(',') %}
"{{ port }}|3-4": {
"profile" : "ingress_lossless_profile"
},
{% endfor %}
{% for port in port_names.split(',') %}
"{{ port }}|0-2": {
"profile" : "egress_lossy_profile"
},
{% endfor %}
{% for port in port_names.split(',') %}
"{{ port }}|5-6": {
"profile" : "egress_lossy_profile"
}{% if not loop.last %},{% endif %}
{% endfor %}
}
{%- endmacro %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
10000 5m 1280 2560 45506 0 1280
25000 5m 1280 2560 49152 0 1280
40000 5m 1280 2560 49152 0 1280
50000 5m 1280 2560 53248 0 1280
100000 5m 1280 2560 65536 0 1280
200000 5m 1280 2560 90112 0 1280
400000 5m 1280 2560 135168 0 1280
10000 40m 1280 2560 45506 0 1280
25000 40m 1280 2560 49152 0 1280
40000 40m 1280 2560 53248 0 1280
50000 40m 1280 2560 57344 0 1280
100000 40m 1280 2560 69632 0 1280
200000 40m 1280 2560 102400 0 1280
400000 40m 1280 2560 159744 0 1280
10000 300m 1280 2560 49152 0 1280
25000 300m 1280 2560 61440 0 1280
40000 300m 1280 2560 69632 0 1280
50000 300m 1280 2560 77824 0 1280
100000 300m 1280 2560 114688 0 1280
200000 300m 1280 2560 188416 0 1280
400000 300m 1280 2560 331776 0 1280
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{%- 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" : "2097152",
"green_min_threshold" : "250000",
neethajohn marked this conversation as resolved.
Show resolved Hide resolved
"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"
}
},
{%- endmacro %}

{%- include 'qos_config.j2' %}
10 changes: 8 additions & 2 deletions src/sonic-config-engine/tests/test_j2files.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,8 +212,8 @@ def test_qos_arista7050_render_template(self):
sample_output_file = os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR, 'qos-arista7050.json')
assert utils.cmp(sample_output_file, self.output_file), self.run_diff(sample_output_file, self.output_file)

def test_qos_and_buffer_arista7800r3_48cq2_lc_render_template(self):
arista_dir_path = os.path.join(self.test_dir, '..', '..', '..', 'device', 'arista', 'x86_64-arista_7800r3_48cq2_lc', 'Arista-7800R3-48CQ2-C48')
def do_test_qos_and_buffer_arista7800r3_48cq2_lc_render_template(self, platform, hwsku):
arista_dir_path = os.path.join(self.test_dir, '..', '..', '..', 'device', 'arista', platform, hwsku)
qos_file = os.path.join(arista_dir_path, 'qos.json.j2')
buffer_file = os.path.join(arista_dir_path, 'buffers.json.j2')
port_config_ini_file = os.path.join(arista_dir_path, 'port_config.ini')
Expand All @@ -236,6 +236,12 @@ def test_qos_and_buffer_arista7800r3_48cq2_lc_render_template(self):
sample_output_file = os.path.join(self.test_dir, 'sample_output', utils.PYvX_DIR, sample_output_file)
assert utils.cmp(sample_output_file, self.output_file), self.run_diff(sample_output_file, self.output_file)

def test_qos_and_buffer_arista7800r3_48cq2_lc_render_template(self):
self.do_test_qos_and_buffer_arista7800r3_48cq2_lc_render_template('x86_64-arista_7800r3_48cq2_lc', 'Arista-7800R3-48CQ2-C48')

def test_qos_and_buffer_arista7800r3_48cqm2_lc_render_template(self):
self.do_test_qos_and_buffer_arista7800r3_48cq2_lc_render_template('x86_64-arista_7800r3_48cqm2_lc', 'Arista-7800R3-48CQM2-C48')

def test_qos_dell9332_render_template(self):
dell_dir_path = os.path.join(self.test_dir, '..', '..', '..', 'device', 'dell', 'x86_64-dellemc_z9332f_d1508-r0', 'DellEMC-Z9332f-O32')
qos_file = os.path.join(dell_dir_path, 'qos.json.j2')
Expand Down