Skip to content

Commit d53df05

Browse files
nazariiglguohan
authored andcommitted
[devices]: Added new SN3700/SN3700C Mellanox platforms (#2548)
* [mlnx-msn3700]: Added MSN3700 platform. Signed-off-by: Nazarii Hnydyn <[email protected]> * [mlnx-msn3700]: Upgrade FW burn: use ASIC auto detect. Signed-off-by: Nazarii Hnydyn <[email protected]> * [mlnx-msn3700]: Updated HW-MGMT/FW/MFT/SAI/SDK. Signed-off-by: Nazarii Hnydyn <[email protected]> * [mlnx-msn3700]: Added MSN3700C platform. Signed-off-by: Nazarii Hnydyn <[email protected]>
1 parent a9d2bf3 commit d53df05

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+810
-48
lines changed

device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
# magic code defnition for port number, qsfp port position of each hwsku
2424
# port_position_tuple = (PORT_START, QSFP_PORT_START, PORT_END, PORT_IN_BLOCK, EEPROM_OFFSET)
25-
hwsku_dict = {'ACS-MSN2700': 0, "LS-SN2700":0, 'ACS-MSN2740': 0, 'ACS-MSN2100': 1, 'ACS-MSN2410': 2, 'ACS-MSN2010': 3, }
25+
hwsku_dict = {'ACS-MSN2700': 0, "LS-SN2700":0, 'ACS-MSN2740': 0, 'ACS-MSN2100': 1, 'ACS-MSN2410': 2, 'ACS-MSN2010': 3, 'ACS-MSN3700': 0, 'ACS-MSN3700C': 0}
2626
port_position_tuple_list = [(0, 0, 31, 32, 1), (0, 0, 15, 16, 1), (0, 48, 55, 56, 1),(0, 18, 21, 22, 1)]
2727

2828
class SfpUtil(SfpUtilBase):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../x86_64-mlnx_msn2700-r0/ACS-MSN2700/buffers.json.j2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
{% set default_cable = '5m' %}
2+
{% set ingress_lossless_pool_size = '8224768' %}
3+
{% set ingress_lossy_pool_size = '8224768' %}
4+
{% set egress_lossless_pool_size = '41943024' %}
5+
{% set egress_lossy_pool_size = '8224768' %}
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+
"type": "ingress",
19+
"mode": "dynamic"
20+
},
21+
"ingress_lossy_pool": {
22+
"size": "{{ ingress_lossy_pool_size }}",
23+
"type": "ingress",
24+
"mode": "dynamic"
25+
},
26+
"egress_lossless_pool": {
27+
"size": "{{ egress_lossless_pool_size }}",
28+
"type": "egress",
29+
"mode": "dynamic"
30+
},
31+
"egress_lossy_pool": {
32+
"size": "{{ egress_lossy_pool_size }}",
33+
"type": "egress",
34+
"mode": "dynamic"
35+
}
36+
},
37+
"BUFFER_PROFILE": {
38+
"ingress_lossless_profile": {
39+
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
40+
"size":"0",
41+
"dynamic_th":"0"
42+
},
43+
"ingress_lossy_profile": {
44+
"pool":"[BUFFER_POOL|ingress_lossy_pool]",
45+
"size":"0",
46+
"dynamic_th":"3"
47+
},
48+
"egress_lossless_profile": {
49+
"pool":"[BUFFER_POOL|egress_lossless_pool]",
50+
"size":"0",
51+
"dynamic_th":"7"
52+
},
53+
"egress_lossy_profile": {
54+
"pool":"[BUFFER_POOL|egress_lossy_pool]",
55+
"size":"4096",
56+
"dynamic_th":"3"
57+
},
58+
"q_lossy_profile": {
59+
"pool":"[BUFFER_POOL|egress_lossy_pool]",
60+
"size":"0",
61+
"dynamic_th":"3"
62+
}
63+
},
64+
{%- endmacro %}
65+
66+
{%- macro generate_profile_lists(port_names) %}
67+
"BUFFER_PORT_INGRESS_PROFILE_LIST": {
68+
"{{ port_names }}": {
69+
"profile_list" : "[BUFFER_PROFILE|ingress_lossless_profile],[BUFFER_PROFILE|ingress_lossy_profile]"
70+
}
71+
},
72+
"BUFFER_PORT_EGRESS_PROFILE_LIST": {
73+
"{{ port_names }}": {
74+
"profile_list" : "[BUFFER_PROFILE|egress_lossless_profile],[BUFFER_PROFILE|egress_lossy_profile]"
75+
}
76+
}
77+
{%- endmacro %}
78+
79+
{%- macro generate_queue_buffers(port_names) %}
80+
"BUFFER_QUEUE": {
81+
"{{ port_names }}|3-4": {
82+
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
83+
},
84+
"{{ port_names }}|0-1": {
85+
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
86+
},
87+
"{{ port_names }}|5": {
88+
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
89+
}
90+
}
91+
{%- endmacro %}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
{% set default_cable = '5m' %}
2+
{% set ingress_lossless_pool_size = '12042240' %}
3+
{% set ingress_lossy_pool_size = '12042240' %}
4+
{% set egress_lossless_pool_size = '41943024' %}
5+
{% set egress_lossy_pool_size = '12042240' %}
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+
"type": "ingress",
19+
"mode": "dynamic"
20+
},
21+
"ingress_lossy_pool": {
22+
"size": "{{ ingress_lossy_pool_size }}",
23+
"type": "ingress",
24+
"mode": "dynamic"
25+
},
26+
"egress_lossless_pool": {
27+
"size": "{{ egress_lossless_pool_size }}",
28+
"type": "egress",
29+
"mode": "dynamic"
30+
},
31+
"egress_lossy_pool": {
32+
"size": "{{ egress_lossy_pool_size }}",
33+
"type": "egress",
34+
"mode": "dynamic"
35+
}
36+
},
37+
"BUFFER_PROFILE": {
38+
"ingress_lossless_profile": {
39+
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
40+
"size":"0",
41+
"dynamic_th":"0"
42+
},
43+
"ingress_lossy_profile": {
44+
"pool":"[BUFFER_POOL|ingress_lossy_pool]",
45+
"size":"0",
46+
"dynamic_th":"3"
47+
},
48+
"egress_lossless_profile": {
49+
"pool":"[BUFFER_POOL|egress_lossless_pool]",
50+
"size":"0",
51+
"dynamic_th":"7"
52+
},
53+
"egress_lossy_profile": {
54+
"pool":"[BUFFER_POOL|egress_lossy_pool]",
55+
"size":"4096",
56+
"dynamic_th":"3"
57+
},
58+
"q_lossy_profile": {
59+
"pool":"[BUFFER_POOL|egress_lossy_pool]",
60+
"size":"0",
61+
"dynamic_th":"3"
62+
}
63+
},
64+
{%- endmacro %}
65+
66+
{%- macro generate_profile_lists(port_names) %}
67+
"BUFFER_PORT_INGRESS_PROFILE_LIST": {
68+
"{{ port_names }}": {
69+
"profile_list" : "[BUFFER_PROFILE|ingress_lossless_profile],[BUFFER_PROFILE|ingress_lossy_profile]"
70+
}
71+
},
72+
"BUFFER_PORT_EGRESS_PROFILE_LIST": {
73+
"{{ port_names }}": {
74+
"profile_list" : "[BUFFER_PROFILE|egress_lossless_profile],[BUFFER_PROFILE|egress_lossy_profile]"
75+
}
76+
}
77+
{%- endmacro %}
78+
79+
{%- macro generate_queue_buffers(port_names) %}
80+
"BUFFER_QUEUE": {
81+
"{{ port_names }}|3-4": {
82+
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
83+
},
84+
"{{ port_names }}|0-1": {
85+
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
86+
},
87+
"{{ port_names }}|5": {
88+
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
89+
}
90+
}
91+
{%- endmacro %}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# speed cable size xon xoff threshold
2+
1000 5m 35840 18432 17408 0
3+
10000 5m 36864 18432 18432 0
4+
25000 5m 36864 18432 18432 0
5+
40000 5m 36864 18432 18432 0
6+
50000 5m 37888 18432 19456 0
7+
100000 5m 38912 18432 20480 0
8+
200000 5m 41984 18432 23552 0
9+
1000 40m 36864 18432 18432 0
10+
10000 40m 38912 18432 20480 0
11+
25000 40m 41984 18432 23552 0
12+
40000 40m 45056 18432 26624 0
13+
50000 40m 47104 18432 28672 0
14+
100000 40m 59392 18432 40960 0
15+
200000 40m 81920 18432 63488 0
16+
1000 300m 37888 18432 19456 0
17+
10000 300m 53248 18432 34816 0
18+
25000 300m 78848 18432 60416 0
19+
40000 300m 104448 18432 86016 0
20+
50000 300m 121856 18432 103424 0
21+
100000 300m 206848 18432 188416 0
22+
200000 300m 376832 18432 358400 0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../x86_64-mlnx_msn2700-r0/ACS-MSN2700/port_config.ini
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../x86_64-mlnx_msn2700-r0/ACS-MSN2700/qos.json.j2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/sai_3700.xml

0 commit comments

Comments
 (0)