[Mellanox]Adding SKU Mellanox-SN2700-D44C10 (#12396)

#### Why I did it
To add new SKU Mellanox-SN2700-D44C10 with following requirements:

| Port configuration | Value |
| ------  |--------- |
 | Breakout mode for each port  |**Defined in port mapping** |
| Speed of the port |  **Defined in Port mapping** |
| Auto-negotiation enable/disable | **No setting required** |
| FEC mode | **No setting required** |
|Type of transceiver used | **Not needed**|

 Buffer configuration | Value
------  |---------
 Shared headroom | **Enabled**
 Shared headroom pool factor  |  **2**
 Dynamic Buffer | **Disable**
 In static buffer scenario how many uplinks and downlinks? | **44 x50G and 2x100G Downlinks 8x100G uplinks**
 2km cable support required? | **No**

Switch configuration | Value
------  |---------
 Warmboot enabled? | **yes**
 Should warmboot be added to SAI profile when enabled? | **yes**
 Is VxLAN source port range set? | **No**
 Should Vxlan source port range be added to SAI profile when set. | **No**
 Is Static Policy Based Hashing enabled? | **No**

Port Mapping

| Ports  | Mode      |
| ------  |--------- |
| 1,2      | 1x100G |
|  3-6    | 2x50G   | 
| 7-10   | 1x100G |
| 11-22 | 2x50G   |
| 23-26 | 1x100G | 
| 27-32 | 2x50G   |

Number of Uplinks / Downlinks:
TO topology: **44 x50G and 2x100G Downlinks 8x100G uplinks**.

#### How I did it
Defined the SKU as per requirements

#### How to verify it
Load the SKU and verify if all links come up and traffic passes.
This commit is contained in:
Sudharsan Dhamal Gopalarathnam 2022-10-14 22:12:28 -07:00 committed by Ying Xie
parent 138c428dea
commit 81486021c1
11 changed files with 599 additions and 0 deletions

View File

@ -0,0 +1,15 @@
{#
Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES.
Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
#}
{%- set default_topo = 't0' %}
{%- include 'buffers_config.j2' %}

View File

@ -0,0 +1 @@
../../x86_64-mlnx_msn2700-r0/Mellanox-SN2700-D48C8/buffers_defaults_objects.j2

View File

@ -0,0 +1,36 @@
{#
Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES.
Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
#}
{% set default_cable = '5m' %}
{% set ingress_lossless_pool_size = '6822912' %}
{% set ingress_lossless_pool_xoff = '999424' %}
{% set egress_lossless_pool_size = '13945824' %}
{% set egress_lossy_pool_size = '6822912' %}
{% import 'buffers_defaults_objects.j2' as defs with context %}
{%- macro generate_buffer_pool_and_profiles_with_inactive_ports(port_names_inactive) %}
{{ defs.generate_buffer_pool_and_profiles_with_inactive_ports(port_names_inactive) }}
{%- endmacro %}
{%- macro generate_profile_lists_with_inactive_ports(port_names_active, port_names_inactive) %}
{{ defs.generate_profile_lists(port_names_active, port_names_inactive) }}
{%- endmacro %}
{%- macro generate_queue_buffers_with_inactive_ports(port_names_active, port_names_inactive) %}
{{ defs.generate_queue_buffers(port_names_active, port_names_inactive) }}
{%- endmacro %}
{%- macro generate_pg_profiles_with_inactive_ports(port_names_active, port_names_inactive) %}
{{ defs.generate_pg_profiles(port_names_active, port_names_inactive) }}
{%- endmacro %}

View File

@ -0,0 +1,36 @@
{#
Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES.
Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
#}
{% set default_cable = '300m' %}
{% set ingress_lossless_pool_size = '6282240' %}
{% set ingress_lossless_pool_xoff = '1540096' %}
{% set egress_lossless_pool_size = '13945824' %}
{% set egress_lossy_pool_size = '6282240' %}
{% import 'buffers_defaults_objects.j2' as defs with context %}
{%- macro generate_buffer_pool_and_profiles_with_inactive_ports(port_names_inactive) %}
{{ defs.generate_buffer_pool_and_profiles_with_inactive_ports(port_names_inactive) }}
{%- endmacro %}
{%- macro generate_profile_lists_with_inactive_ports(port_names_active, port_names_inactive) %}
{{ defs.generate_profile_lists(port_names_active, port_names_inactive) }}
{%- endmacro %}
{%- macro generate_queue_buffers_with_inactive_ports(port_names_active, port_names_inactive) %}
{{ defs.generate_queue_buffers(port_names_active, port_names_inactive) }}
{%- endmacro %}
{%- macro generate_pg_profiles_with_inactive_ports(port_names_active, port_names_inactive) %}
{{ defs.generate_pg_profiles(port_names_active, port_names_inactive) }}
{%- endmacro %}

View File

@ -0,0 +1,16 @@
{#
Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES.
Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
#}
{%- set default_topo = 't0' %}
{%- set dynamic_mode = 'true' %}
{%- include 'buffers_config.j2' %}

View File

@ -0,0 +1,166 @@
{
"interfaces": {
"Ethernet0": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet4": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet8": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet10": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet12": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet14": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet16": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet18": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet20": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet22": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet24": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet28": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet32": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet36": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet40": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet42": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet44": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet46": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet48": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet50": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet52": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet54": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet56": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet58": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet60": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet62": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet64": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet66": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet68": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet70": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet72": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet74": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet76": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet78": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet80": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet82": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet84": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet86": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet88": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet92": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet96": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet100": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet104": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet106": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet108": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet110": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet112": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet114": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet116": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet118": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet120": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet122": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet124": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet126": {
"default_brkout_mode": "2x50G[25G,10G]"
}
}
}

View File

@ -0,0 +1 @@
../Mellanox-SN2700-D40C8S8/pg_profile_lookup.ini

View File

@ -0,0 +1,55 @@
# name lanes alias index speed
Ethernet0 0,1,2,3 etp1 1 100000
Ethernet4 4,5,6,7 etp2 2 100000
Ethernet8 8,9 etp3a 3 50000
Ethernet10 10,11 etp3b 3 50000
Ethernet12 12,13 etp4a 4 50000
Ethernet14 14,15 etp4b 4 50000
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 @@
../ACS-MSN2700/qos.json.j2

View File

@ -0,0 +1,3 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/sai_2700_44x50g_10x100g.xml
SAI_DUMP_STORE_PATH=/var/log/mellanox/sdk-dumps
SAI_DUMP_STORE_AMOUNT=10

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) 28700 - 10Gb , 939524096 - 25Gb , 98368 - 40Gb , 3221487616 - 50Gb , 11534336 - 100Gb-->
<port-speed>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</port-speed>
</port-info>
<port-info>
<local-port>25</local-port>
<split>2</split>
<width>4</width>
<module>28</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221487616</port-speed>
</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>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</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>3221487616</port-speed>
</port-info>
<port-info>
<local-port>57</local-port>
<split>2</split>
<width>4</width>
<module>2</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221487616</port-speed>
</port-info>
<port-info>
<local-port>59</local-port>
<split>2</split>
<width>4</width>
<module>3</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221487616</port-speed>
</port-info>
<port-info>
<local-port>61</local-port>
<width>4</width>
<module>0</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</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>