Skip to content

Commit

Permalink
[Mellanox] Add a new Mellanox platform x86_64-mlnx_msn4700 and new SK…
Browse files Browse the repository at this point in the history
…U ACS-MSN4700 (#3901)

* add MSN4700 device files

* update ACS-MSN4700 sai profile

* update buffer pool size, headroom, sensor conf, port config and reboot scripts

* fix ident

* update sensor conf and buffer pool

* [sn4700] add sku 4700 to chassis.py

* [Mellanox-4700] Add 4700 info to psu and thermal platform API

* update buffer config file template to the latest.
update SAI profile to use 100G X 4lanes for now
update port_config.ini according to the SAI profile

* [Mellanox]Update the buffer configurations for 4700

* fix alignment in pg_profile_lookup.ini

* add platform components file for new sku

* Update device/mellanox/x86_64-mlnx_msn4700-r0/ACS-MSN4700/pg_profile_lookup.ini

Co-Authored-By: Nazarii Hnydyn <nazariig@mellanox.com>

* remove redundant line

* [Mellanox]Correct type, buffer size

Co-authored-by: Nazarii Hnydyn <nazariig@mellanox.com>
Co-authored-by: junchao <junchao@mellanox.com>
Co-authored-by: Stephen Sun <stephens@mellanox.com>
  • Loading branch information
4 people committed Mar 24, 2020
1 parent 6c8ed04 commit f4ed882
Show file tree
Hide file tree
Showing 29 changed files with 984 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
{% set default_cable = '5m' %}
{% set ingress_lossless_pool_size = '56623104' %}
{% set ingress_lossy_pool_size = '56623104' %}
{% set egress_lossless_pool_size = '60817392' %}
{% set egress_lossy_pool_size = '56623104' %}

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

{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "{{ ingress_lossless_pool_size }}",
"type": "ingress",
"mode": "dynamic"
},
"ingress_lossy_pool": {
"size": "{{ ingress_lossy_pool_size }}",
"type": "ingress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "{{ egress_lossless_pool_size }}",
"type": "egress",
"mode": "dynamic"
},
"egress_lossy_pool": {
"size": "{{ egress_lossy_pool_size }}",
"type": "egress",
"mode": "dynamic"
}
},
"BUFFER_PROFILE": {
"ingress_lossless_profile": {
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
"size":"0",
"dynamic_th":"0"
},
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|ingress_lossy_pool]",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossless_pool]",
"size":"0",
"dynamic_th":"7"
},
"egress_lossy_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"4096",
"dynamic_th":"3"
},
"q_lossy_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"dynamic_th":"3"
}
},
{%- endmacro %}

{%- macro generate_profile_lists(port_names) %}
"BUFFER_PORT_INGRESS_PROFILE_LIST": {
{% for port in port_names.split(',') %}
"{{ port }}": {
"profile_list" : "[BUFFER_PROFILE|ingress_lossless_profile],[BUFFER_PROFILE|ingress_lossy_profile]"
}{% if not loop.last %},{% endif %}

{% endfor %}
},
"BUFFER_PORT_EGRESS_PROFILE_LIST": {
{% for port in port_names.split(',') %}
"{{ port }}": {
"profile_list" : "[BUFFER_PROFILE|egress_lossless_profile],[BUFFER_PROFILE|egress_lossy_profile]"
}{% if not loop.last %},{% endif %}

{% endfor %}
}
{%- endmacro %}

{%- macro generate_queue_buffers(port_names) %}
"BUFFER_QUEUE": {
{% for port in port_names.split(',') %}
"{{ port }}|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
{% endfor %}
{% for port in port_names.split(',') %}
"{{ port }}|0-2": {
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
},
{% endfor %}
{% for port in port_names.split(',') %}
"{{ port }}|5-6": {
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
}{% if not loop.last %},{% endif %}

{% endfor %}
}
{%- endmacro %}


Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
{% set default_cable = '5m' %}
{% set ingress_lossless_pool_size = '36011952' %}
{% set ingress_lossy_pool_size = '36011952' %}
{% set egress_lossless_pool_size = '60817392' %}
{% set egress_lossy_pool_size = '36011952' %}

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

{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "{{ ingress_lossless_pool_size }}",
"type": "ingress",
"mode": "dynamic"
},
"ingress_lossy_pool": {
"size": "{{ ingress_lossy_pool_size }}",
"type": "ingress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "{{ egress_lossless_pool_size }}",
"type": "egress",
"mode": "dynamic"
},
"egress_lossy_pool": {
"size": "{{ egress_lossy_pool_size }}",
"type": "egress",
"mode": "dynamic"
}
},
"BUFFER_PROFILE": {
"ingress_lossless_profile": {
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
"size":"0",
"dynamic_th":"0"
},
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|ingress_lossy_pool]",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossless_pool]",
"size":"0",
"dynamic_th":"7"
},
"egress_lossy_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"4096",
"dynamic_th":"3"
},
"q_lossy_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"dynamic_th":"3"
}
},
{%- endmacro %}

