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
This commit is contained in:
Dror Prital 2021-02-24 20:34:12 +02:00 committed by GitHub
parent a472cabc0b
commit 51eee8ccce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 550 additions and 0 deletions

View File

@ -0,0 +1 @@
../ACS-MSN2700/buffers.json.j2

View File

@ -0,0 +1,102 @@
{% set default_cable = '5m' %}
{% set ingress_lossless_pool_size = '7719936' %}
{% set ingress_lossless_pool_xoff = '1032192' %}
{% set egress_lossless_pool_size = '13945824' %}
{% set egress_lossy_pool_size = '7719936' %}
{%- 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 }}",
"xoff": "{{ ingress_lossless_pool_xoff }}",
"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":"7"
},
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|ingress_lossless_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":"9216",
"dynamic_th":"7"
},
"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]"
}{% 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 %}

View File

@ -0,0 +1,102 @@
{% set default_cable = '5m' %}
{% set ingress_lossless_pool_size = '9686016' %}
{% set ingress_lossless_pool_xoff = '1179648' %}
{% set egress_lossless_pool_size = '13945824' %}
{% set egress_lossy_pool_size = '9686016' %}
{%- 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 }}",
"xoff": "{{ ingress_lossless_pool_xoff }}",
"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":"7"
},
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|ingress_lossless_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":"9216",
"dynamic_th":"7"
},
"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]"
}{% 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 %}

View File

@ -0,0 +1,17 @@
# PG lossless profiles.
# speed cable size xon xoff threshold
10000 5m 19456 19456 22528 0
25000 5m 19456 19456 22528 0
40000 5m 19456 19456 22528 0
50000 5m 19456 19456 22528 0
100000 5m 19456 19456 23552 0
10000 40m 19456 19456 22528 0
25000 40m 19456 19456 24576 0
40000 40m 19456 19456 25600 0
50000 40m 19456 19456 25600 0
100000 40m 19456 19456 29696 0
10000 300m 19456 19456 27648 0
25000 300m 19456 19456 36864 0
40000 300m 19456 19456 45056 0
50000 300m 19456 19456 50176 0
100000 300m 19456 19456 78848 0

View File

@ -0,0 +1,57 @@
# name lanes alias index speed
Ethernet0 0 etp1a 1 10000
Ethernet1 1 etp1b 1 10000
Ethernet2 2 etp1c 1 10000
Ethernet3 3 etp1d 1 10000
Ethernet8 8 etp3a 3 10000
Ethernet9 9 etp3b 3 10000
Ethernet10 10 etp3c 3 10000
Ethernet11 11 etp3d 3 10000
Ethernet16 16,17 etp5a 5 50000
Ethernet18 18,19 etp5b 5 50000
Ethernet20 20,21 etp6a 6 50000
Ethernet22 22,23 etp6b 6 50000
Ethernet24 24,25,26,27 etp7 7 100000
Ethernet28 28,29,30,31 etp8 8 100000
Ethernet32 32,33,34,35 etp9 9 100000
Ethernet36 36,37,38,39 etp10 10 100000
Ethernet40 40,41 etp11a 11 50000
Ethernet42 42,43 etp11b 11 50000
Ethernet44 44,45 etp12a 12 50000
Ethernet46 46,47 etp12b 12 50000
Ethernet48 48,49 etp13a 13 50000
Ethernet50 50,51 etp13b 13 50000
Ethernet52 52,53 etp14a 14 50000
Ethernet54 54,55 etp14b 14 50000
Ethernet56 56,57 etp15a 15 50000
Ethernet58 58,59 etp15b 15 50000
Ethernet60 60,61 etp16a 16 50000
Ethernet62 62,63 etp16b 16 50000
Ethernet64 64,65 etp17a 17 50000
Ethernet66 66,67 etp17b 17 50000
Ethernet68 68,69 etp18a 18 50000
Ethernet70 70,71 etp18b 18 50000
Ethernet72 72,73 etp19a 19 50000
Ethernet74 74,75 etp19b 19 50000
Ethernet76 76,77 etp20a 20 50000
Ethernet78 78,79 etp20b 20 50000
Ethernet80 80,81 etp21a 21 50000
Ethernet82 82,83 etp21b 21 50000
Ethernet84 84,85 etp22a 22 50000
Ethernet86 86,87 etp22b 22 50000
Ethernet88 88,89,90,91 etp23 23 100000
Ethernet92 92,93,94,95 etp24 24 100000
Ethernet96 96,97,98,99 etp25 25 100000
Ethernet100 100,101,102,103 etp26 26 100000
Ethernet104 104,105 etp27a 27 50000
Ethernet106 106,107 etp27b 27 50000
Ethernet108 108,109 etp28a 28 50000
Ethernet110 110,111 etp28b 28 50000
Ethernet112 112,113 etp29a 29 50000
Ethernet114 114,115 etp29b 29 50000
Ethernet116 116,117 etp30a 30 50000
Ethernet118 118,119 etp30b 30 50000
Ethernet120 120,121 etp31a 31 50000
Ethernet122 122,123 etp31b 31 50000
Ethernet124 124,125 etp32a 32 50000
Ethernet126 126,127 etp32b 32 50000

