From cb2ffa324f887a4a46e7d9a2a35540e5315c39e1 Mon Sep 17 00:00:00 2001 From: Vivek Reddy Date: Thu, 8 Jul 2021 18:52:45 -0700 Subject: [PATCH] [Mellanox] [202012] Added D48C40 SKU for 4600C platform (#8133) * Added new SKU for SN4600C Platform: Mellanox-SN4600C-D48C40 Co-authored-by: Vivek Reddy Karri --- .../Mellanox-SN4600C-D48C40/buffers.json.j2 | 1 + .../buffers_defaults_t0.j2 | 104 ++++ .../buffers_defaults_t1.j2 | 104 ++++ .../buffers_dynamic.json.j2 | 1 + .../pg_profile_lookup.ini | 1 + .../Mellanox-SN4600C-D48C40/port_config.ini | 89 ++++ .../Mellanox-SN4600C-D48C40/qos.json.j2 | 1 + .../Mellanox-SN4600C-D48C40/sai.profile | 4 + .../sai_4600c_48x50g_40x100g.xml | 494 ++++++++++++++++++ 9 files changed, 799 insertions(+) create mode 120000 device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers.json.j2 create mode 100644 device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_defaults_t0.j2 create mode 100644 device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_defaults_t1.j2 create mode 120000 device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_dynamic.json.j2 create mode 120000 device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/pg_profile_lookup.ini create mode 100644 device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/port_config.ini create mode 120000 device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/qos.json.j2 create mode 100644 device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/sai.profile create mode 100644 device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/sai_4600c_48x50g_40x100g.xml diff --git a/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers.json.j2 b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers.json.j2 new file mode 120000 index 0000000000..117d740b0f --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers.json.j2 @@ -0,0 +1 @@ +../ACS-MSN4600C/buffers.json.j2 \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_defaults_t0.j2 b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_defaults_t0.j2 new file mode 100644 index 0000000000..e3a39b9dc7 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_defaults_t0.j2 @@ -0,0 +1,104 @@ +{% set default_cable = '5m' %} +{% set ingress_lossless_pool_size = '50995200' %} +{% set ingress_lossless_xoff_size = '1810432' %} +{% set egress_lossless_pool_size = '60817392' %} +{% set egress_lossy_pool_size = '50995200' %} + +{%- 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": { + {%- if dynamic_mode is not defined %} + "size": "{{ ingress_lossless_pool_size }}", + "xoff": "{{ ingress_lossless_xoff_size }}", + {%- endif %} + "type": "ingress", + "mode": "dynamic" + }, + "egress_lossless_pool": { + "size": "{{ egress_lossless_pool_size }}", + "type": "egress", + "mode": "dynamic" + }, + "egress_lossy_pool": { + {%- if dynamic_mode is not defined %} + "size": "{{ egress_lossy_pool_size }}", + {%- endif %} + "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 %} diff --git a/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_defaults_t1.j2 b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_defaults_t1.j2 new file mode 100644 index 0000000000..149d810c98 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_defaults_t1.j2 @@ -0,0 +1,104 @@ +{% set default_cable = '5m' %} +{% set ingress_lossless_pool_size = '50143232' %} +{% set ingress_lossless_xoff_size = '2662400' %} +{% set egress_lossless_pool_size = '60817392' %} +{% set egress_lossy_pool_size = '50143232' %} + +{%- 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": { + {%- if dynamic_mode is not defined %} + "size": "{{ ingress_lossless_pool_size }}", + "xoff": "{{ ingress_lossless_xoff_size }}", + {%- endif %} + "type": "ingress", + "mode": "dynamic" + }, + "egress_lossless_pool": { + "size": "{{ egress_lossless_pool_size }}", + "type": "egress", + "mode": "dynamic" + }, + "egress_lossy_pool": { + {%- if dynamic_mode is not defined %} + "size": "{{ egress_lossy_pool_size }}", + {%- endif %} + "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 %} diff --git a/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_dynamic.json.j2 b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_dynamic.json.j2 new file mode 120000 index 0000000000..8c4117c662 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/buffers_dynamic.json.j2 @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/ACS-MSN2700/buffers_dynamic.json.j2 \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/pg_profile_lookup.ini b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/pg_profile_lookup.ini new file mode 120000 index 0000000000..4974526890 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/pg_profile_lookup.ini @@ -0,0 +1 @@ +../Mellanox-SN4600C-D112C8/pg_profile_lookup.ini \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/port_config.ini b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/port_config.ini new file mode 100644 index 0000000000..f98cd3b232 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/port_config.ini @@ -0,0 +1,89 @@ +# name lanes alias index speed +Ethernet0 0,1 etp1a 1 50000 +Ethernet2 2,3 etp1b 1 50000 +Ethernet4 8,9 etp2a 2 50000 +Ethernet6 10,11 etp2b 2 50000 +Ethernet8 16,17 etp3a 3 50000 +Ethernet10 18,19 etp3b 3 50000 +Ethernet12 24,25 etp4a 4 50000 +Ethernet14 26,27 etp4b 4 50000 +Ethernet16 32,33 etp5a 5 50000 +Ethernet18 34,35 etp5b 5 50000 +Ethernet20 40,41 etp6a 6 50000 +Ethernet22 42,43 etp6b 6 50000 +Ethernet24 48,49 etp7a 7 50000 +Ethernet26 50,51 etp7b 7 50000 +Ethernet28 56,57 etp8a 8 50000 +Ethernet30 58,59 etp8b 8 50000 +Ethernet32 64,65 etp9a 9 50000 +Ethernet34 66,67 etp9b 9 50000 +Ethernet36 72,73 etp10a 10 50000 +Ethernet38 74,75 etp10b 10 50000 +Ethernet40 80,81,82,83 etp11 11 100000 +Ethernet44 88,89,90,91 etp12 12 100000 +Ethernet48 96,97 etp13a 13 50000 +Ethernet50 98,99 etp13b 13 50000 +Ethernet52 104,105 etp14a 14 50000 +Ethernet54 106,107 etp14b 14 50000 +Ethernet56 112,113,114,115 etp15 15 100000 +Ethernet60 120,121,122,123 etp16 16 100000 +Ethernet64 128,129,130,131 etp17 17 100000 +Ethernet68 136,137,138,139 etp18 18 100000 +Ethernet72 144,145,146,147 etp19 19 100000 +Ethernet76 152,153,154,155 etp20 20 100000 +Ethernet80 160,161,162,163 etp21 21 100000 +Ethernet84 168,169,170,171 etp22 22 100000 +Ethernet88 176,177,178,179 etp23 23 100000 +Ethernet92 184,185,186,187 etp24 24 100000 +Ethernet96 192,193,194,195 etp25 25 100000 +Ethernet100 200,201,202,203 etp26 26 100000 +Ethernet104 208,209,210,211 etp27 27 100000 +Ethernet108 216,217,218,219 etp28 28 100000 +Ethernet112 224,225,226,227 etp29 29 100000 +Ethernet116 232,233,234,235 etp30 30 100000 +Ethernet120 240,241,242,243 etp31 31 100000 +Ethernet124 248,249,250,251 etp32 32 100000 +Ethernet128 256,257,258,259 etp33 33 100000 +Ethernet132 264,265,266,267 etp34 34 100000 +Ethernet136 272,273,274,275 etp35 35 100000 +Ethernet140 280,281,282,283 etp36 36 100000 +Ethernet144 288,289,290,291 etp37 37 100000 +Ethernet148 296,297,298,299 etp38 38 100000 +Ethernet152 304,305,306,307 etp39 39 100000 +Ethernet156 312,313,314,315 etp40 40 100000 +Ethernet160 320,321,322,323 etp41 41 100000 +Ethernet164 328,329,330,331 etp42 42 100000 +Ethernet168 336,337,338,339 etp43 43 100000 +Ethernet172 344,345,346,347 etp44 44 100000 +Ethernet176 352,353,354,355 etp45 45 100000 +Ethernet180 360,361,362,363 etp46 46 100000 +Ethernet184 368,369,370,371 etp47 47 100000 +Ethernet188 376,377,378,379 etp48 48 100000 +Ethernet192 384,385 etp49a 49 50000 +Ethernet194 386,387 etp49b 49 50000 +Ethernet196 392,393 etp50a 50 50000 +Ethernet198 394,395 etp50b 50 50000 +Ethernet200 400,401,402,403 etp51 51 100000 +Ethernet204 408,409,410,411 etp52 52 100000 +Ethernet208 416,417 etp53a 53 50000 +Ethernet210 418,419 etp53b 53 50000 +Ethernet212 424,425 etp54a 54 50000 +Ethernet214 426,427 etp54b 54 50000 +Ethernet216 432,433,434,435 etp55 55 100000 +Ethernet220 440,441,442,443 etp56 56 100000 +Ethernet224 448,449 etp57a 57 50000 +Ethernet226 450,451 etp57b 57 50000 +Ethernet228 456,457 etp58a 58 50000 +Ethernet230 458,459 etp58b 58 50000 +Ethernet232 464,465 etp59a 59 50000 +Ethernet234 466,467 etp59b 59 50000 +Ethernet236 472,473 etp60a 60 50000 +Ethernet238 474,475 etp60b 60 50000 +Ethernet240 480,481 etp61a 61 50000 +Ethernet242 482,483 etp61b 61 50000 +Ethernet244 488,489 etp62a 62 50000 +Ethernet246 490,491 etp62b 62 50000 +Ethernet248 496,497 etp63a 63 50000 +Ethernet250 498,499 etp63b 63 50000 +Ethernet252 504,505 etp64a 64 50000 +Ethernet254 506,507 etp64b 64 50000 diff --git a/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/qos.json.j2 b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/qos.json.j2 new file mode 120000 index 0000000000..05394016a1 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/qos.json.j2 @@ -0,0 +1 @@ +../ACS-MSN4600C/qos.json.j2 \ No newline at end of file diff --git a/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/sai.profile b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/sai.profile new file mode 100644 index 0000000000..8719655c1c --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/sai.profile @@ -0,0 +1,4 @@ +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/sai_4600c_48x50g_40x100g.xml +SAI_DUMP_STORE_PATH=/var/log/mellanox/sdk-dumps +SAI_DUMP_STORE_AMOUNT=10 +SAI_VXLAN_SRCPORT_RANGE_ENABLE=1 diff --git a/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/sai_4600c_48x50g_40x100g.xml b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/sai_4600c_48x50g_40x100g.xml new file mode 100644 index 0000000000..bc26a518c0 --- /dev/null +++ b/device/mellanox/x86_64-mlnx_msn4600c-r0/Mellanox-SN4600C-D48C40/sai_4600c_48x50g_40x100g.xml @@ -0,0 +1,494 @@ + + + + + + 00:02:03:04:05:80 + + + 1 + + + 64 + + + + + 105 + 2 + 4 + 0 + + + 1 + + + 384 + + + 107 + 2 + 4 + 1 + 1 + 384 + + + 109 + 2 + 4 + 2 + 1 + 384 + + + 111 + 2 + 4 + 3 + 1 + 384 + + + 97 + 2 + 4 + 4 + 1 + 384 + + + 99 + 2 + 4 + 5 + 1 + 384 + + + 101 + 2 + 4 + 6 + 1 + 384 + + + 103 + 2 + 4 + 7 + 1 + 384 + + + 121 + 2 + 4 + 8 + 1 + 384 + + + 123 + 2 + 4 + 9 + 1 + 384 + + + 125 + 4 + 10 + 0 + 1536 + + + 127 + 4 + 11 + 0 + 1536 + + + 113 + 2 + 4 + 12 + 1 + 384 + + + 115 + 2 + 4 + 13 + 1 + 384 + + + 117 + 4 + 14 + 0 + 1536 + + + 119 + 4 + 15 + 0 + 1536 + + + 89 + 4 + 16 + 0 + 1536 + + + 91 + 4 + 17 + 0 + 1536 + + + 93 + 4 + 18 + 0 + 1536 + + + 95 + 4 + 19 + 0 + 1536 + + + 81 + 4 + 20 + 0 + 1536 + + + 83 + 4 + 21 + 0 + 1536 + + + 85 + 4 + 22 + 0 + 1536 + + + 87 + 4 + 23 + 0 + 1536 + + + 73 + 4 + 24 + 0 + 1536 + + + 75 + 4 + 25 + 0 + 1536 + + + 77 + 4 + 26 + 0 + 1536 + + + 79 + 4 + 27 + 0 + 1536 + + + 65 + 4 + 28 + 0 + 1536 + + + 67 + 4 + 29 + 0 + 1536 + + + 69 + 4 + 30 + 0 + 1536 + + + 71 + 4 + 31 + 0 + 1536 + + + 5 + 4 + 32 + 0 + 1536 + + + 7 + 4 + 33 + 0 + 1536 + + + 1 + 4 + 34 + 0 + 1536 + + + 3 + 4 + 35 + 0 + 1536 + + + 13 + 4 + 36 + 0 + 1536 + + + 15 + 4 + 37 + 0 + 1536 + + + 9 + 4 + 38 + 0 + 1536 + + + 11 + 4 + 39 + 0 + 1536 + + + 21 + 4 + 40 + 0 + 1536 + + + 23 + 4 + 41 + 0 + 1536 + + + 17 + 4 + 42 + 0 + 1536 + + + 19 + 4 + 43 + 0 + 1536 + + + 29 + 4 + 44 + 0 + 1536 + + + 31 + 4 + 45 + 0 + 1536 + + + 25 + 4 + 46 + 0 + 1536 + + + 27 + 4 + 47 + 0 + 1536 + + + 53 + 2 + 4 + 48 + 1 + 384 + + + 55 + 2 + 4 + 49 + 1 + 384 + + + 49 + 4 + 50 + 0 + 1536 + + + 51 + 4 + 51 + 0 + 1536 + + + 61 + 2 + 4 + 52 + 1 + 384 + + + 63 + 2 + 4 + 53 + 1 + 384 + + + 57 + 4 + 54 + 0 + 1536 + + + 59 + 4 + 55 + 0 + 1536 + + + 37 + 2 + 4 + 56 + 1 + 384 + + + 39 + 2 + 4 + 57 + 1 + 384 + + + 33 + 2 + 4 + 58 + 1 + 384 + + + 35 + 2 + 4 + 59 + 1 + 384 + + + 45 + 2 + 4 + 60 + 1 + 384 + + + 47 + 2 + 4 + 61 + 1 + 384 + + + 41 + 2 + 4 + 62 + 1 + 384 + + + 43 + 2 + 4 + 63 + 1 + 384 + + + +