{%- macro generate_profile_lists(port_names) %}
"BUFFER_PORT_INGRESS_PROFILE_LIST": {
{% for port in port_names.split(',') %}
"{{ port }}": {
"profile_list" : "[BUFFER_PROFILE|ingress_lossless_profile],[BUFFER_PROFILE|ingress_lossy_profile]"
}{% if not loop.last %},{% endif %}

{% endfor %}
},
"BUFFER_PORT_EGRESS_PROFILE_LIST": {
{% for port in port_names.split(',') %}
"{{ port }}": {
"profile_list" : "[BUFFER_PROFILE|egress_lossless_profile],[BUFFER_PROFILE|egress_lossy_profile]"
}{% if not loop.last %},{% endif %}

{% endfor %}
}
{%- endmacro %}

{%- macro generate_queue_buffers(port_names) %}
"BUFFER_QUEUE": {
{% for port in port_names.split(',') %}
"{{ port }}|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
{% endfor %}
{% for port in port_names.split(',') %}
"{{ port }}|0-2": {
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
},
{% endfor %}
{% for port in port_names.split(',') %}
"{{ port }}|5-6": {
"profile" : "[BUFFER_PROFILE|q_lossy_profile]"
}{% if not loop.last %},{% endif %}

{% endfor %}
}
{%- endmacro %}


Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# speed cable size xon xoff threshold
1000 5m 32768 18432 14336 0
10000 5m 32768 18432 14336 0
25000 5m 33792 18432 15360 0
40000 5m 33792 18432 15360 0
50000 5m 33792 18432 15360 0
100000 5m 35840 18432 17408 0
200000 5m 37888 18432 19456 0
400000 5m 43008 18432 24576 0
1000 40m 32768 18432 14336 0
10000 40m 34816 18432 16384 0
25000 40m 37888 18432 19456 0
40000 40m 40960 18432 22528 0
50000 40m 43008 18432 24576 0
100000 40m 53248 18432 34816 0
200000 40m 72704 18432 54272 0
400000 40m 112640 18432 94208 0
1000 300m 34816 18432 16384 0
10000 300m 48128 18432 29696 0
25000 300m 70656 18432 52224 0
40000 300m 93184 18432 74752 0
50000 300m 108544 18432 90112 0
100000 300m 183296 18432 164864 0
200000 300m 333824 18432 315392 0
400000 300m 634880 18432 616448 0
33 changes: 33 additions & 0 deletions device/mellanox/x86_64-mlnx_msn4700-r0/ACS-MSN4700/port_config.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# name lanes alias
Ethernet0 0,1,2,3 etp1
Ethernet4 4,5,6,7 etp2
Ethernet8 8,9,10,11 etp3
Ethernet12 12,13,14,15 etp4
Ethernet16 16,17,18,19 etp5
Ethernet20 20,21,22,23 etp6
Ethernet24 24,25,26,27 etp7
Ethernet28 28,29,30,31 etp8
Ethernet32 32,33,34,35 etp9
Ethernet36 36,37,38,39 etp10
Ethernet40 40,41,42,43 etp11
Ethernet44 44,45,46,47 etp12
Ethernet48 48,49,50,51 etp13
Ethernet52 52,53,54,55 etp14
Ethernet56 56,57,58,59 etp15
Ethernet60 60,61,62,63 etp16
Ethernet64 64,65,66,67 etp17
Ethernet68 68,69,70,71 etp18
Ethernet72 72,73,74,75 etp19
Ethernet76 76,77,78,79 etp20
Ethernet80 80,81,82,83 etp21
Ethernet84 84,85,86,87 etp22
Ethernet88 88,89,90,91 etp23
Ethernet92 92,93,94,95 etp24
Ethernet96 96,97,98,99 etp25
Ethernet100 100,101,102,103 etp26
Ethernet104 104,105,106,107 etp27
Ethernet108 108,109,110,111 etp28
Ethernet112 112,113,114,115 etp29
Ethernet116 116,117,118,119 etp30
Ethernet120 120,121,122,123 etp31
Ethernet124 124,125,126,127 etp32
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/sai_4700_100G.xml
Loading

0 comments on commit f4ed882

Please sign in to comment.