Skip to content

Commit e4b6288

Browse files
dpritalyxieca
authored andcommitted
Add new SKU of Mellanox-SN2700-D40C8S8 (#6876)
#### Why I did it Add new SKU for SN2700 Mellanox system that supports the following port configuration: 8 X 100G 40 X 50G 8 X 10G #### How I did it Add new Folder - "Mellanox-SN2700-D40C8S8" under /sonic-buildimage/device/mellanox/x86_64-mlnx_msn2700-r0/ that contains the relevant files supporting this SKU the buffers are based on SKU: D48C8 . Later on it will be configured specific for this SKU #### How to verify it Bring up the image, run "show interface status" and make sure that all ports are up and reflect the following requirement: Port 1/3 will be used as 4x10G Port 2/4 - Not exist (blocked since 1 and 3 split to 4) Port 7/8/9/10/23/24/25/26 will used as 100G All other ports will be used as 2x50G #### Which release branch to backport (provide reason below if selected) - [ ] 201811 - [ ] 201911 - [ ] 202006 - [X] 202012 #### Description for the changelog Support new SKU under the name of SN2700-D40C8S8
1 parent 760b336 commit e4b6288

File tree

8 files changed

+550
-0
lines changed

8 files changed

+550
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../ACS-MSN2700/buffers.json.j2
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
{% set default_cable = '5m' %}
2+
{% set ingress_lossless_pool_size = '7719936' %}
3+
{% set ingress_lossless_pool_xoff = '1032192' %}
4+
{% set egress_lossless_pool_size = '13945824' %}
5+
{% set egress_lossy_pool_size = '7719936' %}
6+
7+
{%- macro generate_port_lists(PORT_ALL) %}
8+
{# Generate list of ports #}
9+
{%- for port_idx in range(0, 32) %}
10+
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
11+
{%- endfor %}
12+
{%- endmacro %}
13+
14+
{%- macro generate_buffer_pool_and_profiles() %}
15+
"BUFFER_POOL": {
16+
"ingress_lossless_pool": {
17+
"size": "{{ ingress_lossless_pool_size }}",
18+
"xoff": "{{ ingress_lossless_pool_xoff }}",
19+
"type": "ingress",
20+
"mode": "dynamic"
21+
},
22+
"egress_lossless_pool": {
23+
"size": "{{ egress_lossless_pool_size }}",
24+
"type": "egress",
25+
"mode": "dynamic"
26+
},
27+
"egress_lossy_pool": {
28+
"size": "{{ egress_lossy_pool_size }}",
29+
"type": "egress",
30+
"mode": "dynamic"
31+
}
32+
},
33+
"BUFFER_PROFILE": {
34+
"ingress_lossless_profile": {
35+
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
36+
"size":"0",
37+
"dynamic_th":"7"
38+
},
39+
"ingress_lossy_profile": {
40+
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
41+
"size":"0",
42+
"dynamic_th":"3"
43+
},
44+
"egress_lossless_profile": {
45+
"pool":"[BUFFER_POOL|egress_lossless_pool]",
46+
"size":"0",
47+
"dynamic_th":"7"
48+
},
49+
"egress_lossy_profile": {
50+
"pool":"[BUFFER_POOL|egress_lossy_pool]",
51+
"size":"9216",
52+
"dynamic_th":"7"
53+
},
54+
"q_lossy_profile": {
55+
"pool":"[BUFFER_POOL|egress_lossy_pool]",
56+
"size":"0",
57+
"dynamic_th":"3"
58+
}
59+
},
60+
{%- endmacro %}
61+
62+
{%- macro generate_profile_lists(port_names) %}
63+
"BUFFER_PORT_INGRESS_PROFILE_LIST": {
64+
{% for port in port_names.split(',') %}
65+
"{{ port }}": {
66+
"profile_list" : "[BUFFER_PROFILE|ingress_lossless_profile]"
67+
}{% if not loop.last %},{% endif %}
68+
69+
{% endfor %}
70+
},
71+
"BUFFER_PORT_EGRESS_PROFILE_LIST": {
72+
{% for port in port_names.split(',') %}
73+
"{{ port }}": {
74+
"profile_list" : "[BUFFER_PROFILE|egress_lossless_profile],[BUFFER_PROFILE|egress_lossy_profile]"
75+
}{% if not loop.last %},{% endif %}
76+
77+
{% endfor %}
78+
}
79+
{%- endmacro %}
80+
81+
{%- macro generate_queue_buffers(port_names) %}
82+
"BUFFER_QUEUE": {
83+
{% for port in port_names.split(',') %}
84+
"{{ port }}|3-4": {
85+
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
86+
},
87+
{% endfor %}
88+
{% for port in port_names.split(',') %}
89+
"{{ port }}|0-2": {
90+
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
91+
},
92+
{% endfor %}
93+
{% for port in port_names.split(',') %}
94+
"{{ port }}|5-6": {
95+
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
96+
}{% if not loop.last %},{% endif %}
97+
98+
{% endfor %}
99+
}
100+
{%- endmacro %}
101+
102+
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
{% set default_cable = '5m' %}
2+
{% set ingress_lossless_pool_size = '9686016' %}
3+
{% set ingress_lossless_pool_xoff = '1179648' %}
4+
{% set egress_lossless_pool_size = '13945824' %}
5+
{% set egress_lossy_pool_size = '9686016' %}
6+
7+
{%- macro generate_port_lists(PORT_ALL) %}
8+
{# Generate list of ports #}
9+
{%- for port_idx in range(0, 32) %}
10+
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
11+
{%- endfor %}
12+
{%- endmacro %}
13+
14+
{%- macro generate_buffer_pool_and_profiles() %}
15+
"BUFFER_POOL": {
16+
"ingress_lossless_pool": {
17+
"size": "{{ ingress_lossless_pool_size }}",
18+
"xoff": "{{ ingress_lossless_pool_xoff }}",
19+
"type": "ingress",
20+
"mode": "dynamic"
21+
},
22+
"egress_lossless_pool": {
23+
"size": "{{ egress_lossless_pool_size }}",
24+
"type": "egress",
25+
"mode": "dynamic"
26+
},
27+
"egress_lossy_pool": {
28+
"size": "{{ egress_lossy_pool_size }}",
29+
"type": "egress",
30+
"mode": "dynamic"
31+
}
32+
},
33+
"BUFFER_PROFILE": {
34+
"ingress_lossless_profile": {
35+
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
36+
"size":"0",
37+
"dynamic_th":"7"
38+
},
39+
"ingress_lossy_profile": {
40+
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
41+
"size":"0",
42+
"dynamic_th":"3"
43+
},
44+
"egress_lossless_profile": {
45+
"pool":"[BUFFER_POOL|egress_lossless_pool]",
46+
"size":"0",
47+
"dynamic_th":"7"
48+
},
49+
"egress_lossy_profile": {
50+
"pool":"[BUFFER_POOL|egress_lossy_pool]",
51+
"size":"9216",
52+
"dynamic_th":"7"
53+
},
54+
"q_lossy_profile": {
55+
"pool":"[BUFFER_POOL|egress_lossy_pool]",
56+
"size":"0",
57+
"dynamic_th":"3"
58+
}
59+
},
60+
{%- endmacro %}
61+
62+
{%- macro generate_profile_lists(port_names) %}
63+
"BUFFER_PORT_INGRESS_PROFILE_LIST": {
64+
{% for port in port_names.split(',') %}
65+
"{{ port }}": {
66+
"profile_list" : "[BUFFER_PROFILE|ingress_lossless_profile]"
67+
}{% if not loop.last %},{% endif %}
68+
69+
{% endfor %}
70+
},
71+
"BUFFER_PORT_EGRESS_PROFILE_LIST": {
72+
{% for port in port_names.split(',') %}
73+
"{{ port }}": {
74+
"profile_list" : "[BUFFER_PROFILE|egress_lossless_profile],[BUFFER_PROFILE|egress_lossy_profile]"
75+
}{% if not loop.last %},{% endif %}
76+
77+
{% endfor %}
78+
}
79+
{%- endmacro %}
80+
81+
{%- macro generate_queue_buffers(port_names) %}
82+
"BUFFER_QUEUE": {
83+
{% for port in port_names.split(',') %}
84+
"{{ port }}|3-4": {
85+
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
86+
},
87+
{% endfor %}
88+
{% for port in port_names.split(',') %}
89+
"{{ port }}|0-2": {
90+
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
91+
},
92+
{% endfor %}
93+
{% for port in port_names.split(',') %}
94+
"{{ port }}|5-6": {
95+
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
96+
}{% if not loop.last %},{% endif %}
97+
98+
{% endfor %}
99+
}
100+
{%- endmacro %}
101+
102+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# PG lossless profiles.
2+
# speed cable size xon xoff threshold
3+
10000 5m 19456 19456 22528 0
4+
25000 5m 19456 19456 22528 0
5+
40000 5m 19456 19456 22528 0
6+
50000 5m 19456 19456 22528 0
7+
100000 5m 19456 19456 23552 0
8+
10000 40m 19456 19456 22528 0
9+
25000 40m 19456 19456 24576 0
10+
40000 40m 19456 19456 25600 0
11+
50000 40m 19456 19456 25600 0
12+
100000 40m 19456 19456 29696 0
13+
10000 300m 19456 19456 27648 0
14+
25000 300m 19456 19456 36864 0
15+
40000 300m 19456 19456 45056 0
16+
50000 300m 19456 19456 50176 0
17+
100000 300m 19456 19456 78848 0
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# name lanes alias index speed
2+
Ethernet0 0 etp1a 1 10000
3+
Ethernet1 1 etp1b 1 10000
4+
Ethernet2 2 etp1c 1 10000
5+
Ethernet3 3 etp1d 1 10000
6+
Ethernet8 8 etp3a 3 10000
7+
Ethernet9 9 etp3b 3 10000
8+
Ethernet10 10 etp3c 3 10000
9+
Ethernet11 11 etp3d 3 10000
10+
Ethernet16 16,17 etp5a 5 50000
11+
Ethernet18 18,19 etp5b 5 50000
12+
Ethernet20 20,21 etp6a 6 50000
13+
Ethernet22 22,23 etp6b 6 50000
14+
Ethernet24 24,25,26,27 etp7 7 100000
15+
Ethernet28 28,29,30,31 etp8 8 100000
16+
Ethernet32 32,33,34,35 etp9 9 100000
17+
Ethernet36 36,37,38,39 etp10 10 100000
18+
Ethernet40 40,41 etp11a 11 50000
19+
Ethernet42 42,43 etp11b 11 50000
20+
Ethernet44 44,45 etp12a 12 50000
21+
Ethernet46 46,47 etp12b 12 50000
22+
Ethernet48 48,49 etp13a 13 50000
23+
Ethernet50 50,51 etp13b 13 50000
24+
Ethernet52 52,53 etp14a 14 50000
25+
Ethernet54 54,55 etp14b 14 50000
26+
Ethernet56 56,57 etp15a 15 50000
27+
Ethernet58 58,59 etp15b 15 50000
28+
Ethernet60 60,61 etp16a 16 50000
29+
Ethernet62 62,63 etp16b 16 50000
30+
Ethernet64 64,65 etp17a 17 50000
31+
Ethernet66 66,67 etp17b 17 50000
32+
Ethernet68 68,69 etp18a 18 50000
33+
Ethernet70 70,71 etp18b 18 50000
34+
Ethernet72 72,73 etp19a 19 50000
35+
Ethernet74 74,75 etp19b 19 50000
36+
Ethernet76 76,77 etp20a 20 50000
37+
Ethernet78 78,79 etp20b 20 50000
38+
Ethernet80 80,81 etp21a 21 50000
39+
Ethernet82 82,83 etp21b 21 50000
40+
Ethernet84 84,85 etp22a 22 50000
41+
Ethernet86 86,87 etp22b 22 50000
42+
Ethernet88 88,89,90,91 etp23 23 100000
43+
Ethernet92 92,93,94,95 etp24 24 100000
44+
Ethernet96 96,97,98,99 etp25 25 100000
45+
Ethernet100 100,101,102,103 etp26 26 100000
46+
Ethernet104 104,105 etp27a 27 50000
47+
Ethernet106 106,107 etp27b 27 50000
48+
Ethernet108 108,109 etp28a 28 50000
49+
Ethernet110 110,111 etp28b 28 50000
50+
Ethernet112 112,113 etp29a 29 50000
51+
Ethernet114 114,115 etp29b 29 50000
52+
Ethernet116 116,117 etp30a 30 50000
53+
Ethernet118 118,119 etp30b 30 50000
54+
Ethernet120 120,121 etp31a 31 50000
55+
Ethernet122 122,123 etp31b 31 50000
56+
Ethernet124 124,125 etp32a 32 50000
57+
Ethernet126 126,127 etp32b 32 50000
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{%- include 'qos_config.j2' %}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/sai_2700_8x100g_40x50g_8x10g.xml

0 commit comments

Comments
 (0)