Skip to content

Commit

Permalink
[Arista] Add QOS and buffer profiles for SKU Arista-7800R3-48CQM2-C48 (
Browse files Browse the repository at this point in the history
…#10752)

* Add QOS and buffer profiles for Arista SKU.

* Add unit test for SKU Arista-7800R3-48CQM2-C48.
  • Loading branch information
ysmanman authored May 23, 2022
1 parent 70e2727 commit b23ad67
Show file tree
Hide file tree
Showing 5 changed files with 119 additions and 2 deletions.
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",
"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

0 comments on commit b23ad67

Please sign in to comment.