View File

@ -0,0 +1 @@
{%- include 'qos_config.j2' %}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/sai_2700_8x100g_40x50g_8x10g.xml

View File

@ -0,0 +1,269 @@
<?xml version="1.0"?>
<root>
<platform_info type="2700">
<!-- Device MAC address -->
<device-mac-address>00:02:03:04:05:00</device-mac-address>
<!-- ISSU enabled -->
<issu-enabled>1</issu-enabled>
<!-- Number of ports in the following port list -->
<number-of-physical-ports>32</number-of-physical-ports>
<!-- List of ports in the device -->
<ports-list>
<port-info>
<local-port>1</local-port>
<split>2</split>
<width>4</width>
<module>16</module>
<!-- 0 none, 1=2, 2=4, 3=2,4 -->
<breakout-modes>3</breakout-modes>
<!-- (BITMASK) 4096 - 10Gb , 939524096 - 25Gb , 98368 - 40Gb , 3221225472 - 50Gb , 11534336 - 100Gb-->
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>3</local-port>
<split>2</split>
<width>4</width>
<module>17</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>5</local-port>
<split>2</split>
<width>4</width>
<module>18</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>7</local-port>
<split>2</split>
<width>4</width>
<module>19</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>9</local-port>
<split>2</split>
<width>4</width>
<module>20</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>11</local-port>
<split>2</split>
<width>4</width>
<module>21</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>13</local-port>
<width>4</width>
<module>22</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>15</local-port>
<width>4</width>
<module>23</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>17</local-port>
<width>4</width>
<module>24</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>19</local-port>
<width>4</width>
<module>25</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>21</local-port>
<split>2</split>
<width>4</width>
<module>26</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>23</local-port>
<split>2</split>
<width>4</width>
<module>27</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>25</local-port>
<width>4</width>
<module>28</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
<split>2</split>
</port-info>
<port-info>
<local-port>27</local-port>
<split>2</split>
<width>4</width>
<module>29</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>29</local-port>
<split>2</split>
<width>4</width>
<module>30</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>31</local-port>
<split>2</split>
<width>4</width>
<module>31</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>33</local-port>
<split>2</split>
<width>4</width>
<module>14</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>35</local-port>
<split>2</split>
<width>4</width>
<module>15</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>37</local-port>
<split>2</split>
<width>4</width>
<module>12</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>39</local-port>
<split>2</split>
<width>4</width>
<module>13</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>41</local-port>
<split>2</split>
<width>4</width>
<module>10</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>43</local-port>
<split>2</split>
<width>4</width>
<module>11</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>45</local-port>
<width>4</width>
<module>8</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>47</local-port>
<width>4</width>
<module>9</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>49</local-port>
<split>2</split>
<width>4</width>
<module>6</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>51</local-port>
<width>4</width>
<module>7</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>53</local-port>
<split>2</split>
<width>4</width>
<module>4</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>55</local-port>
<split>2</split>
<width>4</width>
<module>5</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
</port-info>
<port-info>
<local-port>57</local-port>
<split>4</split>
<width>4</width>
<module>2</module>
<breakout-modes>3</breakout-modes>
<port-speed>4096</port-speed>
</port-info>
<port-info>
<local-port>59</local-port>
<width>4</width>
<module>3</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>61</local-port>
<split>4</split>
<width>4</width>
<module>0</module>
<breakout-modes>3</breakout-modes>
<port-speed>4096</port-speed>
</port-info>
<port-info>
<local-port>63</local-port>
<width>4</width>
<module>1</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
</ports-list>
</platform_info>
</root>