diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/buffers.json.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/buffers.json.j2 index 45cebf3b7144..ada7dca895ce 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/buffers.json.j2 +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 64 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/buffers_defaults_def_lossy.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/buffers_defaults_t1.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/config_64x100G_midstone200i.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/config_64x100G_midstone200i.yaml index 0b7e1a2db9d6..e55efe3c88b9 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/config_64x100G_midstone200i.yaml +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/config_64x100G_midstone200i.yaml @@ -10,6 +10,11 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + pcie_attn: "14" + pcie_post: "18" + pcie_pre1: "0" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" @@ -57,452 +62,452 @@ nodes: sysport: "128" type: "cpu" - fec: "KRFEC" - id: "1" + id: "249" lanes: "0:4" serdes_group: "31" speed: "100G" - sysport: "1" + sysport: "249" type: "eth" - fec: "KRFEC" - id: "2" + id: "253" lanes: "4:4" serdes_group: "31" speed: "100G" - sysport: "2" + sysport: "253" type: "eth" - fec: "KRFEC" - id: "3" + id: "245" lanes: "4:4" serdes_group: "30" speed: "100G" - sysport: "3" + sysport: "245" type: "eth" - fec: "KRFEC" - id: "4" + id: "241" lanes: "0:4" serdes_group: "30" speed: "100G" - sysport: "4" + sysport: "241" type: "eth" - fec: "KRFEC" - id: "5" + id: "233" lanes: "0:4" serdes_group: "29" speed: "100G" - sysport: "5" + sysport: "233" type: "eth" - fec: "KRFEC" - id: "6" + id: "237" lanes: "4:4" serdes_group: "29" speed: "100G" - sysport: "6" + sysport: "237" type: "eth" - fec: "KRFEC" - id: "7" + id: "229" lanes: "4:4" serdes_group: "28" speed: "100G" - sysport: "7" + sysport: "229" type: "eth" - fec: "KRFEC" - id: "8" + id: "225" lanes: "0:4" serdes_group: "28" speed: "100G" - sysport: "8" + sysport: "225" type: "eth" - fec: "KRFEC" - id: "9" + id: "217" lanes: "0:4" serdes_group: "27" speed: "100G" - sysport: "9" + sysport: "217" type: "eth" - fec: "KRFEC" - id: "10" + id: "221" lanes: "4:4" serdes_group: "27" speed: "100G" - sysport: "10" + sysport: "221" type: "eth" - fec: "KRFEC" - id: "11" + id: "213" lanes: "4:4" serdes_group: "26" speed: "100G" - sysport: "11" + sysport: "213" type: "eth" - fec: "KRFEC" - id: "12" + id: "209" lanes: "0:4" serdes_group: "26" speed: "100G" - sysport: "12" + sysport: "209" type: "eth" - fec: "KRFEC" - id: "13" + id: "201" lanes: "0:4" serdes_group: "25" speed: "100G" - sysport: "13" + sysport: "201" type: "eth" - fec: "KRFEC" - id: "14" + id: "205" lanes: "4:4" serdes_group: "25" speed: "100G" - sysport: "14" + sysport: "205" type: "eth" - fec: "KRFEC" - id: "15" + id: "197" lanes: "4:4" serdes_group: "24" speed: "100G" - sysport: "15" + sysport: "197" type: "eth" - fec: "KRFEC" - id: "16" + id: "193" lanes: "0:4" serdes_group: "24" speed: "100G" - sysport: "16" + sysport: "193" type: "eth" - fec: "KRFEC" - id: "17" + id: "185" lanes: "0:4" serdes_group: "23" speed: "100G" - sysport: "17" + sysport: "185" type: "eth" - fec: "KRFEC" - id: "18" + id: "189" lanes: "4:4" serdes_group: "23" speed: "100G" - sysport: "18" + sysport: "189" type: "eth" - fec: "KRFEC" - id: "19" + id: "181" lanes: "4:4" serdes_group: "22" speed: "100G" - sysport: "19" + sysport: "181" type: "eth" - fec: "KRFEC" - id: "20" + id: "177" lanes: "0:4" serdes_group: "22" speed: "100G" - sysport: "20" + sysport: "177" type: "eth" - fec: "KRFEC" - id: "21" + id: "169" lanes: "0:4" serdes_group: "21" speed: "100G" - sysport: "21" + sysport: "169" type: "eth" - fec: "KRFEC" - id: "22" + id: "173" lanes: "4:4" serdes_group: "21" speed: "100G" - sysport: "22" + sysport: "173" type: "eth" - fec: "KRFEC" - id: "23" + id: "165" lanes: "4:4" serdes_group: "20" speed: "100G" - sysport: "23" + sysport: "165" type: "eth" - fec: "KRFEC" - id: "24" + id: "161" lanes: "0:4" serdes_group: "20" speed: "100G" - sysport: "24" + sysport: "161" type: "eth" - fec: "KRFEC" - id: "25" + id: "153" lanes: "0:4" serdes_group: "19" speed: "100G" - sysport: "25" + sysport: "153" type: "eth" - fec: "KRFEC" - id: "26" + id: "157" lanes: "4:4" serdes_group: "19" speed: "100G" - sysport: "26" + sysport: "157" type: "eth" - fec: "KRFEC" - id: "27" + id: "149" lanes: "4:4" serdes_group: "18" speed: "100G" - sysport: "27" + sysport: "149" type: "eth" - fec: "KRFEC" - id: "28" + id: "145" lanes: "0:4" serdes_group: "18" speed: "100G" - sysport: "28" + sysport: "145" type: "eth" - fec: "KRFEC" - id: "29" + id: "137" lanes: "0:4" serdes_group: "17" speed: "100G" - sysport: "29" + sysport: "137" type: "eth" - fec: "KRFEC" - id: "30" + id: "141" lanes: "4:4" serdes_group: "17" speed: "100G" - sysport: "30" + sysport: "141" type: "eth" - fec: "KRFEC" - id: "31" + id: "133" lanes: "4:4" serdes_group: "16" speed: "100G" - sysport: "31" + sysport: "133" type: "eth" - fec: "KRFEC" - id: "32" + id: "129" lanes: "0:4" serdes_group: "16" speed: "100G" - sysport: "32" + sysport: "129" type: "eth" - fec: "KRFEC" - id: "33" + id: "121" lanes: "0:4" serdes_group: "15" speed: "100G" - sysport: "33" + sysport: "121" type: "eth" - fec: "KRFEC" - id: "34" + id: "125" lanes: "4:4" serdes_group: "15" speed: "100G" - sysport: "34" + sysport: "125" type: "eth" - fec: "KRFEC" - id: "35" + id: "117" lanes: "4:4" serdes_group: "14" speed: "100G" - sysport: "35" + sysport: "117" type: "eth" - fec: "KRFEC" - id: "36" + id: "113" lanes: "0:4" serdes_group: "14" speed: "100G" - sysport: "36" + sysport: "113" type: "eth" - fec: "KRFEC" - id: "37" + id: "105" lanes: "0:4" serdes_group: "13" speed: "100G" - sysport: "37" + sysport: "105" type: "eth" - fec: "KRFEC" - id: "38" + id: "109" lanes: "4:4" serdes_group: "13" speed: "100G" - sysport: "38" + sysport: "109" type: "eth" - fec: "KRFEC" - id: "39" + id: "101" lanes: "4:4" serdes_group: "12" speed: "100G" - sysport: "39" + sysport: "101" type: "eth" - fec: "KRFEC" - id: "40" + id: "97" lanes: "0:4" serdes_group: "12" speed: "100G" - sysport: "40" + sysport: "97" type: "eth" - fec: "KRFEC" - id: "41" + id: "89" lanes: "0:4" serdes_group: "11" speed: "100G" - sysport: "41" + sysport: "89" type: "eth" - fec: "KRFEC" - id: "42" + id: "93" lanes: "4:4" serdes_group: "11" speed: "100G" - sysport: "42" + sysport: "93" type: "eth" - fec: "KRFEC" - id: "43" + id: "85" lanes: "4:4" serdes_group: "10" speed: "100G" - sysport: "43" + sysport: "85" type: "eth" - fec: "KRFEC" - id: "44" + id: "81" lanes: "0:4" serdes_group: "10" speed: "100G" - sysport: "44" + sysport: "81" type: "eth" - fec: "KRFEC" - id: "45" + id: "73" lanes: "0:4" serdes_group: "9" speed: "100G" - sysport: "45" + sysport: "73" type: "eth" - fec: "KRFEC" - id: "46" + id: "77" lanes: "4:4" serdes_group: "9" speed: "100G" - sysport: "46" + sysport: "77" type: "eth" - fec: "KRFEC" - id: "47" + id: "69" lanes: "4:4" serdes_group: "8" speed: "100G" - sysport: "47" + sysport: "69" type: "eth" - fec: "KRFEC" - id: "48" + id: "65" lanes: "0:4" serdes_group: "8" speed: "100G" - sysport: "48" + sysport: "65" type: "eth" - fec: "KRFEC" - id: "49" + id: "57" lanes: "0:4" serdes_group: "7" speed: "100G" - sysport: "49" + sysport: "57" type: "eth" - fec: "KRFEC" - id: "50" + id: "61" lanes: "4:4" serdes_group: "7" speed: "100G" - sysport: "50" + sysport: "61" type: "eth" - fec: "KRFEC" - id: "51" + id: "53" lanes: "4:4" serdes_group: "6" speed: "100G" - sysport: "51" + sysport: "53" type: "eth" - fec: "KRFEC" - id: "52" + id: "49" lanes: "0:4" serdes_group: "6" speed: "100G" - sysport: "52" + sysport: "49" type: "eth" - fec: "KRFEC" - id: "53" + id: "41" lanes: "0:4" serdes_group: "5" speed: "100G" - sysport: "53" + sysport: "41" type: "eth" - fec: "KRFEC" - id: "54" + id: "45" lanes: "4:4" serdes_group: "5" speed: "100G" - sysport: "54" + sysport: "45" type: "eth" - fec: "KRFEC" - id: "55" + id: "37" lanes: "4:4" serdes_group: "4" speed: "100G" - sysport: "55" + sysport: "37" type: "eth" - fec: "KRFEC" - id: "56" + id: "33" lanes: "0:4" serdes_group: "4" speed: "100G" - sysport: "56" + sysport: "33" type: "eth" - fec: "KRFEC" - id: "57" + id: "25" lanes: "0:4" serdes_group: "3" speed: "100G" - sysport: "57" + sysport: "25" type: "eth" - fec: "KRFEC" - id: "58" + id: "29" lanes: "4:4" serdes_group: "3" speed: "100G" - sysport: "58" + sysport: "29" type: "eth" - fec: "KRFEC" - id: "59" + id: "21" lanes: "4:4" serdes_group: "2" speed: "100G" - sysport: "59" + sysport: "21" type: "eth" - fec: "KRFEC" - id: "60" + id: "17" lanes: "0:4" serdes_group: "2" speed: "100G" - sysport: "60" + sysport: "17" type: "eth" - fec: "KRFEC" - id: "61" + id: "9" lanes: "0:4" serdes_group: "1" speed: "100G" - sysport: "61" + sysport: "9" type: "eth" - fec: "KRFEC" - id: "62" + id: "13" lanes: "4:4" serdes_group: "1" speed: "100G" - sysport: "62" + sysport: "13" type: "eth" - fec: "KRFEC" - id: "63" + id: "5" lanes: "4:4" serdes_group: "0" speed: "100G" - sysport: "63" + sysport: "5" type: "eth" - fec: "KRFEC" - id: "64" + id: "1" lanes: "0:4" serdes_group: "0" speed: "100G" - sysport: "64" + sysport: "1" type: "eth" isg: - id: "0" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/ivm.sai.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/ivm.sai.config.yaml new file mode 100755 index 000000000000..1cc93db620b0 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_64x100G_midstone200i.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/ivm.sai.datapath.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/pg_profile_lookup.ini b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/port_config.ini b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/port_config.ini index c9b30d768d57..0aa3bf802030 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/port_config.ini +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/port_config.ini @@ -1,65 +1,65 @@ # name lanes speed index mtu -Ethernet0 249,250,251,252 100000 1 9126 -Ethernet4 253,254,255,256 100000 2 9126 -Ethernet8 245,246,247,248 100000 3 9126 -Ethernet12 241,242,243,244 100000 4 9126 -Ethernet16 233,234,235,236 100000 5 9126 -Ethernet20 237,238,239,240 100000 6 9126 -Ethernet24 229,230,231,232 100000 7 9126 -Ethernet28 225,226,227,228 100000 8 9126 -Ethernet32 217,218,219,220 100000 9 9126 -Ethernet36 221,222,223,224 100000 10 9126 -Ethernet40 213,214,215,216 100000 11 9126 -Ethernet44 209,210,211,212 100000 12 9126 -Ethernet48 201,202,203,204 100000 13 9126 -Ethernet52 205,206,207,208 100000 14 9126 -Ethernet56 197,198,199,200 100000 15 9126 -Ethernet60 193,194,195,196 100000 16 9126 -Ethernet64 185,186,187,188 100000 17 9126 -Ethernet68 189,190,191,192 100000 18 9126 -Ethernet72 181,182,183,184 100000 19 9126 -Ethernet76 177,178,179,180 100000 20 9126 -Ethernet80 169,170,171,172 100000 21 9126 -Ethernet84 173,174,175,176 100000 22 9126 -Ethernet88 165,166,167,168 100000 23 9126 -Ethernet92 161,162,163,164 100000 24 9126 -Ethernet96 153,154,155,156 100000 25 9126 -Ethernet100 157,158,159,160 100000 26 9126 -Ethernet104 149,150,151,152 100000 27 9126 -Ethernet108 145,146,147,148 100000 28 9126 -Ethernet112 137,138,139,140 100000 29 9126 -Ethernet116 141,142,143,144 100000 30 9126 -Ethernet120 133,134,135,136 100000 31 9126 -Ethernet124 129,130,131,132 100000 32 9126 -Ethernet128 121,122,123,124 100000 33 9126 -Ethernet132 125,126,127,128 100000 34 9126 -Ethernet136 117,118,119,120 100000 35 9126 -Ethernet140 113,114,115,116 100000 36 9126 -Ethernet144 105,106,107,108 100000 37 9126 -Ethernet148 109,110,111,112 100000 38 9126 -Ethernet152 101,102,103,104 100000 39 9126 -Ethernet156 97,98,99,100 100000 40 9126 -Ethernet160 89,90,91,92 100000 41 9126 -Ethernet164 93,94,95,96 100000 42 9126 -Ethernet168 85,86,87,88 100000 43 9126 -Ethernet172 81,82,83,84 100000 44 9126 -Ethernet176 73,74,75,76 100000 45 9126 -Ethernet180 77,78,79,80 100000 46 9126 -Ethernet184 69,70,71,72 100000 47 9126 -Ethernet188 65,66,67,68 100000 48 9126 -Ethernet192 57,58,59,60 100000 49 9126 -Ethernet196 61,62,63,64 100000 50 9126 -Ethernet200 53,54,55,56 100000 51 9126 -Ethernet204 49,50,51,52 100000 52 9126 -Ethernet208 41,42,43,44 100000 53 9126 -Ethernet212 45,46,47,48 100000 54 9126 -Ethernet216 37,38,39,40 100000 55 9126 -Ethernet220 33,34,35,36 100000 56 9126 -Ethernet224 25,26,27,28 100000 57 9126 -Ethernet228 29,30,31,32 100000 58 9126 -Ethernet232 21,22,23,24 100000 59 9126 -Ethernet236 17,18,19,20 100000 60 9126 -Ethernet240 9,10,11,12 100000 61 9126 -Ethernet244 13,14,15,16 100000 62 9126 -Ethernet248 5,6,7,8 100000 63 9126 -Ethernet252 1,2,3,4 100000 64 9126 +Ethernet0 249,250,251,252 100000 0 9126 +Ethernet4 253,254,255,256 100000 1 9126 +Ethernet8 245,246,247,248 100000 2 9126 +Ethernet12 241,242,243,244 100000 3 9126 +Ethernet16 233,234,235,236 100000 4 9126 +Ethernet20 237,238,239,240 100000 5 9126 +Ethernet24 229,230,231,232 100000 6 9126 +Ethernet28 225,226,227,228 100000 7 9126 +Ethernet32 217,218,219,220 100000 8 9126 +Ethernet36 221,222,223,224 100000 9 9126 +Ethernet40 213,214,215,216 100000 10 9126 +Ethernet44 209,210,211,212 100000 11 9126 +Ethernet48 201,202,203,204 100000 12 9126 +Ethernet52 205,206,207,208 100000 13 9126 +Ethernet56 197,198,199,200 100000 14 9126 +Ethernet60 193,194,195,196 100000 15 9126 +Ethernet64 185,186,187,188 100000 16 9126 +Ethernet68 189,190,191,192 100000 17 9126 +Ethernet72 181,182,183,184 100000 18 9126 +Ethernet76 177,178,179,180 100000 19 9126 +Ethernet80 169,170,171,172 100000 20 9126 +Ethernet84 173,174,175,176 100000 21 9126 +Ethernet88 165,166,167,168 100000 22 9126 +Ethernet92 161,162,163,164 100000 23 9126 +Ethernet96 153,154,155,156 100000 24 9126 +Ethernet100 157,158,159,160 100000 25 9126 +Ethernet104 149,150,151,152 100000 26 9126 +Ethernet108 145,146,147,148 100000 27 9126 +Ethernet112 137,138,139,140 100000 28 9126 +Ethernet116 141,142,143,144 100000 29 9126 +Ethernet120 133,134,135,136 100000 30 9126 +Ethernet124 129,130,131,132 100000 31 9126 +Ethernet128 121,122,123,124 100000 32 9126 +Ethernet132 125,126,127,128 100000 33 9126 +Ethernet136 117,118,119,120 100000 34 9126 +Ethernet140 113,114,115,116 100000 35 9126 +Ethernet144 105,106,107,108 100000 36 9126 +Ethernet148 109,110,111,112 100000 37 9126 +Ethernet152 101,102,103,104 100000 38 9126 +Ethernet156 97,98,99,100 100000 39 9126 +Ethernet160 89,90,91,92 100000 40 9126 +Ethernet164 93,94,95,96 100000 41 9126 +Ethernet168 85,86,87,88 100000 42 9126 +Ethernet172 81,82,83,84 100000 43 9126 +Ethernet176 73,74,75,76 100000 44 9126 +Ethernet180 77,78,79,80 100000 45 9126 +Ethernet184 69,70,71,72 100000 46 9126 +Ethernet188 65,66,67,68 100000 47 9126 +Ethernet192 57,58,59,60 100000 48 9126 +Ethernet196 61,62,63,64 100000 49 9126 +Ethernet200 53,54,55,56 100000 50 9126 +Ethernet204 49,50,51,52 100000 51 9126 +Ethernet208 41,42,43,44 100000 52 9126 +Ethernet212 45,46,47,48 100000 53 9126 +Ethernet216 37,38,39,40 100000 54 9126 +Ethernet220 33,34,35,36 100000 55 9126 +Ethernet224 25,26,27,28 100000 56 9126 +Ethernet228 29,30,31,32 100000 57 9126 +Ethernet232 21,22,23,24 100000 58 9126 +Ethernet236 17,18,19,20 100000 59 9126 +Ethernet240 9,10,11,12 100000 60 9126 +Ethernet244 13,14,15,16 100000 61 9126 +Ethernet248 5,6,7,8 100000 62 9126 +Ethernet252 1,2,3,4 100000 63 9126 diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/qos.json.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/qos.json.j2 index 16f9b42a2166..3938fc1a05c4 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/qos.json.j2 +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 64 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -114,7 +103,12 @@ "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/qos_defaults_def_lossy.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/qos_defaults_t1.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/sai.profile b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/sai.profile +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/buffers.json.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/buffers.json.j2 index 9529fbf52fb5..ada7dca895ce 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/buffers.json.j2 +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 128 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*2)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/buffers_defaults_def_lossy.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/buffers_defaults_t1.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/config_128x100G_midstone200i.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/config_128x100G_midstone200i.yaml index 342d223a96e1..b4b1c4fe8479 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/config_128x100G_midstone200i.yaml +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/config_128x100G_midstone200i.yaml @@ -10,6 +10,8 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" @@ -951,20 +953,6 @@ nodes: speed: "100G" sysport: "3" type: "eth" - - fec: "NONE" - id: "257" - lanes: "0:1" - serdes_group: "32" - speed: "10G" - sysport: "257" - type: "mgmt 0" - - fec: "NONE" - id: "258" - lanes: "1:1" - serdes_group: "32" - speed: "10G" - sysport: "258" - type: "mgmt 1" isg: - id: "0" lane_swap: "01234567" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/ivm.sai.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/ivm.sai.config.yaml new file mode 100755 index 000000000000..81b706e922d5 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_128x100G_midstone200i.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/ivm.sai.datapath.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/pg_profile_lookup.ini b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/port_config.ini b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/port_config.ini index 9366905c4eba..512edc536d7e 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/port_config.ini +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/port_config.ini @@ -1,131 +1,129 @@ -# name lanes speed index mtu -Ethernet0 249,250 100000 0 9126 -Ethernet2 251,252 100000 0 9126 -Ethernet4 253,254 100000 1 9126 -Ethernet6 255,256 100000 1 9126 -Ethernet8 245,246 100000 2 9126 -Ethernet10 247,248 100000 2 9126 -Ethernet12 241,242 100000 3 9126 -Ethernet14 243,244 100000 3 9126 -Ethernet16 233,234 100000 4 9126 -Ethernet18 235,236 100000 4 9126 -Ethernet20 237,238 100000 5 9126 -Ethernet22 239,240 100000 5 9126 -Ethernet24 229,230 100000 6 9126 -Ethernet26 231,232 100000 6 9126 -Ethernet28 225,226 100000 7 9126 -Ethernet30 227,228 100000 7 9126 -Ethernet32 217,218 100000 8 9126 -Ethernet34 219,220 100000 8 9126 -Ethernet36 221,222 100000 9 9126 -Ethernet38 223,224 100000 9 9126 -Ethernet40 213,214 100000 10 9126 -Ethernet42 215,216 100000 10 9126 -Ethernet44 209,210 100000 11 9126 -Ethernet46 211,212 100000 11 9126 -Ethernet48 201,202 100000 12 9126 -Ethernet50 203,204 100000 12 9126 -Ethernet52 205,206 100000 13 9126 -Ethernet54 207,208 100000 13 9126 -Ethernet56 197,198 100000 14 9126 -Ethernet58 199,200 100000 14 9126 -Ethernet60 193,194 100000 15 9126 -Ethernet62 195,196 100000 15 9126 -Ethernet64 185,186 100000 16 9126 -Ethernet66 187,188 100000 16 9126 -Ethernet68 189,190 100000 17 9126 -Ethernet70 191,192 100000 17 9126 -Ethernet72 181,182 100000 18 9126 -Ethernet74 183,184 100000 18 9126 -Ethernet76 177,178 100000 19 9126 -Ethernet78 179,180 100000 19 9126 -Ethernet80 169,170 100000 20 9126 -Ethernet82 171,172 100000 20 9126 -Ethernet84 173,174 100000 21 9126 -Ethernet86 175,176 100000 21 9126 -Ethernet88 165,166 100000 22 9126 -Ethernet90 167,168 100000 22 9126 -Ethernet92 161,162 100000 23 9126 -Ethernet94 163,164 100000 23 9126 -Ethernet96 153,154 100000 24 9126 -Ethernet98 155,156 100000 24 9126 -Ethernet100 157,158 100000 25 9126 -Ethernet102 159,160 100000 25 9126 -Ethernet104 149,150 100000 26 9126 -Ethernet106 151,152 100000 26 9126 -Ethernet108 145,146 100000 27 9126 -Ethernet110 147,148 100000 27 9126 -Ethernet112 137,138 100000 28 9126 -Ethernet114 139,140 100000 28 9126 -Ethernet116 141,142 100000 29 9126 -Ethernet118 143,144 100000 29 9126 -Ethernet120 133,134 100000 30 9126 -Ethernet122 135,136 100000 30 9126 -Ethernet124 129,130 100000 31 9126 -Ethernet126 131,132 100000 31 9126 -Ethernet128 121,122 100000 32 9126 -Ethernet130 123,124 100000 32 9126 -Ethernet132 125,126 100000 33 9126 -Ethernet134 127,128 100000 33 9126 -Ethernet136 117,118 100000 34 9126 -Ethernet138 119,120 100000 34 9126 -Ethernet140 113,114 100000 35 9126 -Ethernet142 115,116 100000 35 9126 -Ethernet144 105,106 100000 36 9126 -Ethernet146 107,108 100000 36 9126 -Ethernet148 109,110 100000 37 9126 -Ethernet150 111,112 100000 37 9126 -Ethernet152 101,102 100000 38 9126 -Ethernet154 103,104 100000 38 9126 -Ethernet156 97,98 100000 39 9126 -Ethernet158 99,100 100000 39 9126 -Ethernet160 89,90 100000 40 9126 -Ethernet162 91,92 100000 40 9126 -Ethernet164 93,94 100000 41 9126 -Ethernet166 95,96 100000 41 9126 -Ethernet168 85,86 100000 42 9126 -Ethernet170 87,88 100000 42 9126 -Ethernet172 81,82 100000 43 9126 -Ethernet174 83,84 100000 43 9126 -Ethernet176 73,74 100000 44 9126 -Ethernet178 75,76 100000 44 9126 -Ethernet180 77,78 100000 45 9126 -Ethernet182 79,80 100000 45 9126 -Ethernet184 69,70 100000 46 9126 -Ethernet186 71,72 100000 46 9126 -Ethernet188 65,66 100000 47 9126 -Ethernet190 67,68 100000 47 9126 -Ethernet192 57,58 100000 48 9126 -Ethernet194 59,60 100000 48 9126 -Ethernet196 61,62 100000 49 9126 -Ethernet198 63,64 100000 49 9126 -Ethernet200 53,54 100000 50 9126 -Ethernet202 55,56 100000 50 9126 -Ethernet204 49,50 100000 51 9126 -Ethernet206 51,52 100000 51 9126 -Ethernet208 41,42 100000 52 9126 -Ethernet210 43,44 100000 52 9126 -Ethernet212 45,46 100000 53 9126 -Ethernet214 47,48 100000 53 9126 -Ethernet216 37,38 100000 54 9126 -Ethernet218 39,40 100000 54 9126 -Ethernet220 33,34 100000 55 9126 -Ethernet222 35,36 100000 55 9126 -Ethernet224 25,26 100000 56 9126 -Ethernet226 27,28 100000 56 9126 -Ethernet228 29,30 100000 57 9126 -Ethernet230 31,32 100000 57 9126 -Ethernet232 21,22 100000 58 9126 -Ethernet234 23,24 100000 58 9126 -Ethernet236 17,18 100000 59 9126 -Ethernet238 19,20 100000 59 9126 -Ethernet240 9,10 100000 60 9126 -Ethernet242 11,12 100000 60 9126 -Ethernet244 13,14 100000 61 9126 -Ethernet246 15,16 100000 61 9126 -Ethernet248 5,6 100000 62 9126 -Ethernet250 7,8 100000 62 9126 -Ethernet252 1,2 100000 63 9126 -Ethernet254 3,4 100000 63 9126 -Ethernet256 257 10000 64 9126 -Ethernet257 258 10000 65 9126 +# name lanes alias speed index mtu +Ethernet0 249,250 Eth1/1 100000 0 9126 +Ethernet2 251,252 Eth1/2 100000 0 9126 +Ethernet4 253,254 Eth2/1 100000 1 9126 +Ethernet6 255,256 Eth2/2 100000 1 9126 +Ethernet8 245,246 Eth3/1 100000 2 9126 +Ethernet10 247,248 Eth3/2 100000 2 9126 +Ethernet12 241,242 Eth4/1 100000 3 9126 +Ethernet14 243,244 Eth4/2 100000 3 9126 +Ethernet16 233,234 Eth5/1 100000 4 9126 +Ethernet18 235,236 Eth5/2 100000 4 9126 +Ethernet20 237,238 Eth6/1 100000 5 9126 +Ethernet22 239,240 Eth6/2 100000 5 9126 +Ethernet24 229,230 Eth7/1 100000 6 9126 +Ethernet26 231,232 Eth7/2 100000 6 9126 +Ethernet28 225,226 Eth8/1 100000 7 9126 +Ethernet30 227,228 Eth8/2 100000 7 9126 +Ethernet32 217,218 Eth9/1 100000 8 9126 +Ethernet34 219,220 Eth9/2 100000 8 9126 +Ethernet36 221,222 Eth10/1 100000 9 9126 +Ethernet38 223,224 Eth10/2 100000 9 9126 +Ethernet40 213,214 Eth11/1 100000 10 9126 +Ethernet42 215,216 Eth11/2 100000 10 9126 +Ethernet44 209,210 Eth12/1 100000 11 9126 +Ethernet46 211,212 Eth12/2 100000 11 9126 +Ethernet48 201,202 Eth13/1 100000 12 9126 +Ethernet50 203,204 Eth13/2 100000 12 9126 +Ethernet52 205,206 Eth14/1 100000 13 9126 +Ethernet54 207,208 Eth14/2 100000 13 9126 +Ethernet56 197,198 Eth15/1 100000 14 9126 +Ethernet58 199,200 Eth15/2 100000 14 9126 +Ethernet60 193,194 Eth16/1 100000 15 9126 +Ethernet62 195,196 Eth16/2 100000 15 9126 +Ethernet64 185,186 Eth17/1 100000 16 9126 +Ethernet66 187,188 Eth17/2 100000 16 9126 +Ethernet68 189,190 Eth18/1 100000 17 9126 +Ethernet70 191,192 Eth18/2 100000 17 9126 +Ethernet72 181,182 Eth19/1 100000 18 9126 +Ethernet74 183,184 Eth19/2 100000 18 9126 +Ethernet76 177,178 Eth20/1 100000 19 9126 +Ethernet78 179,180 Eth20/2 100000 19 9126 +Ethernet80 169,170 Eth21/1 100000 20 9126 +Ethernet82 171,172 Eth21/2 100000 20 9126 +Ethernet84 173,174 Eth22/1 100000 21 9126 +Ethernet86 175,176 Eth22/2 100000 21 9126 +Ethernet88 165,166 Eth23/1 100000 22 9126 +Ethernet90 167,168 Eth23/2 100000 22 9126 +Ethernet92 161,162 Eth24/1 100000 23 9126 +Ethernet94 163,164 Eth24/2 100000 23 9126 +Ethernet96 153,154 Eth25/1 100000 24 9126 +Ethernet98 155,156 Eth25/2 100000 24 9126 +Ethernet100 157,158 Eth26/1 100000 25 9126 +Ethernet102 159,160 Eth26/2 100000 25 9126 +Ethernet104 149,150 Eth27/1 100000 26 9126 +Ethernet106 151,152 Eth27/2 100000 26 9126 +Ethernet108 145,146 Eth28/1 100000 27 9126 +Ethernet110 147,148 Eth28/2 100000 27 9126 +Ethernet112 137,138 Eth29/1 100000 28 9126 +Ethernet114 139,140 Eth29/2 100000 28 9126 +Ethernet116 141,142 Eth30/1 100000 29 9126 +Ethernet118 143,144 Eth30/2 100000 29 9126 +Ethernet120 133,134 Eth31/1 100000 30 9126 +Ethernet122 135,136 Eth31/2 100000 30 9126 +Ethernet124 129,130 Eth32/1 100000 31 9126 +Ethernet126 131,132 Eth32/2 100000 31 9126 +Ethernet128 121,122 Eth33/1 100000 32 9126 +Ethernet130 123,124 Eth33/2 100000 32 9126 +Ethernet132 125,126 Eth34/1 100000 33 9126 +Ethernet134 127,128 Eth34/2 100000 33 9126 +Ethernet136 117,118 Eth35/1 100000 34 9126 +Ethernet138 119,120 Eth35/2 100000 34 9126 +Ethernet140 113,114 Eth36/1 100000 35 9126 +Ethernet142 115,116 Eth36/2 100000 35 9126 +Ethernet144 105,106 Eth37/1 100000 36 9126 +Ethernet146 107,108 Eth37/2 100000 36 9126 +Ethernet148 109,110 Eth38/1 100000 37 9126 +Ethernet150 111,112 Eth38/2 100000 37 9126 +Ethernet152 101,102 Eth39/1 100000 38 9126 +Ethernet154 103,104 Eth39/2 100000 38 9126 +Ethernet156 97,98 Eth40/1 100000 39 9126 +Ethernet158 99,100 Eth40/2 100000 39 9126 +Ethernet160 89,90 Eth41/1 100000 40 9126 +Ethernet162 91,92 Eth41/2 100000 40 9126 +Ethernet164 93,94 Eth42/1 100000 41 9126 +Ethernet166 95,96 Eth42/2 100000 41 9126 +Ethernet168 85,86 Eth43/1 100000 42 9126 +Ethernet170 87,88 Eth43/2 100000 42 9126 +Ethernet172 81,82 Eth44/1 100000 43 9126 +Ethernet174 83,84 Eth44/2 100000 43 9126 +Ethernet176 73,74 Eth45/1 100000 44 9126 +Ethernet178 75,76 Eth45/2 100000 44 9126 +Ethernet180 77,78 Eth46/1 100000 45 9126 +Ethernet182 79,80 Eth46/2 100000 45 9126 +Ethernet184 69,70 Eth47/1 100000 46 9126 +Ethernet186 71,72 Eth47/2 100000 46 9126 +Ethernet188 65,66 Eth48/1 100000 47 9126 +Ethernet190 67,68 Eth48/2 100000 47 9126 +Ethernet192 57,58 Eth49/1 100000 48 9126 +Ethernet194 59,60 Eth49/2 100000 48 9126 +Ethernet196 61,62 Eth50/1 100000 49 9126 +Ethernet198 63,64 Eth50/2 100000 49 9126 +Ethernet200 53,54 Eth51/1 100000 50 9126 +Ethernet202 55,56 Eth51/2 100000 50 9126 +Ethernet204 49,50 Eth52/1 100000 51 9126 +Ethernet206 51,52 Eth52/2 100000 51 9126 +Ethernet208 41,42 Eth53/1 100000 52 9126 +Ethernet210 43,44 Eth53/2 100000 52 9126 +Ethernet212 45,46 Eth54/1 100000 53 9126 +Ethernet214 47,48 Eth54/2 100000 53 9126 +Ethernet216 37,38 Eth55/1 100000 54 9126 +Ethernet218 39,40 Eth55/2 100000 54 9126 +Ethernet220 33,34 Eth56/1 100000 55 9126 +Ethernet222 35,36 Eth56/2 100000 55 9126 +Ethernet224 25,26 Eth57/1 100000 56 9126 +Ethernet226 27,28 Eth57/2 100000 56 9126 +Ethernet228 29,30 Eth58/1 100000 57 9126 +Ethernet230 31,32 Eth58/2 100000 57 9126 +Ethernet232 21,22 Eth59/1 100000 58 9126 +Ethernet234 23,24 Eth59/2 100000 58 9126 +Ethernet236 17,18 Eth60/1 100000 59 9126 +Ethernet238 19,20 Eth60/2 100000 59 9126 +Ethernet240 9,10 Eth61/1 100000 60 9126 +Ethernet242 11,12 Eth61/2 100000 60 9126 +Ethernet244 13,14 Eth62/1 100000 61 9126 +Ethernet246 15,16 Eth62/2 100000 61 9126 +Ethernet248 5,6 Eth63/1 100000 62 9126 +Ethernet250 7,8 Eth63/2 100000 62 9126 +Ethernet252 1,2 Eth64/1 100000 63 9126 +Ethernet254 3,4 Eth64/2 100000 63 9126 diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/qos.json.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/qos.json.j2 index 733bd51dc86f..3938fc1a05c4 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/qos.json.j2 +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 128 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*2)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -111,10 +100,15 @@ }, "PORT_QOS_MAP": { "{{ port_names }}": { - "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", - "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/qos_defaults_def_lossy.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/qos_defaults_t1.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/sai.profile b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/sai.profile +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_128x100/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/buffers.json.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/buffers.json.j2 index 4fca9cbcd156..ada7dca895ce 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/buffers.json.j2 +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 32 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/buffers_defaults_def_lossy.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/buffers_defaults_t1.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/config_32x400G_midstone200i.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/config_32x400G_midstone200i.yaml index 6c387ee17c23..2028451c75bd 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/config_32x400G_midstone200i.yaml +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/config_32x400G_midstone200i.yaml @@ -10,6 +10,8 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" @@ -280,20 +282,6 @@ nodes: speed: "400G" sysport: "1" type: "eth" - - fec: "NONE" - id: "257" - lanes: "0:1" - serdes_group: "32" - speed: "10G" - sysport: "257" - type: "mgmt 0" - - fec: "NONE" - id: "258" - lanes: "1:1" - serdes_group: "32" - speed: "10G" - sysport: "258" - type: "mgmt 1" isg: - id: "0" lane_swap: "01234567" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/ivm.sai.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/ivm.sai.config.yaml new file mode 100755 index 000000000000..175196280538 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_32x400G_midstone200i.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_A" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/ivm.sai.datapath.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/pg_profile_lookup.ini b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/port_config.ini b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/port_config.ini index c8ded273cca8..28aab327c1a1 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/port_config.ini +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/port_config.ini @@ -1,35 +1,33 @@ -# name lanes speed index mtu fec -Ethernet0 249,250,251,252 400000 0 9126 rs -Ethernet8 241,242,243,244 400000 2 9126 rs -Ethernet16 233,234,235,236 400000 4 9126 rs -Ethernet24 225,226,227,228 400000 6 9126 rs -Ethernet32 217,218,219,220 400000 8 9126 rs -Ethernet40 209,210,211,212 400000 10 9126 rs -Ethernet48 201,202,203,204 400000 12 9126 rs -Ethernet56 193,194,195,196 400000 14 9126 rs -Ethernet64 185,186,187,188 400000 16 9126 rs -Ethernet72 177,178,179,180 400000 18 9126 rs -Ethernet80 169,170,171,172 400000 20 9126 rs -Ethernet88 161,162,163,164 400000 22 9126 rs -Ethernet96 153,154,155,156 400000 24 9126 rs -Ethernet104 145,146,147,148 400000 26 9126 rs -Ethernet112 137,138,139,140 400000 28 9126 rs -Ethernet120 129,130,131,132 400000 30 9126 rs -Ethernet128 121,122,123,124 400000 32 9126 rs -Ethernet136 113,114,115,116 400000 34 9126 rs -Ethernet144 105,106,107,108 400000 36 9126 rs -Ethernet152 97,98,99,100 400000 38 9126 rs -Ethernet160 89,90,91,92 400000 40 9126 rs -Ethernet168 81,82,83,84 400000 42 9126 rs -Ethernet176 73,74,75,76 400000 44 9126 rs -Ethernet184 65,66,67,68 400000 46 9126 rs -Ethernet192 57,58,59,60 400000 48 9126 rs -Ethernet200 49,50,51,52 400000 50 9126 rs -Ethernet208 41,42,43,44 400000 52 9126 rs -Ethernet216 33,34,35,36 400000 54 9126 rs -Ethernet224 25,26,27,28 400000 56 9126 rs -Ethernet232 17,18,19,20 400000 58 9126 rs -Ethernet240 9,10,11,12 400000 60 9126 rs -Ethernet248 1,2,3,4 400000 62 9126 rs -Ethernet256 257 10000 64 9126 none -Ethernet257 258 10000 65 9126 none +# name lanes alias speed index mtu fec +Ethernet0 249,250,251,252,253,254,255,256 Ethernet0 400000 0 9126 rs +Ethernet8 241,242,243,244,245,246,247,248 Ethernet8 400000 2 9126 rs +Ethernet16 233,234,235,236,237,238,239,240 Ethernet6 400000 4 9126 rs +Ethernet24 225,226,227,228,229,230,231,232 Ethernet24 400000 6 9126 rs +Ethernet32 217,218,219,220,221,222,223,224 Ethernet32 400000 8 9126 rs +Ethernet40 209,210,211,212,213,214,215,216 Ethernet40 400000 10 9126 rs +Ethernet48 201,202,203,204,205,206,207,208 Ethernet48 400000 12 9126 rs +Ethernet56 193,194,195,196,197,198,199,200 Ethernet56 400000 14 9126 rs +Ethernet64 185,186,187,188,189,190,191,192 Ethernet64 400000 16 9126 rs +Ethernet72 177,178,179,180,181,182,183,184 Ethernet72 400000 18 9126 rs +Ethernet80 169,170,171,172,173,174,175,176 Ethernet80 400000 20 9126 rs +Ethernet88 161,162,163,164,165,166,167,168 Ethernet88 400000 22 9126 rs +Ethernet96 153,154,155,156,157,158,159,160 Ethernet96 400000 24 9126 rs +Ethernet104 145,146,147,148,149,150,151,152 Ethernet104 400000 26 9126 rs +Ethernet112 137,138,139,140,141,142,143,144 Ethernet112 400000 28 9126 rs +Ethernet120 129,130,131,132,133,134,135,136 Ethernet120 400000 30 9126 rs +Ethernet128 121,122,123,124,125,126,127,128 Ethernet128 400000 32 9126 rs +Ethernet136 113,114,115,116,117,118,119,120 Ethernet136 400000 34 9126 rs +Ethernet144 105,106,107,108,109,110,111,112 Ethernet144 400000 36 9126 rs +Ethernet152 97,98,99,100,101,102,103,104 Ethernet152 400000 38 9126 rs +Ethernet160 89,90,91,92,93,94,95,96 Ethernet160 400000 40 9126 rs +Ethernet168 81,82,83,84,85,86,87,88 Ethernet168 400000 42 9126 rs +Ethernet176 73,74,75,76,77,78,79,80 Ethernet176 400000 44 9126 rs +Ethernet184 65,66,67,68,69,70,71,72 Ethernet184 400000 46 9126 rs +Ethernet192 57,58,59,60,61,62,63,64 Ethernet192 400000 48 9126 rs +Ethernet200 49,50,51,52,53,54,55,56 Ethernet200 400000 50 9126 rs +Ethernet208 41,42,43,44,45,46,47,48 Ethernet208 400000 52 9126 rs +Ethernet216 33,34,35,36,37,38,39,40 Ethernet216 400000 54 9126 rs +Ethernet224 25,26,27,28,29,30,31,32 Ethernet224 400000 56 9126 rs +Ethernet232 17,18,19,20,21,22,23,24 Ethernet232 400000 58 9126 rs +Ethernet240 9,10,11,12,13,14,15,16 Ethernet240 400000 60 9126 rs +Ethernet248 1,2,3,4,5,6,7,8 Ethernet248 400000 62 9126 rs diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/qos.json.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/qos.json.j2 index 6c734d46ff2f..3938fc1a05c4 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/qos.json.j2 +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 32 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -114,7 +103,12 @@ "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/qos_defaults_def_lossy.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/qos_defaults_t1.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/sai.profile b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/sai.profile +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_32x400/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/buffers.json.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/buffers.json.j2 index 45cebf3b7144..ada7dca895ce 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/buffers.json.j2 +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 64 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/buffers_defaults_def_lossy.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/buffers_defaults_t1.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/config_64x100G_nrz_midstone200i.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/config_64x100G_nrz_midstone200i.yaml index 813d012ca3d5..7c75d19cfa0c 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/config_64x100G_nrz_midstone200i.yaml +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/config_64x100G_nrz_midstone200i.yaml @@ -10,6 +10,8 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" @@ -632,24 +634,6 @@ nodes: type: "eth" admin_state: "true" loopback: "none" - - fec: "NONE" - id: "257" - lanes: "0:1" - serdes_group: "32" - speed: "10G" - sysport: "257" - type: "mgmt 0" - admin_state: "true" - loopback: "none" - - fec: "NONE" - id: "258" - lanes: "1:1" - serdes_group: "32" - speed: "10G" - sysport: "258" - type: "mgmt 1" - admin_state: "true" - loopback: "none" isg: - id: "0" lane_swap: "01234567" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/ivm.sai.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/ivm.sai.config.yaml new file mode 100755 index 000000000000..bb55cd03a60b --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_64x100G_nrz_midstone200i.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/ivm.sai.datapath.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/pg_profile_lookup.ini b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/port_config.ini b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/port_config.ini index cb862ff9b523..6ac13773d8ca 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/port_config.ini +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/port_config.ini @@ -1,67 +1,65 @@ -# name lanes speed index mtu -Ethernet0 249,250,251,252 100000 0 9126 -Ethernet4 253,254,255,256 100000 1 9126 -Ethernet8 245,246,247,248 100000 2 9126 -Ethernet12 241,242,243,244 100000 3 9126 -Ethernet16 233,234,235,236 100000 4 9126 -Ethernet20 237,238,239,240 100000 5 9126 -Ethernet24 229,230,231,232 100000 6 9126 -Ethernet28 225,226,227,228 100000 7 9126 -Ethernet32 217,218,219,220 100000 8 9126 -Ethernet36 221,222,223,224 100000 9 9126 -Ethernet40 213,214,215,216 100000 10 9126 -Ethernet44 209,210,211,212 100000 11 9126 -Ethernet48 201,202,203,204 100000 12 9126 -Ethernet52 205,206,207,208 100000 13 9126 -Ethernet56 197,198,199,200 100000 14 9126 -Ethernet60 193,194,195,196 100000 15 9126 -Ethernet64 185,186,187,188 100000 16 9126 -Ethernet68 189,190,191,192 100000 17 9126 -Ethernet72 181,182,183,184 100000 18 9126 -Ethernet76 177,178,179,180 100000 19 9126 -Ethernet80 169,170,171,172 100000 20 9126 -Ethernet84 173,174,175,176 100000 21 9126 -Ethernet88 165,166,167,168 100000 22 9126 -Ethernet92 161,162,163,164 100000 23 9126 -Ethernet96 153,154,155,156 100000 24 9126 -Ethernet100 157,158,159,160 100000 25 9126 -Ethernet104 149,150,151,152 100000 26 9126 -Ethernet108 145,146,147,148 100000 27 9126 -Ethernet112 137,138,139,140 100000 28 9126 -Ethernet116 141,142,143,144 100000 29 9126 -Ethernet120 133,134,135,136 100000 30 9126 -Ethernet124 129,130,131,132 100000 31 9126 -Ethernet128 121,122,123,124 100000 32 9126 -Ethernet132 125,126,127,128 100000 33 9126 -Ethernet136 117,118,119,120 100000 34 9126 -Ethernet140 113,114,115,116 100000 35 9126 -Ethernet144 105,106,107,108 100000 36 9126 -Ethernet148 109,110,111,112 100000 37 9126 -Ethernet152 101,102,103,104 100000 38 9126 -Ethernet156 97,98,99,100 100000 39 9126 -Ethernet160 89,90,91,92 100000 40 9126 -Ethernet164 93,94,95,96 100000 41 9126 -Ethernet168 85,86,87,88 100000 42 9126 -Ethernet172 81,82,83,84 100000 43 9126 -Ethernet176 73,74,75,76 100000 44 9126 -Ethernet180 77,78,79,80 100000 45 9126 -Ethernet184 69,70,71,72 100000 46 9126 -Ethernet188 65,66,67,68 100000 47 9126 -Ethernet192 57,58,59,60 100000 48 9126 -Ethernet196 61,62,63,64 100000 49 9126 -Ethernet200 53,54,55,56 100000 50 9126 -Ethernet204 49,50,51,52 100000 51 9126 -Ethernet208 41,42,43,44 100000 52 9126 -Ethernet212 45,46,47,48 100000 53 9126 -Ethernet216 37,38,39,40 100000 54 9126 -Ethernet220 33,34,35,36 100000 55 9126 -Ethernet224 25,26,27,28 100000 56 9126 -Ethernet228 29,30,31,32 100000 57 9126 -Ethernet232 21,22,23,24 100000 58 9126 -Ethernet236 17,18,19,20 100000 59 9126 -Ethernet240 9,10,11,12 100000 60 9126 -Ethernet244 13,14,15,16 100000 61 9126 -Ethernet248 5,6,7,8 100000 62 9126 -Ethernet252 1,2,3,4 100000 63 9126 -Ethernet256 257 10000 64 9126 -Ethernet257 258 10000 65 9126 +# name lanes alias speed index mtu +Ethernet0 249,250,251,252 Eth1 100000 0 9126 +Ethernet4 253,254,255,256 Eth2 100000 1 9126 +Ethernet8 245,246,247,248 Eth3 100000 2 9126 +Ethernet12 241,242,243,244 Eth4 100000 3 9126 +Ethernet16 233,234,235,236 Eth5 100000 4 9126 +Ethernet20 237,238,239,240 Eth6 100000 5 9126 +Ethernet24 229,230,231,232 Eth7 100000 6 9126 +Ethernet28 225,226,227,228 Eth8 100000 7 9126 +Ethernet32 217,218,219,220 Eth9 100000 8 9126 +Ethernet36 221,222,223,224 Eth10 100000 9 9126 +Ethernet40 213,214,215,216 Eth11 100000 10 9126 +Ethernet44 209,210,211,212 Eth12 100000 11 9126 +Ethernet48 201,202,203,204 Eth13 100000 12 9126 +Ethernet52 205,206,207,208 Eth14 100000 13 9126 +Ethernet56 197,198,199,200 Eth15 100000 14 9126 +Ethernet60 193,194,195,196 Eth16 100000 15 9126 +Ethernet64 185,186,187,188 Eth17 100000 16 9126 +Ethernet68 189,190,191,192 Eth18 100000 17 9126 +Ethernet72 181,182,183,184 Eth19 100000 18 9126 +Ethernet76 177,178,179,180 Eth20 100000 19 9126 +Ethernet80 169,170,171,172 Eth21 100000 20 9126 +Ethernet84 173,174,175,176 Eth22 100000 21 9126 +Ethernet88 165,166,167,168 Eth23 100000 22 9126 +Ethernet92 161,162,163,164 Eth24 100000 23 9126 +Ethernet96 153,154,155,156 Eth25 100000 24 9126 +Ethernet100 157,158,159,160 Eth26 100000 25 9126 +Ethernet104 149,150,151,152 Eth27 100000 26 9126 +Ethernet108 145,146,147,148 Eth28 100000 27 9126 +Ethernet112 137,138,139,140 Eth29 100000 28 9126 +Ethernet116 141,142,143,144 Eth30 100000 29 9126 +Ethernet120 133,134,135,136 Eth31 100000 30 9126 +Ethernet124 129,130,131,132 Eth32 100000 31 9126 +Ethernet128 121,122,123,124 Eth33 100000 32 9126 +Ethernet132 125,126,127,128 Eth34 100000 33 9126 +Ethernet136 117,118,119,120 Eth35 100000 34 9126 +Ethernet140 113,114,115,116 Eth36 100000 35 9126 +Ethernet144 105,106,107,108 Eth37 100000 36 9126 +Ethernet148 109,110,111,112 Eth38 100000 37 9126 +Ethernet152 101,102,103,104 Eth39 100000 38 9126 +Ethernet156 97,98,99,100 Eth40 100000 39 9126 +Ethernet160 89,90,91,92 Eth41 100000 40 9126 +Ethernet164 93,94,95,96 Eth42 100000 41 9126 +Ethernet168 85,86,87,88 Eth43 100000 42 9126 +Ethernet172 81,82,83,84 Eth44 100000 43 9126 +Ethernet176 73,74,75,76 Eth45 100000 44 9126 +Ethernet180 77,78,79,80 Eth46 100000 45 9126 +Ethernet184 69,70,71,72 Eth47 100000 46 9126 +Ethernet188 65,66,67,68 Eth48 100000 47 9126 +Ethernet192 57,58,59,60 Eth49 100000 48 9126 +Ethernet196 61,62,63,64 Eth50 100000 49 9126 +Ethernet200 53,54,55,56 Eth51 100000 50 9126 +Ethernet204 49,50,51,52 Eth52 100000 51 9126 +Ethernet208 41,42,43,44 Eth53 100000 52 9126 +Ethernet212 45,46,47,48 Eth54 100000 53 9126 +Ethernet216 37,38,39,40 Eth55 100000 54 9126 +Ethernet220 33,34,35,36 Eth56 100000 55 9126 +Ethernet224 25,26,27,28 Eth57 100000 56 9126 +Ethernet228 29,30,31,32 Eth58 100000 57 9126 +Ethernet232 21,22,23,24 Eth59 100000 58 9126 +Ethernet236 17,18,19,20 Eth60 100000 59 9126 +Ethernet240 9,10,11,12 Eth61 100000 60 9126 +Ethernet244 13,14,15,16 Eth62 100000 61 9126 +Ethernet248 5,6,7,8 Eth63 100000 62 9126 +Ethernet252 1,2,3,4 Eth64 100000 63 9126 diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/qos.json.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/qos.json.j2 index 16f9b42a2166..3938fc1a05c4 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/qos.json.j2 +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 64 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -114,7 +103,12 @@ "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/qos_defaults_def_lossy.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/qos_defaults_t1.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/sai.profile b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/sai.profile +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/buffers.json.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/buffers.json.j2 index 0285e389fd63..7e537dddd12c 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/buffers.json.j2 +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/buffers.json.j2 @@ -75,10 +75,10 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38166", "size":"1518", "dynamic_th":"-4", - "xon_offset":"6272" + "xon_offset":"13440" }, "ingress_lossy_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/ivm.sai.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/ivm.sai.config.yaml new file mode 100755 index 000000000000..f7a9a79067e0 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_64x100G_nrz_midstone200i.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/ivm.sai.datapath.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/sai.profile b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/sai.profile +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x100nrz/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/buffers.json.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/buffers.json.j2 index 45cebf3b7144..ada7dca895ce 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/buffers.json.j2 +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 64 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/buffers_defaults_def_lossy.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/buffers_defaults_t1.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/config_64x200G_midstone200i.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/config_64x200G_midstone200i.yaml index 7133de54e493..850a0f565e1e 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/config_64x200G_midstone200i.yaml +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/config_64x200G_midstone200i.yaml @@ -10,6 +10,8 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" @@ -504,20 +506,6 @@ nodes: speed: "200G" sysport: "1" type: "eth" - - fec: "NONE" - id: "257" - lanes: "0:1" - serdes_group: "32" - speed: "10G" - sysport: "257" - type: "mgmt 0" - - fec: "NONE" - id: "258" - lanes: "1:1" - serdes_group: "32" - speed: "10G" - sysport: "258" - type: "mgmt 0" isg: - id: "0" lane_swap: "01234567" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/ivm.sai.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/ivm.sai.config.yaml new file mode 100755 index 000000000000..e762aafe397f --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_64x200G_midstone200i.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/ivm.sai.datapath.config.yaml b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/pg_profile_lookup.ini b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/port_config.ini b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/port_config.ini index 3dcbf72bc324..a45a17b5268f 100644 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/port_config.ini +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/port_config.ini @@ -1,67 +1,65 @@ -# name lanes speed index mtu fec -Ethernet0 249,250,251,252 200000 0 9126 rs -Ethernet4 253,254,255,256 200000 1 9126 rs -Ethernet8 245,246,247,248 200000 2 9126 rs -Ethernet12 241,242,243,244 200000 3 9126 rs -Ethernet16 233,234,235,236 200000 4 9126 rs -Ethernet20 237,238,239,240 200000 5 9126 rs -Ethernet24 229,230,231,232 200000 6 9126 rs -Ethernet28 225,226,227,228 200000 7 9126 rs -Ethernet32 217,218,219,220 200000 8 9126 rs -Ethernet36 221,222,223,224 200000 9 9126 rs -Ethernet40 213,214,215,216 200000 10 9126 rs -Ethernet44 209,210,211,212 200000 11 9126 rs -Ethernet48 201,202,203,204 200000 12 9126 rs -Ethernet52 205,206,207,208 200000 13 9126 rs -Ethernet56 197,198,199,200 200000 14 9126 rs -Ethernet60 193,194,195,196 200000 15 9126 rs -Ethernet64 185,186,187,188 200000 16 9126 rs -Ethernet68 189,190,191,192 200000 17 9126 rs -Ethernet72 181,182,183,184 200000 18 9126 rs -Ethernet76 177,178,179,180 200000 19 9126 rs -Ethernet80 169,170,171,172 200000 20 9126 rs -Ethernet84 173,174,175,176 200000 21 9126 rs -Ethernet88 165,166,167,168 200000 22 9126 rs -Ethernet92 161,162,163,164 200000 23 9126 rs -Ethernet96 153,154,155,156 200000 24 9126 rs -Ethernet100 157,158,159,160 200000 25 9126 rs -Ethernet104 149,150,151,152 200000 26 9126 rs -Ethernet108 145,146,147,148 200000 27 9126 rs -Ethernet112 137,138,139,140 200000 28 9126 rs -Ethernet116 141,142,143,144 200000 29 9126 rs -Ethernet120 133,134,135,136 200000 30 9126 rs -Ethernet124 129,130,131,132 200000 31 9126 rs -Ethernet128 121,122,123,124 200000 32 9126 rs -Ethernet132 125,126,127,128 200000 33 9126 rs -Ethernet136 117,118,119,120 200000 34 9126 rs -Ethernet140 113,114,115,116 200000 35 9126 rs -Ethernet144 105,106,107,108 200000 36 9126 rs -Ethernet148 109,110,111,112 200000 37 9126 rs -Ethernet152 101,102,103,104 200000 38 9126 rs -Ethernet156 97,98,99,100 200000 39 9126 rs -Ethernet160 89,90,91,92 200000 40 9126 rs -Ethernet164 93,94,95,96 200000 41 9126 rs -Ethernet168 85,86,87,88 200000 42 9126 rs -Ethernet172 81,82,83,84 200000 43 9126 rs -Ethernet176 73,74,75,76 200000 44 9126 rs -Ethernet180 77,78,79,80 200000 45 9126 rs -Ethernet184 69,70,71,72 200000 46 9126 rs -Ethernet188 65,66,67,68 200000 47 9126 rs -Ethernet192 57,58,59,60 200000 48 9126 rs -Ethernet196 61,62,63,64 200000 49 9126 rs -Ethernet200 53,54,55,56 200000 50 9126 rs -Ethernet204 49,50,51,52 200000 51 9126 rs -Ethernet208 41,42,43,44 200000 52 9126 rs -Ethernet212 45,46,47,48 200000 53 9126 rs -Ethernet216 37,38,39,40 200000 54 9126 rs -Ethernet220 33,34,35,36 200000 55 9126 rs -Ethernet224 25,26,27,28 200000 56 9126 rs -Ethernet228 29,30,31,32 200000 57 9126 rs -Ethernet232 21,22,23,24 200000 58 9126 rs -Ethernet236 17,18,19,20 200000 59 9126 rs -Ethernet240 9,10,11,12 200000 60 9126 rs -Ethernet244 13,14,15,16 200000 61 9126 rs -Ethernet248 5,6,7,8 200000 62 9126 rs -Ethernet252 1,2,3,4 200000 63 9126 rs -Ethernet256 257 10000 64 9126 none -Ethernet257 258 10000 65 9126 none +# name lanes alias speed index mtu fec +Ethernet0 249,250,251,252 Eth1 200000 0 9126 rs +Ethernet4 253,254,255,256 Eth2 200000 1 9126 rs +Ethernet8 245,246,247,248 Eth3 200000 2 9126 rs +Ethernet12 241,242,243,244 Eth4 200000 3 9126 rs +Ethernet16 233,234,235,236 Eth5 200000 4 9126 rs +Ethernet20 237,238,239,240 Eth6 200000 5 9126 rs +Ethernet24 229,230,231,232 Eth7 200000 6 9126 rs +Ethernet28 225,226,227,228 Eth8 200000 7 9126 rs +Ethernet32 217,218,219,220 Eth9 200000 8 9126 rs +Ethernet36 221,222,223,224 Eth10 200000 9 9126 rs +Ethernet40 213,214,215,216 Eth11 200000 10 9126 rs +Ethernet44 209,210,211,212 Eth12 200000 11 9126 rs +Ethernet48 201,202,203,204 Eth13 200000 12 9126 rs +Ethernet52 205,206,207,208 Eth14 200000 13 9126 rs +Ethernet56 197,198,199,200 Eth15 200000 14 9126 rs +Ethernet60 193,194,195,196 Eth16 200000 15 9126 rs +Ethernet64 185,186,187,188 Eth17 200000 16 9126 rs +Ethernet68 189,190,191,192 Eth18 200000 17 9126 rs +Ethernet72 181,182,183,184 Eth19 200000 18 9126 rs +Ethernet76 177,178,179,180 Eth20 200000 19 9126 rs +Ethernet80 169,170,171,172 Eth21 200000 20 9126 rs +Ethernet84 173,174,175,176 Eth22 200000 21 9126 rs +Ethernet88 165,166,167,168 Eth23 200000 22 9126 rs +Ethernet92 161,162,163,164 Eth24 200000 23 9126 rs +Ethernet96 153,154,155,156 Eth25 200000 24 9126 rs +Ethernet100 157,158,159,160 Eth26 200000 25 9126 rs +Ethernet104 149,150,151,152 Eth27 200000 26 9126 rs +Ethernet108 145,146,147,148 Eth28 200000 27 9126 rs +Ethernet112 137,138,139,140 Eth29 200000 28 9126 rs +Ethernet116 141,142,143,144 Eth30 200000 29 9126 rs +Ethernet120 133,134,135,136 Eth31 200000 30 9126 rs +Ethernet124 129,130,131,132 Eth32 200000 31 9126 rs +Ethernet128 121,122,123,124 Eth33 200000 32 9126 rs +Ethernet132 125,126,127,128 Eth34 200000 33 9126 rs +Ethernet136 117,118,119,120 Eth35 200000 34 9126 rs +Ethernet140 113,114,115,116 Eth36 200000 35 9126 rs +Ethernet144 105,106,107,108 Eth37 200000 36 9126 rs +Ethernet148 109,110,111,112 Eth38 200000 37 9126 rs +Ethernet152 101,102,103,104 Eth39 200000 38 9126 rs +Ethernet156 97,98,99,100 Eth40 200000 39 9126 rs +Ethernet160 89,90,91,92 Eth41 200000 40 9126 rs +Ethernet164 93,94,95,96 Eth42 200000 41 9126 rs +Ethernet168 85,86,87,88 Eth43 200000 42 9126 rs +Ethernet172 81,82,83,84 Eth44 200000 43 9126 rs +Ethernet176 73,74,75,76 Eth45 200000 44 9126 rs +Ethernet180 77,78,79,80 Eth46 200000 45 9126 rs +Ethernet184 69,70,71,72 Eth47 200000 46 9126 rs +Ethernet188 65,66,67,68 Eth48 200000 47 9126 rs +Ethernet192 57,58,59,60 Eth49 200000 48 9126 rs +Ethernet196 61,62,63,64 Eth50 200000 49 9126 rs +Ethernet200 53,54,55,56 Eth51 200000 50 9126 rs +Ethernet204 49,50,51,52 Eth52 200000 51 9126 rs +Ethernet208 41,42,43,44 Eth53 200000 52 9126 rs +Ethernet212 45,46,47,48 Eth54 200000 53 9126 rs +Ethernet216 37,38,39,40 Eth55 200000 54 9126 rs +Ethernet220 33,34,35,36 Eth56 200000 55 9126 rs +Ethernet224 25,26,27,28 Eth57 200000 56 9126 rs +Ethernet228 29,30,31,32 Eth58 200000 57 9126 rs +Ethernet232 21,22,23,24 Eth59 200000 58 9126 rs +Ethernet236 17,18,19,20 Eth60 200000 59 9126 rs +Ethernet240 9,10,11,12 Eth61 200000 60 9126 rs +Ethernet244 13,14,15,16 Eth62 200000 61 9126 rs +Ethernet248 5,6,7,8 Eth63 200000 62 9126 rs +Ethernet252 1,2,3,4 Eth64 200000 63 9126 rs diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/qos.json.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/qos.json.j2 index 16f9b42a2166..3938fc1a05c4 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/qos.json.j2 +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 64 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -114,7 +103,12 @@ "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/qos_defaults_def_lossy.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/qos_defaults_t1.j2 b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/sai.profile b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/sai.profile +++ b/device/celestica/x86_64-cel_midstone-r0/Midstone-200i_64x200/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/celestica/x86_64-cel_midstone-r0/minigraph.xml b/device/celestica/x86_64-cel_midstone-r0/minigraph.xml new file mode 100755 index 000000000000..780fbcd0b54d --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/minigraph.xml @@ -0,0 +1,1723 @@ + + + + + + false + switch1 + 10.0.0.56 + ARISTA01T1 + 10.0.0.57 + 1 + 10 + 3 + + + switch1 + FC00::71 + ARISTA01T1 + FC00::72 + 1 + 10 + 3 + + + false + switch1 + 10.0.0.58 + ARISTA02T1 + 10.0.0.59 + 1 + 10 + 3 + + + switch1 + FC00::75 + ARISTA02T1 + FC00::76 + 1 + 10 + 3 + + + false + switch1 + 10.0.0.60 + ARISTA03T1 + 10.0.0.61 + 1 + 10 + 3 + + + switch1 + FC00::79 + ARISTA03T1 + FC00::7A + 1 + 10 + 3 + + + false + switch1 + 10.0.0.62 + ARISTA04T1 + 10.0.0.63 + 1 + 10 + 3 + + + switch1 + FC00::7D + ARISTA04T1 + FC00::7E + 1 + 10 + 3 + + + + + 65100 + switch1 + + +
10.0.0.57
+ + + +
+ +
10.0.0.59
+ + + +
+ +
10.0.0.61
+ + + +
+ +
10.0.0.63
+ + + +
+ + BGPPeer +
10.1.0.32
+ + + + BGPSLBPassive + 10.250.0.0/25 +
+ + BGPPeer +
10.1.0.32
+ + + + BGPVac + 192.168.0.0/21 +
+
+ +
+ + 64600 + ARISTA01T1 + + + + 64600 + ARISTA02T1 + + + + 64600 + ARISTA03T1 + + + + 64600 + ARISTA04T1 + + +
+
+ + + + + + HostIP + Loopback0 + + 10.1.0.32/32 + + 10.1.0.32/32 + + + HostIP1 + Loopback0 + + FC00:1::32/128 + + FC00:1::32/128 + + + + + + HostIP + eth0 + + 10.60.60.60/16 + + 10.60.60.60/16 + + + V6HostIP + eth0 + + FC00:2::32/64 + + FC00:2::32/64 + + + HostIP + usb0 + + 10.42.0.1/24 + + 10.42.0.1/24 + + + + + + + switch1 + + + + + + + + Ethernet64 + 10.0.0.32/31 + + + + Ethernet64 + FC00::41/126 + + + + Ethernet0 + 10.0.0.0/31 + + + + Ethernet0 + FC00::1/126 + + + + Ethernet68 + 10.0.0.34/31 + + + + Ethernet68 + FC00::45/126 + + + + Ethernet4 + 10.0.0.2/31 + + + + Ethernet4 + FC00::5/126 + + + + Ethernet72 + 10.0.0.36/31 + + + + Ethernet72 + FC00::49/126 + + + + Ethernet8 + 10.0.0.4/31 + + + + Ethernet8 + FC00::9/126 + + + + Ethernet76 + 10.0.0.38/31 + + + + Ethernet76 + FC00::4D/126 + + + + Ethernet12 + 10.0.0.6/31 + + + + Ethernet12 + FC00::D/126 + + + + Ethernet80 + 10.0.0.40/31 + + + + Ethernet80 + FC00::51/126 + + + + Ethernet16 + 10.0.0.8/31 + + + + Ethernet16 + FC00::11/126 + + + + Ethernet84 + 10.0.0.42/31 + + + + Ethernet84 + FC00::55/126 + + + + Ethernet20 + 10.0.0.10/31 + + + + Ethernet20 + FC00::15/126 + + + + Ethernet88 + 10.0.0.44/31 + + + + Ethernet88 + FC00::59/126 + + + + Ethernet24 + 10.0.0.12/31 + + + + Ethernet24 + FC00::19/126 + + + + Ethernet92 + 10.0.0.46/31 + + + + Ethernet92 + FC00::5D/126 + + + + Ethernet28 + 10.0.0.14/31 + + + + Ethernet28 + FC00::1D/126 + + + + Ethernet96 + 10.0.0.48/31 + + + + Ethernet96 + FC00::61/126 + + + + Ethernet32 + 10.0.0.16/31 + + + + Ethernet32 + FC00::21/126 + + + + Ethernet100 + 10.0.0.50/31 + + + + Ethernet100 + FC00::65/126 + + + + Ethernet36 + 10.0.0.18/31 + + + + Ethernet36 + FC00::25/126 + + + + Ethernet104 + 10.0.0.52/31 + + + + Ethernet104 + FC00::69/126 + + + + Ethernet40 + 10.0.0.20/31 + + + + Ethernet40 + FC00::29/126 + + + + Ethernet108 + 10.0.0.54/31 + + + + Ethernet108 + FC00::6D/126 + + + + Ethernet44 + 10.0.0.22/31 + + + + Ethernet44 + FC00::2D/126 + + + + Ethernet112 + 10.0.0.56/31 + + + + Ethernet112 + FC00::71/126 + + + + Ethernet48 + 10.0.0.24/31 + + + + Ethernet48 + FC00::31/126 + + + + Ethernet116 + 10.0.0.58/31 + + + + Ethernet116 + FC00::75/126 + + + + Ethernet52 + 10.0.0.26/31 + + + + Ethernet52 + FC00::35/126 + + + + Ethernet120 + 10.0.0.60/31 + + + + Ethernet120 + FC00::79/126 + + + + Ethernet56 + 10.0.0.28/31 + + + + Ethernet56 + FC00::39/126 + + + + Ethernet124 + 10.0.0.62/31 + + + + Ethernet124 + FC00::7D/126 + + + + Ethernet60 + 10.0.0.30/31 + + + + Ethernet60 + FC00::3D/126 + + + + + + SNMP_ACL + SNMP + SNMP + + + ERSPAN + Everflow + Everflow + + + VTY_LINE + ssh-only + SSH + + + Ethernet64;Ethernet0;Ethernet68;Ethernet4;Ethernet72;Ethernet8;Ethernet76;Ethernet12;Ethernet80;Ethernet16;Ethernet84;Ethernet20;Ethernet88;Ethernet24;Ethernet92;Ethernet28;Ethernet96;Ethernet32;Ethernet100;Ethernet36;Ethernet104;Ethernet40;Ethernet108;Ethernet44;Ethernet112;Ethernet48;Ethernet116;Ethernet52;Ethernet120;Ethernet56;Ethernet124;Ethernet60 + DataAcl + DataPlane + + + + + + + + + true + + + DeviceInterface + + true + true + 1 + Ethernet0 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet4 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet8 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet12 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet16 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet20 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet24 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet28 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet32 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet36 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet40 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet44 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet48 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet52 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet56 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet60 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet64 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet68 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet72 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet76 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet80 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet84 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet88 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet92 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet96 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet100 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet104 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet108 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet112 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet116 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet120 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet124 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet128 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet132 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet136 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet140 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet144 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet148 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet152 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet156 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet160 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet164 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet168 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet172 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet176 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet180 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet184 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet188 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet192 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet196 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet200 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet204 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet208 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet212 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet216 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet220 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet224 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet228 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet232 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet236 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet240 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet244 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet248 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet252 + + false + 0 + 0 + 100000 + + + DeviceInterface + + true + true + 1 + Ethernet256 + + false + 0 + 0 + 10000 + + + DeviceInterface + + true + true + 1 + Ethernet260 + + false + 0 + 0 + 10000 + + + true + 0 + Midstone-200i + + + + + + + DeviceInterfaceLink + ARISTA01T0 + Ethernet1 + switch1 + Ethernet64 + + + DeviceInterfaceLink + ARISTA01T2 + Ethernet1 + switch1 + Ethernet0 + + + DeviceInterfaceLink + ARISTA02T0 + Ethernet1 + switch1 + Ethernet68 + + + DeviceInterfaceLink + ARISTA02T2 + Ethernet1 + switch1 + Ethernet4 + + + DeviceInterfaceLink + ARISTA03T0 + Ethernet1 + switch1 + Ethernet72 + + + DeviceInterfaceLink + ARISTA03T2 + Ethernet1 + switch1 + Ethernet8 + + + DeviceInterfaceLink + ARISTA04T0 + Ethernet1 + switch1 + Ethernet76 + + + DeviceInterfaceLink + ARISTA04T2 + Ethernet1 + switch1 + Ethernet12 + + + DeviceInterfaceLink + ARISTA05T0 + Ethernet1 + switch1 + Ethernet80 + + + DeviceInterfaceLink + ARISTA05T2 + Ethernet1 + switch1 + Ethernet16 + + + DeviceInterfaceLink + ARISTA06T0 + Ethernet1 + switch1 + Ethernet84 + + + DeviceInterfaceLink + ARISTA06T2 + Ethernet1 + switch1 + Ethernet20 + + + DeviceInterfaceLink + ARISTA07T0 + Ethernet1 + switch1 + Ethernet88 + + + DeviceInterfaceLink + ARISTA07T2 + Ethernet1 + switch1 + Ethernet24 + + + DeviceInterfaceLink + ARISTA08T0 + Ethernet1 + switch1 + Ethernet92 + + + DeviceInterfaceLink + ARISTA08T2 + Ethernet1 + switch1 + Ethernet28 + + + DeviceInterfaceLink + ARISTA09T0 + Ethernet1 + switch1 + Ethernet96 + + + DeviceInterfaceLink + ARISTA09T2 + Ethernet1 + switch1 + Ethernet32 + + + DeviceInterfaceLink + ARISTA10T0 + Ethernet1 + switch1 + Ethernet100 + + + DeviceInterfaceLink + ARISTA10T2 + Ethernet1 + switch1 + Ethernet36 + + + DeviceInterfaceLink + ARISTA11T0 + Ethernet1 + switch1 + Ethernet104 + + + DeviceInterfaceLink + ARISTA11T2 + Ethernet1 + switch1 + Ethernet40 + + + DeviceInterfaceLink + ARISTA12T0 + Ethernet1 + switch1 + Ethernet108 + + + DeviceInterfaceLink + ARISTA12T2 + Ethernet1 + switch1 + Ethernet44 + + + DeviceInterfaceLink + ARISTA13T0 + Ethernet1 + switch1 + Ethernet112 + + + DeviceInterfaceLink + ARISTA13T2 + Ethernet1 + switch1 + Ethernet48 + + + DeviceInterfaceLink + ARISTA14T0 + Ethernet1 + switch1 + Ethernet116 + + + DeviceInterfaceLink + ARISTA14T2 + Ethernet1 + switch1 + Ethernet52 + + + DeviceInterfaceLink + ARISTA15T0 + Ethernet1 + switch1 + Ethernet120 + + + DeviceInterfaceLink + ARISTA15T2 + Ethernet1 + switch1 + Ethernet56 + + + DeviceInterfaceLink + ARISTA16T0 + Ethernet1 + switch1 + Ethernet124 + + + DeviceInterfaceLink + ARISTA16T2 + Ethernet1 + switch1 + Ethernet60 + + + + + switch1 + Midstone-200i + + 10.60.60.60 + + + + + + + + switch1 + + + DeploymentId + + 1 + + + QosProfile + + Profile0 + + + NtpResources + + 10.0.0.1;10.0.0.2 + + + SnmpResources + + 10.0.0.9 + + + SyslogResources + + 10.0.0.5;10.0.0.6 + + + TacacsGroup + + testlab + + + TacacsServer + + 10.0.0.9;10.0.0.8 + + + ForcedMgmtRoutes + + 10.0.0.100/31;10.250.0.8;10.255.0.0/28 + + + ErspanDestinationIpv4 + + 10.0.0.7 + + + + + + + switch1 + Midstone-200i +
diff --git a/device/celestica/x86_64-cel_midstone-r0/pmon_daemon_control.json b/device/celestica/x86_64-cel_midstone-r0/pmon_daemon_control.json index 94592fa8cebc..479364248109 100644 --- a/device/celestica/x86_64-cel_midstone-r0/pmon_daemon_control.json +++ b/device/celestica/x86_64-cel_midstone-r0/pmon_daemon_control.json @@ -1,3 +1,5 @@ { - "skip_ledd": true + "skip_ledd": true, + "skip_psud": true, + "skip_thermalctld": true } diff --git a/device/celestica/x86_64-cel_midstone-r0/topo.conf b/device/celestica/x86_64-cel_midstone-r0/topo.conf new file mode 100644 index 000000000000..795ea43143eb --- /dev/null +++ b/device/celestica/x86_64-cel_midstone-r0/topo.conf @@ -0,0 +1 @@ +t1 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/alt_cfg/config_32x400G_Delta-et-c032if_aux.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/alt_cfg/config_32x400G_Delta-et-c032if_aux.yaml new file mode 100755 index 000000000000..2ba23d2a5a67 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/alt_cfg/config_32x400G_Delta-et-c032if_aux.yaml @@ -0,0 +1,429 @@ +ifcs: + options: + log_level: "info" +nodes: +- node_id: "0" + options: + sku: "configs/sku/innovium.77700_A" + netdev: + - auto_create: "no" + multi_interface: "yes" + buffer_management_mode: "api_driven" + max_lossless_tc: "2" + txring: + - txring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + rxring: + - rxring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44" + - rxring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45" + - rxring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46" + - rxring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47" + sys_clk: "1720" + ifc_clk: "1200" + mac_clk: "1340" + + devports: + - id: "0" + sysport: "1000" + type: "cpu" + - fec: "KPFEC" + id: "249" + lanes: "0:8" + serdes_group: "31" + speed: "400G" + sysport: "249" + type: "eth" + - fec: "KPFEC" + id: "241" + lanes: "0:8" + serdes_group: "30" + speed: "400G" + sysport: "241" + type: "eth" + - fec: "KPFEC" + id: "233" + lanes: "0:8" + serdes_group: "29" + speed: "400G" + sysport: "233" + type: "eth" + - fec: "KPFEC" + id: "225" + lanes: "0:8" + serdes_group: "28" + speed: "400G" + sysport: "225" + type: "eth" + - fec: "KPFEC" + id: "217" + lanes: "0:8" + serdes_group: "27" + speed: "400G" + sysport: "217" + type: "eth" + - fec: "KPFEC" + id: "209" + lanes: "0:8" + serdes_group: "26" + speed: "400G" + sysport: "209" + type: "eth" + - fec: "KPFEC" + id: "201" + lanes: "0:8" + serdes_group: "25" + speed: "400G" + sysport: "201" + type: "eth" + - fec: "KPFEC" + id: "193" + lanes: "0:8" + serdes_group: "24" + speed: "400G" + sysport: "193" + type: "eth" + - fec: "KPFEC" + id: "185" + lanes: "0:8" + serdes_group: "23" + speed: "400G" + sysport: "185" + type: "eth" + - fec: "KPFEC" + id: "177" + lanes: "0:8" + serdes_group: "22" + speed: "400G" + sysport: "177" + type: "eth" + - fec: "KPFEC" + id: "169" + lanes: "0:8" + serdes_group: "21" + speed: "400G" + sysport: "169" + type: "eth" + - fec: "KPFEC" + id: "161" + lanes: "0:8" + serdes_group: "20" + speed: "400G" + sysport: "161" + type: "eth" + - fec: "KPFEC" + id: "153" + lanes: "0:8" + serdes_group: "19" + speed: "400G" + sysport: "153" + type: "eth" + - fec: "KPFEC" + id: "145" + lanes: "0:8" + serdes_group: "18" + speed: "400G" + sysport: "145" + type: "eth" + - fec: "KPFEC" + id: "137" + lanes: "0:8" + serdes_group: "17" + speed: "400G" + sysport: "137" + type: "eth" + - fec: "KPFEC" + id: "129" + lanes: "0:8" + serdes_group: "16" + speed: "400G" + sysport: "129" + type: "eth" + - fec: "KPFEC" + id: "121" + lanes: "0:8" + serdes_group: "15" + speed: "400G" + sysport: "121" + type: "eth" + - fec: "KPFEC" + id: "113" + lanes: "0:8" + serdes_group: "14" + speed: "400G" + sysport: "113" + type: "eth" + - fec: "KPFEC" + id: "97" + lanes: "0:8" + serdes_group: "12" + speed: "400G" + sysport: "97" + type: "eth" + - fec: "KPFEC" + id: "105" + lanes: "0:8" + serdes_group: "13" + speed: "400G" + sysport: "105" + type: "eth" + - fec: "KPFEC" + id: "81" + lanes: "0:8" + serdes_group: "10" + speed: "400G" + sysport: "81" + type: "eth" + - fec: "KPFEC" + id: "89" + lanes: "0:8" + serdes_group: "11" + speed: "400G" + sysport: "89" + type: "eth" + - fec: "KPFEC" + id: "65" + lanes: "0:8" + serdes_group: "8" + speed: "400G" + sysport: "65" + type: "eth" + - fec: "KPFEC" + id: "73" + lanes: "0:8" + serdes_group: "9" + speed: "400G" + sysport: "73" + type: "eth" + - fec: "KPFEC" + id: "49" + lanes: "0:8" + serdes_group: "6" + speed: "400G" + sysport: "49" + type: "eth" + - fec: "KPFEC" + id: "57" + lanes: "0:8" + serdes_group: "7" + speed: "400G" + sysport: "57" + type: "eth" + - fec: "KPFEC" + id: "33" + lanes: "0:8" + serdes_group: "4" + speed: "400G" + sysport: "33" + type: "eth" + - fec: "KPFEC" + id: "41" + lanes: "0:8" + serdes_group: "5" + speed: "400G" + sysport: "41" + type: "eth" + - fec: "KPFEC" + id: "17" + lanes: "0:8" + serdes_group: "2" + speed: "400G" + sysport: "17" + type: "eth" + - fec: "KPFEC" + id: "25" + lanes: "0:8" + serdes_group: "3" + speed: "400G" + sysport: "25" + type: "eth" + - fec: "KPFEC" + id: "1" + lanes: "0:8" + serdes_group: "0" + speed: "400G" + sysport: "1" + type: "eth" + - fec: "KPFEC" + id: "9" + lanes: "0:8" + serdes_group: "1" + speed: "400G" + sysport: "9" + type: "eth" + - fec: "NONE" + id: "257" + lanes: "0:1" + serdes_group: "32" + speed: "10G" + sysport: "257" + type: "mgmt 0" + - fec: "NONE" + id: "258" + lanes: "1:1" + serdes_group: "32" + speed: "10G" + sysport: "258" + type: "mgmt 1" + isg: + - id: "0" + tx_polarity: "01010101" + rx_polarity: "01100000" + lane_swap: "23641075" + - id: "1" + tx_polarity: "10110000" + rx_polarity: "11111111" + lane_swap: "64317520" + - id: "2" + tx_polarity: "00000000" + rx_polarity: "00000011" + lane_swap: "63147520" + - id: "3" + tx_polarity: "01101000" + rx_polarity: "00001110" + lane_swap: "31572046" + - id: "4" + tx_polarity: "00111000" + rx_polarity: "00001000" + lane_swap: "46105732" + - id: "5" + tx_polarity: "10111111" + rx_polarity: "11101000" + lane_swap: "27153604" + - id: "6" + tx_polarity: "01101110" + rx_polarity: "00001101" + lane_swap: "46503721" + - id: "7" + tx_polarity: "01000100" + rx_polarity: "10000101" + lane_swap: "03671245" + - id: "8" + tx_polarity: "01110101" + rx_polarity: "00010000" + lane_swap: "12640375" + - id: "9" + tx_polarity: "01011100" + rx_polarity: "11001111" + lane_swap: "02561347" + - id: "10" + tx_polarity: "01110110" + rx_polarity: "11000000" + lane_swap: "12740365" + - id: "11" + tx_polarity: "00111000" + rx_polarity: "00010111" + lane_swap: "01572436" + - id: "12" + tx_polarity: "00001111" + rx_polarity: "10111001" + lane_swap: "54320176" + - id: "13" + tx_polarity: "10011101" + rx_polarity: "00111011" + lane_swap: "26153704" + - id: "14" + tx_polarity: "00110000" + rx_polarity: "11010000" + lane_swap: "37452601" + - id: "15" + tx_polarity: "11100010" + rx_polarity: "01110011" + lane_swap: "51370462" + - id: "16" + tx_polarity: "10111010" + rx_polarity: "11010011" + lane_swap: "36152704" + - id: "17" + tx_polarity: "01011101" + rx_polarity: "00110001" + lane_swap: "45621073" + - id: "18" + tx_polarity: "11011111" + rx_polarity: "11001011" + lane_swap: "26143705" + - id: "19" + tx_polarity: "00100110" + rx_polarity: "00001001" + lane_swap: "42730165" + - id: "20" + tx_polarity: "10011011" + rx_polarity: "01101101" + lane_swap: "54217603" + - id: "21" + tx_polarity: "00101110" + rx_polarity: "10111111" + lane_swap: "26031745" + - id: "22" + tx_polarity: "01001110" + rx_polarity: "00111001" + lane_swap: "36024715" + - id: "23" + tx_polarity: "10101101" + rx_polarity: "01010011" + lane_swap: "45621370" + - id: "24" + tx_polarity: "11001110" + rx_polarity: "00011111" + lane_swap: "65234701" + - id: "25" + tx_polarity: "01110001" + rx_polarity: "01010111" + lane_swap: "37601452" + - id: "26" + tx_polarity: "01000100" + rx_polarity: "00001111" + lane_swap: "65034721" + - id: "27" + tx_polarity: "10111101" + rx_polarity: "11000101" + lane_swap: "34501672" + - id: "28" + tx_polarity: "01111000" + rx_polarity: "01110110" + lane_swap: "43061275" + - id: "29" + tx_polarity: "11110111" + rx_polarity: "11100111" + lane_swap: "57304621" + - id: "30" + tx_polarity: "10000100" + rx_polarity: "00101111" + lane_swap: "47125603" + - id: "31" + tx_polarity: "11111111" + rx_polarity: "11100010" + lane_swap: "13460275" + - id: "32" + tx_polarity: "00000000" + rx_polarity: "00000000" + lane_swap: "01234567" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/alt_cfg/port_config_aux.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/alt_cfg/port_config_aux.ini new file mode 100755 index 000000000000..b02a938b34ff --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/alt_cfg/port_config_aux.ini @@ -0,0 +1,35 @@ +# name lanes alias speed index mtu fec +Ethernet0 249,250,251,252 Eth1 400000 0 9126 rs +Ethernet8 241,242,243,244 Eth2 400000 1 9126 rs +Ethernet16 233,234,235,236 Eth3 400000 2 9126 rs +Ethernet24 225,226,227,228 Eth4 400000 3 9126 rs +Ethernet32 217,218,219,220 Eth5 400000 4 9126 rs +Ethernet40 209,210,211,212 Eth6 400000 5 9126 rs +Ethernet48 201,202,203,204 Eth7 400000 6 9126 rs +Ethernet56 193,194,195,196 Eth8 400000 7 9126 rs +Ethernet64 185,186,187,188 Eth9 400000 8 9126 rs +Ethernet72 177,178,179,180 Eth10 400000 9 9126 rs +Ethernet80 169,170,171,172 Eth11 400000 10 9126 rs +Ethernet88 161,162,163,164 Eth12 400000 11 9126 rs +Ethernet96 153,154,155,156 Eth13 400000 12 9126 rs +Ethernet104 145,146,147,148 Eth14 400000 13 9126 rs +Ethernet112 137,138,139,140 Eth15 400000 14 9126 rs +Ethernet120 129,130,131,132 Eth16 400000 15 9126 rs +Ethernet128 121,122,123,124 Eth17 400000 16 9126 rs +Ethernet136 113,114,115,116 Eth18 400000 17 9126 rs +Ethernet144 97,98,99,100 Eth19 400000 18 9126 rs +Ethernet152 105,106,107,108 Eth20 400000 19 9126 rs +Ethernet160 81,82,83,84 Eth21 400000 20 9126 rs +Ethernet168 89,90,91,92 Eth22 400000 21 9126 rs +Ethernet176 65,66,67,68 Eth23 400000 22 9126 rs +Ethernet184 73,74,75,76 Eth24 400000 23 9126 rs +Ethernet192 49,50,51,52 Eth25 400000 24 9126 rs +Ethernet200 57,58,59,60 Eth26 400000 25 9126 rs +Ethernet208 33,34,35,36 Eth27 400000 26 9126 rs +Ethernet216 41,42,43,44 Eth28 400000 27 9126 rs +Ethernet224 17,18,19,20 Eth29 400000 28 9126 rs +Ethernet232 25,26,27,28 Eth30 400000 29 9126 rs +Ethernet240 1,2,3,4 Eth31 400000 30 9126 rs +Ethernet248 9,10,11,12 Eth32 400000 31 9126 rs +Ethernet256 257 Aux1 10000 32 9126 none +Ethernet257 258 Aux2 10000 33 9126 none diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/buffers.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/buffers.json.j2 index 4fca9cbcd156..ada7dca895ce 100644 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/buffers.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 32 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/buffers_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/buffers_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/config_32x400G_Delta-et-c032if.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/config_32x400G_Delta-et-c032if.yaml index 2ba23d2a5a67..76cf0dc36ba8 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/config_32x400G_Delta-et-c032if.yaml +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/config_32x400G_Delta-et-c032if.yaml @@ -10,6 +10,8 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" @@ -280,20 +282,6 @@ nodes: speed: "400G" sysport: "9" type: "eth" - - fec: "NONE" - id: "257" - lanes: "0:1" - serdes_group: "32" - speed: "10G" - sysport: "257" - type: "mgmt 0" - - fec: "NONE" - id: "258" - lanes: "1:1" - serdes_group: "32" - speed: "10G" - sysport: "258" - type: "mgmt 1" isg: - id: "0" tx_polarity: "01010101" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/ivm.sai.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/ivm.sai.config.yaml new file mode 100755 index 000000000000..30a83d145ebd --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_32x400G_Delta-et-c032if.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_A" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/ivm.sai.datapath.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/pg_profile_lookup.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/port_config.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/port_config.ini index 360e363f485b..64d07a4eecdb 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/port_config.ini +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/port_config.ini @@ -1,35 +1,33 @@ -# name lanes speed index mtu fec -Ethernet0 249,250,251,252 400000 0 9126 rs -Ethernet8 241,242,243,244 400000 1 9126 rs -Ethernet16 233,234,235,236 400000 2 9126 rs -Ethernet24 225,226,227,228 400000 3 9126 rs -Ethernet32 217,218,219,220 400000 4 9126 rs -Ethernet40 209,210,211,212 400000 5 9126 rs -Ethernet48 201,202,203,204 400000 6 9126 rs -Ethernet56 193,194,195,196 400000 7 9126 rs -Ethernet64 185,186,187,188 400000 8 9126 rs -Ethernet72 177,178,179,180 400000 9 9126 rs -Ethernet80 169,170,171,172 400000 10 9126 rs -Ethernet88 161,162,163,164 400000 11 9126 rs -Ethernet96 153,154,155,156 400000 12 9126 rs -Ethernet104 145,146,147,148 400000 13 9126 rs -Ethernet112 137,138,139,140 400000 14 9126 rs -Ethernet120 129,130,131,132 400000 15 9126 rs -Ethernet128 121,122,123,124 400000 16 9126 rs -Ethernet136 113,114,115,116 400000 17 9126 rs -Ethernet144 97,98,99,100 400000 18 9126 rs -Ethernet152 105,106,107,108 400000 19 9126 rs -Ethernet160 81,82,83,84 400000 20 9126 rs -Ethernet168 89,90,91,92 400000 21 9126 rs -Ethernet176 65,66,67,68 400000 22 9126 rs -Ethernet184 73,74,75,76 400000 23 9126 rs -Ethernet192 49,50,51,52 400000 24 9126 rs -Ethernet200 57,58,59,60 400000 25 9126 rs -Ethernet208 33,34,35,36 400000 26 9126 rs -Ethernet216 41,42,43,44 400000 27 9126 rs -Ethernet224 17,18,19,20 400000 28 9126 rs -Ethernet232 25,26,27,28 400000 29 9126 rs -Ethernet240 1,2,3,4 400000 30 9126 rs -Ethernet248 9,10,11,12 400000 31 9126 rs -Ethernet256 257 10000 32 9126 none -Ethernet257 258 10000 33 9126 none +# name lanes alias speed index mtu fec +Ethernet0 249,250,251,252,253,254,255,256 Ethernet0 400000 0 9126 rs +Ethernet8 241,242,243,244,245,246,247,248 Ethernet8 400000 1 9126 rs +Ethernet16 233,234,235,236,237,238,239,240 Ethernet16 400000 2 9126 rs +Ethernet24 225,226,227,228,229,230,231,232 Ethernet24 400000 3 9126 rs +Ethernet32 217,218,219,220,221,222,223,224 Ethernet32 400000 4 9126 rs +Ethernet40 209,210,211,212,213,214,215,216 Ethernet40 400000 5 9126 rs +Ethernet48 201,202,203,204,205,206,207,208 Ethernet48 400000 6 9126 rs +Ethernet56 193,194,195,196,197,198,199,200 Ethernet56 400000 7 9126 rs +Ethernet64 185,186,187,188,189,190,191,192 Ethernet64 400000 8 9126 rs +Ethernet72 177,178,179,180,181,182,183,184 Ethernet72 400000 9 9126 rs +Ethernet80 169,170,171,172,173,174,175,176 Ethernet80 400000 10 9126 rs +Ethernet88 161,162,163,164,165,166,167,168 Ethernet88 400000 11 9126 rs +Ethernet96 153,154,155,156,157,158,159,160 Ethernet96 400000 12 9126 rs +Ethernet104 145,146,147,148,149,150,151,152 Ethernet104 400000 13 9126 rs +Ethernet112 137,138,139,140,141,142,143,144 Ethernet112 400000 14 9126 rs +Ethernet120 129,130,131,132,133,134,135,136 Ethernet120 400000 15 9126 rs +Ethernet128 121,122,123,124,125,126,127,128 Ethernet128 400000 16 9126 rs +Ethernet136 113,114,115,116,117,118,119,120 Ethernet136 400000 17 9126 rs +Ethernet144 97,98,99,100,101,102,103,104 Ethernet144 400000 18 9126 rs +Ethernet152 105,106,107,108,109,110,111,112 Ethernet152 400000 19 9126 rs +Ethernet160 81,82,83,84,85,86,87,88 Ethernet160 400000 20 9126 rs +Ethernet168 89,90,91,92,93,94,95,96 Ethernet168 400000 21 9126 rs +Ethernet176 65,66,67,68,69,70,71,72 Ethernet176 400000 22 9126 rs +Ethernet184 73,74,75,76,77,78,79,80 Ethernet184 400000 23 9126 rs +Ethernet192 49,50,51,52,53,54,55,56 Ethernet192 400000 24 9126 rs +Ethernet200 57,58,59,60,61,62,63,64 Ethernet200 400000 25 9126 rs +Ethernet208 33,34,35,36,37,38,39,40 Ethernet208 400000 26 9126 rs +Ethernet216 41,42,43,44,45,46,47,48 Ethernet216 400000 27 9126 rs +Ethernet224 17,18,19,20,21,22,23,24 Ethernet224 400000 28 9126 rs +Ethernet232 25,26,27,28,29,30,31,32 Ethernet232 400000 29 9126 rs +Ethernet240 1,2,3,4,5,6,7,8 Ethernet240 400000 30 9126 rs +Ethernet248 9,10,11,12,13,14,15,16 Ethernet248 400000 31 9126 rs diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/qos.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/qos.json.j2 index 6c734d46ff2f..3938fc1a05c4 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/qos.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 32 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -114,7 +103,12 @@ "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/qos_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/qos_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/sai.profile b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/sai.profile +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/alt_cfg/config_128x100G_Delta-et-c032if_aux.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/alt_cfg/config_128x100G_Delta-et-c032if_aux.yaml new file mode 100755 index 000000000000..ad50fd04c2a0 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/alt_cfg/config_128x100G_Delta-et-c032if_aux.yaml @@ -0,0 +1,1102 @@ +ifcs: + options: + log_level: "info" +nodes: +- node_id: "0" + options: + sku: "configs/sku/innovium.77700_B" + netdev: + - auto_create: "no" + multi_interface: "yes" + buffer_management_mode: "api_driven" + max_lossless_tc: "2" + txring: + - txring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + rxring: + - rxring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44" + - rxring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45" + - rxring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46" + - rxring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47" + sys_clk: "1720" + ifc_clk: "1200" + mac_clk: "1340" + + devports: + - id: "0" + sysport: "1000" + type: "cpu" + - fec: "KPFEC" + id: "249" + lanes: "0:2" + serdes_group: "31" + speed: "100G" + sysport: "249" + type: "eth" + - fec: "KPFEC" + id: "251" + lanes: "2:2" + serdes_group: "31" + speed: "100G" + sysport: "251" + type: "eth" + - fec: "KPFEC" + id: "253" + lanes: "4:2" + serdes_group: "31" + speed: "100G" + sysport: "253" + type: "eth" + - fec: "KPFEC" + id: "255" + lanes: "6:2" + serdes_group: "31" + speed: "100G" + sysport: "255" + type: "eth" + - fec: "KPFEC" + id: "241" + lanes: "0:2" + serdes_group: "30" + speed: "100G" + sysport: "241" + type: "eth" + - fec: "KPFEC" + id: "243" + lanes: "2:2" + serdes_group: "30" + speed: "100G" + sysport: "243" + type: "eth" + - fec: "KPFEC" + id: "245" + lanes: "4:2" + serdes_group: "30" + speed: "100G" + sysport: "245" + type: "eth" + - fec: "KPFEC" + id: "247" + lanes: "6:2" + serdes_group: "30" + speed: "100G" + sysport: "247" + type: "eth" + - fec: "KPFEC" + id: "233" + lanes: "0:2" + serdes_group: "29" + speed: "100G" + sysport: "233" + type: "eth" + - fec: "KPFEC" + id: "235" + lanes: "2:2" + serdes_group: "29" + speed: "100G" + sysport: "235" + type: "eth" + - fec: "KPFEC" + id: "237" + lanes: "4:2" + serdes_group: "29" + speed: "100G" + sysport: "237" + type: "eth" + - fec: "KPFEC" + id: "239" + lanes: "6:2" + serdes_group: "29" + speed: "100G" + sysport: "239" + type: "eth" + - fec: "KPFEC" + id: "225" + lanes: "0:2" + serdes_group: "28" + speed: "100G" + sysport: "225" + type: "eth" + - fec: "KPFEC" + id: "227" + lanes: "2:2" + serdes_group: "28" + speed: "100G" + sysport: "227" + type: "eth" + - fec: "KPFEC" + id: "229" + lanes: "4:2" + serdes_group: "28" + speed: "100G" + sysport: "229" + type: "eth" + - fec: "KPFEC" + id: "231" + lanes: "6:2" + serdes_group: "28" + speed: "100G" + sysport: "231" + type: "eth" + - fec: "KPFEC" + id: "217" + lanes: "0:2" + serdes_group: "27" + speed: "100G" + sysport: "217" + type: "eth" + - fec: "KPFEC" + id: "219" + lanes: "2:2" + serdes_group: "27" + speed: "100G" + sysport: "219" + type: "eth" + - fec: "KPFEC" + id: "221" + lanes: "4:2" + serdes_group: "27" + speed: "100G" + sysport: "221" + type: "eth" + - fec: "KPFEC" + id: "223" + lanes: "6:2" + serdes_group: "27" + speed: "100G" + sysport: "223" + type: "eth" + - fec: "KPFEC" + id: "209" + lanes: "0:2" + serdes_group: "26" + speed: "100G" + sysport: "209" + type: "eth" + - fec: "KPFEC" + id: "211" + lanes: "2:2" + serdes_group: "26" + speed: "100G" + sysport: "211" + type: "eth" + - fec: "KPFEC" + id: "213" + lanes: "4:2" + serdes_group: "26" + speed: "100G" + sysport: "213" + type: "eth" + - fec: "KPFEC" + id: "215" + lanes: "6:2" + serdes_group: "26" + speed: "100G" + sysport: "215" + type: "eth" + - fec: "KPFEC" + id: "201" + lanes: "0:2" + serdes_group: "25" + speed: "100G" + sysport: "201" + type: "eth" + - fec: "KPFEC" + id: "203" + lanes: "2:2" + serdes_group: "25" + speed: "100G" + sysport: "203" + type: "eth" + - fec: "KPFEC" + id: "205" + lanes: "4:2" + serdes_group: "25" + speed: "100G" + sysport: "205" + type: "eth" + - fec: "KPFEC" + id: "207" + lanes: "6:2" + serdes_group: "25" + speed: "100G" + sysport: "207" + type: "eth" + - fec: "KPFEC" + id: "193" + lanes: "0:2" + serdes_group: "24" + speed: "100G" + sysport: "193" + type: "eth" + - fec: "KPFEC" + id: "195" + lanes: "2:2" + serdes_group: "24" + speed: "100G" + sysport: "195" + type: "eth" + - fec: "KPFEC" + id: "197" + lanes: "4:2" + serdes_group: "24" + speed: "100G" + sysport: "197" + type: "eth" + - fec: "KPFEC" + id: "199" + lanes: "6:2" + serdes_group: "24" + speed: "100G" + sysport: "199" + type: "eth" + - fec: "KPFEC" + id: "185" + lanes: "0:2" + serdes_group: "23" + speed: "100G" + sysport: "185" + type: "eth" + - fec: "KPFEC" + id: "187" + lanes: "2:2" + serdes_group: "23" + speed: "100G" + sysport: "187" + type: "eth" + - fec: "KPFEC" + id: "189" + lanes: "4:2" + serdes_group: "23" + speed: "100G" + sysport: "189" + type: "eth" + - fec: "KPFEC" + id: "191" + lanes: "6:2" + serdes_group: "23" + speed: "100G" + sysport: "191" + type: "eth" + - fec: "KPFEC" + id: "177" + lanes: "0:2" + serdes_group: "22" + speed: "100G" + sysport: "177" + type: "eth" + - fec: "KPFEC" + id: "179" + lanes: "2:2" + serdes_group: "22" + speed: "100G" + sysport: "179" + type: "eth" + - fec: "KPFEC" + id: "181" + lanes: "4:2" + serdes_group: "22" + speed: "100G" + sysport: "181" + type: "eth" + - fec: "KPFEC" + id: "183" + lanes: "6:2" + serdes_group: "22" + speed: "100G" + sysport: "183" + type: "eth" + - fec: "KPFEC" + id: "169" + lanes: "0:2" + serdes_group: "21" + speed: "100G" + sysport: "169" + type: "eth" + - fec: "KPFEC" + id: "171" + lanes: "2:2" + serdes_group: "21" + speed: "100G" + sysport: "171" + type: "eth" + - fec: "KPFEC" + id: "173" + lanes: "4:2" + serdes_group: "21" + speed: "100G" + sysport: "173" + type: "eth" + - fec: "KPFEC" + id: "175" + lanes: "6:2" + serdes_group: "21" + speed: "100G" + sysport: "175" + type: "eth" + - fec: "KPFEC" + id: "161" + lanes: "0:2" + serdes_group: "20" + speed: "100G" + sysport: "161" + type: "eth" + - fec: "KPFEC" + id: "163" + lanes: "2:2" + serdes_group: "20" + speed: "100G" + sysport: "163" + type: "eth" + - fec: "KPFEC" + id: "165" + lanes: "4:2" + serdes_group: "20" + speed: "100G" + sysport: "165" + type: "eth" + - fec: "KPFEC" + id: "167" + lanes: "6:2" + serdes_group: "20" + speed: "100G" + sysport: "167" + type: "eth" + - fec: "KPFEC" + id: "153" + lanes: "0:2" + serdes_group: "19" + speed: "100G" + sysport: "153" + type: "eth" + - fec: "KPFEC" + id: "155" + lanes: "2:2" + serdes_group: "19" + speed: "100G" + sysport: "155" + type: "eth" + - fec: "KPFEC" + id: "157" + lanes: "4:2" + serdes_group: "19" + speed: "100G" + sysport: "157" + type: "eth" + - fec: "KPFEC" + id: "159" + lanes: "6:2" + serdes_group: "19" + speed: "100G" + sysport: "159" + type: "eth" + - fec: "KPFEC" + id: "145" + lanes: "0:2" + serdes_group: "18" + speed: "100G" + sysport: "145" + type: "eth" + - fec: "KPFEC" + id: "147" + lanes: "2:2" + serdes_group: "18" + speed: "100G" + sysport: "147" + type: "eth" + - fec: "KPFEC" + id: "149" + lanes: "4:2" + serdes_group: "18" + speed: "100G" + sysport: "149" + type: "eth" + - fec: "KPFEC" + id: "151" + lanes: "6:2" + serdes_group: "18" + speed: "100G" + sysport: "151" + type: "eth" + - fec: "KPFEC" + id: "137" + lanes: "0:2" + serdes_group: "17" + speed: "100G" + sysport: "137" + type: "eth" + - fec: "KPFEC" + id: "139" + lanes: "2:2" + serdes_group: "17" + speed: "100G" + sysport: "139" + type: "eth" + - fec: "KPFEC" + id: "141" + lanes: "4:2" + serdes_group: "17" + speed: "100G" + sysport: "141" + type: "eth" + - fec: "KPFEC" + id: "143" + lanes: "6:2" + serdes_group: "17" + speed: "100G" + sysport: "143" + type: "eth" + - fec: "KPFEC" + id: "129" + lanes: "0:2" + serdes_group: "16" + speed: "100G" + sysport: "129" + type: "eth" + - fec: "KPFEC" + id: "131" + lanes: "2:2" + serdes_group: "16" + speed: "100G" + sysport: "131" + type: "eth" + - fec: "KPFEC" + id: "133" + lanes: "4:2" + serdes_group: "16" + speed: "100G" + sysport: "133" + type: "eth" + - fec: "KPFEC" + id: "135" + lanes: "6:2" + serdes_group: "16" + speed: "100G" + sysport: "135" + type: "eth" + - fec: "KPFEC" + id: "121" + lanes: "0:2" + serdes_group: "15" + speed: "100G" + sysport: "121" + type: "eth" + - fec: "KPFEC" + id: "123" + lanes: "2:2" + serdes_group: "15" + speed: "100G" + sysport: "123" + type: "eth" + - fec: "KPFEC" + id: "125" + lanes: "4:2" + serdes_group: "15" + speed: "100G" + sysport: "125" + type: "eth" + - fec: "KPFEC" + id: "127" + lanes: "6:2" + serdes_group: "15" + speed: "100G" + sysport: "127" + type: "eth" + - fec: "KPFEC" + id: "113" + lanes: "0:2" + serdes_group: "14" + speed: "100G" + sysport: "113" + type: "eth" + - fec: "KPFEC" + id: "115" + lanes: "2:2" + serdes_group: "14" + speed: "100G" + sysport: "115" + type: "eth" + - fec: "KPFEC" + id: "117" + lanes: "4:2" + serdes_group: "14" + speed: "100G" + sysport: "117" + type: "eth" + - fec: "KPFEC" + id: "119" + lanes: "6:2" + serdes_group: "14" + speed: "100G" + sysport: "119" + type: "eth" + - fec: "KPFEC" + id: "97" + lanes: "0:2" + serdes_group: "12" + speed: "100G" + sysport: "97" + type: "eth" + - fec: "KPFEC" + id: "99" + lanes: "2:2" + serdes_group: "12" + speed: "100G" + sysport: "99" + type: "eth" + - fec: "KPFEC" + id: "101" + lanes: "4:2" + serdes_group: "12" + speed: "100G" + sysport: "101" + type: "eth" + - fec: "KPFEC" + id: "103" + lanes: "6:2" + serdes_group: "12" + speed: "100G" + sysport: "103" + type: "eth" + - fec: "KPFEC" + id: "105" + lanes: "0:2" + serdes_group: "13" + speed: "100G" + sysport: "105" + type: "eth" + - fec: "KPFEC" + id: "107" + lanes: "2:2" + serdes_group: "13" + speed: "100G" + sysport: "107" + type: "eth" + - fec: "KPFEC" + id: "109" + lanes: "4:2" + serdes_group: "13" + speed: "100G" + sysport: "109" + type: "eth" + - fec: "KPFEC" + id: "111" + lanes: "6:2" + serdes_group: "13" + speed: "100G" + sysport: "111" + type: "eth" + - fec: "KPFEC" + id: "81" + lanes: "0:2" + serdes_group: "10" + speed: "100G" + sysport: "81" + type: "eth" + - fec: "KPFEC" + id: "83" + lanes: "2:2" + serdes_group: "10" + speed: "100G" + sysport: "83" + type: "eth" + - fec: "KPFEC" + id: "85" + lanes: "4:2" + serdes_group: "10" + speed: "100G" + sysport: "85" + type: "eth" + - fec: "KPFEC" + id: "87" + lanes: "6:2" + serdes_group: "10" + speed: "100G" + sysport: "87" + type: "eth" + - fec: "KPFEC" + id: "89" + lanes: "0:2" + serdes_group: "11" + speed: "100G" + sysport: "89" + type: "eth" + - fec: "KPFEC" + id: "91" + lanes: "2:2" + serdes_group: "11" + speed: "100G" + sysport: "91" + type: "eth" + - fec: "KPFEC" + id: "93" + lanes: "4:2" + serdes_group: "11" + speed: "100G" + sysport: "93" + type: "eth" + - fec: "KPFEC" + id: "95" + lanes: "6:2" + serdes_group: "11" + speed: "100G" + sysport: "95" + type: "eth" + - fec: "KPFEC" + id: "65" + lanes: "0:2" + serdes_group: "8" + speed: "100G" + sysport: "65" + type: "eth" + - fec: "KPFEC" + id: "67" + lanes: "2:2" + serdes_group: "8" + speed: "100G" + sysport: "67" + type: "eth" + - fec: "KPFEC" + id: "69" + lanes: "4:2" + serdes_group: "8" + speed: "100G" + sysport: "69" + type: "eth" + - fec: "KPFEC" + id: "71" + lanes: "6:2" + serdes_group: "8" + speed: "100G" + sysport: "71" + type: "eth" + - fec: "KPFEC" + id: "73" + lanes: "0:2" + serdes_group: "9" + speed: "100G" + sysport: "73" + type: "eth" + - fec: "KPFEC" + id: "75" + lanes: "2:2" + serdes_group: "9" + speed: "100G" + sysport: "75" + type: "eth" + - fec: "KPFEC" + id: "77" + lanes: "4:2" + serdes_group: "9" + speed: "100G" + sysport: "77" + type: "eth" + - fec: "KPFEC" + id: "79" + lanes: "6:2" + serdes_group: "9" + speed: "100G" + sysport: "79" + type: "eth" + - fec: "KPFEC" + id: "49" + lanes: "0:2" + serdes_group: "6" + speed: "100G" + sysport: "49" + type: "eth" + - fec: "KPFEC" + id: "51" + lanes: "2:2" + serdes_group: "6" + speed: "100G" + sysport: "51" + type: "eth" + - fec: "KPFEC" + id: "53" + lanes: "4:2" + serdes_group: "6" + speed: "100G" + sysport: "53" + type: "eth" + - fec: "KPFEC" + id: "55" + lanes: "6:2" + serdes_group: "6" + speed: "100G" + sysport: "55" + type: "eth" + - fec: "KPFEC" + id: "57" + lanes: "0:2" + serdes_group: "7" + speed: "100G" + sysport: "57" + type: "eth" + - fec: "KPFEC" + id: "59" + lanes: "2:2" + serdes_group: "7" + speed: "100G" + sysport: "59" + type: "eth" + - fec: "KPFEC" + id: "61" + lanes: "4:2" + serdes_group: "7" + speed: "100G" + sysport: "61" + type: "eth" + - fec: "KPFEC" + id: "63" + lanes: "6:2" + serdes_group: "7" + speed: "100G" + sysport: "63" + type: "eth" + - fec: "KPFEC" + id: "33" + lanes: "0:2" + serdes_group: "4" + speed: "100G" + sysport: "33" + type: "eth" + - fec: "KPFEC" + id: "35" + lanes: "2:2" + serdes_group: "4" + speed: "100G" + sysport: "35" + type: "eth" + - fec: "KPFEC" + id: "37" + lanes: "4:2" + serdes_group: "4" + speed: "100G" + sysport: "37" + type: "eth" + - fec: "KPFEC" + id: "39" + lanes: "6:2" + serdes_group: "4" + speed: "100G" + sysport: "39" + type: "eth" + - fec: "KPFEC" + id: "41" + lanes: "0:2" + serdes_group: "5" + speed: "100G" + sysport: "41" + type: "eth" + - fec: "KPFEC" + id: "43" + lanes: "2:2" + serdes_group: "5" + speed: "100G" + sysport: "43" + type: "eth" + - fec: "KPFEC" + id: "45" + lanes: "4:2" + serdes_group: "5" + speed: "100G" + sysport: "45" + type: "eth" + - fec: "KPFEC" + id: "47" + lanes: "6:2" + serdes_group: "5" + speed: "100G" + sysport: "47" + type: "eth" + - fec: "KPFEC" + id: "17" + lanes: "0:2" + serdes_group: "2" + speed: "100G" + sysport: "17" + type: "eth" + - fec: "KPFEC" + id: "19" + lanes: "2:2" + serdes_group: "2" + speed: "100G" + sysport: "19" + type: "eth" + - fec: "KPFEC" + id: "21" + lanes: "4:2" + serdes_group: "2" + speed: "100G" + sysport: "21" + type: "eth" + - fec: "KPFEC" + id: "23" + lanes: "6:2" + serdes_group: "2" + speed: "100G" + sysport: "23" + type: "eth" + - fec: "KPFEC" + id: "25" + lanes: "0:2" + serdes_group: "3" + speed: "100G" + sysport: "25" + type: "eth" + - fec: "KPFEC" + id: "27" + lanes: "2:2" + serdes_group: "3" + speed: "100G" + sysport: "27" + type: "eth" + - fec: "KPFEC" + id: "29" + lanes: "4:2" + serdes_group: "3" + speed: "100G" + sysport: "29" + type: "eth" + - fec: "KPFEC" + id: "31" + lanes: "6:2" + serdes_group: "3" + speed: "100G" + sysport: "31" + type: "eth" + - fec: "KPFEC" + id: "1" + lanes: "0:2" + serdes_group: "0" + speed: "100G" + sysport: "1" + type: "eth" + - fec: "KPFEC" + id: "3" + lanes: "2:2" + serdes_group: "0" + speed: "100G" + sysport: "3" + type: "eth" + - fec: "KPFEC" + id: "5" + lanes: "4:2" + serdes_group: "0" + speed: "100G" + sysport: "5" + type: "eth" + - fec: "KPFEC" + id: "7" + lanes: "6:2" + serdes_group: "0" + speed: "100G" + sysport: "7" + type: "eth" + - fec: "KPFEC" + id: "9" + lanes: "0:2" + serdes_group: "1" + speed: "100G" + sysport: "9" + type: "eth" + - fec: "KPFEC" + id: "11" + lanes: "2:2" + serdes_group: "1" + speed: "100G" + sysport: "11" + type: "eth" + - fec: "KPFEC" + id: "13" + lanes: "4:2" + serdes_group: "1" + speed: "100G" + sysport: "13" + type: "eth" + - fec: "KPFEC" + id: "15" + lanes: "6:2" + serdes_group: "1" + speed: "100G" + sysport: "15" + type: "eth" + - fec: "NONE" + id: "257" + lanes: "0:1" + serdes_group: "32" + speed: "10G" + sysport: "257" + type: "mgmt 0" + - fec: "NONE" + id: "258" + lanes: "1:1" + serdes_group: "32" + speed: "10G" + sysport: "258" + type: "mgmt 1" + + isg: + - id: "0" + tx_polarity: "01010101" + rx_polarity: "01100000" + lane_swap: "23641075" + - id: "1" + tx_polarity: "10110000" + rx_polarity: "11111111" + lane_swap: "64317520" + - id: "2" + tx_polarity: "00000000" + rx_polarity: "00000011" + lane_swap: "63147520" + - id: "3" + tx_polarity: "01101000" + rx_polarity: "00001110" + lane_swap: "31572046" + - id: "4" + tx_polarity: "00111000" + rx_polarity: "00001000" + lane_swap: "46105732" + - id: "5" + tx_polarity: "10111111" + rx_polarity: "11101000" + lane_swap: "27153604" + - id: "6" + tx_polarity: "01101110" + rx_polarity: "00001101" + lane_swap: "46503721" + - id: "7" + tx_polarity: "01000100" + rx_polarity: "10000101" + lane_swap: "03671245" + - id: "8" + tx_polarity: "01110101" + rx_polarity: "00010000" + lane_swap: "12640375" + - id: "9" + tx_polarity: "01011100" + rx_polarity: "11001111" + lane_swap: "02561347" + - id: "10" + tx_polarity: "01110110" + rx_polarity: "11000000" + lane_swap: "12740365" + - id: "11" + tx_polarity: "00111000" + rx_polarity: "00010111" + lane_swap: "01572436" + - id: "12" + tx_polarity: "00001111" + rx_polarity: "10111001" + lane_swap: "54320176" + - id: "13" + tx_polarity: "10011101" + rx_polarity: "00111011" + lane_swap: "26153704" + - id: "14" + tx_polarity: "00110000" + rx_polarity: "11010000" + lane_swap: "37452601" + - id: "15" + tx_polarity: "11100010" + rx_polarity: "01110011" + lane_swap: "51370462" + - id: "16" + tx_polarity: "10111010" + rx_polarity: "11010011" + lane_swap: "36152704" + - id: "17" + tx_polarity: "01011101" + rx_polarity: "00110001" + lane_swap: "45621073" + - id: "18" + tx_polarity: "11011111" + rx_polarity: "11001011" + lane_swap: "26143705" + - id: "19" + tx_polarity: "00100110" + rx_polarity: "00001001" + lane_swap: "42730165" + - id: "20" + tx_polarity: "10011011" + rx_polarity: "01101101" + lane_swap: "54217603" + - id: "21" + tx_polarity: "00101110" + rx_polarity: "10111111" + lane_swap: "26031745" + - id: "22" + tx_polarity: "01001110" + rx_polarity: "00111001" + lane_swap: "36024715" + - id: "23" + tx_polarity: "10101101" + rx_polarity: "01010011" + lane_swap: "45621370" + - id: "24" + tx_polarity: "11001110" + rx_polarity: "00011111" + lane_swap: "65234701" + - id: "25" + tx_polarity: "01110001" + rx_polarity: "01010111" + lane_swap: "37601452" + - id: "26" + tx_polarity: "01000100" + rx_polarity: "00001111" + lane_swap: "65034721" + - id: "27" + tx_polarity: "10111101" + rx_polarity: "11000101" + lane_swap: "34501672" + - id: "28" + tx_polarity: "01111000" + rx_polarity: "01110110" + lane_swap: "43061275" + - id: "29" + tx_polarity: "11110111" + rx_polarity: "11100111" + lane_swap: "57304621" + - id: "30" + tx_polarity: "10000100" + rx_polarity: "00101111" + lane_swap: "47125603" + - id: "31" + tx_polarity: "11111111" + rx_polarity: "11100010" + lane_swap: "13460275" + - id: "32" + tx_polarity: "00000000" + rx_polarity: "00000000" + lane_swap: "01234567" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/alt_cfg/port_config_aux.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/alt_cfg/port_config_aux.ini new file mode 100644 index 000000000000..b2e5a267f42d --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/alt_cfg/port_config_aux.ini @@ -0,0 +1,131 @@ +# name lanes alias speed index mtu +Ethernet0 249,250 Eth1/1 100000 0 9126 +Ethernet2 251,252 Eth1/2 100000 0 9126 +Ethernet4 253,254 Eth1/3 100000 0 9126 +Ethernet6 255,256 Eth1/4 100000 0 9126 +Ethernet8 241,242 Eth2/1 100000 1 9126 +Ethernet10 243,244 Eth2/2 100000 1 9126 +Ethernet12 245,246 Eth2/3 100000 1 9126 +Ethernet14 247,248 Eth2/4 100000 1 9126 +Ethernet16 233,234 Eth3/1 100000 2 9126 +Ethernet18 235,236 Eth3/2 100000 2 9126 +Ethernet20 237,238 Eth3/3 100000 2 9126 +Ethernet22 239,240 Eth3/4 100000 2 9126 +Ethernet24 225,226 Eth4/1 100000 3 9126 +Ethernet26 227,228 Eth4/2 100000 3 9126 +Ethernet28 229,230 Eth4/3 100000 3 9126 +Ethernet30 231,232 Eth4/4 100000 3 9126 +Ethernet32 217,218 Eth5/1 100000 4 9126 +Ethernet34 219,220 Eth5/2 100000 4 9126 +Ethernet36 221,222 Eth5/3 100000 4 9126 +Ethernet38 223,224 Eth5/4 100000 4 9126 +Ethernet40 209,210 Eth6/1 100000 5 9126 +Ethernet42 211,212 Eth6/2 100000 5 9126 +Ethernet44 213,214 Eth6/3 100000 5 9126 +Ethernet46 215,216 Eth6/4 100000 5 9126 +Ethernet48 201,202 Eth7/1 100000 6 9126 +Ethernet50 203,204 Eth7/2 100000 6 9126 +Ethernet52 205,206 Eth7/3 100000 6 9126 +Ethernet54 207,208 Eth7/4 100000 6 9126 +Ethernet56 193,194 Eth8/1 100000 7 9126 +Ethernet58 195,196 Eth8/2 100000 7 9126 +Ethernet60 197,198 Eth8/3 100000 7 9126 +Ethernet62 199,200 Eth8/4 100000 7 9126 +Ethernet64 185,186 Eth9/1 100000 8 9126 +Ethernet66 187,188 Eth9/2 100000 8 9126 +Ethernet68 189,190 Eth9/3 100000 8 9126 +Ethernet70 191,192 Eth9/4 100000 8 9126 +Ethernet72 177,178 Eth10/1 100000 9 9126 +Ethernet74 179,180 Eth10/2 100000 9 9126 +Ethernet76 181,182 Eth10/3 100000 9 9126 +Ethernet78 183,184 Eth10/4 100000 9 9126 +Ethernet80 169,170 Eth11/1 100000 10 9126 +Ethernet82 171,172 Eth11/2 100000 10 9126 +Ethernet84 173,174 Eth11/3 100000 10 9126 +Ethernet86 175,176 Eth11/4 100000 10 9126 +Ethernet88 161,162 Eth12/1 100000 11 9126 +Ethernet90 163,164 Eth12/2 100000 11 9126 +Ethernet92 165,166 Eth12/3 100000 11 9126 +Ethernet94 167,168 Eth12/4 100000 11 9126 +Ethernet96 153,154 Eth13/1 100000 12 9126 +Ethernet98 155,156 Eth13/2 100000 12 9126 +Ethernet100 157,158 Eth13/3 100000 12 9126 +Ethernet102 159,160 Eth13/4 100000 12 9126 +Ethernet104 145,146 Eth14/1 100000 13 9126 +Ethernet106 147,148 Eth14/2 100000 13 9126 +Ethernet108 149,150 Eth14/3 100000 13 9126 +Ethernet110 151,152 Eth14/4 100000 13 9126 +Ethernet112 137,138 Eth15/1 100000 14 9126 +Ethernet114 139,140 Eth15/2 100000 14 9126 +Ethernet116 141,142 Eth15/3 100000 14 9126 +Ethernet118 143,144 Eth15/4 100000 14 9126 +Ethernet120 129,130 Eth16/1 100000 15 9126 +Ethernet122 131,132 Eth16/2 100000 15 9126 +Ethernet124 133,134 Eth16/3 100000 15 9126 +Ethernet126 135,136 Eth16/4 100000 15 9126 +Ethernet128 121,122 Eth17/1 100000 16 9126 +Ethernet130 123,124 Eth17/2 100000 16 9126 +Ethernet132 125,126 Eth17/3 100000 16 9126 +Ethernet134 127,128 Eth17/4 100000 16 9126 +Ethernet136 113,114 Eth18/1 100000 17 9126 +Ethernet138 115,116 Eth18/2 100000 17 9126 +Ethernet140 117,118 Eth18/3 100000 17 9126 +Ethernet142 119,120 Eth18/4 100000 17 9126 +Ethernet144 97,98 Eth19/1 100000 18 9126 +Ethernet146 99,100 Eth19/2 100000 18 9126 +Ethernet148 101,102 Eth19/3 100000 18 9126 +Ethernet150 103,104 Eth19/4 100000 18 9126 +Ethernet152 105,106 Eth20/1 100000 19 9126 +Ethernet154 107,108 Eth20/2 100000 19 9126 +Ethernet156 109,110 Eth20/3 100000 19 9126 +Ethernet158 111,112 Eth20/4 100000 19 9126 +Ethernet160 81,82 Eth21/1 100000 20 9126 +Ethernet162 83,84 Eth21/2 100000 20 9126 +Ethernet164 85,86 Eth21/3 100000 20 9126 +Ethernet166 87,88 Eth21/4 100000 20 9126 +Ethernet168 89,90 Eth22/1 100000 21 9126 +Ethernet170 91,92 Eth22/2 100000 21 9126 +Ethernet172 93,94 Eth22/3 100000 21 9126 +Ethernet174 95,96 Eth22/4 100000 21 9126 +Ethernet176 65,66 Eth23/1 100000 22 9126 +Ethernet178 67,68 Eth23/2 100000 22 9126 +Ethernet180 69,70 Eth23/3 100000 22 9126 +Ethernet182 71,72 Eth23/4 100000 22 9126 +Ethernet184 73,74 Eth24/1 100000 23 9126 +Ethernet186 75,76 Eth24/2 100000 23 9126 +Ethernet188 77,78 Eth24/3 100000 23 9126 +Ethernet190 79,80 Eth24/4 100000 23 9126 +Ethernet192 49,50 Eth25/1 100000 24 9126 +Ethernet194 51,52 Eth25/2 100000 24 9126 +Ethernet196 53,54 Eth25/3 100000 24 9126 +Ethernet198 55,56 Eth25/4 100000 24 9126 +Ethernet200 57,58 Eth26/1 100000 25 9126 +Ethernet202 59,60 Eth26/2 100000 25 9126 +Ethernet204 61,62 Eth26/3 100000 25 9126 +Ethernet206 63,64 Eth26/4 100000 25 9126 +Ethernet208 33,34 Eth27/1 100000 26 9126 +Ethernet210 35,36 Eth27/2 100000 26 9126 +Ethernet212 37,38 Eth27/3 100000 26 9126 +Ethernet214 39,40 Eth27/4 100000 26 9126 +Ethernet216 41,42 Eth28/1 100000 27 9126 +Ethernet218 43,44 Eth28/2 100000 27 9126 +Ethernet220 45,46 Eth28/3 100000 27 9126 +Ethernet222 47,48 Eth28/4 100000 27 9126 +Ethernet224 17,18 Eth29/1 100000 28 9126 +Ethernet226 19,20 Eth29/2 100000 28 9126 +Ethernet228 21,22 Eth29/3 100000 28 9126 +Ethernet230 23,24 Eth29/4 100000 28 9126 +Ethernet232 25,26 Eth30/1 100000 29 9126 +Ethernet234 27,28 Eth30/2 100000 29 9126 +Ethernet236 29,30 Eth30/3 100000 29 9126 +Ethernet238 31,32 Eth30/4 100000 29 9126 +Ethernet240 1,2 Eth31/1 100000 30 9126 +Ethernet242 3,4 Eth31/2 100000 30 9126 +Ethernet244 5,6 Eth31/3 100000 30 9126 +Ethernet246 7,8 Eth31/4 100000 30 9126 +Ethernet248 9,10 Eth32/1 100000 31 9126 +Ethernet250 11,12 Eth32/2 100000 31 9126 +Ethernet252 13,14 Eth32/3 100000 31 9126 +Ethernet254 15,16 Eth32/4 100000 31 9126 +Ethernet256 257 Aux1 10000 32 9126 +Ethernet257 258 Aux2 10000 33 9126 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/buffers.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/buffers.json.j2 index 9529fbf52fb5..ada7dca895ce 100644 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/buffers.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 128 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*2)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/buffers_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/buffers_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/config_128x100G_Delta-et-c032if.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/config_128x100G_Delta-et-c032if.yaml index ad50fd04c2a0..61e01852e18d 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/config_128x100G_Delta-et-c032if.yaml +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/config_128x100G_Delta-et-c032if.yaml @@ -10,6 +10,8 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" @@ -952,20 +954,6 @@ nodes: speed: "100G" sysport: "15" type: "eth" - - fec: "NONE" - id: "257" - lanes: "0:1" - serdes_group: "32" - speed: "10G" - sysport: "257" - type: "mgmt 0" - - fec: "NONE" - id: "258" - lanes: "1:1" - serdes_group: "32" - speed: "10G" - sysport: "258" - type: "mgmt 1" isg: - id: "0" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/ivm.sai.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/ivm.sai.config.yaml new file mode 100755 index 000000000000..fdc892f31572 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_128x100G_Delta-et-c032if.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/ivm.sai.datapath.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/pg_profile_lookup.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/port_config.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/port_config.ini index cd4dbc611ec1..271caf81886d 100644 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/port_config.ini +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/port_config.ini @@ -1,131 +1,129 @@ -# name lanes speed index mtu -Ethernet0 249,250 100000 0 9126 -Ethernet2 251,252 100000 0 9126 -Ethernet4 253,254 100000 0 9126 -Ethernet6 255,256 100000 0 9126 -Ethernet8 241,242 100000 1 9126 -Ethernet10 243,244 100000 1 9126 -Ethernet12 245,246 100000 1 9126 -Ethernet14 247,248 100000 1 9126 -Ethernet16 233,234 100000 2 9126 -Ethernet18 235,236 100000 2 9126 -Ethernet20 237,238 100000 2 9126 -Ethernet22 239,240 100000 2 9126 -Ethernet24 225,226 100000 3 9126 -Ethernet26 227,228 100000 3 9126 -Ethernet28 229,230 100000 3 9126 -Ethernet30 231,232 100000 3 9126 -Ethernet32 217,218 100000 4 9126 -Ethernet34 219,220 100000 4 9126 -Ethernet36 221,222 100000 4 9126 -Ethernet38 223,224 100000 4 9126 -Ethernet40 209,210 100000 5 9126 -Ethernet42 211,212 100000 5 9126 -Ethernet44 213,214 100000 5 9126 -Ethernet46 215,216 100000 5 9126 -Ethernet48 201,202 100000 6 9126 -Ethernet50 203,204 100000 6 9126 -Ethernet52 205,206 100000 6 9126 -Ethernet54 207,208 100000 6 9126 -Ethernet56 193,194 100000 7 9126 -Ethernet58 195,196 100000 7 9126 -Ethernet60 197,198 100000 7 9126 -Ethernet62 199,200 100000 7 9126 -Ethernet64 185,186 100000 8 9126 -Ethernet66 187,188 100000 8 9126 -Ethernet68 189,190 100000 8 9126 -Ethernet70 191,192 100000 8 9126 -Ethernet72 177,178 100000 9 9126 -Ethernet74 179,180 100000 9 9126 -Ethernet76 181,182 100000 9 9126 -Ethernet78 183,184 100000 9 9126 -Ethernet80 169,170 100000 10 9126 -Ethernet82 171,172 100000 10 9126 -Ethernet84 173,174 100000 10 9126 -Ethernet86 175,176 100000 10 9126 -Ethernet88 161,162 100000 11 9126 -Ethernet90 163,164 100000 11 9126 -Ethernet92 165,166 100000 11 9126 -Ethernet94 167,168 100000 11 9126 -Ethernet96 153,154 100000 12 9126 -Ethernet98 155,156 100000 12 9126 -Ethernet100 157,158 100000 12 9126 -Ethernet102 159,160 100000 12 9126 -Ethernet104 145,146 100000 13 9126 -Ethernet106 147,148 100000 13 9126 -Ethernet108 149,150 100000 13 9126 -Ethernet110 151,152 100000 13 9126 -Ethernet112 137,138 100000 14 9126 -Ethernet114 139,140 100000 14 9126 -Ethernet116 141,142 100000 14 9126 -Ethernet118 143,144 100000 14 9126 -Ethernet120 129,130 100000 15 9126 -Ethernet122 131,132 100000 15 9126 -Ethernet124 133,134 100000 15 9126 -Ethernet126 135,136 100000 15 9126 -Ethernet128 121,122 100000 16 9126 -Ethernet130 123,124 100000 16 9126 -Ethernet132 125,126 100000 16 9126 -Ethernet134 127,128 100000 16 9126 -Ethernet136 113,114 100000 17 9126 -Ethernet138 115,116 100000 17 9126 -Ethernet140 117,118 100000 17 9126 -Ethernet142 119,120 100000 17 9126 -Ethernet144 97,98 100000 18 9126 -Ethernet146 99,100 100000 18 9126 -Ethernet148 101,102 100000 18 9126 -Ethernet150 103,104 100000 18 9126 -Ethernet152 105,106 100000 19 9126 -Ethernet154 107,108 100000 19 9126 -Ethernet156 109,110 100000 19 9126 -Ethernet158 111,112 100000 19 9126 -Ethernet160 81,82 100000 20 9126 -Ethernet162 83,84 100000 20 9126 -Ethernet164 85,86 100000 20 9126 -Ethernet166 87,88 100000 20 9126 -Ethernet168 89,90 100000 21 9126 -Ethernet170 91,92 100000 21 9126 -Ethernet172 93,94 100000 21 9126 -Ethernet174 95,96 100000 21 9126 -Ethernet176 65,66 100000 22 9126 -Ethernet178 67,68 100000 22 9126 -Ethernet180 69,70 100000 22 9126 -Ethernet182 71,72 100000 22 9126 -Ethernet184 73,74 100000 23 9126 -Ethernet186 75,76 100000 23 9126 -Ethernet188 77,78 100000 23 9126 -Ethernet190 79,80 100000 23 9126 -Ethernet192 49,50 100000 24 9126 -Ethernet194 51,52 100000 24 9126 -Ethernet196 53,54 100000 24 9126 -Ethernet198 55,56 100000 24 9126 -Ethernet200 57,58 100000 25 9126 -Ethernet202 59,60 100000 25 9126 -Ethernet204 61,62 100000 25 9126 -Ethernet206 63,64 100000 25 9126 -Ethernet208 33,34 100000 26 9126 -Ethernet210 35,36 100000 26 9126 -Ethernet212 37,38 100000 26 9126 -Ethernet214 39,40 100000 26 9126 -Ethernet216 41,42 100000 27 9126 -Ethernet218 43,44 100000 27 9126 -Ethernet220 45,46 100000 27 9126 -Ethernet222 47,48 100000 27 9126 -Ethernet224 17,18 100000 28 9126 -Ethernet226 19,20 100000 28 9126 -Ethernet228 21,22 100000 28 9126 -Ethernet230 23,24 100000 28 9126 -Ethernet232 25,26 100000 29 9126 -Ethernet234 27,28 100000 29 9126 -Ethernet236 29,30 100000 29 9126 -Ethernet238 31,32 100000 29 9126 -Ethernet240 1,2 100000 30 9126 -Ethernet242 3,4 100000 30 9126 -Ethernet244 5,6 100000 30 9126 -Ethernet246 7,8 100000 30 9126 -Ethernet248 9,10 100000 31 9126 -Ethernet250 11,12 100000 31 9126 -Ethernet252 13,14 100000 31 9126 -Ethernet254 15,16 100000 31 9126 -Ethernet256 257 10000 32 9126 -Ethernet257 258 10000 33 9126 +# name lanes alias speed index mtu +Ethernet0 249,250 Eth1/1 100000 0 9126 +Ethernet2 251,252 Eth1/2 100000 0 9126 +Ethernet4 253,254 Eth1/3 100000 0 9126 +Ethernet6 255,256 Eth1/4 100000 0 9126 +Ethernet8 241,242 Eth2/1 100000 1 9126 +Ethernet10 243,244 Eth2/2 100000 1 9126 +Ethernet12 245,246 Eth2/3 100000 1 9126 +Ethernet14 247,248 Eth2/4 100000 1 9126 +Ethernet16 233,234 Eth3/1 100000 2 9126 +Ethernet18 235,236 Eth3/2 100000 2 9126 +Ethernet20 237,238 Eth3/3 100000 2 9126 +Ethernet22 239,240 Eth3/4 100000 2 9126 +Ethernet24 225,226 Eth4/1 100000 3 9126 +Ethernet26 227,228 Eth4/2 100000 3 9126 +Ethernet28 229,230 Eth4/3 100000 3 9126 +Ethernet30 231,232 Eth4/4 100000 3 9126 +Ethernet32 217,218 Eth5/1 100000 4 9126 +Ethernet34 219,220 Eth5/2 100000 4 9126 +Ethernet36 221,222 Eth5/3 100000 4 9126 +Ethernet38 223,224 Eth5/4 100000 4 9126 +Ethernet40 209,210 Eth6/1 100000 5 9126 +Ethernet42 211,212 Eth6/2 100000 5 9126 +Ethernet44 213,214 Eth6/3 100000 5 9126 +Ethernet46 215,216 Eth6/4 100000 5 9126 +Ethernet48 201,202 Eth7/1 100000 6 9126 +Ethernet50 203,204 Eth7/2 100000 6 9126 +Ethernet52 205,206 Eth7/3 100000 6 9126 +Ethernet54 207,208 Eth7/4 100000 6 9126 +Ethernet56 193,194 Eth8/1 100000 7 9126 +Ethernet58 195,196 Eth8/2 100000 7 9126 +Ethernet60 197,198 Eth8/3 100000 7 9126 +Ethernet62 199,200 Eth8/4 100000 7 9126 +Ethernet64 185,186 Eth9/1 100000 8 9126 +Ethernet66 187,188 Eth9/2 100000 8 9126 +Ethernet68 189,190 Eth9/3 100000 8 9126 +Ethernet70 191,192 Eth9/4 100000 8 9126 +Ethernet72 177,178 Eth10/1 100000 9 9126 +Ethernet74 179,180 Eth10/2 100000 9 9126 +Ethernet76 181,182 Eth10/3 100000 9 9126 +Ethernet78 183,184 Eth10/4 100000 9 9126 +Ethernet80 169,170 Eth11/1 100000 10 9126 +Ethernet82 171,172 Eth11/2 100000 10 9126 +Ethernet84 173,174 Eth11/3 100000 10 9126 +Ethernet86 175,176 Eth11/4 100000 10 9126 +Ethernet88 161,162 Eth12/1 100000 11 9126 +Ethernet90 163,164 Eth12/2 100000 11 9126 +Ethernet92 165,166 Eth12/3 100000 11 9126 +Ethernet94 167,168 Eth12/4 100000 11 9126 +Ethernet96 153,154 Eth13/1 100000 12 9126 +Ethernet98 155,156 Eth13/2 100000 12 9126 +Ethernet100 157,158 Eth13/3 100000 12 9126 +Ethernet102 159,160 Eth13/4 100000 12 9126 +Ethernet104 145,146 Eth14/1 100000 13 9126 +Ethernet106 147,148 Eth14/2 100000 13 9126 +Ethernet108 149,150 Eth14/3 100000 13 9126 +Ethernet110 151,152 Eth14/4 100000 13 9126 +Ethernet112 137,138 Eth15/1 100000 14 9126 +Ethernet114 139,140 Eth15/2 100000 14 9126 +Ethernet116 141,142 Eth15/3 100000 14 9126 +Ethernet118 143,144 Eth15/4 100000 14 9126 +Ethernet120 129,130 Eth16/1 100000 15 9126 +Ethernet122 131,132 Eth16/2 100000 15 9126 +Ethernet124 133,134 Eth16/3 100000 15 9126 +Ethernet126 135,136 Eth16/4 100000 15 9126 +Ethernet128 121,122 Eth17/1 100000 16 9126 +Ethernet130 123,124 Eth17/2 100000 16 9126 +Ethernet132 125,126 Eth17/3 100000 16 9126 +Ethernet134 127,128 Eth17/4 100000 16 9126 +Ethernet136 113,114 Eth18/1 100000 17 9126 +Ethernet138 115,116 Eth18/2 100000 17 9126 +Ethernet140 117,118 Eth18/3 100000 17 9126 +Ethernet142 119,120 Eth18/4 100000 17 9126 +Ethernet144 97,98 Eth19/1 100000 18 9126 +Ethernet146 99,100 Eth19/2 100000 18 9126 +Ethernet148 101,102 Eth19/3 100000 18 9126 +Ethernet150 103,104 Eth19/4 100000 18 9126 +Ethernet152 105,106 Eth20/1 100000 19 9126 +Ethernet154 107,108 Eth20/2 100000 19 9126 +Ethernet156 109,110 Eth20/3 100000 19 9126 +Ethernet158 111,112 Eth20/4 100000 19 9126 +Ethernet160 81,82 Eth21/1 100000 20 9126 +Ethernet162 83,84 Eth21/2 100000 20 9126 +Ethernet164 85,86 Eth21/3 100000 20 9126 +Ethernet166 87,88 Eth21/4 100000 20 9126 +Ethernet168 89,90 Eth22/1 100000 21 9126 +Ethernet170 91,92 Eth22/2 100000 21 9126 +Ethernet172 93,94 Eth22/3 100000 21 9126 +Ethernet174 95,96 Eth22/4 100000 21 9126 +Ethernet176 65,66 Eth23/1 100000 22 9126 +Ethernet178 67,68 Eth23/2 100000 22 9126 +Ethernet180 69,70 Eth23/3 100000 22 9126 +Ethernet182 71,72 Eth23/4 100000 22 9126 +Ethernet184 73,74 Eth24/1 100000 23 9126 +Ethernet186 75,76 Eth24/2 100000 23 9126 +Ethernet188 77,78 Eth24/3 100000 23 9126 +Ethernet190 79,80 Eth24/4 100000 23 9126 +Ethernet192 49,50 Eth25/1 100000 24 9126 +Ethernet194 51,52 Eth25/2 100000 24 9126 +Ethernet196 53,54 Eth25/3 100000 24 9126 +Ethernet198 55,56 Eth25/4 100000 24 9126 +Ethernet200 57,58 Eth26/1 100000 25 9126 +Ethernet202 59,60 Eth26/2 100000 25 9126 +Ethernet204 61,62 Eth26/3 100000 25 9126 +Ethernet206 63,64 Eth26/4 100000 25 9126 +Ethernet208 33,34 Eth27/1 100000 26 9126 +Ethernet210 35,36 Eth27/2 100000 26 9126 +Ethernet212 37,38 Eth27/3 100000 26 9126 +Ethernet214 39,40 Eth27/4 100000 26 9126 +Ethernet216 41,42 Eth28/1 100000 27 9126 +Ethernet218 43,44 Eth28/2 100000 27 9126 +Ethernet220 45,46 Eth28/3 100000 27 9126 +Ethernet222 47,48 Eth28/4 100000 27 9126 +Ethernet224 17,18 Eth29/1 100000 28 9126 +Ethernet226 19,20 Eth29/2 100000 28 9126 +Ethernet228 21,22 Eth29/3 100000 28 9126 +Ethernet230 23,24 Eth29/4 100000 28 9126 +Ethernet232 25,26 Eth30/1 100000 29 9126 +Ethernet234 27,28 Eth30/2 100000 29 9126 +Ethernet236 29,30 Eth30/3 100000 29 9126 +Ethernet238 31,32 Eth30/4 100000 29 9126 +Ethernet240 1,2 Eth31/1 100000 30 9126 +Ethernet242 3,4 Eth31/2 100000 30 9126 +Ethernet244 5,6 Eth31/3 100000 30 9126 +Ethernet246 7,8 Eth31/4 100000 30 9126 +Ethernet248 9,10 Eth32/1 100000 31 9126 +Ethernet250 11,12 Eth32/2 100000 31 9126 +Ethernet252 13,14 Eth32/3 100000 31 9126 +Ethernet254 15,16 Eth32/4 100000 31 9126 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/qos.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/qos.json.j2 index 733bd51dc86f..3938fc1a05c4 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/qos.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 128 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*2)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -111,10 +100,15 @@ }, "PORT_QOS_MAP": { "{{ port_names }}": { - "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", - "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/qos_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/qos_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/sai.profile b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/sai.profile +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_128x100/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/buffers.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/buffers.json.j2 index 4fca9cbcd156..ada7dca895ce 100644 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/buffers.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 32 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/buffers_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/buffers_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/config_32x100G_Delta-et-c032if.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/config_32x100G_Delta-et-c032if.yaml index 4b4f02da4895..d6319406d116 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/config_32x100G_Delta-et-c032if.yaml +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/config_32x100G_Delta-et-c032if.yaml @@ -10,6 +10,8 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/ivm.sai.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/ivm.sai.config.yaml new file mode 100755 index 000000000000..6c5b9018195a --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_32x100G_Delta-et-c032if.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/ivm.sai.datapath.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/pg_profile_lookup.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/port_config.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/port_config.ini index 45fbfd346c9f..f905242d9a0c 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/port_config.ini +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/port_config.ini @@ -1,33 +1,33 @@ -# name lanes speed index mtu fec -Ethernet0 249,250,251,252 100000 0 9126 rs -Ethernet8 241,242,243,244 100000 1 9126 rs -Ethernet16 233,234,235,236 100000 2 9126 rs -Ethernet24 225,226,227,228 100000 3 9126 rs -Ethernet32 217,218,219,220 100000 4 9126 rs -Ethernet40 209,210,211,212 100000 5 9126 rs -Ethernet48 201,202,203,204 100000 6 9126 rs -Ethernet56 193,194,195,196 100000 7 9126 rs -Ethernet64 185,186,187,188 100000 8 9126 rs -Ethernet72 177,178,179,180 100000 9 9126 rs -Ethernet80 169,170,171,172 100000 10 9126 rs -Ethernet88 161,162,163,164 100000 11 9126 rs -Ethernet96 153,154,155,156 100000 12 9126 rs -Ethernet104 145,146,147,148 100000 13 9126 rs -Ethernet112 137,138,139,140 100000 14 9126 rs -Ethernet120 129,130,131,132 100000 15 9126 rs -Ethernet128 121,122,123,124 100000 16 9126 rs -Ethernet136 113,114,115,116 100000 17 9126 rs -Ethernet144 97,98,99,100 100000 18 9126 rs -Ethernet152 105,106,107,108 100000 19 9126 rs -Ethernet160 81,82,83,84 100000 20 9126 rs -Ethernet168 89,90,91,92 100000 21 9126 rs -Ethernet176 65,66,67,68 100000 22 9126 rs -Ethernet184 73,74,75,76 100000 23 9126 rs -Ethernet192 49,50,51,52 100000 24 9126 rs -Ethernet200 57,58,59,60 100000 25 9126 rs -Ethernet208 33,34,35,36 100000 26 9126 rs -Ethernet216 41,42,43,44 100000 27 9126 rs -Ethernet224 17,18,19,20 100000 28 9126 rs -Ethernet232 25,26,27,28 100000 29 9126 rs -Ethernet240 1,2,3,4 100000 30 9126 rs -Ethernet248 9,10,11,12 100000 31 9126 rs +# name lanes alias speed index mtu fec +Ethernet0 249,250,251,252 Eth1 100000 0 9126 rs +Ethernet8 241,242,243,244 Eth2 100000 1 9126 rs +Ethernet16 233,234,235,236 Eth3 100000 2 9126 rs +Ethernet24 225,226,227,228 Eth4 100000 3 9126 rs +Ethernet32 217,218,219,220 Eth5 100000 4 9126 rs +Ethernet40 209,210,211,212 Eth6 100000 5 9126 rs +Ethernet48 201,202,203,204 Eth7 100000 6 9126 rs +Ethernet56 193,194,195,196 Eth8 100000 7 9126 rs +Ethernet64 185,186,187,188 Eth9 100000 8 9126 rs +Ethernet72 177,178,179,180 Eth10 100000 9 9126 rs +Ethernet80 169,170,171,172 Eth11 100000 10 9126 rs +Ethernet88 161,162,163,164 Eth12 100000 11 9126 rs +Ethernet96 153,154,155,156 Eth13 100000 12 9126 rs +Ethernet104 145,146,147,148 Eth14 100000 13 9126 rs +Ethernet112 137,138,139,140 Eth15 100000 14 9126 rs +Ethernet120 129,130,131,132 Eth16 100000 15 9126 rs +Ethernet128 121,122,123,124 Eth17 100000 16 9126 rs +Ethernet136 113,114,115,116 Eth18 100000 17 9126 rs +Ethernet144 97,98,99,100 Eth19 100000 18 9126 rs +Ethernet152 105,106,107,108 Eth20 100000 19 9126 rs +Ethernet160 81,82,83,84 Eth21 100000 20 9126 rs +Ethernet168 89,90,91,92 Eth22 100000 21 9126 rs +Ethernet176 65,66,67,68 Eth23 100000 22 9126 rs +Ethernet184 73,74,75,76 Eth24 100000 23 9126 rs +Ethernet192 49,50,51,52 Eth25 100000 24 9126 rs +Ethernet200 57,58,59,60 Eth26 100000 25 9126 rs +Ethernet208 33,34,35,36 Eth27 100000 26 9126 rs +Ethernet216 41,42,43,44 Eth28 100000 27 9126 rs +Ethernet224 17,18,19,20 Eth29 100000 28 9126 rs +Ethernet232 25,26,27,28 Eth30 100000 29 9126 rs +Ethernet240 1,2,3,4 Eth31 100000 30 9126 rs +Ethernet248 9,10,11,12 Eth32 100000 31 9126 rs diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/qos.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/qos.json.j2 index 6c734d46ff2f..3938fc1a05c4 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/qos.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 32 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -114,7 +103,12 @@ "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/qos_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/qos_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/sai.profile b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/sai.profile +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x100/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/alt_cfg/config_32x200G_Delta-et-c032if_aux.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/alt_cfg/config_32x200G_Delta-et-c032if_aux.yaml new file mode 100755 index 000000000000..0a76811110e8 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/alt_cfg/config_32x200G_Delta-et-c032if_aux.yaml @@ -0,0 +1,429 @@ +ifcs: + options: + log_level: "info" +nodes: +- node_id: "0" + options: + sku: "configs/sku/innovium.77700_B" + netdev: + - auto_create: "no" + multi_interface: "yes" + buffer_management_mode: "api_driven" + max_lossless_tc: "2" + txring: + - txring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + rxring: + - rxring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44" + - rxring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45" + - rxring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46" + - rxring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47" + sys_clk: "1720" + ifc_clk: "1200" + mac_clk: "1340" + + devports: + - id: "0" + sysport: "1000" + type: "cpu" + - fec: "KPFEC" + id: "249" + lanes: "0:4" + serdes_group: "31" + speed: "200G" + sysport: "249" + type: "eth" + - fec: "KPFEC" + id: "241" + lanes: "0:4" + serdes_group: "30" + speed: "200G" + sysport: "241" + type: "eth" + - fec: "KPFEC" + id: "233" + lanes: "0:4" + serdes_group: "29" + speed: "200G" + sysport: "233" + type: "eth" + - fec: "KPFEC" + id: "225" + lanes: "0:4" + serdes_group: "28" + speed: "200G" + sysport: "225" + type: "eth" + - fec: "KPFEC" + id: "217" + lanes: "0:4" + serdes_group: "27" + speed: "200G" + sysport: "217" + type: "eth" + - fec: "KPFEC" + id: "209" + lanes: "0:4" + serdes_group: "26" + speed: "200G" + sysport: "209" + type: "eth" + - fec: "KPFEC" + id: "201" + lanes: "0:4" + serdes_group: "25" + speed: "200G" + sysport: "201" + type: "eth" + - fec: "KPFEC" + id: "193" + lanes: "0:4" + serdes_group: "24" + speed: "200G" + sysport: "193" + type: "eth" + - fec: "KPFEC" + id: "185" + lanes: "0:4" + serdes_group: "23" + speed: "200G" + sysport: "185" + type: "eth" + - fec: "KPFEC" + id: "177" + lanes: "0:4" + serdes_group: "22" + speed: "200G" + sysport: "177" + type: "eth" + - fec: "KPFEC" + id: "169" + lanes: "0:4" + serdes_group: "21" + speed: "200G" + sysport: "169" + type: "eth" + - fec: "KPFEC" + id: "161" + lanes: "0:4" + serdes_group: "20" + speed: "200G" + sysport: "161" + type: "eth" + - fec: "KPFEC" + id: "153" + lanes: "0:4" + serdes_group: "19" + speed: "200G" + sysport: "153" + type: "eth" + - fec: "KPFEC" + id: "145" + lanes: "0:4" + serdes_group: "18" + speed: "200G" + sysport: "145" + type: "eth" + - fec: "KPFEC" + id: "137" + lanes: "0:4" + serdes_group: "17" + speed: "200G" + sysport: "137" + type: "eth" + - fec: "KPFEC" + id: "129" + lanes: "0:4" + serdes_group: "16" + speed: "200G" + sysport: "129" + type: "eth" + - fec: "KPFEC" + id: "121" + lanes: "0:4" + serdes_group: "15" + speed: "200G" + sysport: "121" + type: "eth" + - fec: "KPFEC" + id: "113" + lanes: "0:4" + serdes_group: "14" + speed: "200G" + sysport: "113" + type: "eth" + - fec: "KPFEC" + id: "97" + lanes: "0:4" + serdes_group: "12" + speed: "200G" + sysport: "97" + type: "eth" + - fec: "KPFEC" + id: "105" + lanes: "0:4" + serdes_group: "13" + speed: "200G" + sysport: "105" + type: "eth" + - fec: "KPFEC" + id: "81" + lanes: "0:4" + serdes_group: "10" + speed: "200G" + sysport: "81" + type: "eth" + - fec: "KPFEC" + id: "89" + lanes: "0:4" + serdes_group: "11" + speed: "200G" + sysport: "89" + type: "eth" + - fec: "KPFEC" + id: "65" + lanes: "0:4" + serdes_group: "8" + speed: "200G" + sysport: "65" + type: "eth" + - fec: "KPFEC" + id: "73" + lanes: "0:4" + serdes_group: "9" + speed: "200G" + sysport: "73" + type: "eth" + - fec: "KPFEC" + id: "49" + lanes: "0:4" + serdes_group: "6" + speed: "200G" + sysport: "49" + type: "eth" + - fec: "KPFEC" + id: "57" + lanes: "0:4" + serdes_group: "7" + speed: "200G" + sysport: "57" + type: "eth" + - fec: "KPFEC" + id: "33" + lanes: "0:4" + serdes_group: "4" + speed: "200G" + sysport: "33" + type: "eth" + - fec: "KPFEC" + id: "41" + lanes: "0:4" + serdes_group: "5" + speed: "200G" + sysport: "41" + type: "eth" + - fec: "KPFEC" + id: "17" + lanes: "0:4" + serdes_group: "2" + speed: "200G" + sysport: "17" + type: "eth" + - fec: "KPFEC" + id: "25" + lanes: "0:4" + serdes_group: "3" + speed: "200G" + sysport: "25" + type: "eth" + - fec: "KPFEC" + id: "1" + lanes: "0:4" + serdes_group: "0" + speed: "200G" + sysport: "1" + type: "eth" + - fec: "KPFEC" + id: "9" + lanes: "0:4" + serdes_group: "1" + speed: "200G" + sysport: "9" + type: "eth" + - fec: "NONE" + id: "257" + lanes: "0:1" + serdes_group: "32" + speed: "10G" + sysport: "257" + type: "mgmt 0" + - fec: "NONE" + id: "258" + lanes: "1:1" + serdes_group: "32" + speed: "10G" + sysport: "258" + type: "mgmt 1" + isg: + - id: "0" + tx_polarity: "01010101" + rx_polarity: "01100000" + lane_swap: "23641075" + - id: "1" + tx_polarity: "10110000" + rx_polarity: "11111111" + lane_swap: "64317520" + - id: "2" + tx_polarity: "00000000" + rx_polarity: "00000011" + lane_swap: "63147520" + - id: "3" + tx_polarity: "01101000" + rx_polarity: "00001110" + lane_swap: "31572046" + - id: "4" + tx_polarity: "00111000" + rx_polarity: "00001000" + lane_swap: "46105732" + - id: "5" + tx_polarity: "10111111" + rx_polarity: "11101000" + lane_swap: "27153604" + - id: "6" + tx_polarity: "01101110" + rx_polarity: "00001101" + lane_swap: "46503721" + - id: "7" + tx_polarity: "01000100" + rx_polarity: "10000101" + lane_swap: "03671245" + - id: "8" + tx_polarity: "01110101" + rx_polarity: "00010000" + lane_swap: "12640375" + - id: "9" + tx_polarity: "01011100" + rx_polarity: "11001111" + lane_swap: "02561347" + - id: "10" + tx_polarity: "01110110" + rx_polarity: "11000000" + lane_swap: "12740365" + - id: "11" + tx_polarity: "00111000" + rx_polarity: "00010111" + lane_swap: "01572436" + - id: "12" + tx_polarity: "00001111" + rx_polarity: "10111001" + lane_swap: "54320176" + - id: "13" + tx_polarity: "10011101" + rx_polarity: "00111011" + lane_swap: "26153704" + - id: "14" + tx_polarity: "00110000" + rx_polarity: "11010000" + lane_swap: "37452601" + - id: "15" + tx_polarity: "11100010" + rx_polarity: "01110011" + lane_swap: "51370462" + - id: "16" + tx_polarity: "10111010" + rx_polarity: "11010011" + lane_swap: "36152704" + - id: "17" + tx_polarity: "01011101" + rx_polarity: "00110001" + lane_swap: "45621073" + - id: "18" + tx_polarity: "11011111" + rx_polarity: "11001011" + lane_swap: "26143705" + - id: "19" + tx_polarity: "00100110" + rx_polarity: "00001001" + lane_swap: "42730165" + - id: "20" + tx_polarity: "10011011" + rx_polarity: "01101101" + lane_swap: "54217603" + - id: "21" + tx_polarity: "00101110" + rx_polarity: "10111111" + lane_swap: "26031745" + - id: "22" + tx_polarity: "01001110" + rx_polarity: "00111001" + lane_swap: "36024715" + - id: "23" + tx_polarity: "10101101" + rx_polarity: "01010011" + lane_swap: "45621370" + - id: "24" + tx_polarity: "11001110" + rx_polarity: "00011111" + lane_swap: "65234701" + - id: "25" + tx_polarity: "01110001" + rx_polarity: "01010111" + lane_swap: "37601452" + - id: "26" + tx_polarity: "01000100" + rx_polarity: "00001111" + lane_swap: "65034721" + - id: "27" + tx_polarity: "10111101" + rx_polarity: "11000101" + lane_swap: "34501672" + - id: "28" + tx_polarity: "01111000" + rx_polarity: "01110110" + lane_swap: "43061275" + - id: "29" + tx_polarity: "11110111" + rx_polarity: "11100111" + lane_swap: "57304621" + - id: "30" + tx_polarity: "10000100" + rx_polarity: "00101111" + lane_swap: "47125603" + - id: "31" + tx_polarity: "11111111" + rx_polarity: "11100010" + lane_swap: "13460275" + - id: "32" + tx_polarity: "00000000" + rx_polarity: "00000000" + lane_swap: "01234567" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/alt_cfg/port_config_aux.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/alt_cfg/port_config_aux.ini new file mode 100755 index 000000000000..ab7873fb07d0 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/alt_cfg/port_config_aux.ini @@ -0,0 +1,35 @@ +# name lanes alias speed index mtu fec +Ethernet0 249,250,251,252 Eth1 200000 0 9126 rs +Ethernet8 241,242,243,244 Eth2 200000 1 9126 rs +Ethernet16 233,234,235,236 Eth3 200000 2 9126 rs +Ethernet24 225,226,227,228 Eth4 200000 3 9126 rs +Ethernet32 217,218,219,220 Eth5 200000 4 9126 rs +Ethernet40 209,210,211,212 Eth6 200000 5 9126 rs +Ethernet48 201,202,203,204 Eth7 200000 6 9126 rs +Ethernet56 193,194,195,196 Eth8 200000 7 9126 rs +Ethernet64 185,186,187,188 Eth9 200000 8 9126 rs +Ethernet72 177,178,179,180 Eth10 200000 9 9126 rs +Ethernet80 169,170,171,172 Eth11 200000 10 9126 rs +Ethernet88 161,162,163,164 Eth12 200000 11 9126 rs +Ethernet96 153,154,155,156 Eth13 200000 12 9126 rs +Ethernet104 145,146,147,148 Eth14 200000 13 9126 rs +Ethernet112 137,138,139,140 Eth15 200000 14 9126 rs +Ethernet120 129,130,131,132 Eth16 200000 15 9126 rs +Ethernet128 121,122,123,124 Eth17 200000 16 9126 rs +Ethernet136 113,114,115,116 Eth18 200000 17 9126 rs +Ethernet144 97,98,99,100 Eth19 200000 18 9126 rs +Ethernet152 105,106,107,108 Eth20 200000 19 9126 rs +Ethernet160 81,82,83,84 Eth21 200000 20 9126 rs +Ethernet168 89,90,91,92 Eth22 200000 21 9126 rs +Ethernet176 65,66,67,68 Eth23 200000 22 9126 rs +Ethernet184 73,74,75,76 Eth24 200000 23 9126 rs +Ethernet192 49,50,51,52 Eth25 200000 24 9126 rs +Ethernet200 57,58,59,60 Eth26 200000 25 9126 rs +Ethernet208 33,34,35,36 Eth27 200000 26 9126 rs +Ethernet216 41,42,43,44 Eth28 200000 27 9126 rs +Ethernet224 17,18,19,20 Eth29 200000 28 9126 rs +Ethernet232 25,26,27,28 Eth30 200000 29 9126 rs +Ethernet240 1,2,3,4 Eth31 200000 30 9126 rs +Ethernet248 9,10,11,12 Eth32 200000 31 9126 rs +Ethernet256 257 Aux1 10000 32 9126 none +Ethernet257 258 Aux2 10000 33 9126 none diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/buffers.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/buffers.json.j2 index 4fca9cbcd156..ada7dca895ce 100644 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/buffers.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 32 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/buffers_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/buffers_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/config_32x200G_Delta-et-c032if.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/config_32x200G_Delta-et-c032if.yaml index 0a76811110e8..44920a242b89 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/config_32x200G_Delta-et-c032if.yaml +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/config_32x200G_Delta-et-c032if.yaml @@ -10,6 +10,8 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" @@ -280,20 +282,6 @@ nodes: speed: "200G" sysport: "9" type: "eth" - - fec: "NONE" - id: "257" - lanes: "0:1" - serdes_group: "32" - speed: "10G" - sysport: "257" - type: "mgmt 0" - - fec: "NONE" - id: "258" - lanes: "1:1" - serdes_group: "32" - speed: "10G" - sysport: "258" - type: "mgmt 1" isg: - id: "0" tx_polarity: "01010101" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/ivm.sai.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/ivm.sai.config.yaml new file mode 100755 index 000000000000..e5dd8271b2ac --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_32x200G_Delta-et-c032if.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/ivm.sai.datapath.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/pg_profile_lookup.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/port_config.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/port_config.ini index 48091f5e3674..f5dbb41e45ce 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/port_config.ini +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/port_config.ini @@ -1,35 +1,33 @@ -# name lanes speed index mtu fec -Ethernet0 249,250,251,252 200000 0 9126 rs -Ethernet8 241,242,243,244 200000 1 9126 rs -Ethernet16 233,234,235,236 200000 2 9126 rs -Ethernet24 225,226,227,228 200000 3 9126 rs -Ethernet32 217,218,219,220 200000 4 9126 rs -Ethernet40 209,210,211,212 200000 5 9126 rs -Ethernet48 201,202,203,204 200000 6 9126 rs -Ethernet56 193,194,195,196 200000 7 9126 rs -Ethernet64 185,186,187,188 200000 8 9126 rs -Ethernet72 177,178,179,180 200000 9 9126 rs -Ethernet80 169,170,171,172 200000 10 9126 rs -Ethernet88 161,162,163,164 200000 11 9126 rs -Ethernet96 153,154,155,156 200000 12 9126 rs -Ethernet104 145,146,147,148 200000 13 9126 rs -Ethernet112 137,138,139,140 200000 14 9126 rs -Ethernet120 129,130,131,132 200000 15 9126 rs -Ethernet128 121,122,123,124 200000 16 9126 rs -Ethernet136 113,114,115,116 200000 17 9126 rs -Ethernet144 97,98,99,100 200000 18 9126 rs -Ethernet152 105,106,107,108 200000 19 9126 rs -Ethernet160 81,82,83,84 200000 20 9126 rs -Ethernet168 89,90,91,92 200000 21 9126 rs -Ethernet176 65,66,67,68 200000 22 9126 rs -Ethernet184 73,74,75,76 200000 23 9126 rs -Ethernet192 49,50,51,52 200000 24 9126 rs -Ethernet200 57,58,59,60 200000 25 9126 rs -Ethernet208 33,34,35,36 200000 26 9126 rs -Ethernet216 41,42,43,44 200000 27 9126 rs -Ethernet224 17,18,19,20 200000 28 9126 rs -Ethernet232 25,26,27,28 200000 29 9126 rs -Ethernet240 1,2,3,4 200000 30 9126 rs -Ethernet248 9,10,11,12 200000 31 9126 rs -Ethernet256 257 10000 32 9126 none -Ethernet257 258 10000 33 9126 none +# name lanes alias speed index mtu fec +Ethernet0 249,250,251,252 Eth1 200000 0 9126 rs +Ethernet8 241,242,243,244 Eth2 200000 1 9126 rs +Ethernet16 233,234,235,236 Eth3 200000 2 9126 rs +Ethernet24 225,226,227,228 Eth4 200000 3 9126 rs +Ethernet32 217,218,219,220 Eth5 200000 4 9126 rs +Ethernet40 209,210,211,212 Eth6 200000 5 9126 rs +Ethernet48 201,202,203,204 Eth7 200000 6 9126 rs +Ethernet56 193,194,195,196 Eth8 200000 7 9126 rs +Ethernet64 185,186,187,188 Eth9 200000 8 9126 rs +Ethernet72 177,178,179,180 Eth10 200000 9 9126 rs +Ethernet80 169,170,171,172 Eth11 200000 10 9126 rs +Ethernet88 161,162,163,164 Eth12 200000 11 9126 rs +Ethernet96 153,154,155,156 Eth13 200000 12 9126 rs +Ethernet104 145,146,147,148 Eth14 200000 13 9126 rs +Ethernet112 137,138,139,140 Eth15 200000 14 9126 rs +Ethernet120 129,130,131,132 Eth16 200000 15 9126 rs +Ethernet128 121,122,123,124 Eth17 200000 16 9126 rs +Ethernet136 113,114,115,116 Eth18 200000 17 9126 rs +Ethernet144 97,98,99,100 Eth19 200000 18 9126 rs +Ethernet152 105,106,107,108 Eth20 200000 19 9126 rs +Ethernet160 81,82,83,84 Eth21 200000 20 9126 rs +Ethernet168 89,90,91,92 Eth22 200000 21 9126 rs +Ethernet176 65,66,67,68 Eth23 200000 22 9126 rs +Ethernet184 73,74,75,76 Eth24 200000 23 9126 rs +Ethernet192 49,50,51,52 Eth25 200000 24 9126 rs +Ethernet200 57,58,59,60 Eth26 200000 25 9126 rs +Ethernet208 33,34,35,36 Eth27 200000 26 9126 rs +Ethernet216 41,42,43,44 Eth28 200000 27 9126 rs +Ethernet224 17,18,19,20 Eth29 200000 28 9126 rs +Ethernet232 25,26,27,28 Eth30 200000 29 9126 rs +Ethernet240 1,2,3,4 Eth31 200000 30 9126 rs +Ethernet248 9,10,11,12 Eth32 200000 31 9126 rs diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/qos.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/qos.json.j2 index 6c734d46ff2f..3938fc1a05c4 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/qos.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 32 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -114,7 +103,12 @@ "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/qos_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/qos_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/sai.profile b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/sai.profile +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x200/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/alt_cfg/config_32x400G_Delta-et-c032if_aux.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/alt_cfg/config_32x400G_Delta-et-c032if_aux.yaml new file mode 100755 index 000000000000..2ba23d2a5a67 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/alt_cfg/config_32x400G_Delta-et-c032if_aux.yaml @@ -0,0 +1,429 @@ +ifcs: + options: + log_level: "info" +nodes: +- node_id: "0" + options: + sku: "configs/sku/innovium.77700_A" + netdev: + - auto_create: "no" + multi_interface: "yes" + buffer_management_mode: "api_driven" + max_lossless_tc: "2" + txring: + - txring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + rxring: + - rxring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44" + - rxring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45" + - rxring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46" + - rxring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47" + sys_clk: "1720" + ifc_clk: "1200" + mac_clk: "1340" + + devports: + - id: "0" + sysport: "1000" + type: "cpu" + - fec: "KPFEC" + id: "249" + lanes: "0:8" + serdes_group: "31" + speed: "400G" + sysport: "249" + type: "eth" + - fec: "KPFEC" + id: "241" + lanes: "0:8" + serdes_group: "30" + speed: "400G" + sysport: "241" + type: "eth" + - fec: "KPFEC" + id: "233" + lanes: "0:8" + serdes_group: "29" + speed: "400G" + sysport: "233" + type: "eth" + - fec: "KPFEC" + id: "225" + lanes: "0:8" + serdes_group: "28" + speed: "400G" + sysport: "225" + type: "eth" + - fec: "KPFEC" + id: "217" + lanes: "0:8" + serdes_group: "27" + speed: "400G" + sysport: "217" + type: "eth" + - fec: "KPFEC" + id: "209" + lanes: "0:8" + serdes_group: "26" + speed: "400G" + sysport: "209" + type: "eth" + - fec: "KPFEC" + id: "201" + lanes: "0:8" + serdes_group: "25" + speed: "400G" + sysport: "201" + type: "eth" + - fec: "KPFEC" + id: "193" + lanes: "0:8" + serdes_group: "24" + speed: "400G" + sysport: "193" + type: "eth" + - fec: "KPFEC" + id: "185" + lanes: "0:8" + serdes_group: "23" + speed: "400G" + sysport: "185" + type: "eth" + - fec: "KPFEC" + id: "177" + lanes: "0:8" + serdes_group: "22" + speed: "400G" + sysport: "177" + type: "eth" + - fec: "KPFEC" + id: "169" + lanes: "0:8" + serdes_group: "21" + speed: "400G" + sysport: "169" + type: "eth" + - fec: "KPFEC" + id: "161" + lanes: "0:8" + serdes_group: "20" + speed: "400G" + sysport: "161" + type: "eth" + - fec: "KPFEC" + id: "153" + lanes: "0:8" + serdes_group: "19" + speed: "400G" + sysport: "153" + type: "eth" + - fec: "KPFEC" + id: "145" + lanes: "0:8" + serdes_group: "18" + speed: "400G" + sysport: "145" + type: "eth" + - fec: "KPFEC" + id: "137" + lanes: "0:8" + serdes_group: "17" + speed: "400G" + sysport: "137" + type: "eth" + - fec: "KPFEC" + id: "129" + lanes: "0:8" + serdes_group: "16" + speed: "400G" + sysport: "129" + type: "eth" + - fec: "KPFEC" + id: "121" + lanes: "0:8" + serdes_group: "15" + speed: "400G" + sysport: "121" + type: "eth" + - fec: "KPFEC" + id: "113" + lanes: "0:8" + serdes_group: "14" + speed: "400G" + sysport: "113" + type: "eth" + - fec: "KPFEC" + id: "97" + lanes: "0:8" + serdes_group: "12" + speed: "400G" + sysport: "97" + type: "eth" + - fec: "KPFEC" + id: "105" + lanes: "0:8" + serdes_group: "13" + speed: "400G" + sysport: "105" + type: "eth" + - fec: "KPFEC" + id: "81" + lanes: "0:8" + serdes_group: "10" + speed: "400G" + sysport: "81" + type: "eth" + - fec: "KPFEC" + id: "89" + lanes: "0:8" + serdes_group: "11" + speed: "400G" + sysport: "89" + type: "eth" + - fec: "KPFEC" + id: "65" + lanes: "0:8" + serdes_group: "8" + speed: "400G" + sysport: "65" + type: "eth" + - fec: "KPFEC" + id: "73" + lanes: "0:8" + serdes_group: "9" + speed: "400G" + sysport: "73" + type: "eth" + - fec: "KPFEC" + id: "49" + lanes: "0:8" + serdes_group: "6" + speed: "400G" + sysport: "49" + type: "eth" + - fec: "KPFEC" + id: "57" + lanes: "0:8" + serdes_group: "7" + speed: "400G" + sysport: "57" + type: "eth" + - fec: "KPFEC" + id: "33" + lanes: "0:8" + serdes_group: "4" + speed: "400G" + sysport: "33" + type: "eth" + - fec: "KPFEC" + id: "41" + lanes: "0:8" + serdes_group: "5" + speed: "400G" + sysport: "41" + type: "eth" + - fec: "KPFEC" + id: "17" + lanes: "0:8" + serdes_group: "2" + speed: "400G" + sysport: "17" + type: "eth" + - fec: "KPFEC" + id: "25" + lanes: "0:8" + serdes_group: "3" + speed: "400G" + sysport: "25" + type: "eth" + - fec: "KPFEC" + id: "1" + lanes: "0:8" + serdes_group: "0" + speed: "400G" + sysport: "1" + type: "eth" + - fec: "KPFEC" + id: "9" + lanes: "0:8" + serdes_group: "1" + speed: "400G" + sysport: "9" + type: "eth" + - fec: "NONE" + id: "257" + lanes: "0:1" + serdes_group: "32" + speed: "10G" + sysport: "257" + type: "mgmt 0" + - fec: "NONE" + id: "258" + lanes: "1:1" + serdes_group: "32" + speed: "10G" + sysport: "258" + type: "mgmt 1" + isg: + - id: "0" + tx_polarity: "01010101" + rx_polarity: "01100000" + lane_swap: "23641075" + - id: "1" + tx_polarity: "10110000" + rx_polarity: "11111111" + lane_swap: "64317520" + - id: "2" + tx_polarity: "00000000" + rx_polarity: "00000011" + lane_swap: "63147520" + - id: "3" + tx_polarity: "01101000" + rx_polarity: "00001110" + lane_swap: "31572046" + - id: "4" + tx_polarity: "00111000" + rx_polarity: "00001000" + lane_swap: "46105732" + - id: "5" + tx_polarity: "10111111" + rx_polarity: "11101000" + lane_swap: "27153604" + - id: "6" + tx_polarity: "01101110" + rx_polarity: "00001101" + lane_swap: "46503721" + - id: "7" + tx_polarity: "01000100" + rx_polarity: "10000101" + lane_swap: "03671245" + - id: "8" + tx_polarity: "01110101" + rx_polarity: "00010000" + lane_swap: "12640375" + - id: "9" + tx_polarity: "01011100" + rx_polarity: "11001111" + lane_swap: "02561347" + - id: "10" + tx_polarity: "01110110" + rx_polarity: "11000000" + lane_swap: "12740365" + - id: "11" + tx_polarity: "00111000" + rx_polarity: "00010111" + lane_swap: "01572436" + - id: "12" + tx_polarity: "00001111" + rx_polarity: "10111001" + lane_swap: "54320176" + - id: "13" + tx_polarity: "10011101" + rx_polarity: "00111011" + lane_swap: "26153704" + - id: "14" + tx_polarity: "00110000" + rx_polarity: "11010000" + lane_swap: "37452601" + - id: "15" + tx_polarity: "11100010" + rx_polarity: "01110011" + lane_swap: "51370462" + - id: "16" + tx_polarity: "10111010" + rx_polarity: "11010011" + lane_swap: "36152704" + - id: "17" + tx_polarity: "01011101" + rx_polarity: "00110001" + lane_swap: "45621073" + - id: "18" + tx_polarity: "11011111" + rx_polarity: "11001011" + lane_swap: "26143705" + - id: "19" + tx_polarity: "00100110" + rx_polarity: "00001001" + lane_swap: "42730165" + - id: "20" + tx_polarity: "10011011" + rx_polarity: "01101101" + lane_swap: "54217603" + - id: "21" + tx_polarity: "00101110" + rx_polarity: "10111111" + lane_swap: "26031745" + - id: "22" + tx_polarity: "01001110" + rx_polarity: "00111001" + lane_swap: "36024715" + - id: "23" + tx_polarity: "10101101" + rx_polarity: "01010011" + lane_swap: "45621370" + - id: "24" + tx_polarity: "11001110" + rx_polarity: "00011111" + lane_swap: "65234701" + - id: "25" + tx_polarity: "01110001" + rx_polarity: "01010111" + lane_swap: "37601452" + - id: "26" + tx_polarity: "01000100" + rx_polarity: "00001111" + lane_swap: "65034721" + - id: "27" + tx_polarity: "10111101" + rx_polarity: "11000101" + lane_swap: "34501672" + - id: "28" + tx_polarity: "01111000" + rx_polarity: "01110110" + lane_swap: "43061275" + - id: "29" + tx_polarity: "11110111" + rx_polarity: "11100111" + lane_swap: "57304621" + - id: "30" + tx_polarity: "10000100" + rx_polarity: "00101111" + lane_swap: "47125603" + - id: "31" + tx_polarity: "11111111" + rx_polarity: "11100010" + lane_swap: "13460275" + - id: "32" + tx_polarity: "00000000" + rx_polarity: "00000000" + lane_swap: "01234567" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/alt_cfg/port_config_aux.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/alt_cfg/port_config_aux.ini new file mode 100755 index 000000000000..b02a938b34ff --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/alt_cfg/port_config_aux.ini @@ -0,0 +1,35 @@ +# name lanes alias speed index mtu fec +Ethernet0 249,250,251,252 Eth1 400000 0 9126 rs +Ethernet8 241,242,243,244 Eth2 400000 1 9126 rs +Ethernet16 233,234,235,236 Eth3 400000 2 9126 rs +Ethernet24 225,226,227,228 Eth4 400000 3 9126 rs +Ethernet32 217,218,219,220 Eth5 400000 4 9126 rs +Ethernet40 209,210,211,212 Eth6 400000 5 9126 rs +Ethernet48 201,202,203,204 Eth7 400000 6 9126 rs +Ethernet56 193,194,195,196 Eth8 400000 7 9126 rs +Ethernet64 185,186,187,188 Eth9 400000 8 9126 rs +Ethernet72 177,178,179,180 Eth10 400000 9 9126 rs +Ethernet80 169,170,171,172 Eth11 400000 10 9126 rs +Ethernet88 161,162,163,164 Eth12 400000 11 9126 rs +Ethernet96 153,154,155,156 Eth13 400000 12 9126 rs +Ethernet104 145,146,147,148 Eth14 400000 13 9126 rs +Ethernet112 137,138,139,140 Eth15 400000 14 9126 rs +Ethernet120 129,130,131,132 Eth16 400000 15 9126 rs +Ethernet128 121,122,123,124 Eth17 400000 16 9126 rs +Ethernet136 113,114,115,116 Eth18 400000 17 9126 rs +Ethernet144 97,98,99,100 Eth19 400000 18 9126 rs +Ethernet152 105,106,107,108 Eth20 400000 19 9126 rs +Ethernet160 81,82,83,84 Eth21 400000 20 9126 rs +Ethernet168 89,90,91,92 Eth22 400000 21 9126 rs +Ethernet176 65,66,67,68 Eth23 400000 22 9126 rs +Ethernet184 73,74,75,76 Eth24 400000 23 9126 rs +Ethernet192 49,50,51,52 Eth25 400000 24 9126 rs +Ethernet200 57,58,59,60 Eth26 400000 25 9126 rs +Ethernet208 33,34,35,36 Eth27 400000 26 9126 rs +Ethernet216 41,42,43,44 Eth28 400000 27 9126 rs +Ethernet224 17,18,19,20 Eth29 400000 28 9126 rs +Ethernet232 25,26,27,28 Eth30 400000 29 9126 rs +Ethernet240 1,2,3,4 Eth31 400000 30 9126 rs +Ethernet248 9,10,11,12 Eth32 400000 31 9126 rs +Ethernet256 257 Aux1 10000 32 9126 none +Ethernet257 258 Aux2 10000 33 9126 none diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/buffers.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/buffers.json.j2 index 4fca9cbcd156..ada7dca895ce 100644 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/buffers.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 32 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/buffers_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/buffers_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/config_32x400G_Delta-et-c032if.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/config_32x400G_Delta-et-c032if.yaml index 2ba23d2a5a67..76cf0dc36ba8 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/config_32x400G_Delta-et-c032if.yaml +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/config_32x400G_Delta-et-c032if.yaml @@ -10,6 +10,8 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" @@ -280,20 +282,6 @@ nodes: speed: "400G" sysport: "9" type: "eth" - - fec: "NONE" - id: "257" - lanes: "0:1" - serdes_group: "32" - speed: "10G" - sysport: "257" - type: "mgmt 0" - - fec: "NONE" - id: "258" - lanes: "1:1" - serdes_group: "32" - speed: "10G" - sysport: "258" - type: "mgmt 1" isg: - id: "0" tx_polarity: "01010101" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/ivm.sai.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/ivm.sai.config.yaml new file mode 100755 index 000000000000..30a83d145ebd --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_32x400G_Delta-et-c032if.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_A" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/ivm.sai.datapath.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/pg_profile_lookup.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/port_config.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/port_config.ini index 360e363f485b..64d07a4eecdb 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/port_config.ini +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/port_config.ini @@ -1,35 +1,33 @@ -# name lanes speed index mtu fec -Ethernet0 249,250,251,252 400000 0 9126 rs -Ethernet8 241,242,243,244 400000 1 9126 rs -Ethernet16 233,234,235,236 400000 2 9126 rs -Ethernet24 225,226,227,228 400000 3 9126 rs -Ethernet32 217,218,219,220 400000 4 9126 rs -Ethernet40 209,210,211,212 400000 5 9126 rs -Ethernet48 201,202,203,204 400000 6 9126 rs -Ethernet56 193,194,195,196 400000 7 9126 rs -Ethernet64 185,186,187,188 400000 8 9126 rs -Ethernet72 177,178,179,180 400000 9 9126 rs -Ethernet80 169,170,171,172 400000 10 9126 rs -Ethernet88 161,162,163,164 400000 11 9126 rs -Ethernet96 153,154,155,156 400000 12 9126 rs -Ethernet104 145,146,147,148 400000 13 9126 rs -Ethernet112 137,138,139,140 400000 14 9126 rs -Ethernet120 129,130,131,132 400000 15 9126 rs -Ethernet128 121,122,123,124 400000 16 9126 rs -Ethernet136 113,114,115,116 400000 17 9126 rs -Ethernet144 97,98,99,100 400000 18 9126 rs -Ethernet152 105,106,107,108 400000 19 9126 rs -Ethernet160 81,82,83,84 400000 20 9126 rs -Ethernet168 89,90,91,92 400000 21 9126 rs -Ethernet176 65,66,67,68 400000 22 9126 rs -Ethernet184 73,74,75,76 400000 23 9126 rs -Ethernet192 49,50,51,52 400000 24 9126 rs -Ethernet200 57,58,59,60 400000 25 9126 rs -Ethernet208 33,34,35,36 400000 26 9126 rs -Ethernet216 41,42,43,44 400000 27 9126 rs -Ethernet224 17,18,19,20 400000 28 9126 rs -Ethernet232 25,26,27,28 400000 29 9126 rs -Ethernet240 1,2,3,4 400000 30 9126 rs -Ethernet248 9,10,11,12 400000 31 9126 rs -Ethernet256 257 10000 32 9126 none -Ethernet257 258 10000 33 9126 none +# name lanes alias speed index mtu fec +Ethernet0 249,250,251,252,253,254,255,256 Ethernet0 400000 0 9126 rs +Ethernet8 241,242,243,244,245,246,247,248 Ethernet8 400000 1 9126 rs +Ethernet16 233,234,235,236,237,238,239,240 Ethernet16 400000 2 9126 rs +Ethernet24 225,226,227,228,229,230,231,232 Ethernet24 400000 3 9126 rs +Ethernet32 217,218,219,220,221,222,223,224 Ethernet32 400000 4 9126 rs +Ethernet40 209,210,211,212,213,214,215,216 Ethernet40 400000 5 9126 rs +Ethernet48 201,202,203,204,205,206,207,208 Ethernet48 400000 6 9126 rs +Ethernet56 193,194,195,196,197,198,199,200 Ethernet56 400000 7 9126 rs +Ethernet64 185,186,187,188,189,190,191,192 Ethernet64 400000 8 9126 rs +Ethernet72 177,178,179,180,181,182,183,184 Ethernet72 400000 9 9126 rs +Ethernet80 169,170,171,172,173,174,175,176 Ethernet80 400000 10 9126 rs +Ethernet88 161,162,163,164,165,166,167,168 Ethernet88 400000 11 9126 rs +Ethernet96 153,154,155,156,157,158,159,160 Ethernet96 400000 12 9126 rs +Ethernet104 145,146,147,148,149,150,151,152 Ethernet104 400000 13 9126 rs +Ethernet112 137,138,139,140,141,142,143,144 Ethernet112 400000 14 9126 rs +Ethernet120 129,130,131,132,133,134,135,136 Ethernet120 400000 15 9126 rs +Ethernet128 121,122,123,124,125,126,127,128 Ethernet128 400000 16 9126 rs +Ethernet136 113,114,115,116,117,118,119,120 Ethernet136 400000 17 9126 rs +Ethernet144 97,98,99,100,101,102,103,104 Ethernet144 400000 18 9126 rs +Ethernet152 105,106,107,108,109,110,111,112 Ethernet152 400000 19 9126 rs +Ethernet160 81,82,83,84,85,86,87,88 Ethernet160 400000 20 9126 rs +Ethernet168 89,90,91,92,93,94,95,96 Ethernet168 400000 21 9126 rs +Ethernet176 65,66,67,68,69,70,71,72 Ethernet176 400000 22 9126 rs +Ethernet184 73,74,75,76,77,78,79,80 Ethernet184 400000 23 9126 rs +Ethernet192 49,50,51,52,53,54,55,56 Ethernet192 400000 24 9126 rs +Ethernet200 57,58,59,60,61,62,63,64 Ethernet200 400000 25 9126 rs +Ethernet208 33,34,35,36,37,38,39,40 Ethernet208 400000 26 9126 rs +Ethernet216 41,42,43,44,45,46,47,48 Ethernet216 400000 27 9126 rs +Ethernet224 17,18,19,20,21,22,23,24 Ethernet224 400000 28 9126 rs +Ethernet232 25,26,27,28,29,30,31,32 Ethernet232 400000 29 9126 rs +Ethernet240 1,2,3,4,5,6,7,8 Ethernet240 400000 30 9126 rs +Ethernet248 9,10,11,12,13,14,15,16 Ethernet248 400000 31 9126 rs diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/qos.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/qos.json.j2 index 6c734d46ff2f..3938fc1a05c4 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/qos.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 32 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -114,7 +103,12 @@ "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/qos_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/qos_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/sai.profile b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/sai.profile +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_32x400/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/alt_cfg/config_64x100G_Delta-et-c032if_aux.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/alt_cfg/config_64x100G_Delta-et-c032if_aux.yaml new file mode 100755 index 000000000000..e5fbcc93543d --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/alt_cfg/config_64x100G_Delta-et-c032if_aux.yaml @@ -0,0 +1,653 @@ +ifcs: + options: + log_level: "info" +nodes: +- node_id: "0" + options: + sku: "configs/sku/innovium.77700_B" + netdev: + - auto_create: "no" + multi_interface: "yes" + buffer_management_mode: "api_driven" + max_lossless_tc: "2" + txring: + - txring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + rxring: + - rxring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44" + - rxring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45" + - rxring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46" + - rxring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47" + sys_clk: "1720" + ifc_clk: "1200" + mac_clk: "1340" + + devports: + - id: "0" + sysport: "1000" + type: "cpu" + - fec: "KRFEC" + id: "249" + lanes: "0:4" + serdes_group: "31" + speed: "100G" + sysport: "249" + type: "eth" + - fec: "KRFEC" + id: "253" + lanes: "4:4" + serdes_group: "31" + speed: "100G" + sysport: "253" + type: "eth" + - fec: "KRFEC" + id: "241" + lanes: "0:4" + serdes_group: "30" + speed: "100G" + sysport: "241" + type: "eth" + - fec: "KRFEC" + id: "245" + lanes: "4:4" + serdes_group: "30" + speed: "100G" + sysport: "245" + type: "eth" + - fec: "KRFEC" + id: "233" + lanes: "0:4" + serdes_group: "29" + speed: "100G" + sysport: "233" + type: "eth" + - fec: "KRFEC" + id: "237" + lanes: "4:4" + serdes_group: "29" + speed: "100G" + sysport: "237" + type: "eth" + - fec: "KRFEC" + id: "225" + lanes: "0:4" + serdes_group: "28" + speed: "100G" + sysport: "225" + type: "eth" + - fec: "KRFEC" + id: "229" + lanes: "4:4" + serdes_group: "28" + speed: "100G" + sysport: "229" + type: "eth" + - fec: "KRFEC" + id: "217" + lanes: "0:4" + serdes_group: "27" + speed: "100G" + sysport: "217" + type: "eth" + - fec: "KRFEC" + id: "221" + lanes: "4:4" + serdes_group: "27" + speed: "100G" + sysport: "221" + type: "eth" + - fec: "KRFEC" + id: "209" + lanes: "0:4" + serdes_group: "26" + speed: "100G" + sysport: "209" + type: "eth" + - fec: "KRFEC" + id: "213" + lanes: "4:4" + serdes_group: "26" + speed: "100G" + sysport: "213" + type: "eth" + - fec: "KRFEC" + id: "201" + lanes: "0:4" + serdes_group: "25" + speed: "100G" + sysport: "201" + type: "eth" + - fec: "KRFEC" + id: "205" + lanes: "4:4" + serdes_group: "25" + speed: "100G" + sysport: "205" + type: "eth" + - fec: "KRFEC" + id: "193" + lanes: "0:4" + serdes_group: "24" + speed: "100G" + sysport: "193" + type: "eth" + - fec: "KRFEC" + id: "197" + lanes: "4:4" + serdes_group: "24" + speed: "100G" + sysport: "197" + type: "eth" + - fec: "KRFEC" + id: "185" + lanes: "0:4" + serdes_group: "23" + speed: "100G" + sysport: "185" + type: "eth" + - fec: "KRFEC" + id: "189" + lanes: "4:4" + serdes_group: "23" + speed: "100G" + sysport: "189" + type: "eth" + - fec: "KRFEC" + id: "177" + lanes: "0:4" + serdes_group: "22" + speed: "100G" + sysport: "177" + type: "eth" + - fec: "KRFEC" + id: "181" + lanes: "4:4" + serdes_group: "22" + speed: "100G" + sysport: "181" + type: "eth" + - fec: "KRFEC" + id: "169" + lanes: "0:4" + serdes_group: "21" + speed: "100G" + sysport: "169" + type: "eth" + - fec: "KRFEC" + id: "173" + lanes: "4:4" + serdes_group: "21" + speed: "100G" + sysport: "173" + type: "eth" + - fec: "KRFEC" + id: "161" + lanes: "0:4" + serdes_group: "20" + speed: "100G" + sysport: "161" + type: "eth" + - fec: "KRFEC" + id: "165" + lanes: "4:4" + serdes_group: "20" + speed: "100G" + sysport: "165" + type: "eth" + - fec: "KRFEC" + id: "153" + lanes: "0:4" + serdes_group: "19" + speed: "100G" + sysport: "153" + type: "eth" + - fec: "KRFEC" + id: "157" + lanes: "4:4" + serdes_group: "19" + speed: "100G" + sysport: "157" + type: "eth" + - fec: "KRFEC" + id: "145" + lanes: "0:4" + serdes_group: "18" + speed: "100G" + sysport: "145" + type: "eth" + - fec: "KRFEC" + id: "149" + lanes: "4:4" + serdes_group: "18" + speed: "100G" + sysport: "149" + type: "eth" + - fec: "KRFEC" + id: "137" + lanes: "0:4" + serdes_group: "17" + speed: "100G" + sysport: "137" + type: "eth" + - fec: "KRFEC" + id: "141" + lanes: "4:4" + serdes_group: "17" + speed: "100G" + sysport: "141" + type: "eth" + - fec: "KRFEC" + id: "129" + lanes: "0:4" + serdes_group: "16" + speed: "100G" + sysport: "129" + type: "eth" + - fec: "KRFEC" + id: "133" + lanes: "4:4" + serdes_group: "16" + speed: "100G" + sysport: "133" + type: "eth" + - fec: "KRFEC" + id: "121" + lanes: "0:4" + serdes_group: "15" + speed: "100G" + sysport: "121" + type: "eth" + - fec: "KRFEC" + id: "125" + lanes: "4:4" + serdes_group: "15" + speed: "100G" + sysport: "125" + type: "eth" + - fec: "KRFEC" + id: "113" + lanes: "0:4" + serdes_group: "14" + speed: "100G" + sysport: "113" + type: "eth" + - fec: "KRFEC" + id: "117" + lanes: "4:4" + serdes_group: "14" + speed: "100G" + sysport: "117" + type: "eth" + - fec: "KRFEC" + id: "97" + lanes: "0:4" + serdes_group: "12" + speed: "100G" + sysport: "97" + type: "eth" + - fec: "KRFEC" + id: "101" + lanes: "4:4" + serdes_group: "12" + speed: "100G" + sysport: "101" + type: "eth" + - fec: "KRFEC" + id: "105" + lanes: "0:4" + serdes_group: "13" + speed: "100G" + sysport: "105" + type: "eth" + - fec: "KRFEC" + id: "109" + lanes: "4:4" + serdes_group: "13" + speed: "100G" + sysport: "109" + type: "eth" + - fec: "KRFEC" + id: "81" + lanes: "0:4" + serdes_group: "10" + speed: "100G" + sysport: "81" + type: "eth" + - fec: "KRFEC" + id: "85" + lanes: "4:4" + serdes_group: "10" + speed: "100G" + sysport: "85" + type: "eth" + - fec: "KRFEC" + id: "89" + lanes: "0:4" + serdes_group: "11" + speed: "100G" + sysport: "89" + type: "eth" + - fec: "KRFEC" + id: "93" + lanes: "4:4" + serdes_group: "11" + speed: "100G" + sysport: "93" + type: "eth" + - fec: "KRFEC" + id: "65" + lanes: "0:4" + serdes_group: "8" + speed: "100G" + sysport: "65" + type: "eth" + - fec: "KRFEC" + id: "69" + lanes: "4:4" + serdes_group: "8" + speed: "100G" + sysport: "69" + type: "eth" + - fec: "KRFEC" + id: "73" + lanes: "0:4" + serdes_group: "9" + speed: "100G" + sysport: "73" + type: "eth" + - fec: "KRFEC" + id: "77" + lanes: "4:4" + serdes_group: "9" + speed: "100G" + sysport: "77" + type: "eth" + - fec: "KRFEC" + id: "49" + lanes: "0:4" + serdes_group: "6" + speed: "100G" + sysport: "49" + type: "eth" + - fec: "KRFEC" + id: "53" + lanes: "4:4" + serdes_group: "6" + speed: "100G" + sysport: "53" + type: "eth" + - fec: "KRFEC" + id: "57" + lanes: "0:4" + serdes_group: "7" + speed: "100G" + sysport: "57" + type: "eth" + - fec: "KRFEC" + id: "61" + lanes: "4:4" + serdes_group: "7" + speed: "100G" + sysport: "61" + type: "eth" + - fec: "KRFEC" + id: "33" + lanes: "0:4" + serdes_group: "4" + speed: "100G" + sysport: "33" + type: "eth" + - fec: "KRFEC" + id: "37" + lanes: "4:4" + serdes_group: "4" + speed: "100G" + sysport: "37" + type: "eth" + - fec: "KRFEC" + id: "41" + lanes: "0:4" + serdes_group: "5" + speed: "100G" + sysport: "41" + type: "eth" + - fec: "KRFEC" + id: "45" + lanes: "4:4" + serdes_group: "5" + speed: "100G" + sysport: "45" + type: "eth" + - fec: "KRFEC" + id: "17" + lanes: "0:4" + serdes_group: "2" + speed: "100G" + sysport: "17" + type: "eth" + - fec: "KRFEC" + id: "21" + lanes: "4:4" + serdes_group: "2" + speed: "100G" + sysport: "21" + type: "eth" + - fec: "KRFEC" + id: "25" + lanes: "0:4" + serdes_group: "3" + speed: "100G" + sysport: "25" + type: "eth" + - fec: "KRFEC" + id: "29" + lanes: "4:4" + serdes_group: "3" + speed: "100G" + sysport: "29" + type: "eth" + - fec: "KRFEC" + id: "1" + lanes: "0:4" + serdes_group: "0" + speed: "100G" + sysport: "1" + type: "eth" + - fec: "KRFEC" + id: "5" + lanes: "4:4" + serdes_group: "0" + speed: "100G" + sysport: "5" + type: "eth" + - fec: "KRFEC" + id: "9" + lanes: "0:4" + serdes_group: "1" + speed: "100G" + sysport: "9" + type: "eth" + - fec: "KRFEC" + id: "13" + lanes: "4:4" + serdes_group: "1" + speed: "100G" + sysport: "13" + type: "eth" + - fec: "NONE" + id: "257" + lanes: "0:1" + serdes_group: "32" + speed: "10G" + sysport: "257" + type: "mgmt 0" + - fec: "NONE" + id: "258" + lanes: "1:1" + serdes_group: "32" + speed: "10G" + sysport: "258" + type: "mgmt 1" + isg: + - id: "0" + tx_polarity: "01010101" + rx_polarity: "01100000" + lane_swap: "23641075" + - id: "1" + tx_polarity: "10110000" + rx_polarity: "11111111" + lane_swap: "64317520" + - id: "2" + tx_polarity: "00000000" + rx_polarity: "00000011" + lane_swap: "63147520" + - id: "3" + tx_polarity: "01101000" + rx_polarity: "00001110" + lane_swap: "31572046" + - id: "4" + tx_polarity: "00111000" + rx_polarity: "00001000" + lane_swap: "46105732" + - id: "5" + tx_polarity: "10111111" + rx_polarity: "11101000" + lane_swap: "27153604" + - id: "6" + tx_polarity: "01101110" + rx_polarity: "00001101" + lane_swap: "46503721" + - id: "7" + tx_polarity: "01000100" + rx_polarity: "10000101" + lane_swap: "03671245" + - id: "8" + tx_polarity: "01110101" + rx_polarity: "00010000" + lane_swap: "12640375" + - id: "9" + tx_polarity: "01011100" + rx_polarity: "11001111" + lane_swap: "02561347" + - id: "10" + tx_polarity: "01110110" + rx_polarity: "11000000" + lane_swap: "12740365" + - id: "11" + tx_polarity: "00111000" + rx_polarity: "00010111" + lane_swap: "01572436" + - id: "12" + tx_polarity: "00001111" + rx_polarity: "10111001" + lane_swap: "54320176" + - id: "13" + tx_polarity: "10011101" + rx_polarity: "00111011" + lane_swap: "26153704" + - id: "14" + tx_polarity: "00110000" + rx_polarity: "11010000" + lane_swap: "37452601" + - id: "15" + tx_polarity: "11100010" + rx_polarity: "01110011" + lane_swap: "51370462" + - id: "16" + tx_polarity: "10111010" + rx_polarity: "11010011" + lane_swap: "36152704" + - id: "17" + tx_polarity: "01011101" + rx_polarity: "00110001" + lane_swap: "45621073" + - id: "18" + tx_polarity: "11011111" + rx_polarity: "11001011" + lane_swap: "26143705" + - id: "19" + tx_polarity: "00100110" + rx_polarity: "00001001" + lane_swap: "42730165" + - id: "20" + tx_polarity: "10011011" + rx_polarity: "01101101" + lane_swap: "54217603" + - id: "21" + tx_polarity: "00101110" + rx_polarity: "10111111" + lane_swap: "26031745" + - id: "22" + tx_polarity: "01001110" + rx_polarity: "00111001" + lane_swap: "36024715" + - id: "23" + tx_polarity: "10101101" + rx_polarity: "01010011" + lane_swap: "45621370" + - id: "24" + tx_polarity: "11001110" + rx_polarity: "00011111" + lane_swap: "65234701" + - id: "25" + tx_polarity: "01110001" + rx_polarity: "01010111" + lane_swap: "37601452" + - id: "26" + tx_polarity: "01000100" + rx_polarity: "00001111" + lane_swap: "65034721" + - id: "27" + tx_polarity: "10111101" + rx_polarity: "11000101" + lane_swap: "34501672" + - id: "28" + tx_polarity: "01111000" + rx_polarity: "01110110" + lane_swap: "43061275" + - id: "29" + tx_polarity: "11110111" + rx_polarity: "11100111" + lane_swap: "57304621" + - id: "30" + tx_polarity: "10000100" + rx_polarity: "00101111" + lane_swap: "47125603" + - id: "31" + tx_polarity: "11111111" + rx_polarity: "11100010" + lane_swap: "13460275" + - id: "32" + tx_polarity: "00000000" + rx_polarity: "00000000" + lane_swap: "01234567" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/alt_cfg/port_config_aux.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/alt_cfg/port_config_aux.ini new file mode 100644 index 000000000000..50df2f775f91 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/alt_cfg/port_config_aux.ini @@ -0,0 +1,67 @@ +# name lanes alias speed index mtu +Ethernet0 249,250,251,252 Eth1/1 100000 0 9126 +Ethernet4 253,254,255,256 Eth1/2 100000 0 9126 +Ethernet8 241,242,243,244 Eth2/1 100000 1 9126 +Ethernet12 245,246,247,248 Eth2/2 100000 1 9126 +Ethernet16 233,234,235,236 Eth3/1 100000 2 9126 +Ethernet20 237,238,239,240 Eth3/2 100000 2 9126 +Ethernet24 225,226,227,228 Eth4/1 100000 3 9126 +Ethernet28 229,230,231,232 Eth4/2 100000 3 9126 +Ethernet32 217,218,219,220 Eth5/1 100000 4 9126 +Ethernet36 221,222,223,224 Eth5/2 100000 4 9126 +Ethernet40 209,210,211,212 Eth6/1 100000 5 9126 +Ethernet44 213,214,215,216 Eth6/1 100000 5 9126 +Ethernet48 201,202,203,204 Eth7/1 100000 6 9126 +Ethernet52 205,206,207,208 Eth7/2 100000 6 9126 +Ethernet56 193,194,195,196 Eth8/1 100000 7 9126 +Ethernet60 197,198,199,200 Eth8/2 100000 7 9126 +Ethernet64 185,186,187,188 Eth9/2 100000 8 9126 +Ethernet68 189,190,191,192 Eth9/2 100000 8 9126 +Ethernet72 177,178,179,180 Eth10/1 100000 9 9126 +Ethernet76 181,182,183,184 Eth10/2 100000 9 9126 +Ethernet80 169,170,171,172 Eth11/1 100000 10 9126 +Ethernet84 173,174,175,176 Eth11/2 100000 10 9126 +Ethernet88 161,162,163,164 Eth12/1 100000 11 9126 +Ethernet92 165,166,167,168 Eth12/2 100000 11 9126 +Ethernet96 153,154,155,156 Eth13/1 100000 12 9126 +Ethernet100 157,158,159,160 Eth13/2 100000 12 9126 +Ethernet104 145,146,147,148 Eth14/1 100000 13 9126 +Ethernet108 149,150,151,152 Eth14/2 100000 13 9126 +Ethernet112 137,138,139,140 Eth15/1 100000 14 9126 +Ethernet116 141,142,143,144 Eth15/2 100000 14 9126 +Ethernet120 129,130,131,132 Eth16/1 100000 15 9126 +Ethernet124 133,134,135,136 Eth16/2 100000 15 9126 +Ethernet128 121,122,123,124 Eth17/1 100000 16 9126 +Ethernet132 125,126,127,128 Eth17/2 100000 16 9126 +Ethernet136 113,114,115,116 Eth18/1 100000 17 9126 +Ethernet140 117,118,119,120 Eth18/2 100000 17 9126 +Ethernet144 97,98,99,100 Eth19/1 100000 18 9126 +Ethernet148 101,102,103,104 Eth19/2 100000 18 9126 +Ethernet152 105,106,107,108 Eth20/1 100000 19 9126 +Ethernet156 109,110,111,112 Eth20/2 100000 19 9126 +Ethernet160 81,82,83,84 Eth21/1 100000 20 9126 +Ethernet164 85,86,87,88 Eth21/2 100000 20 9126 +Ethernet168 89,90,91,92 Eth22/1 100000 21 9126 +Ethernet172 93,94,95,96 Eth22/2 100000 21 9126 +Ethernet176 65,66,67,68 Eth23/1 100000 22 9126 +Ethernet180 69,70,71,72 Eth23/2 100000 22 9126 +Ethernet184 73,74,75,76 Eth24/1 100000 23 9126 +Ethernet188 77,78,79,80 Eth24/2 100000 23 9126 +Ethernet192 49,50,51,52 Eth25/1 100000 24 9126 +Ethernet196 53,54,55,56 Eth25/2 100000 24 9126 +Ethernet200 57,58,59,60 Eth26/1 100000 25 9126 +Ethernet204 61,62,63,64 Eth26/2 100000 25 9126 +Ethernet208 33,34,35,36 Eth27/1 100000 26 9126 +Ethernet212 37,38,39,40 Eth27/2 100000 26 9126 +Ethernet216 41,42,43,44 Eth28/1 100000 27 9126 +Ethernet220 45,46,47,48 Eth28/2 100000 27 9126 +Ethernet224 17,18,19,20 Eth29/1 100000 28 9126 +Ethernet228 21,22,23,24 Eth29/2 100000 28 9126 +Ethernet232 25,26,27,28 Eth30/1 100000 29 9126 +Ethernet236 29,30,31,32 Eth30/2 100000 29 9126 +Ethernet240 1,2,3,4 Eth31/1 100000 30 9126 +Ethernet244 5,6,7,8 Eth31/2 100000 30 9126 +Ethernet248 9,10,11,12 Eth32/1 100000 31 9126 +Ethernet252 13,14,15,16 Eth32/2 100000 31 9126 +Ethernet256 257 Aux1 10000 32 9126 +Ethernet257 258 Aux2 10000 33 9126 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/buffers.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/buffers.json.j2 index 45cebf3b7144..ada7dca895ce 100644 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/buffers.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 64 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/buffers_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/buffers_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/config_64x100G_Delta-et-c032if.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/config_64x100G_Delta-et-c032if.yaml index e5fbcc93543d..28f4f6dd9f55 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/config_64x100G_Delta-et-c032if.yaml +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/config_64x100G_Delta-et-c032if.yaml @@ -10,6 +10,8 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" @@ -504,20 +506,6 @@ nodes: speed: "100G" sysport: "13" type: "eth" - - fec: "NONE" - id: "257" - lanes: "0:1" - serdes_group: "32" - speed: "10G" - sysport: "257" - type: "mgmt 0" - - fec: "NONE" - id: "258" - lanes: "1:1" - serdes_group: "32" - speed: "10G" - sysport: "258" - type: "mgmt 1" isg: - id: "0" tx_polarity: "01010101" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/ivm.sai.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/ivm.sai.config.yaml new file mode 100755 index 000000000000..9d2cc0dd6099 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_64x100G_Delta-et-c032if.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/ivm.sai.datapath.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/pg_profile_lookup.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/port_config.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/port_config.ini index 9999a677da49..f1cb943a12a7 100644 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/port_config.ini +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/port_config.ini @@ -1,67 +1,65 @@ -# name lanes speed index mtu -Ethernet0 249,250,251,252 100000 0 9126 -Ethernet4 253,254,255,256 100000 0 9126 -Ethernet8 241,242,243,244 100000 1 9126 -Ethernet12 245,246,247,248 100000 1 9126 -Ethernet16 233,234,235,236 100000 2 9126 -Ethernet20 237,238,239,240 100000 2 9126 -Ethernet24 225,226,227,228 100000 3 9126 -Ethernet28 229,230,231,232 100000 3 9126 -Ethernet32 217,218,219,220 100000 4 9126 -Ethernet36 221,222,223,224 100000 4 9126 -Ethernet40 209,210,211,212 100000 5 9126 -Ethernet44 213,214,215,216 100000 5 9126 -Ethernet48 201,202,203,204 100000 6 9126 -Ethernet52 205,206,207,208 100000 6 9126 -Ethernet56 193,194,195,196 100000 7 9126 -Ethernet60 197,198,199,200 100000 7 9126 -Ethernet64 185,186,187,188 100000 8 9126 -Ethernet68 189,190,191,192 100000 8 9126 -Ethernet72 177,178,179,180 100000 9 9126 -Ethernet76 181,182,183,184 100000 9 9126 -Ethernet80 169,170,171,172 100000 10 9126 -Ethernet84 173,174,175,176 100000 10 9126 -Ethernet88 161,162,163,164 100000 11 9126 -Ethernet92 165,166,167,168 100000 11 9126 -Ethernet96 153,154,155,156 100000 12 9126 -Ethernet100 157,158,159,160 100000 12 9126 -Ethernet104 145,146,147,148 100000 13 9126 -Ethernet108 149,150,151,152 100000 13 9126 -Ethernet112 137,138,139,140 100000 14 9126 -Ethernet116 141,142,143,144 100000 14 9126 -Ethernet120 129,130,131,132 100000 15 9126 -Ethernet124 133,134,135,136 100000 15 9126 -Ethernet128 121,122,123,124 100000 16 9126 -Ethernet132 125,126,127,128 100000 16 9126 -Ethernet136 113,114,115,116 100000 17 9126 -Ethernet140 117,118,119,120 100000 17 9126 -Ethernet144 97,98,99,100 100000 18 9126 -Ethernet148 101,102,103,104 100000 18 9126 -Ethernet152 105,106,107,108 100000 19 9126 -Ethernet156 109,110,111,112 100000 19 9126 -Ethernet160 81,82,83,84 100000 20 9126 -Ethernet164 85,86,87,88 100000 20 9126 -Ethernet168 89,90,91,92 100000 21 9126 -Ethernet172 93,94,95,96 100000 21 9126 -Ethernet176 65,66,67,68 100000 22 9126 -Ethernet180 69,70,71,72 100000 22 9126 -Ethernet184 73,74,75,76 100000 23 9126 -Ethernet188 77,78,79,80 100000 23 9126 -Ethernet192 49,50,51,52 100000 24 9126 -Ethernet196 53,54,55,56 100000 24 9126 -Ethernet200 57,58,59,60 100000 25 9126 -Ethernet204 61,62,63,64 100000 25 9126 -Ethernet208 33,34,35,36 100000 26 9126 -Ethernet212 37,38,39,40 100000 26 9126 -Ethernet216 41,42,43,44 100000 27 9126 -Ethernet220 45,46,47,48 100000 27 9126 -Ethernet224 17,18,19,20 100000 28 9126 -Ethernet228 21,22,23,24 100000 28 9126 -Ethernet232 25,26,27,28 100000 29 9126 -Ethernet236 29,30,31,32 100000 29 9126 -Ethernet240 1,2,3,4 100000 30 9126 -Ethernet244 5,6,7,8 100000 30 9126 -Ethernet248 9,10,11,12 100000 31 9126 -Ethernet252 13,14,15,16 100000 31 9126 -Ethernet256 257 10000 32 9126 -Ethernet257 258 10000 33 9126 +# name lanes alias speed index mtu +Ethernet0 249,250,251,252 Eth1/1 100000 0 9126 +Ethernet4 253,254,255,256 Eth1/2 100000 0 9126 +Ethernet8 241,242,243,244 Eth2/1 100000 1 9126 +Ethernet12 245,246,247,248 Eth2/2 100000 1 9126 +Ethernet16 233,234,235,236 Eth3/1 100000 2 9126 +Ethernet20 237,238,239,240 Eth3/2 100000 2 9126 +Ethernet24 225,226,227,228 Eth4/1 100000 3 9126 +Ethernet28 229,230,231,232 Eth4/2 100000 3 9126 +Ethernet32 217,218,219,220 Eth5/1 100000 4 9126 +Ethernet36 221,222,223,224 Eth5/2 100000 4 9126 +Ethernet40 209,210,211,212 Eth6/1 100000 5 9126 +Ethernet44 213,214,215,216 Eth6/1 100000 5 9126 +Ethernet48 201,202,203,204 Eth7/1 100000 6 9126 +Ethernet52 205,206,207,208 Eth7/2 100000 6 9126 +Ethernet56 193,194,195,196 Eth8/1 100000 7 9126 +Ethernet60 197,198,199,200 Eth8/2 100000 7 9126 +Ethernet64 185,186,187,188 Eth9/2 100000 8 9126 +Ethernet68 189,190,191,192 Eth9/2 100000 8 9126 +Ethernet72 177,178,179,180 Eth10/1 100000 9 9126 +Ethernet76 181,182,183,184 Eth10/2 100000 9 9126 +Ethernet80 169,170,171,172 Eth11/1 100000 10 9126 +Ethernet84 173,174,175,176 Eth11/2 100000 10 9126 +Ethernet88 161,162,163,164 Eth12/1 100000 11 9126 +Ethernet92 165,166,167,168 Eth12/2 100000 11 9126 +Ethernet96 153,154,155,156 Eth13/1 100000 12 9126 +Ethernet100 157,158,159,160 Eth13/2 100000 12 9126 +Ethernet104 145,146,147,148 Eth14/1 100000 13 9126 +Ethernet108 149,150,151,152 Eth14/2 100000 13 9126 +Ethernet112 137,138,139,140 Eth15/1 100000 14 9126 +Ethernet116 141,142,143,144 Eth15/2 100000 14 9126 +Ethernet120 129,130,131,132 Eth16/1 100000 15 9126 +Ethernet124 133,134,135,136 Eth16/2 100000 15 9126 +Ethernet128 121,122,123,124 Eth17/1 100000 16 9126 +Ethernet132 125,126,127,128 Eth17/2 100000 16 9126 +Ethernet136 113,114,115,116 Eth18/1 100000 17 9126 +Ethernet140 117,118,119,120 Eth18/2 100000 17 9126 +Ethernet144 97,98,99,100 Eth19/1 100000 18 9126 +Ethernet148 101,102,103,104 Eth19/2 100000 18 9126 +Ethernet152 105,106,107,108 Eth20/1 100000 19 9126 +Ethernet156 109,110,111,112 Eth20/2 100000 19 9126 +Ethernet160 81,82,83,84 Eth21/1 100000 20 9126 +Ethernet164 85,86,87,88 Eth21/2 100000 20 9126 +Ethernet168 89,90,91,92 Eth22/1 100000 21 9126 +Ethernet172 93,94,95,96 Eth22/2 100000 21 9126 +Ethernet176 65,66,67,68 Eth23/1 100000 22 9126 +Ethernet180 69,70,71,72 Eth23/2 100000 22 9126 +Ethernet184 73,74,75,76 Eth24/1 100000 23 9126 +Ethernet188 77,78,79,80 Eth24/2 100000 23 9126 +Ethernet192 49,50,51,52 Eth25/1 100000 24 9126 +Ethernet196 53,54,55,56 Eth25/2 100000 24 9126 +Ethernet200 57,58,59,60 Eth26/1 100000 25 9126 +Ethernet204 61,62,63,64 Eth26/2 100000 25 9126 +Ethernet208 33,34,35,36 Eth27/1 100000 26 9126 +Ethernet212 37,38,39,40 Eth27/2 100000 26 9126 +Ethernet216 41,42,43,44 Eth28/1 100000 27 9126 +Ethernet220 45,46,47,48 Eth28/2 100000 27 9126 +Ethernet224 17,18,19,20 Eth29/1 100000 28 9126 +Ethernet228 21,22,23,24 Eth29/2 100000 28 9126 +Ethernet232 25,26,27,28 Eth30/1 100000 29 9126 +Ethernet236 29,30,31,32 Eth30/2 100000 29 9126 +Ethernet240 1,2,3,4 Eth31/1 100000 30 9126 +Ethernet244 5,6,7,8 Eth31/2 100000 30 9126 +Ethernet248 9,10,11,12 Eth32/1 100000 31 9126 +Ethernet252 13,14,15,16 Eth32/2 100000 31 9126 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/qos.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/qos.json.j2 index 16f9b42a2166..3938fc1a05c4 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/qos.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 64 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -114,7 +103,12 @@ "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/qos_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/qos_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/sai.profile b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/sai.profile +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x100/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/alt_cfg/config_64x200G_Delta-et-c032if_aux.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/alt_cfg/config_64x200G_Delta-et-c032if_aux.yaml new file mode 100755 index 000000000000..4b75a205ab5c --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/alt_cfg/config_64x200G_Delta-et-c032if_aux.yaml @@ -0,0 +1,653 @@ +ifcs: + options: + log_level: "info" +nodes: +- node_id: "0" + options: + sku: "configs/sku/innovium.77700_B" + netdev: + - auto_create: "no" + multi_interface: "yes" + buffer_management_mode: "api_driven" + max_lossless_tc: "2" + txring: + - txring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + rxring: + - rxring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44" + - rxring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45" + - rxring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46" + - rxring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47" + sys_clk: "1720" + ifc_clk: "1200" + mac_clk: "1340" + + devports: + - id: "0" + sysport: "1000" + type: "cpu" + - fec: "KPFEC" + id: "249" + lanes: "0:4" + serdes_group: "31" + speed: "200G" + sysport: "249" + type: "eth" + - fec: "KPFEC" + id: "253" + lanes: "4:4" + serdes_group: "31" + speed: "200G" + sysport: "253" + type: "eth" + - fec: "KPFEC" + id: "241" + lanes: "0:4" + serdes_group: "30" + speed: "200G" + sysport: "241" + type: "eth" + - fec: "KPFEC" + id: "245" + lanes: "4:4" + serdes_group: "30" + speed: "200G" + sysport: "245" + type: "eth" + - fec: "KPFEC" + id: "233" + lanes: "0:4" + serdes_group: "29" + speed: "200G" + sysport: "233" + type: "eth" + - fec: "KPFEC" + id: "237" + lanes: "4:4" + serdes_group: "29" + speed: "200G" + sysport: "237" + type: "eth" + - fec: "KPFEC" + id: "225" + lanes: "0:4" + serdes_group: "28" + speed: "200G" + sysport: "225" + type: "eth" + - fec: "KPFEC" + id: "229" + lanes: "4:4" + serdes_group: "28" + speed: "200G" + sysport: "229" + type: "eth" + - fec: "KPFEC" + id: "217" + lanes: "0:4" + serdes_group: "27" + speed: "200G" + sysport: "217" + type: "eth" + - fec: "KPFEC" + id: "221" + lanes: "4:4" + serdes_group: "27" + speed: "200G" + sysport: "221" + type: "eth" + - fec: "KPFEC" + id: "209" + lanes: "0:4" + serdes_group: "26" + speed: "200G" + sysport: "209" + type: "eth" + - fec: "KPFEC" + id: "213" + lanes: "4:4" + serdes_group: "26" + speed: "200G" + sysport: "213" + type: "eth" + - fec: "KPFEC" + id: "201" + lanes: "0:4" + serdes_group: "25" + speed: "200G" + sysport: "201" + type: "eth" + - fec: "KPFEC" + id: "205" + lanes: "4:4" + serdes_group: "25" + speed: "200G" + sysport: "205" + type: "eth" + - fec: "KPFEC" + id: "193" + lanes: "0:4" + serdes_group: "24" + speed: "200G" + sysport: "193" + type: "eth" + - fec: "KPFEC" + id: "197" + lanes: "4:4" + serdes_group: "24" + speed: "200G" + sysport: "197" + type: "eth" + - fec: "KPFEC" + id: "185" + lanes: "0:4" + serdes_group: "23" + speed: "200G" + sysport: "185" + type: "eth" + - fec: "KPFEC" + id: "189" + lanes: "4:4" + serdes_group: "23" + speed: "200G" + sysport: "189" + type: "eth" + - fec: "KPFEC" + id: "177" + lanes: "0:4" + serdes_group: "22" + speed: "200G" + sysport: "177" + type: "eth" + - fec: "KPFEC" + id: "181" + lanes: "4:4" + serdes_group: "22" + speed: "200G" + sysport: "181" + type: "eth" + - fec: "KPFEC" + id: "169" + lanes: "0:4" + serdes_group: "21" + speed: "200G" + sysport: "169" + type: "eth" + - fec: "KPFEC" + id: "173" + lanes: "4:4" + serdes_group: "21" + speed: "200G" + sysport: "173" + type: "eth" + - fec: "KPFEC" + id: "161" + lanes: "0:4" + serdes_group: "20" + speed: "200G" + sysport: "161" + type: "eth" + - fec: "KPFEC" + id: "165" + lanes: "4:4" + serdes_group: "20" + speed: "200G" + sysport: "165" + type: "eth" + - fec: "KPFEC" + id: "153" + lanes: "0:4" + serdes_group: "19" + speed: "200G" + sysport: "153" + type: "eth" + - fec: "KPFEC" + id: "157" + lanes: "4:4" + serdes_group: "19" + speed: "200G" + sysport: "157" + type: "eth" + - fec: "KPFEC" + id: "145" + lanes: "0:4" + serdes_group: "18" + speed: "200G" + sysport: "145" + type: "eth" + - fec: "KPFEC" + id: "149" + lanes: "4:4" + serdes_group: "18" + speed: "200G" + sysport: "149" + type: "eth" + - fec: "KPFEC" + id: "137" + lanes: "0:4" + serdes_group: "17" + speed: "200G" + sysport: "137" + type: "eth" + - fec: "KPFEC" + id: "141" + lanes: "4:4" + serdes_group: "17" + speed: "200G" + sysport: "141" + type: "eth" + - fec: "KPFEC" + id: "129" + lanes: "0:4" + serdes_group: "16" + speed: "200G" + sysport: "129" + type: "eth" + - fec: "KPFEC" + id: "133" + lanes: "4:4" + serdes_group: "16" + speed: "200G" + sysport: "133" + type: "eth" + - fec: "KPFEC" + id: "121" + lanes: "0:4" + serdes_group: "15" + speed: "200G" + sysport: "121" + type: "eth" + - fec: "KPFEC" + id: "125" + lanes: "4:4" + serdes_group: "15" + speed: "200G" + sysport: "125" + type: "eth" + - fec: "KPFEC" + id: "113" + lanes: "0:4" + serdes_group: "14" + speed: "200G" + sysport: "113" + type: "eth" + - fec: "KPFEC" + id: "117" + lanes: "4:4" + serdes_group: "14" + speed: "200G" + sysport: "117" + type: "eth" + - fec: "KPFEC" + id: "97" + lanes: "0:4" + serdes_group: "12" + speed: "200G" + sysport: "97" + type: "eth" + - fec: "KPFEC" + id: "101" + lanes: "4:4" + serdes_group: "12" + speed: "200G" + sysport: "101" + type: "eth" + - fec: "KPFEC" + id: "105" + lanes: "0:4" + serdes_group: "13" + speed: "200G" + sysport: "105" + type: "eth" + - fec: "KPFEC" + id: "109" + lanes: "4:4" + serdes_group: "13" + speed: "200G" + sysport: "109" + type: "eth" + - fec: "KPFEC" + id: "81" + lanes: "0:4" + serdes_group: "10" + speed: "200G" + sysport: "81" + type: "eth" + - fec: "KPFEC" + id: "85" + lanes: "4:4" + serdes_group: "10" + speed: "200G" + sysport: "85" + type: "eth" + - fec: "KPFEC" + id: "89" + lanes: "0:4" + serdes_group: "11" + speed: "200G" + sysport: "89" + type: "eth" + - fec: "KPFEC" + id: "93" + lanes: "4:4" + serdes_group: "11" + speed: "200G" + sysport: "93" + type: "eth" + - fec: "KPFEC" + id: "65" + lanes: "0:4" + serdes_group: "8" + speed: "200G" + sysport: "65" + type: "eth" + - fec: "KPFEC" + id: "69" + lanes: "4:4" + serdes_group: "8" + speed: "200G" + sysport: "69" + type: "eth" + - fec: "KPFEC" + id: "73" + lanes: "0:4" + serdes_group: "9" + speed: "200G" + sysport: "73" + type: "eth" + - fec: "KPFEC" + id: "77" + lanes: "4:4" + serdes_group: "9" + speed: "200G" + sysport: "77" + type: "eth" + - fec: "KPFEC" + id: "49" + lanes: "0:4" + serdes_group: "6" + speed: "200G" + sysport: "49" + type: "eth" + - fec: "KPFEC" + id: "53" + lanes: "4:4" + serdes_group: "6" + speed: "200G" + sysport: "53" + type: "eth" + - fec: "KPFEC" + id: "57" + lanes: "0:4" + serdes_group: "7" + speed: "200G" + sysport: "57" + type: "eth" + - fec: "KPFEC" + id: "61" + lanes: "4:4" + serdes_group: "7" + speed: "200G" + sysport: "61" + type: "eth" + - fec: "KPFEC" + id: "33" + lanes: "0:4" + serdes_group: "4" + speed: "200G" + sysport: "33" + type: "eth" + - fec: "KPFEC" + id: "37" + lanes: "4:4" + serdes_group: "4" + speed: "200G" + sysport: "37" + type: "eth" + - fec: "KPFEC" + id: "41" + lanes: "0:4" + serdes_group: "5" + speed: "200G" + sysport: "41" + type: "eth" + - fec: "KPFEC" + id: "45" + lanes: "4:4" + serdes_group: "5" + speed: "200G" + sysport: "45" + type: "eth" + - fec: "KPFEC" + id: "17" + lanes: "0:4" + serdes_group: "2" + speed: "200G" + sysport: "17" + type: "eth" + - fec: "KPFEC" + id: "21" + lanes: "4:4" + serdes_group: "2" + speed: "200G" + sysport: "21" + type: "eth" + - fec: "KPFEC" + id: "25" + lanes: "0:4" + serdes_group: "3" + speed: "200G" + sysport: "25" + type: "eth" + - fec: "KPFEC" + id: "29" + lanes: "4:4" + serdes_group: "3" + speed: "200G" + sysport: "29" + type: "eth" + - fec: "KPFEC" + id: "1" + lanes: "0:4" + serdes_group: "0" + speed: "200G" + sysport: "1" + type: "eth" + - fec: "KPFEC" + id: "5" + lanes: "4:4" + serdes_group: "0" + speed: "200G" + sysport: "5" + type: "eth" + - fec: "KPFEC" + id: "9" + lanes: "0:4" + serdes_group: "1" + speed: "200G" + sysport: "9" + type: "eth" + - fec: "KPFEC" + id: "13" + lanes: "4:4" + serdes_group: "1" + speed: "200G" + sysport: "13" + type: "eth" + - fec: "NONE" + id: "257" + lanes: "0:1" + serdes_group: "32" + speed: "10G" + sysport: "257" + type: "mgmt 0" + - fec: "NONE" + id: "258" + lanes: "1:1" + serdes_group: "32" + speed: "10G" + sysport: "258" + type: "mgmt 1" + isg: + - id: "0" + tx_polarity: "01010101" + rx_polarity: "01100000" + lane_swap: "23641075" + - id: "1" + tx_polarity: "10110000" + rx_polarity: "11111111" + lane_swap: "64317520" + - id: "2" + tx_polarity: "00000000" + rx_polarity: "00000011" + lane_swap: "63147520" + - id: "3" + tx_polarity: "01101000" + rx_polarity: "00001110" + lane_swap: "31572046" + - id: "4" + tx_polarity: "00111000" + rx_polarity: "00001000" + lane_swap: "46105732" + - id: "5" + tx_polarity: "10111111" + rx_polarity: "11101000" + lane_swap: "27153604" + - id: "6" + tx_polarity: "01101110" + rx_polarity: "00001101" + lane_swap: "46503721" + - id: "7" + tx_polarity: "01000100" + rx_polarity: "10000101" + lane_swap: "03671245" + - id: "8" + tx_polarity: "01110101" + rx_polarity: "00010000" + lane_swap: "12640375" + - id: "9" + tx_polarity: "01011100" + rx_polarity: "11001111" + lane_swap: "02561347" + - id: "10" + tx_polarity: "01110110" + rx_polarity: "11000000" + lane_swap: "12740365" + - id: "11" + tx_polarity: "00111000" + rx_polarity: "00010111" + lane_swap: "01572436" + - id: "12" + tx_polarity: "00001111" + rx_polarity: "10111001" + lane_swap: "54320176" + - id: "13" + tx_polarity: "10011101" + rx_polarity: "00111011" + lane_swap: "26153704" + - id: "14" + tx_polarity: "00110000" + rx_polarity: "11010000" + lane_swap: "37452601" + - id: "15" + tx_polarity: "11100010" + rx_polarity: "01110011" + lane_swap: "51370462" + - id: "16" + tx_polarity: "10111010" + rx_polarity: "11010011" + lane_swap: "36152704" + - id: "17" + tx_polarity: "01011101" + rx_polarity: "00110001" + lane_swap: "45621073" + - id: "18" + tx_polarity: "11011111" + rx_polarity: "11001011" + lane_swap: "26143705" + - id: "19" + tx_polarity: "00100110" + rx_polarity: "00001001" + lane_swap: "42730165" + - id: "20" + tx_polarity: "10011011" + rx_polarity: "01101101" + lane_swap: "54217603" + - id: "21" + tx_polarity: "00101110" + rx_polarity: "10111111" + lane_swap: "26031745" + - id: "22" + tx_polarity: "01001110" + rx_polarity: "00111001" + lane_swap: "36024715" + - id: "23" + tx_polarity: "10101101" + rx_polarity: "01010011" + lane_swap: "45621370" + - id: "24" + tx_polarity: "11001110" + rx_polarity: "00011111" + lane_swap: "65234701" + - id: "25" + tx_polarity: "01110001" + rx_polarity: "01010111" + lane_swap: "37601452" + - id: "26" + tx_polarity: "01000100" + rx_polarity: "00001111" + lane_swap: "65034721" + - id: "27" + tx_polarity: "10111101" + rx_polarity: "11000101" + lane_swap: "34501672" + - id: "28" + tx_polarity: "01111000" + rx_polarity: "01110110" + lane_swap: "43061275" + - id: "29" + tx_polarity: "11110111" + rx_polarity: "11100111" + lane_swap: "57304621" + - id: "30" + tx_polarity: "10000100" + rx_polarity: "00101111" + lane_swap: "47125603" + - id: "31" + tx_polarity: "11111111" + rx_polarity: "11100010" + lane_swap: "13460275" + - id: "32" + tx_polarity: "00000000" + rx_polarity: "00000000" + lane_swap: "01234567" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/alt_cfg/port_config_aux b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/alt_cfg/port_config_aux new file mode 100644 index 000000000000..48971bbb7c16 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/alt_cfg/port_config_aux @@ -0,0 +1,67 @@ +# name lanes alias speed index mtu +Ethernet0 249,250,251,252 Eth1/1 200000 0 9126 +Ethernet4 253,254,255,256 Eth1/2 200000 0 9126 +Ethernet8 241,242,243,244 Eth2/1 200000 1 9126 +Ethernet12 245,246,247,248 Eth2/2 200000 1 9126 +Ethernet16 233,234,235,236 Eth3/1 200000 2 9126 +Ethernet20 237,238,239,240 Eth3/2 200000 2 9126 +Ethernet24 225,226,227,228 Eth4/1 200000 3 9126 +Ethernet28 229,230,231,232 Eth4/2 200000 3 9126 +Ethernet32 217,218,219,220 Eth5/1 200000 4 9126 +Ethernet36 221,222,223,224 Eth5/2 200000 4 9126 +Ethernet40 209,210,211,212 Eth6/1 200000 5 9126 +Ethernet44 213,214,215,216 Eth6/1 200000 5 9126 +Ethernet48 201,202,203,204 Eth7/1 200000 6 9126 +Ethernet52 205,206,207,208 Eth7/2 200000 6 9126 +Ethernet56 193,194,195,196 Eth8/1 200000 7 9126 +Ethernet60 197,198,199,200 Eth8/2 200000 7 9126 +Ethernet64 185,186,187,188 Eth9/2 200000 8 9126 +Ethernet68 189,190,191,192 Eth9/2 200000 8 9126 +Ethernet72 177,178,179,180 Eth10/1 200000 9 9126 +Ethernet76 181,182,183,184 Eth10/2 200000 9 9126 +Ethernet80 169,170,171,172 Eth11/1 200000 10 9126 +Ethernet84 173,174,175,176 Eth11/2 200000 10 9126 +Ethernet88 161,162,163,164 Eth12/1 200000 11 9126 +Ethernet92 165,166,167,168 Eth12/2 200000 11 9126 +Ethernet96 153,154,155,156 Eth13/1 200000 12 9126 +Ethernet100 157,158,159,160 Eth13/2 200000 12 9126 +Ethernet104 145,146,147,148 Eth14/1 200000 13 9126 +Ethernet108 149,150,151,152 Eth14/2 200000 13 9126 +Ethernet112 137,138,139,140 Eth15/1 200000 14 9126 +Ethernet116 141,142,143,144 Eth15/2 200000 14 9126 +Ethernet120 129,130,131,132 Eth16/1 200000 15 9126 +Ethernet124 133,134,135,136 Eth16/2 200000 15 9126 +Ethernet128 121,122,123,124 Eth17/1 200000 16 9126 +Ethernet132 125,126,127,128 Eth17/2 200000 16 9126 +Ethernet136 113,114,115,116 Eth18/1 200000 17 9126 +Ethernet140 117,118,119,120 Eth18/2 200000 17 9126 +Ethernet144 97,98,99,100 Eth19/1 200000 18 9126 +Ethernet148 101,102,103,104 Eth19/2 200000 18 9126 +Ethernet152 105,106,107,108 Eth20/1 200000 19 9126 +Ethernet156 109,110,111,112 Eth20/2 200000 19 9126 +Ethernet160 81,82,83,84 Eth21/1 200000 20 9126 +Ethernet164 85,86,87,88 Eth21/2 200000 20 9126 +Ethernet168 89,90,91,92 Eth22/1 200000 21 9126 +Ethernet172 93,94,95,96 Eth22/2 200000 21 9126 +Ethernet176 65,66,67,68 Eth23/1 200000 22 9126 +Ethernet180 69,70,71,72 Eth23/2 200000 22 9126 +Ethernet184 73,74,75,76 Eth24/1 200000 23 9126 +Ethernet188 77,78,79,80 Eth24/2 200000 23 9126 +Ethernet192 49,50,51,52 Eth25/1 200000 24 9126 +Ethernet196 53,54,55,56 Eth25/2 200000 24 9126 +Ethernet200 57,58,59,60 Eth26/1 200000 25 9126 +Ethernet204 61,62,63,64 Eth26/2 200000 25 9126 +Ethernet208 33,34,35,36 Eth27/1 200000 26 9126 +Ethernet212 37,38,39,40 Eth27/2 200000 26 9126 +Ethernet216 41,42,43,44 Eth28/1 200000 27 9126 +Ethernet220 45,46,47,48 Eth28/2 200000 27 9126 +Ethernet224 17,18,19,20 Eth29/1 200000 28 9126 +Ethernet228 21,22,23,24 Eth29/2 200000 28 9126 +Ethernet232 25,26,27,28 Eth30/1 200000 29 9126 +Ethernet236 29,30,31,32 Eth30/2 200000 29 9126 +Ethernet240 1,2,3,4 Eth31/1 200000 30 9126 +Ethernet244 5,6,7,8 Eth31/2 200000 30 9126 +Ethernet248 9,10,11,12 Eth32/1 200000 31 9126 +Ethernet252 13,14,15,16 Eth32/2 200000 31 9126 +Ethernet256 257 Aux1 10000 32 9126 +Ethernet257 258 Aux2 10000 33 9126 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/buffers.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/buffers.json.j2 index 45cebf3b7144..ada7dca895ce 100644 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/buffers.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/buffers.json.j2 @@ -1,6 +1,5 @@ {# Default values which will be used if no actual configura available #} -{% set default_cable = '300m' %} -{% set default_ports_num = 64 -%} +{% set default_cable = '40m' %} {# Port configuration to cable length look-up table #} {# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} @@ -12,44 +11,53 @@ } %} -{%- macro cable_length(port_name) -%} - {%- set cable_len = [] -%} - {%- for local_port in DEVICE_NEIGHBOR -%} - {%- if local_port == port_name -%} - {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} - {%- set neighbor_role = neighbor.type -%} +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} {%- set roles1 = switch_role + '_' + neighbor_role %} - {%- set roles2 = neighbor_role + '_' + switch_role -%} - {%- set roles1 = roles1 | lower -%} - {%- set roles2 = roles2 | lower -%} - {%- if roles1 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} - {%- elif roles2 in ports2cable -%} - {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} {%- if cable_len -%} {{ cable_len.0 }} - {%- else -%} - {{ default_cable }} - {%- endif -%} -{% endmacro %} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} {%- if DEVICE_METADATA is defined %} {%- set switch_role = DEVICE_METADATA['localhost']['type'] %} {%- endif -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -57,6 +65,15 @@ {% set port_names = port_names_list | join(',') -%} { + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, "BUFFER_POOL": { "ingress_lossless_pool": { "size": "47218432", @@ -64,7 +81,7 @@ "mode": "dynamic", "xoff": "17708800" }, - "egress_lossy_pool": { + "lossy_pool": { "size": "18874368", "type": "egress", "mode": "dynamic", @@ -74,46 +91,46 @@ "BUFFER_PROFILE": { "ingress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", - "xoff":"1433600", + "xoff":"38816", "size":"1518", - "dynamic_th":"-4", - "xon_offset":"6272" + "dynamic_th":"3", + "xon_offset":"13440" }, - "ingress_lossy_profile": { + "egress_lossless_profile": { "pool":"[BUFFER_POOL|ingress_lossless_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, - "egress_lossless_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", "size":"0", - "static_th":"9721600" + "static_th":"9497600" }, "egress_lossy_profile": { - "pool":"[BUFFER_POOL|egress_lossy_pool]", + "pool":"[BUFFER_POOL|lossy_pool]", "size":"1518", "dynamic_th":"3" } }, "BUFFER_PG": { - "{{ port_names }}|0-3": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" }, - "{{ port_names }}|4-5": { + "{{ port_names }}|3-4": { "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" }, - "{{ port_names }}|6-7": { - "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" } }, "BUFFER_QUEUE": { - "{{ port_names }}|4-5": { - "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" }, - "{{ port_names }}|0-3": { + "{{ port_names }}|0-2": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" }, - "{{ port_names }}|6-7": { + "{{ port_names }}|5-7": { "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/buffers_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..fa2b49e6340a --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "56985600", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/buffers_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..ada7dca895ce --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "47218432", + "type": "ingress", + "mode": "dynamic", + "xoff": "17708800" + }, + "lossy_pool": { + "size": "18874368", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"9497600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"9497600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/config_64x200G_Delta-et-c032if.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/config_64x200G_Delta-et-c032if.yaml index 4b75a205ab5c..cbf750c1c18a 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/config_64x200G_Delta-et-c032if.yaml +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/config_64x200G_Delta-et-c032if.yaml @@ -10,6 +10,8 @@ nodes: multi_interface: "yes" buffer_management_mode: "api_driven" max_lossless_tc: "2" + ilpm_enable: "1" + forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E" txring: - txring_id: "0" desc_count: "1024" @@ -504,20 +506,6 @@ nodes: speed: "200G" sysport: "13" type: "eth" - - fec: "NONE" - id: "257" - lanes: "0:1" - serdes_group: "32" - speed: "10G" - sysport: "257" - type: "mgmt 0" - - fec: "NONE" - id: "258" - lanes: "1:1" - serdes_group: "32" - speed: "10G" - sysport: "258" - type: "mgmt 1" isg: - id: "0" tx_polarity: "01010101" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/ivm.sai.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/ivm.sai.config.yaml new file mode 100755 index 000000000000..1f34d882ff82 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_64x200G_Delta-et-c032if.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/ivm.sai.datapath.config.yaml b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..891b0b3e2834 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880" +ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218" +ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960" +ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920" +ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938" +ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478" +ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98" +ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126" diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/pg_profile_lookup.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/pg_profile_lookup.ini new file mode 100644 index 000000000000..27775dfff78d --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 15680 3 13440 + 50000 5m 1518 0 21152 3 13440 + 100000 5m 1518 0 34336 3 13440 + 400000 5m 1518 0 117376 3 13440 + 25000 40m 1518 0 16800 3 13440 + 50000 40m 1518 0 23392 3 13440 + 100000 40m 1518 0 38816 3 13440 + 400000 40m 1518 0 135296 3 13440 + 25000 300m 1518 0 25120 3 13440 + 50000 300m 1518 0 40032 3 13440 + 100000 300m 1518 0 72096 3 13440 + 400000 300m 1518 0 268416 3 13440 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/port_config.ini b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/port_config.ini index 726e1a377d83..0a569b459510 100644 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/port_config.ini +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/port_config.ini @@ -1,67 +1,65 @@ -# name lanes speed index mtu -Ethernet0 249,250,251,252 200000 0 9126 -Ethernet4 253,254,255,256 200000 0 9126 -Ethernet8 241,242,243,244 200000 1 9126 -Ethernet12 245,246,247,248 200000 1 9126 -Ethernet16 233,234,235,236 200000 2 9126 -Ethernet20 237,238,239,240 200000 2 9126 -Ethernet24 225,226,227,228 200000 3 9126 -Ethernet28 229,230,231,232 200000 3 9126 -Ethernet32 217,218,219,220 200000 4 9126 -Ethernet36 221,222,223,224 200000 4 9126 -Ethernet40 209,210,211,212 200000 5 9126 -Ethernet44 213,214,215,216 200000 5 9126 -Ethernet48 201,202,203,204 200000 6 9126 -Ethernet52 205,206,207,208 200000 6 9126 -Ethernet56 193,194,195,196 200000 7 9126 -Ethernet60 197,198,199,200 200000 7 9126 -Ethernet64 185,186,187,188 200000 8 9126 -Ethernet68 189,190,191,192 200000 8 9126 -Ethernet72 177,178,179,180 200000 9 9126 -Ethernet76 181,182,183,184 200000 9 9126 -Ethernet80 169,170,171,172 200000 10 9126 -Ethernet84 173,174,175,176 200000 10 9126 -Ethernet88 161,162,163,164 200000 11 9126 -Ethernet92 165,166,167,168 200000 11 9126 -Ethernet96 153,154,155,156 200000 12 9126 -Ethernet100 157,158,159,160 200000 12 9126 -Ethernet104 145,146,147,148 200000 13 9126 -Ethernet108 149,150,151,152 200000 13 9126 -Ethernet112 137,138,139,140 200000 14 9126 -Ethernet116 141,142,143,144 200000 14 9126 -Ethernet120 129,130,131,132 200000 15 9126 -Ethernet124 133,134,135,136 200000 15 9126 -Ethernet128 121,122,123,124 200000 16 9126 -Ethernet132 125,126,127,128 200000 16 9126 -Ethernet136 113,114,115,116 200000 17 9126 -Ethernet140 117,118,119,120 200000 17 9126 -Ethernet144 97,98,99,100 200000 18 9126 -Ethernet148 101,102,103,104 200000 18 9126 -Ethernet152 105,106,107,108 200000 19 9126 -Ethernet156 109,110,111,112 200000 19 9126 -Ethernet160 81,82,83,84 200000 20 9126 -Ethernet164 85,86,87,88 200000 20 9126 -Ethernet168 89,90,91,92 200000 21 9126 -Ethernet172 93,94,95,96 200000 21 9126 -Ethernet176 65,66,67,68 200000 22 9126 -Ethernet180 69,70,71,72 200000 22 9126 -Ethernet184 73,74,75,76 200000 23 9126 -Ethernet188 77,78,79,80 200000 23 9126 -Ethernet192 49,50,51,52 200000 24 9126 -Ethernet196 53,54,55,56 200000 24 9126 -Ethernet200 57,58,59,60 200000 25 9126 -Ethernet204 61,62,63,64 200000 25 9126 -Ethernet208 33,34,35,36 200000 26 9126 -Ethernet212 37,38,39,40 200000 26 9126 -Ethernet216 41,42,43,44 200000 27 9126 -Ethernet220 45,46,47,48 200000 27 9126 -Ethernet224 17,18,19,20 200000 28 9126 -Ethernet228 21,22,23,24 200000 28 9126 -Ethernet232 25,26,27,28 200000 29 9126 -Ethernet236 29,30,31,32 200000 29 9126 -Ethernet240 1,2,3,4 200000 30 9126 -Ethernet244 5,6,7,8 200000 30 9126 -Ethernet248 9,10,11,12 200000 31 9126 -Ethernet252 13,14,15,16 200000 31 9126 -Ethernet256 257 10000 32 9126 -Ethernet257 258 10000 33 9126 +# name lanes alias speed index mtu +Ethernet0 249,250,251,252 Eth1/1 200000 0 9126 +Ethernet4 253,254,255,256 Eth1/2 200000 0 9126 +Ethernet8 241,242,243,244 Eth2/1 200000 1 9126 +Ethernet12 245,246,247,248 Eth2/2 200000 1 9126 +Ethernet16 233,234,235,236 Eth3/1 200000 2 9126 +Ethernet20 237,238,239,240 Eth3/2 200000 2 9126 +Ethernet24 225,226,227,228 Eth4/1 200000 3 9126 +Ethernet28 229,230,231,232 Eth4/2 200000 3 9126 +Ethernet32 217,218,219,220 Eth5/1 200000 4 9126 +Ethernet36 221,222,223,224 Eth5/2 200000 4 9126 +Ethernet40 209,210,211,212 Eth6/1 200000 5 9126 +Ethernet44 213,214,215,216 Eth6/1 200000 5 9126 +Ethernet48 201,202,203,204 Eth7/1 200000 6 9126 +Ethernet52 205,206,207,208 Eth7/2 200000 6 9126 +Ethernet56 193,194,195,196 Eth8/1 200000 7 9126 +Ethernet60 197,198,199,200 Eth8/2 200000 7 9126 +Ethernet64 185,186,187,188 Eth9/2 200000 8 9126 +Ethernet68 189,190,191,192 Eth9/2 200000 8 9126 +Ethernet72 177,178,179,180 Eth10/1 200000 9 9126 +Ethernet76 181,182,183,184 Eth10/2 200000 9 9126 +Ethernet80 169,170,171,172 Eth11/1 200000 10 9126 +Ethernet84 173,174,175,176 Eth11/2 200000 10 9126 +Ethernet88 161,162,163,164 Eth12/1 200000 11 9126 +Ethernet92 165,166,167,168 Eth12/2 200000 11 9126 +Ethernet96 153,154,155,156 Eth13/1 200000 12 9126 +Ethernet100 157,158,159,160 Eth13/2 200000 12 9126 +Ethernet104 145,146,147,148 Eth14/1 200000 13 9126 +Ethernet108 149,150,151,152 Eth14/2 200000 13 9126 +Ethernet112 137,138,139,140 Eth15/1 200000 14 9126 +Ethernet116 141,142,143,144 Eth15/2 200000 14 9126 +Ethernet120 129,130,131,132 Eth16/1 200000 15 9126 +Ethernet124 133,134,135,136 Eth16/2 200000 15 9126 +Ethernet128 121,122,123,124 Eth17/1 200000 16 9126 +Ethernet132 125,126,127,128 Eth17/2 200000 16 9126 +Ethernet136 113,114,115,116 Eth18/1 200000 17 9126 +Ethernet140 117,118,119,120 Eth18/2 200000 17 9126 +Ethernet144 97,98,99,100 Eth19/1 200000 18 9126 +Ethernet148 101,102,103,104 Eth19/2 200000 18 9126 +Ethernet152 105,106,107,108 Eth20/1 200000 19 9126 +Ethernet156 109,110,111,112 Eth20/2 200000 19 9126 +Ethernet160 81,82,83,84 Eth21/1 200000 20 9126 +Ethernet164 85,86,87,88 Eth21/2 200000 20 9126 +Ethernet168 89,90,91,92 Eth22/1 200000 21 9126 +Ethernet172 93,94,95,96 Eth22/2 200000 21 9126 +Ethernet176 65,66,67,68 Eth23/1 200000 22 9126 +Ethernet180 69,70,71,72 Eth23/2 200000 22 9126 +Ethernet184 73,74,75,76 Eth24/1 200000 23 9126 +Ethernet188 77,78,79,80 Eth24/2 200000 23 9126 +Ethernet192 49,50,51,52 Eth25/1 200000 24 9126 +Ethernet196 53,54,55,56 Eth25/2 200000 24 9126 +Ethernet200 57,58,59,60 Eth26/1 200000 25 9126 +Ethernet204 61,62,63,64 Eth26/2 200000 25 9126 +Ethernet208 33,34,35,36 Eth27/1 200000 26 9126 +Ethernet212 37,38,39,40 Eth27/2 200000 26 9126 +Ethernet216 41,42,43,44 Eth28/1 200000 27 9126 +Ethernet220 45,46,47,48 Eth28/2 200000 27 9126 +Ethernet224 17,18,19,20 Eth29/1 200000 28 9126 +Ethernet228 21,22,23,24 Eth29/2 200000 28 9126 +Ethernet232 25,26,27,28 Eth30/1 200000 29 9126 +Ethernet236 29,30,31,32 Eth30/2 200000 29 9126 +Ethernet240 1,2,3,4 Eth31/1 200000 30 9126 +Ethernet244 5,6,7,8 Eth31/2 200000 30 9126 +Ethernet248 9,10,11,12 Eth32/1 200000 31 9126 +Ethernet252 13,14,15,16 Eth32/2 200000 31 9126 diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/qos.json.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/qos.json.j2 index 16f9b42a2166..3938fc1a05c4 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/qos.json.j2 +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/qos.json.j2 @@ -1,14 +1,3 @@ -{# Default values which will be used if no actual configura available #} - -{% set default_ports_num = 64 -%} -{# Generate list of ports if not defined #} -{% if PORT is not defined %} - {% set PORT = [] %} - {% for port_idx in range(0,default_ports_num) %} - {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} - {% endfor %} -{% endif -%} - {% set port_names_list = [] %} {% for port in PORT %} {%- if port_names_list.append(port) %}{% endif %} @@ -19,24 +8,24 @@ { "TC_TO_QUEUE_MAP":{ "AZURE":{ - "1":"1", "0":"0", - "3":"3", + "1":"1", "2":"2", - "5":"5", + "3":"3", "4":"4", - "7":"7", - "6":"6" + "5":"5", + "6":"6", + "7":"7" } }, "TC_TO_PRIORITY_GROUP_MAP": { "AZURE": { - "1": "0", "0": "0", - "3": "0", + "1": "0", "2": "0", - "4": "1", - "5": "2", + "3": "1", + "4": "2", + "5": "0", "6": "0", "7": "0" } @@ -46,9 +35,9 @@ "0":"0", "1":"0", "2":"0", - "3":"0", + "3":"3", "4":"4", - "5":"5", + "5":"0", "6":"0", "7":"0", "8":"1", @@ -114,7 +103,12 @@ "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", - "pfc_enable": "4,5" + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" } } } diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/qos_defaults_def_lossy.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/qos_defaults_t1.j2 b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/qos_defaults_t1.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/sai.profile b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/sai.profile index 0769b3063a12..aba4fc81fb17 100755 --- a/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/sai.profile +++ b/device/delta/x86_64-delta_et-c032if-r0/Delta-et-c032if_64x200/sai.profile @@ -1 +1 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/delta/x86_64-delta_et-c032if-r0/pmon_daemon_control.json b/device/delta/x86_64-delta_et-c032if-r0/pmon_daemon_control.json new file mode 100644 index 000000000000..f490a4dc0f39 --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/pmon_daemon_control.json @@ -0,0 +1,3 @@ +{ + "skip_thermalctld": true +} diff --git a/device/delta/x86_64-delta_et-c032if-r0/topo.conf b/device/delta/x86_64-delta_et-c032if-r0/topo.conf new file mode 100644 index 000000000000..795ea43143eb --- /dev/null +++ b/device/delta/x86_64-delta_et-c032if-r0/topo.conf @@ -0,0 +1 @@ +t1 diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/buffers.json.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/buffers.json.j2 new file mode 100644 index 000000000000..f81abfcfc53f --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/buffers.json.j2 @@ -0,0 +1,120 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '300m' %} +{% set default_ports_num = 32 -%} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) -%} + {%- set cable_len = [] -%} + {%- for local_port in DEVICE_NEIGHBOR -%} + {%- if local_port == port_name -%} + {%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%} + {%- set neighbor_role = neighbor.type -%} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role -%} + {%- set roles1 = roles1 | lower -%} + {%- set roles2 = roles2 | lower -%} + {%- if roles1 in ports2cable -%} + {%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%} + {%- elif roles2 in ports2cable -%} + {%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%} + {%- endif -%} + {%- endif -%} + {%- endif -%} + {%- endfor -%} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif -%} +{% endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{# Generate list of ports if not defined #} +{% if PORT is not defined %} + {% set PORT = [] %} + {% for port_idx in range(0,default_ports_num) %} + {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} + {% endfor %} +{% endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "34056960", + "type": "ingress", + "mode": "dynamic", + "xoff": "4185600" + }, + "egress_lossy_pool": { + "size": "14595840", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"1433600", + "size":"1518", + "dynamic_th":"-4", + "xon_offset":"6272" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"23001600" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|egress_lossy_pool]", + "size":"0", + "static_th":"23001600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|egress_lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-3": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|4-5": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|6-7": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|4-5": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|0-3": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|6-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/config_32x200G_Delta-evs-a-32q56.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/config_32x200G_Delta-evs-a-32q56.yaml new file mode 100755 index 000000000000..2ba23d2a5a67 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/config_32x200G_Delta-evs-a-32q56.yaml @@ -0,0 +1,429 @@ +ifcs: + options: + log_level: "info" +nodes: +- node_id: "0" + options: + sku: "configs/sku/innovium.77700_A" + netdev: + - auto_create: "no" + multi_interface: "yes" + buffer_management_mode: "api_driven" + max_lossless_tc: "2" + txring: + - txring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + rxring: + - rxring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44" + - rxring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45" + - rxring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46" + - rxring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47" + sys_clk: "1720" + ifc_clk: "1200" + mac_clk: "1340" + + devports: + - id: "0" + sysport: "1000" + type: "cpu" + - fec: "KPFEC" + id: "249" + lanes: "0:8" + serdes_group: "31" + speed: "400G" + sysport: "249" + type: "eth" + - fec: "KPFEC" + id: "241" + lanes: "0:8" + serdes_group: "30" + speed: "400G" + sysport: "241" + type: "eth" + - fec: "KPFEC" + id: "233" + lanes: "0:8" + serdes_group: "29" + speed: "400G" + sysport: "233" + type: "eth" + - fec: "KPFEC" + id: "225" + lanes: "0:8" + serdes_group: "28" + speed: "400G" + sysport: "225" + type: "eth" + - fec: "KPFEC" + id: "217" + lanes: "0:8" + serdes_group: "27" + speed: "400G" + sysport: "217" + type: "eth" + - fec: "KPFEC" + id: "209" + lanes: "0:8" + serdes_group: "26" + speed: "400G" + sysport: "209" + type: "eth" + - fec: "KPFEC" + id: "201" + lanes: "0:8" + serdes_group: "25" + speed: "400G" + sysport: "201" + type: "eth" + - fec: "KPFEC" + id: "193" + lanes: "0:8" + serdes_group: "24" + speed: "400G" + sysport: "193" + type: "eth" + - fec: "KPFEC" + id: "185" + lanes: "0:8" + serdes_group: "23" + speed: "400G" + sysport: "185" + type: "eth" + - fec: "KPFEC" + id: "177" + lanes: "0:8" + serdes_group: "22" + speed: "400G" + sysport: "177" + type: "eth" + - fec: "KPFEC" + id: "169" + lanes: "0:8" + serdes_group: "21" + speed: "400G" + sysport: "169" + type: "eth" + - fec: "KPFEC" + id: "161" + lanes: "0:8" + serdes_group: "20" + speed: "400G" + sysport: "161" + type: "eth" + - fec: "KPFEC" + id: "153" + lanes: "0:8" + serdes_group: "19" + speed: "400G" + sysport: "153" + type: "eth" + - fec: "KPFEC" + id: "145" + lanes: "0:8" + serdes_group: "18" + speed: "400G" + sysport: "145" + type: "eth" + - fec: "KPFEC" + id: "137" + lanes: "0:8" + serdes_group: "17" + speed: "400G" + sysport: "137" + type: "eth" + - fec: "KPFEC" + id: "129" + lanes: "0:8" + serdes_group: "16" + speed: "400G" + sysport: "129" + type: "eth" + - fec: "KPFEC" + id: "121" + lanes: "0:8" + serdes_group: "15" + speed: "400G" + sysport: "121" + type: "eth" + - fec: "KPFEC" + id: "113" + lanes: "0:8" + serdes_group: "14" + speed: "400G" + sysport: "113" + type: "eth" + - fec: "KPFEC" + id: "97" + lanes: "0:8" + serdes_group: "12" + speed: "400G" + sysport: "97" + type: "eth" + - fec: "KPFEC" + id: "105" + lanes: "0:8" + serdes_group: "13" + speed: "400G" + sysport: "105" + type: "eth" + - fec: "KPFEC" + id: "81" + lanes: "0:8" + serdes_group: "10" + speed: "400G" + sysport: "81" + type: "eth" + - fec: "KPFEC" + id: "89" + lanes: "0:8" + serdes_group: "11" + speed: "400G" + sysport: "89" + type: "eth" + - fec: "KPFEC" + id: "65" + lanes: "0:8" + serdes_group: "8" + speed: "400G" + sysport: "65" + type: "eth" + - fec: "KPFEC" + id: "73" + lanes: "0:8" + serdes_group: "9" + speed: "400G" + sysport: "73" + type: "eth" + - fec: "KPFEC" + id: "49" + lanes: "0:8" + serdes_group: "6" + speed: "400G" + sysport: "49" + type: "eth" + - fec: "KPFEC" + id: "57" + lanes: "0:8" + serdes_group: "7" + speed: "400G" + sysport: "57" + type: "eth" + - fec: "KPFEC" + id: "33" + lanes: "0:8" + serdes_group: "4" + speed: "400G" + sysport: "33" + type: "eth" + - fec: "KPFEC" + id: "41" + lanes: "0:8" + serdes_group: "5" + speed: "400G" + sysport: "41" + type: "eth" + - fec: "KPFEC" + id: "17" + lanes: "0:8" + serdes_group: "2" + speed: "400G" + sysport: "17" + type: "eth" + - fec: "KPFEC" + id: "25" + lanes: "0:8" + serdes_group: "3" + speed: "400G" + sysport: "25" + type: "eth" + - fec: "KPFEC" + id: "1" + lanes: "0:8" + serdes_group: "0" + speed: "400G" + sysport: "1" + type: "eth" + - fec: "KPFEC" + id: "9" + lanes: "0:8" + serdes_group: "1" + speed: "400G" + sysport: "9" + type: "eth" + - fec: "NONE" + id: "257" + lanes: "0:1" + serdes_group: "32" + speed: "10G" + sysport: "257" + type: "mgmt 0" + - fec: "NONE" + id: "258" + lanes: "1:1" + serdes_group: "32" + speed: "10G" + sysport: "258" + type: "mgmt 1" + isg: + - id: "0" + tx_polarity: "01010101" + rx_polarity: "01100000" + lane_swap: "23641075" + - id: "1" + tx_polarity: "10110000" + rx_polarity: "11111111" + lane_swap: "64317520" + - id: "2" + tx_polarity: "00000000" + rx_polarity: "00000011" + lane_swap: "63147520" + - id: "3" + tx_polarity: "01101000" + rx_polarity: "00001110" + lane_swap: "31572046" + - id: "4" + tx_polarity: "00111000" + rx_polarity: "00001000" + lane_swap: "46105732" + - id: "5" + tx_polarity: "10111111" + rx_polarity: "11101000" + lane_swap: "27153604" + - id: "6" + tx_polarity: "01101110" + rx_polarity: "00001101" + lane_swap: "46503721" + - id: "7" + tx_polarity: "01000100" + rx_polarity: "10000101" + lane_swap: "03671245" + - id: "8" + tx_polarity: "01110101" + rx_polarity: "00010000" + lane_swap: "12640375" + - id: "9" + tx_polarity: "01011100" + rx_polarity: "11001111" + lane_swap: "02561347" + - id: "10" + tx_polarity: "01110110" + rx_polarity: "11000000" + lane_swap: "12740365" + - id: "11" + tx_polarity: "00111000" + rx_polarity: "00010111" + lane_swap: "01572436" + - id: "12" + tx_polarity: "00001111" + rx_polarity: "10111001" + lane_swap: "54320176" + - id: "13" + tx_polarity: "10011101" + rx_polarity: "00111011" + lane_swap: "26153704" + - id: "14" + tx_polarity: "00110000" + rx_polarity: "11010000" + lane_swap: "37452601" + - id: "15" + tx_polarity: "11100010" + rx_polarity: "01110011" + lane_swap: "51370462" + - id: "16" + tx_polarity: "10111010" + rx_polarity: "11010011" + lane_swap: "36152704" + - id: "17" + tx_polarity: "01011101" + rx_polarity: "00110001" + lane_swap: "45621073" + - id: "18" + tx_polarity: "11011111" + rx_polarity: "11001011" + lane_swap: "26143705" + - id: "19" + tx_polarity: "00100110" + rx_polarity: "00001001" + lane_swap: "42730165" + - id: "20" + tx_polarity: "10011011" + rx_polarity: "01101101" + lane_swap: "54217603" + - id: "21" + tx_polarity: "00101110" + rx_polarity: "10111111" + lane_swap: "26031745" + - id: "22" + tx_polarity: "01001110" + rx_polarity: "00111001" + lane_swap: "36024715" + - id: "23" + tx_polarity: "10101101" + rx_polarity: "01010011" + lane_swap: "45621370" + - id: "24" + tx_polarity: "11001110" + rx_polarity: "00011111" + lane_swap: "65234701" + - id: "25" + tx_polarity: "01110001" + rx_polarity: "01010111" + lane_swap: "37601452" + - id: "26" + tx_polarity: "01000100" + rx_polarity: "00001111" + lane_swap: "65034721" + - id: "27" + tx_polarity: "10111101" + rx_polarity: "11000101" + lane_swap: "34501672" + - id: "28" + tx_polarity: "01111000" + rx_polarity: "01110110" + lane_swap: "43061275" + - id: "29" + tx_polarity: "11110111" + rx_polarity: "11100111" + lane_swap: "57304621" + - id: "30" + tx_polarity: "10000100" + rx_polarity: "00101111" + lane_swap: "47125603" + - id: "31" + tx_polarity: "11111111" + rx_polarity: "11100010" + lane_swap: "13460275" + - id: "32" + tx_polarity: "00000000" + rx_polarity: "00000000" + lane_swap: "01234567" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/innovium.77700_A b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/innovium.77700_A new file mode 100644 index 000000000000..84aa41983606 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/innovium.77700_A @@ -0,0 +1,59 @@ +sku: innovium.77700_A + +device_id: 0x1b58 + +# Hardware constraint information +hardware: + num_ibs: 6 + + ports_per_ib: 32, 32, 32, 32, 20, 20 + recirc_port_num: 32, 32, 32, 32, 32, 32 + cpu_port_num: 33 + cpu_port_ib: 0 + mgmt_port_num: 33 + mgmt_port_ibs: 1,2 + + pics_per_ib: 6, 7, 6, 5, 5, 5 + pic_ports_per_pic: 8 + max_serdes_speed: 50 + + num_shared_pics: 2 + + isg [0-4]: + ib: 0 + pic_id: [0-4] + + isg [5-9]: + ib: 5 + pic_id: [0-4] + + isg [10-14]: + ib: 1 + pic_id: [0-4] + + isg [16-20]: + ib: 3 + pic_id: [0-4] + + isg [21-25]: + ib: 4 + pic_id: [0-4] + + isg [26-30]: + ib: 2 + pic_id: [0-4] + + isg 15: + mode: 8:0 + ib: 1 + pic_id: 5 + + isg 31: + mode: 8:0 + ib: 0 + pic_id: 5 + + isg 32: + mode: 1:1 + ib: 1, 2 + pic_id: 6 diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/ivm.sai.config.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/ivm.sai.config.yaml new file mode 100755 index 000000000000..607e2da93126 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_32x100G_Delta-evs-a-32q56.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.55300" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/ivm.sai.datapath.config.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..2dcf88fc9555 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/ivm.sai.datapath.config.yaml @@ -0,0 +1,10 @@ +ISAI_PARAM_A000 : "0" +ISAI_PARAM_P0_0_LS : "9216 9216" +ISAI_PARAM_P0_1_LS : "2850 2650" +ISAI_PARAM_P0_1_ALS : "290 90" +ISAI_PARAM_P1_0_LS : "3072 3072" +ISAI_PARAM_P1_0_LL : "6144 6144" +ISAI_PARAM_P1_1_LS : "2210 2010" +ISAI_PARAM_P1_1_LL : "1330 1330" +ISAI_PARAM_P1_1_ALS : "290 90" +ISAI_PARAM_P1_1_ALL : "50 50" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/port_config.ini b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/port_config.ini new file mode 100755 index 000000000000..7e9fc331edf7 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/port_config.ini @@ -0,0 +1,35 @@ +# name lanes speed index mtu fec +Ethernet0 249,250,251,252 200000 0 9126 rs +Ethernet4 241,242,243,244 200000 1 9126 rs +Ethernet8 233,234,235,236 200000 2 9126 rs +Ethernet12 225,226,227,228 200000 3 9126 rs +Ethernet16 217,218,219,220 200000 4 9126 rs +Ethernet20 209,210,211,212 200000 5 9126 rs +Ethernet24 201,202,203,204 200000 6 9126 rs +Ethernet28 193,194,195,196 200000 7 9126 rs +Ethernet32 185,186,187,188 200000 8 9126 rs +Ethernet36 177,178,179,180 200000 9 9126 rs +Ethernet40 169,170,171,172 200000 10 9126 rs +Ethernet44 161,162,163,164 200000 11 9126 rs +Ethernet48 153,154,155,156 200000 12 9126 rs +Ethernet52 145,146,147,148 200000 13 9126 rs +Ethernet56 137,138,139,140 200000 14 9126 rs +Ethernet60 129,130,131,132 200000 15 9126 rs +Ethernet64 121,122,123,124 200000 16 9126 rs +Ethernet68 113,114,115,116 200000 17 9126 rs +Ethernet72 97,98,99,100 200000 18 9126 rs +Ethernet76 105,106,107,108 200000 19 9126 rs +Ethernet80 81,82,83,84 200000 20 9126 rs +Ethernet84 89,90,91,92 200000 21 9126 rs +Ethernet88 65,66,67,68 200000 22 9126 rs +Ethernet92 73,74,75,76 200000 23 9126 rs +Ethernet96 49,50,51,52 200000 24 9126 rs +Ethernet100 57,58,59,60 200000 25 9126 rs +Ethernet104 33,34,35,36 200000 26 9126 rs +Ethernet108 41,42,43,44 200000 27 9126 rs +Ethernet112 17,18,19,20 200000 28 9126 rs +Ethernet116 25,26,27,28 200000 29 9126 rs +Ethernet120 1,2,3,4 200000 30 9126 rs +Ethernet124 9,10,11,12 200000 31 9126 rs +Ethernet256 257 10000 32 9126 none +Ethernet257 258 10000 33 9126 none diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/qos.json.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/qos.json.j2 new file mode 100755 index 000000000000..6c734d46ff2f --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/qos.json.j2 @@ -0,0 +1,120 @@ +{# Default values which will be used if no actual configura available #} + +{% set default_ports_num = 32 -%} +{# Generate list of ports if not defined #} +{% if PORT is not defined %} + {% set PORT = [] %} + {% for port_idx in range(0,default_ports_num) %} + {% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %} + {% endfor %} +{% endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "1":"1", + "0":"0", + "3":"3", + "2":"2", + "5":"5", + "4":"4", + "7":"7", + "6":"6" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "1": "0", + "0": "0", + "3": "0", + "2": "0", + "4": "1", + "5": "2", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"4", + "5":"5", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "4,5" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/sai.profile b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/sai.profile new file mode 100755 index 000000000000..aba4fc81fb17 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/Delta-evs-a-32q56/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/buffers.json.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/buffers.json.j2 new file mode 100644 index 000000000000..1ab009be2dce --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/buffers.json.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "34056960", + "type": "ingress", + "mode": "dynamic", + "xoff": "4185600" + }, + "lossy_pool": { + "size": "14595840", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"23001600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"23001600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/buffers_defaults_def_lossy.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..c61ec1d14988 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "46003200", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"23001600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/buffers_defaults_t1.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..1ab009be2dce --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "34056960", + "type": "ingress", + "mode": "dynamic", + "xoff": "4185600" + }, + "lossy_pool": { + "size": "14595840", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"23001600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"23001600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/config_32x200G_Delta-evs-a-32q56.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/config_32x200G_Delta-evs-a-32q56.yaml new file mode 100755 index 000000000000..2ba23d2a5a67 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/config_32x200G_Delta-evs-a-32q56.yaml @@ -0,0 +1,429 @@ +ifcs: + options: + log_level: "info" +nodes: +- node_id: "0" + options: + sku: "configs/sku/innovium.77700_A" + netdev: + - auto_create: "no" + multi_interface: "yes" + buffer_management_mode: "api_driven" + max_lossless_tc: "2" + txring: + - txring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + rxring: + - rxring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44" + - rxring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45" + - rxring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46" + - rxring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47" + sys_clk: "1720" + ifc_clk: "1200" + mac_clk: "1340" + + devports: + - id: "0" + sysport: "1000" + type: "cpu" + - fec: "KPFEC" + id: "249" + lanes: "0:8" + serdes_group: "31" + speed: "400G" + sysport: "249" + type: "eth" + - fec: "KPFEC" + id: "241" + lanes: "0:8" + serdes_group: "30" + speed: "400G" + sysport: "241" + type: "eth" + - fec: "KPFEC" + id: "233" + lanes: "0:8" + serdes_group: "29" + speed: "400G" + sysport: "233" + type: "eth" + - fec: "KPFEC" + id: "225" + lanes: "0:8" + serdes_group: "28" + speed: "400G" + sysport: "225" + type: "eth" + - fec: "KPFEC" + id: "217" + lanes: "0:8" + serdes_group: "27" + speed: "400G" + sysport: "217" + type: "eth" + - fec: "KPFEC" + id: "209" + lanes: "0:8" + serdes_group: "26" + speed: "400G" + sysport: "209" + type: "eth" + - fec: "KPFEC" + id: "201" + lanes: "0:8" + serdes_group: "25" + speed: "400G" + sysport: "201" + type: "eth" + - fec: "KPFEC" + id: "193" + lanes: "0:8" + serdes_group: "24" + speed: "400G" + sysport: "193" + type: "eth" + - fec: "KPFEC" + id: "185" + lanes: "0:8" + serdes_group: "23" + speed: "400G" + sysport: "185" + type: "eth" + - fec: "KPFEC" + id: "177" + lanes: "0:8" + serdes_group: "22" + speed: "400G" + sysport: "177" + type: "eth" + - fec: "KPFEC" + id: "169" + lanes: "0:8" + serdes_group: "21" + speed: "400G" + sysport: "169" + type: "eth" + - fec: "KPFEC" + id: "161" + lanes: "0:8" + serdes_group: "20" + speed: "400G" + sysport: "161" + type: "eth" + - fec: "KPFEC" + id: "153" + lanes: "0:8" + serdes_group: "19" + speed: "400G" + sysport: "153" + type: "eth" + - fec: "KPFEC" + id: "145" + lanes: "0:8" + serdes_group: "18" + speed: "400G" + sysport: "145" + type: "eth" + - fec: "KPFEC" + id: "137" + lanes: "0:8" + serdes_group: "17" + speed: "400G" + sysport: "137" + type: "eth" + - fec: "KPFEC" + id: "129" + lanes: "0:8" + serdes_group: "16" + speed: "400G" + sysport: "129" + type: "eth" + - fec: "KPFEC" + id: "121" + lanes: "0:8" + serdes_group: "15" + speed: "400G" + sysport: "121" + type: "eth" + - fec: "KPFEC" + id: "113" + lanes: "0:8" + serdes_group: "14" + speed: "400G" + sysport: "113" + type: "eth" + - fec: "KPFEC" + id: "97" + lanes: "0:8" + serdes_group: "12" + speed: "400G" + sysport: "97" + type: "eth" + - fec: "KPFEC" + id: "105" + lanes: "0:8" + serdes_group: "13" + speed: "400G" + sysport: "105" + type: "eth" + - fec: "KPFEC" + id: "81" + lanes: "0:8" + serdes_group: "10" + speed: "400G" + sysport: "81" + type: "eth" + - fec: "KPFEC" + id: "89" + lanes: "0:8" + serdes_group: "11" + speed: "400G" + sysport: "89" + type: "eth" + - fec: "KPFEC" + id: "65" + lanes: "0:8" + serdes_group: "8" + speed: "400G" + sysport: "65" + type: "eth" + - fec: "KPFEC" + id: "73" + lanes: "0:8" + serdes_group: "9" + speed: "400G" + sysport: "73" + type: "eth" + - fec: "KPFEC" + id: "49" + lanes: "0:8" + serdes_group: "6" + speed: "400G" + sysport: "49" + type: "eth" + - fec: "KPFEC" + id: "57" + lanes: "0:8" + serdes_group: "7" + speed: "400G" + sysport: "57" + type: "eth" + - fec: "KPFEC" + id: "33" + lanes: "0:8" + serdes_group: "4" + speed: "400G" + sysport: "33" + type: "eth" + - fec: "KPFEC" + id: "41" + lanes: "0:8" + serdes_group: "5" + speed: "400G" + sysport: "41" + type: "eth" + - fec: "KPFEC" + id: "17" + lanes: "0:8" + serdes_group: "2" + speed: "400G" + sysport: "17" + type: "eth" + - fec: "KPFEC" + id: "25" + lanes: "0:8" + serdes_group: "3" + speed: "400G" + sysport: "25" + type: "eth" + - fec: "KPFEC" + id: "1" + lanes: "0:8" + serdes_group: "0" + speed: "400G" + sysport: "1" + type: "eth" + - fec: "KPFEC" + id: "9" + lanes: "0:8" + serdes_group: "1" + speed: "400G" + sysport: "9" + type: "eth" + - fec: "NONE" + id: "257" + lanes: "0:1" + serdes_group: "32" + speed: "10G" + sysport: "257" + type: "mgmt 0" + - fec: "NONE" + id: "258" + lanes: "1:1" + serdes_group: "32" + speed: "10G" + sysport: "258" + type: "mgmt 1" + isg: + - id: "0" + tx_polarity: "01010101" + rx_polarity: "01100000" + lane_swap: "23641075" + - id: "1" + tx_polarity: "10110000" + rx_polarity: "11111111" + lane_swap: "64317520" + - id: "2" + tx_polarity: "00000000" + rx_polarity: "00000011" + lane_swap: "63147520" + - id: "3" + tx_polarity: "01101000" + rx_polarity: "00001110" + lane_swap: "31572046" + - id: "4" + tx_polarity: "00111000" + rx_polarity: "00001000" + lane_swap: "46105732" + - id: "5" + tx_polarity: "10111111" + rx_polarity: "11101000" + lane_swap: "27153604" + - id: "6" + tx_polarity: "01101110" + rx_polarity: "00001101" + lane_swap: "46503721" + - id: "7" + tx_polarity: "01000100" + rx_polarity: "10000101" + lane_swap: "03671245" + - id: "8" + tx_polarity: "01110101" + rx_polarity: "00010000" + lane_swap: "12640375" + - id: "9" + tx_polarity: "01011100" + rx_polarity: "11001111" + lane_swap: "02561347" + - id: "10" + tx_polarity: "01110110" + rx_polarity: "11000000" + lane_swap: "12740365" + - id: "11" + tx_polarity: "00111000" + rx_polarity: "00010111" + lane_swap: "01572436" + - id: "12" + tx_polarity: "00001111" + rx_polarity: "10111001" + lane_swap: "54320176" + - id: "13" + tx_polarity: "10011101" + rx_polarity: "00111011" + lane_swap: "26153704" + - id: "14" + tx_polarity: "00110000" + rx_polarity: "11010000" + lane_swap: "37452601" + - id: "15" + tx_polarity: "11100010" + rx_polarity: "01110011" + lane_swap: "51370462" + - id: "16" + tx_polarity: "10111010" + rx_polarity: "11010011" + lane_swap: "36152704" + - id: "17" + tx_polarity: "01011101" + rx_polarity: "00110001" + lane_swap: "45621073" + - id: "18" + tx_polarity: "11011111" + rx_polarity: "11001011" + lane_swap: "26143705" + - id: "19" + tx_polarity: "00100110" + rx_polarity: "00001001" + lane_swap: "42730165" + - id: "20" + tx_polarity: "10011011" + rx_polarity: "01101101" + lane_swap: "54217603" + - id: "21" + tx_polarity: "00101110" + rx_polarity: "10111111" + lane_swap: "26031745" + - id: "22" + tx_polarity: "01001110" + rx_polarity: "00111001" + lane_swap: "36024715" + - id: "23" + tx_polarity: "10101101" + rx_polarity: "01010011" + lane_swap: "45621370" + - id: "24" + tx_polarity: "11001110" + rx_polarity: "00011111" + lane_swap: "65234701" + - id: "25" + tx_polarity: "01110001" + rx_polarity: "01010111" + lane_swap: "37601452" + - id: "26" + tx_polarity: "01000100" + rx_polarity: "00001111" + lane_swap: "65034721" + - id: "27" + tx_polarity: "10111101" + rx_polarity: "11000101" + lane_swap: "34501672" + - id: "28" + tx_polarity: "01111000" + rx_polarity: "01110110" + lane_swap: "43061275" + - id: "29" + tx_polarity: "11110111" + rx_polarity: "11100111" + lane_swap: "57304621" + - id: "30" + tx_polarity: "10000100" + rx_polarity: "00101111" + lane_swap: "47125603" + - id: "31" + tx_polarity: "11111111" + rx_polarity: "11100010" + lane_swap: "13460275" + - id: "32" + tx_polarity: "00000000" + rx_polarity: "00000000" + lane_swap: "01234567" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/innovium.77700_A b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/innovium.77700_A new file mode 100644 index 000000000000..84aa41983606 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/innovium.77700_A @@ -0,0 +1,59 @@ +sku: innovium.77700_A + +device_id: 0x1b58 + +# Hardware constraint information +hardware: + num_ibs: 6 + + ports_per_ib: 32, 32, 32, 32, 20, 20 + recirc_port_num: 32, 32, 32, 32, 32, 32 + cpu_port_num: 33 + cpu_port_ib: 0 + mgmt_port_num: 33 + mgmt_port_ibs: 1,2 + + pics_per_ib: 6, 7, 6, 5, 5, 5 + pic_ports_per_pic: 8 + max_serdes_speed: 50 + + num_shared_pics: 2 + + isg [0-4]: + ib: 0 + pic_id: [0-4] + + isg [5-9]: + ib: 5 + pic_id: [0-4] + + isg [10-14]: + ib: 1 + pic_id: [0-4] + + isg [16-20]: + ib: 3 + pic_id: [0-4] + + isg [21-25]: + ib: 4 + pic_id: [0-4] + + isg [26-30]: + ib: 2 + pic_id: [0-4] + + isg 15: + mode: 8:0 + ib: 1 + pic_id: 5 + + isg 31: + mode: 8:0 + ib: 0 + pic_id: 5 + + isg 32: + mode: 1:1 + ib: 1, 2 + pic_id: 6 diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/ivm.sai.config.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/ivm.sai.config.yaml new file mode 100755 index 000000000000..607e2da93126 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_32x100G_Delta-evs-a-32q56.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.55300" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/ivm.sai.datapath.config.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..2dcf88fc9555 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/ivm.sai.datapath.config.yaml @@ -0,0 +1,10 @@ +ISAI_PARAM_A000 : "0" +ISAI_PARAM_P0_0_LS : "9216 9216" +ISAI_PARAM_P0_1_LS : "2850 2650" +ISAI_PARAM_P0_1_ALS : "290 90" +ISAI_PARAM_P1_0_LS : "3072 3072" +ISAI_PARAM_P1_0_LL : "6144 6144" +ISAI_PARAM_P1_1_LS : "2210 2010" +ISAI_PARAM_P1_1_LL : "1330 1330" +ISAI_PARAM_P1_1_ALS : "290 90" +ISAI_PARAM_P1_1_ALL : "50 50" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/pg_profile_lookup.ini b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/pg_profile_lookup.ini new file mode 100644 index 000000000000..36c3bb0a484e --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 17600 3 13440 + 50000 5m 1518 0 23456 3 13440 + 100000 5m 1518 0 36064 3 13440 + 400000 5m 1518 0 118464 3 13440 + 25000 40m 1518 0 18720 3 13440 + 50000 40m 1518 0 25696 3 13440 + 100000 40m 1518 0 40544 3 13440 + 400000 40m 1518 0 136384 3 13440 + 25000 300m 1518 0 27040 3 13440 + 50000 300m 1518 0 42336 3 13440 + 100000 300m 1518 0 73824 3 13440 + 400000 300m 1518 0 269504 3 13440 diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/port_config.ini b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/port_config.ini new file mode 100755 index 000000000000..7e9fc331edf7 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/port_config.ini @@ -0,0 +1,35 @@ +# name lanes speed index mtu fec +Ethernet0 249,250,251,252 200000 0 9126 rs +Ethernet4 241,242,243,244 200000 1 9126 rs +Ethernet8 233,234,235,236 200000 2 9126 rs +Ethernet12 225,226,227,228 200000 3 9126 rs +Ethernet16 217,218,219,220 200000 4 9126 rs +Ethernet20 209,210,211,212 200000 5 9126 rs +Ethernet24 201,202,203,204 200000 6 9126 rs +Ethernet28 193,194,195,196 200000 7 9126 rs +Ethernet32 185,186,187,188 200000 8 9126 rs +Ethernet36 177,178,179,180 200000 9 9126 rs +Ethernet40 169,170,171,172 200000 10 9126 rs +Ethernet44 161,162,163,164 200000 11 9126 rs +Ethernet48 153,154,155,156 200000 12 9126 rs +Ethernet52 145,146,147,148 200000 13 9126 rs +Ethernet56 137,138,139,140 200000 14 9126 rs +Ethernet60 129,130,131,132 200000 15 9126 rs +Ethernet64 121,122,123,124 200000 16 9126 rs +Ethernet68 113,114,115,116 200000 17 9126 rs +Ethernet72 97,98,99,100 200000 18 9126 rs +Ethernet76 105,106,107,108 200000 19 9126 rs +Ethernet80 81,82,83,84 200000 20 9126 rs +Ethernet84 89,90,91,92 200000 21 9126 rs +Ethernet88 65,66,67,68 200000 22 9126 rs +Ethernet92 73,74,75,76 200000 23 9126 rs +Ethernet96 49,50,51,52 200000 24 9126 rs +Ethernet100 57,58,59,60 200000 25 9126 rs +Ethernet104 33,34,35,36 200000 26 9126 rs +Ethernet108 41,42,43,44 200000 27 9126 rs +Ethernet112 17,18,19,20 200000 28 9126 rs +Ethernet116 25,26,27,28 200000 29 9126 rs +Ethernet120 1,2,3,4 200000 30 9126 rs +Ethernet124 9,10,11,12 200000 31 9126 rs +Ethernet256 257 10000 32 9126 none +Ethernet257 258 10000 33 9126 none diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/qos.json.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/qos.json.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/qos.json.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/qos_defaults_def_lossy.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/qos_defaults_t1.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/qos_defaults_t1.j2 new file mode 100644 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/sai.profile b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/sai.profile new file mode 100755 index 000000000000..aba4fc81fb17 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/buffers.json.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/buffers.json.j2 new file mode 100644 index 000000000000..1ab009be2dce --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/buffers.json.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "34056960", + "type": "ingress", + "mode": "dynamic", + "xoff": "4185600" + }, + "lossy_pool": { + "size": "14595840", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"23001600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"23001600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/buffers_defaults_def_lossy.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..c61ec1d14988 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "46003200", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"23001600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/buffers_defaults_t1.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..1ab009be2dce --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "34056960", + "type": "ingress", + "mode": "dynamic", + "xoff": "4185600" + }, + "lossy_pool": { + "size": "14595840", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"23001600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"23001600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/config_32x100G_Delta-evs-a-32q56.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/config_32x100G_Delta-evs-a-32q56.yaml new file mode 100755 index 000000000000..1f6d6b48e61a --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/config_32x100G_Delta-evs-a-32q56.yaml @@ -0,0 +1,394 @@ +ifcs: + options: + log_level: "info" +nodes: +- node_id: "0" + options: + sku: "configs/sku/innovium.55300" + netdev: + - auto_create: "no" + multi_interface: "yes" + buffer_management_mode: "api_driven" + max_lossless_tc: "2" + skip_pll_check: "false" + mac_clk: "750" + sys_clk: "1300" + ifc_clk: "675" + txring: + - txring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + rxring: + - rxring_id: "0" + desc_count: "1024" + prio: "1" + queues: "0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44" + netdev: "true" + - rxring_id: "1" + desc_count: "1024" + prio: "1" + queues: "1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45" + netdev: "true" + - rxring_id: "2" + desc_count: "1024" + prio: "1" + queues: "2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46" + netdev: "true" + - rxring_id: "3" + desc_count: "1024" + prio: "1" + queues: "3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47" + netdev: "true" + devports: + - id: "0" + sysport: "129" + type: "cpu" + - id: "121" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "15" + speed: "100G" + sysport: "121" + type: "eth" + - id: "125" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "15" + speed: "100G" + sysport: "125" + type: "eth" + - id: "113" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "14" + speed: "100G" + sysport: "113" + type: "eth" + - id: "117" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "14" + speed: "100G" + sysport: "117" + type: "eth" + - id: "105" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "13" + speed: "100G" + sysport: "105" + type: "eth" + - id: "109" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "13" + speed: "100G" + sysport: "109" + type: "eth" + - id: "97" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "12" + speed: "100G" + sysport: "97" + type: "eth" + - id: "101" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "12" + speed: "100G" + sysport: "101" + type: "eth" + - id: "89" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "11" + speed: "100G" + sysport: "89" + type: "eth" + - id: "93" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "11" + speed: "100G" + sysport: "93" + type: "eth" + - id: "81" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "10" + speed: "100G" + sysport: "81" + type: "eth" + - id: "85" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "10" + speed: "100G" + sysport: "85" + type: "eth" + - id: "73" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "9" + speed: "100G" + sysport: "73" + type: "eth" + - id: "77" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "9" + speed: "100G" + sysport: "77" + type: "eth" + - id: "65" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "8" + speed: "100G" + sysport: "65" + type: "eth" + - id: "69" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "8" + speed: "100G" + sysport: "69" + type: "eth" + - id: "57" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "7" + speed: "100G" + sysport: "57" + type: "eth" + - id: "61" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "7" + speed: "100G" + sysport: "61" + type: "eth" + - id: "49" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "6" + speed: "100G" + sysport: "49" + type: "eth" + - id: "53" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "6" + speed: "100G" + sysport: "53" + type: "eth" + - id: "41" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "5" + speed: "100G" + sysport: "41" + type: "eth" + - id: "45" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "5" + speed: "100G" + sysport: "45" + type: "eth" + - id: "33" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "4" + speed: "100G" + sysport: "33" + type: "eth" + - id: "37" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "4" + speed: "100G" + sysport: "37" + type: "eth" + - id: "25" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "3" + speed: "100G" + sysport: "25" + type: "eth" + - id: "29" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "3" + speed: "100G" + sysport: "29" + type: "eth" + - id: "17" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "2" + speed: "100G" + sysport: "17" + type: "eth" + - id: "21" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "2" + speed: "100G" + sysport: "21" + type: "eth" + - id: "9" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "1" + speed: "100G" + sysport: "9" + type: "eth" + - id: "13" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "1" + speed: "100G" + sysport: "13" + type: "eth" + - id: "1" + fec: "KRFEC" + lanes: "0:4" + serdes_group: "0" + speed: "100G" + sysport: "1" + type: "eth" + - id: "5" + fec: "KRFEC" + lanes: "4:4" + serdes_group: "0" + speed: "100G" + sysport: "5" + type: "eth" +# Aux ports to be enabled later +# - id: "33" +# fec: "NONE" +# lanes: "0:1" +# serdes_group: "16" +# speed: "10G" +# sysport: "33" +# type: "mgmt 0" +# - id: "34" +# fec: "NONE" +# lanes: "1:1" +# serdes_group: "16" +# speed: "10G" +# sysport: "34" +# type: "mgmt 1" + isg: + - id: "0" + lane_swap: "01234567" + rx_polarity: "00000111" + tx_polarity: "10011110" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "1" + lane_swap: "01234567" + rx_polarity: "00000111" + tx_polarity: "00010001" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "2" + lane_swap: "01234567" + rx_polarity: "00100000" + tx_polarity: "01101111" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "3" + lane_swap: "01234567" + rx_polarity: "01000001" + tx_polarity: "10101000" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "4" + lane_swap: "01234567" + rx_polarity: "00010000" + tx_polarity: "10100000" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "5" + lane_swap: "01234567" + rx_polarity: "10100000" + tx_polarity: "01100100" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "6" + lane_swap: "01234567" + rx_polarity: "01010000" + tx_polarity: "00000100" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "7" + lane_swap: "01234567" + rx_polarity: "10000011" + tx_polarity: "00010110" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "8" + lane_swap: "01234567" + rx_polarity: "00001000" + tx_polarity: "00001000" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "9" + lane_swap: "01234567" + rx_polarity: "00000000" + tx_polarity: "10100100" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "10" + lane_swap: "01234567" + rx_polarity: "00000000" + tx_polarity: "00100011" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "11" + lane_swap: "01234567" + rx_polarity: "01000001" + tx_polarity: "00100000" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "12" + lane_swap: "01234567" + rx_polarity: "00001010" + tx_polarity: "01010111" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "13" + lane_swap: "01234567" + rx_polarity: "01001011" + tx_polarity: "00111010" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "14" + lane_swap: "01234567" + rx_polarity: "01000000" + tx_polarity: "11010111" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" + - id: "15" + lane_swap: "01234567" + rx_polarity: "01000010" + tx_polarity: "11011000" + pre1: "-3, -3, -3, -3, -3, -3, -3, -3" + main: "20, 20, 20, 20, 20, 20, 20, 20" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/innovium.55300 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/innovium.55300 new file mode 100644 index 000000000000..59383ec30ec1 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/innovium.55300 @@ -0,0 +1,62 @@ +sku: innovium.55300 + +device_id: 0x1b59 + +# Hardware constraint information +hardware: + num_ibs: 2 + ib_active: 0, 1 + + ports_per_ib: 64, 64 + recirc_port_num: 64, 64 + cpu_port_num: 65 + cpu_port_ib: 0 + mgmt_port_num: 65, 66 + mgmt_port_ibs: 1, 1 + + pics_per_ib: 9, 9 + pic_ports_per_pic: 8 + max_serdes_speed: 25 + + num_shared_pics: 0 + + isg [0-7]: + ib: 0 + pic_id: [0-7] + + isg 8: + ib: 1 + pic_id: 7 + + isg 9: + ib: 1 + pic_id: 6 + + isg 10: + ib: 1 + pic_id: 5 + + isg 11: + ib: 1 + pic_id: 4 + + isg 12: + ib: 1 + pic_id: 3 + + isg 13: + ib: 1 + pic_id: 2 + + isg 14: + ib: 1 + pic_id: 1 + + isg 15: + ib: 1 + pic_id: 0 + + isg 16: + mode: 0:2 + ib: 1 + pic_id: 8 diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/ivm.sai.config.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/ivm.sai.config.yaml new file mode 100755 index 000000000000..607e2da93126 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_32x100G_Delta-evs-a-32q56.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.55300" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/ivm.sai.datapath.config.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..ef4bc6d129ce --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/ivm.sai.datapath.config.yaml @@ -0,0 +1,9 @@ +ISAI_PARAM_P0_0_LS : "9216 9216" +ISAI_PARAM_P0_1_LS : "2850 2650" +ISAI_PARAM_P0_1_ALS : "290 90" +ISAI_PARAM_P1_0_LS : "3072 3072" +ISAI_PARAM_P1_0_LL : "6144 6144" +ISAI_PARAM_P1_1_LS : "2210 2010" +ISAI_PARAM_P1_1_LL : "1330 1330" +ISAI_PARAM_P1_1_ALS : "290 90" +ISAI_PARAM_P1_1_ALL : "50 50" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/pg_profile_lookup.ini b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/pg_profile_lookup.ini new file mode 100644 index 000000000000..36c3bb0a484e --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 17600 3 13440 + 50000 5m 1518 0 23456 3 13440 + 100000 5m 1518 0 36064 3 13440 + 400000 5m 1518 0 118464 3 13440 + 25000 40m 1518 0 18720 3 13440 + 50000 40m 1518 0 25696 3 13440 + 100000 40m 1518 0 40544 3 13440 + 400000 40m 1518 0 136384 3 13440 + 25000 300m 1518 0 27040 3 13440 + 50000 300m 1518 0 42336 3 13440 + 100000 300m 1518 0 73824 3 13440 + 400000 300m 1518 0 269504 3 13440 diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/port_config.ini b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/port_config.ini new file mode 100755 index 000000000000..7cb58b4120c7 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/port_config.ini @@ -0,0 +1,33 @@ +# name lanes speed index mtu fec +Ethernet0 121,122,123,124 100000 0 9126 rs +Ethernet4 125,126,127,128 100000 1 9126 rs +Ethernet8 113,114,115,116 100000 2 9126 rs +Ethernet12 117,118,119,120 100000 3 9126 rs +Ethernet16 105,106,107,108 100000 4 9126 rs +Ethernet20 109,110,111,112 100000 5 9126 rs +Ethernet24 97,98,99,100 100000 6 9126 rs +Ethernet28 101,102,103,104 100000 7 9126 rs +Ethernet32 89,90,91,92 100000 8 9126 rs +Ethernet36 93,94,95,96 100000 9 9126 rs +Ethernet40 81,82,83,84 100000 10 9126 rs +Ethernet44 85,86,87,88 100000 11 9126 rs +Ethernet48 73,74,75,76 100000 12 9126 rs +Ethernet52 77,78,79,80 100000 13 9126 rs +Ethernet56 65,66,67,68 100000 14 9126 rs +Ethernet60 69,70,71,72 100000 15 9126 rs +Ethernet64 57,58,59,60 100000 16 9126 rs +Ethernet68 61,62,63,64 100000 17 9126 rs +Ethernet72 49,50,51,52 100000 18 9126 rs +Ethernet76 53,54,55,56 100000 19 9126 rs +Ethernet80 41,42,43,44 100000 20 9126 rs +Ethernet84 45,46,47,48 100000 21 9126 rs +Ethernet88 33,34,35,36 100000 22 9126 rs +Ethernet92 37,38,39,40 100000 23 9126 rs +Ethernet96 25,26,27,28 100000 24 9126 rs +Ethernet100 29,30,31,32 100000 25 9126 rs +Ethernet104 17,18,19,20 100000 26 9126 rs +Ethernet108 21,22,23,24 100000 27 9126 rs +Ethernet112 9,10,11,12 100000 28 9126 rs +Ethernet116 13,14,15,16 100000 29 9126 rs +Ethernet120 1,2,3,4 100000 30 9126 rs +Ethernet124 5,6,7,8 100000 31 9126 rs diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/qos.json.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/qos.json.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/qos.json.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/qos_defaults_def_lossy.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/qos_defaults_t1.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/qos_defaults_t1.j2 new file mode 100644 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/sai.profile b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/sai.profile new file mode 100755 index 000000000000..aba4fc81fb17 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_32x100/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/buffers.json.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/buffers.json.j2 new file mode 100644 index 000000000000..1ab009be2dce --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/buffers.json.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "34056960", + "type": "ingress", + "mode": "dynamic", + "xoff": "4185600" + }, + "lossy_pool": { + "size": "14595840", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"23001600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"23001600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/buffers_defaults_def_lossy.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/buffers_defaults_def_lossy.j2 new file mode 100644 index 000000000000..c61ec1d14988 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/buffers_defaults_def_lossy.j2 @@ -0,0 +1,38 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "BUFFER_POOL": { + "lossy_pool": { + "size": "46003200", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"23001600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|0-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/buffers_defaults_t1.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/buffers_defaults_t1.j2 new file mode 100644 index 000000000000..1ab009be2dce --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/buffers_defaults_t1.j2 @@ -0,0 +1,137 @@ +{# Default values which will be used if no actual configura available #} +{% set default_cable = '40m' %} + +{# Port configuration to cable length look-up table #} +{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #} +{# Roles described in the minigraph #} +{% set ports2cable = { + 'torrouter_server' : '5m', + 'leafrouter_torrouter' : '40m', + 'spinerouter_leafrouter' : '300m' + } +%} + +{%- macro cable_length(port_name) %} + {%- set cable_len = [] %} + {%- for local_port in DEVICE_NEIGHBOR %} + {%- if local_port == port_name %} + {%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %} + {%- set neighbor_role = neighbor.type %} + {%- set roles1 = switch_role + '_' + neighbor_role %} + {%- set roles2 = neighbor_role + '_' + switch_role %} + {%- set roles1 = roles1 | lower %} + {%- set roles2 = roles2 | lower %} + {%- if roles1 in ports2cable %} + {%- if cable_len.append(ports2cable[roles1]) %}{% endif %} + {%- elif roles2 in ports2cable %} + {%- if cable_len.append(ports2cable[roles2]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else %} + {%- if switch_role.lower() == 'torrouter' %} + {%- for local_port in VLAN_MEMBER %} + {%- if local_port[1] == port_name %} + {%- set roles3 = switch_role + '_' + 'server' %} + {%- set roles3 = roles3 | lower %} + {%- if roles3 in ports2cable %} + {%- if cable_len.append(ports2cable[roles3]) %}{% endif %} + {%- endif %} + {%- endif %} + {%- endfor %} + {%- if cable_len -%} + {{ cable_len.0 }} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- else -%} + {{ default_cable }} + {%- endif %} + {%- endif %} +{%- endmacro %} + +{%- if DEVICE_METADATA is defined %} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] %} +{%- endif -%} + +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + +{ + "CABLE_LENGTH": { + "AZURE": { + {% for port in PORT %} + {% set cable = cable_length(port) -%} + "{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %} + + {% endfor %} + } + }, + "BUFFER_POOL": { + "ingress_lossless_pool": { + "size": "34056960", + "type": "ingress", + "mode": "dynamic", + "xoff": "4185600" + }, + "lossy_pool": { + "size": "14595840", + "type": "egress", + "mode": "dynamic", + "xoff": "0" + } + }, + "BUFFER_PROFILE": { + "ingress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "xoff":"38816", + "size":"1518", + "dynamic_th":"3", + "xon_offset":"13440" + }, + "egress_lossless_profile": { + "pool":"[BUFFER_POOL|ingress_lossless_pool]", + "size":"0", + "static_th":"23001600" + }, + "ingress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"0", + "static_th":"23001600" + }, + "egress_lossy_profile": { + "pool":"[BUFFER_POOL|lossy_pool]", + "size":"1518", + "dynamic_th":"3" + } + }, + "BUFFER_PG": { + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + }, + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|ingress_lossy_profile]" + } + }, + "BUFFER_QUEUE": { + "{{ port_names }}|3-4": { + "profile" : "[BUFFER_PROFILE|egress_lossless_profile]" + }, + "{{ port_names }}|0-2": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + }, + "{{ port_names }}|5-7": { + "profile" : "[BUFFER_PROFILE|egress_lossy_profile]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/config_64x100G_Delta-evs-a-32q56.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/config_64x100G_Delta-evs-a-32q56.yaml new file mode 100755 index 000000000000..e5fbcc93543d --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/config_64x100G_Delta-evs-a-32q56.yaml @@ -0,0 +1,653 @@ +ifcs: + options: + log_level: "info" +nodes: +- node_id: "0" + options: + sku: "configs/sku/innovium.77700_B" + netdev: + - auto_create: "no" + multi_interface: "yes" + buffer_management_mode: "api_driven" + max_lossless_tc: "2" + txring: + - txring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + - txring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + rxring: + - rxring_id: "0" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44" + - rxring_id: "1" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45" + - rxring_id: "2" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46" + - rxring_id: "3" + desc_count: "1024" + prio: "1" + netdev: "true" + queues: "3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47" + sys_clk: "1720" + ifc_clk: "1200" + mac_clk: "1340" + + devports: + - id: "0" + sysport: "1000" + type: "cpu" + - fec: "KRFEC" + id: "249" + lanes: "0:4" + serdes_group: "31" + speed: "100G" + sysport: "249" + type: "eth" + - fec: "KRFEC" + id: "253" + lanes: "4:4" + serdes_group: "31" + speed: "100G" + sysport: "253" + type: "eth" + - fec: "KRFEC" + id: "241" + lanes: "0:4" + serdes_group: "30" + speed: "100G" + sysport: "241" + type: "eth" + - fec: "KRFEC" + id: "245" + lanes: "4:4" + serdes_group: "30" + speed: "100G" + sysport: "245" + type: "eth" + - fec: "KRFEC" + id: "233" + lanes: "0:4" + serdes_group: "29" + speed: "100G" + sysport: "233" + type: "eth" + - fec: "KRFEC" + id: "237" + lanes: "4:4" + serdes_group: "29" + speed: "100G" + sysport: "237" + type: "eth" + - fec: "KRFEC" + id: "225" + lanes: "0:4" + serdes_group: "28" + speed: "100G" + sysport: "225" + type: "eth" + - fec: "KRFEC" + id: "229" + lanes: "4:4" + serdes_group: "28" + speed: "100G" + sysport: "229" + type: "eth" + - fec: "KRFEC" + id: "217" + lanes: "0:4" + serdes_group: "27" + speed: "100G" + sysport: "217" + type: "eth" + - fec: "KRFEC" + id: "221" + lanes: "4:4" + serdes_group: "27" + speed: "100G" + sysport: "221" + type: "eth" + - fec: "KRFEC" + id: "209" + lanes: "0:4" + serdes_group: "26" + speed: "100G" + sysport: "209" + type: "eth" + - fec: "KRFEC" + id: "213" + lanes: "4:4" + serdes_group: "26" + speed: "100G" + sysport: "213" + type: "eth" + - fec: "KRFEC" + id: "201" + lanes: "0:4" + serdes_group: "25" + speed: "100G" + sysport: "201" + type: "eth" + - fec: "KRFEC" + id: "205" + lanes: "4:4" + serdes_group: "25" + speed: "100G" + sysport: "205" + type: "eth" + - fec: "KRFEC" + id: "193" + lanes: "0:4" + serdes_group: "24" + speed: "100G" + sysport: "193" + type: "eth" + - fec: "KRFEC" + id: "197" + lanes: "4:4" + serdes_group: "24" + speed: "100G" + sysport: "197" + type: "eth" + - fec: "KRFEC" + id: "185" + lanes: "0:4" + serdes_group: "23" + speed: "100G" + sysport: "185" + type: "eth" + - fec: "KRFEC" + id: "189" + lanes: "4:4" + serdes_group: "23" + speed: "100G" + sysport: "189" + type: "eth" + - fec: "KRFEC" + id: "177" + lanes: "0:4" + serdes_group: "22" + speed: "100G" + sysport: "177" + type: "eth" + - fec: "KRFEC" + id: "181" + lanes: "4:4" + serdes_group: "22" + speed: "100G" + sysport: "181" + type: "eth" + - fec: "KRFEC" + id: "169" + lanes: "0:4" + serdes_group: "21" + speed: "100G" + sysport: "169" + type: "eth" + - fec: "KRFEC" + id: "173" + lanes: "4:4" + serdes_group: "21" + speed: "100G" + sysport: "173" + type: "eth" + - fec: "KRFEC" + id: "161" + lanes: "0:4" + serdes_group: "20" + speed: "100G" + sysport: "161" + type: "eth" + - fec: "KRFEC" + id: "165" + lanes: "4:4" + serdes_group: "20" + speed: "100G" + sysport: "165" + type: "eth" + - fec: "KRFEC" + id: "153" + lanes: "0:4" + serdes_group: "19" + speed: "100G" + sysport: "153" + type: "eth" + - fec: "KRFEC" + id: "157" + lanes: "4:4" + serdes_group: "19" + speed: "100G" + sysport: "157" + type: "eth" + - fec: "KRFEC" + id: "145" + lanes: "0:4" + serdes_group: "18" + speed: "100G" + sysport: "145" + type: "eth" + - fec: "KRFEC" + id: "149" + lanes: "4:4" + serdes_group: "18" + speed: "100G" + sysport: "149" + type: "eth" + - fec: "KRFEC" + id: "137" + lanes: "0:4" + serdes_group: "17" + speed: "100G" + sysport: "137" + type: "eth" + - fec: "KRFEC" + id: "141" + lanes: "4:4" + serdes_group: "17" + speed: "100G" + sysport: "141" + type: "eth" + - fec: "KRFEC" + id: "129" + lanes: "0:4" + serdes_group: "16" + speed: "100G" + sysport: "129" + type: "eth" + - fec: "KRFEC" + id: "133" + lanes: "4:4" + serdes_group: "16" + speed: "100G" + sysport: "133" + type: "eth" + - fec: "KRFEC" + id: "121" + lanes: "0:4" + serdes_group: "15" + speed: "100G" + sysport: "121" + type: "eth" + - fec: "KRFEC" + id: "125" + lanes: "4:4" + serdes_group: "15" + speed: "100G" + sysport: "125" + type: "eth" + - fec: "KRFEC" + id: "113" + lanes: "0:4" + serdes_group: "14" + speed: "100G" + sysport: "113" + type: "eth" + - fec: "KRFEC" + id: "117" + lanes: "4:4" + serdes_group: "14" + speed: "100G" + sysport: "117" + type: "eth" + - fec: "KRFEC" + id: "97" + lanes: "0:4" + serdes_group: "12" + speed: "100G" + sysport: "97" + type: "eth" + - fec: "KRFEC" + id: "101" + lanes: "4:4" + serdes_group: "12" + speed: "100G" + sysport: "101" + type: "eth" + - fec: "KRFEC" + id: "105" + lanes: "0:4" + serdes_group: "13" + speed: "100G" + sysport: "105" + type: "eth" + - fec: "KRFEC" + id: "109" + lanes: "4:4" + serdes_group: "13" + speed: "100G" + sysport: "109" + type: "eth" + - fec: "KRFEC" + id: "81" + lanes: "0:4" + serdes_group: "10" + speed: "100G" + sysport: "81" + type: "eth" + - fec: "KRFEC" + id: "85" + lanes: "4:4" + serdes_group: "10" + speed: "100G" + sysport: "85" + type: "eth" + - fec: "KRFEC" + id: "89" + lanes: "0:4" + serdes_group: "11" + speed: "100G" + sysport: "89" + type: "eth" + - fec: "KRFEC" + id: "93" + lanes: "4:4" + serdes_group: "11" + speed: "100G" + sysport: "93" + type: "eth" + - fec: "KRFEC" + id: "65" + lanes: "0:4" + serdes_group: "8" + speed: "100G" + sysport: "65" + type: "eth" + - fec: "KRFEC" + id: "69" + lanes: "4:4" + serdes_group: "8" + speed: "100G" + sysport: "69" + type: "eth" + - fec: "KRFEC" + id: "73" + lanes: "0:4" + serdes_group: "9" + speed: "100G" + sysport: "73" + type: "eth" + - fec: "KRFEC" + id: "77" + lanes: "4:4" + serdes_group: "9" + speed: "100G" + sysport: "77" + type: "eth" + - fec: "KRFEC" + id: "49" + lanes: "0:4" + serdes_group: "6" + speed: "100G" + sysport: "49" + type: "eth" + - fec: "KRFEC" + id: "53" + lanes: "4:4" + serdes_group: "6" + speed: "100G" + sysport: "53" + type: "eth" + - fec: "KRFEC" + id: "57" + lanes: "0:4" + serdes_group: "7" + speed: "100G" + sysport: "57" + type: "eth" + - fec: "KRFEC" + id: "61" + lanes: "4:4" + serdes_group: "7" + speed: "100G" + sysport: "61" + type: "eth" + - fec: "KRFEC" + id: "33" + lanes: "0:4" + serdes_group: "4" + speed: "100G" + sysport: "33" + type: "eth" + - fec: "KRFEC" + id: "37" + lanes: "4:4" + serdes_group: "4" + speed: "100G" + sysport: "37" + type: "eth" + - fec: "KRFEC" + id: "41" + lanes: "0:4" + serdes_group: "5" + speed: "100G" + sysport: "41" + type: "eth" + - fec: "KRFEC" + id: "45" + lanes: "4:4" + serdes_group: "5" + speed: "100G" + sysport: "45" + type: "eth" + - fec: "KRFEC" + id: "17" + lanes: "0:4" + serdes_group: "2" + speed: "100G" + sysport: "17" + type: "eth" + - fec: "KRFEC" + id: "21" + lanes: "4:4" + serdes_group: "2" + speed: "100G" + sysport: "21" + type: "eth" + - fec: "KRFEC" + id: "25" + lanes: "0:4" + serdes_group: "3" + speed: "100G" + sysport: "25" + type: "eth" + - fec: "KRFEC" + id: "29" + lanes: "4:4" + serdes_group: "3" + speed: "100G" + sysport: "29" + type: "eth" + - fec: "KRFEC" + id: "1" + lanes: "0:4" + serdes_group: "0" + speed: "100G" + sysport: "1" + type: "eth" + - fec: "KRFEC" + id: "5" + lanes: "4:4" + serdes_group: "0" + speed: "100G" + sysport: "5" + type: "eth" + - fec: "KRFEC" + id: "9" + lanes: "0:4" + serdes_group: "1" + speed: "100G" + sysport: "9" + type: "eth" + - fec: "KRFEC" + id: "13" + lanes: "4:4" + serdes_group: "1" + speed: "100G" + sysport: "13" + type: "eth" + - fec: "NONE" + id: "257" + lanes: "0:1" + serdes_group: "32" + speed: "10G" + sysport: "257" + type: "mgmt 0" + - fec: "NONE" + id: "258" + lanes: "1:1" + serdes_group: "32" + speed: "10G" + sysport: "258" + type: "mgmt 1" + isg: + - id: "0" + tx_polarity: "01010101" + rx_polarity: "01100000" + lane_swap: "23641075" + - id: "1" + tx_polarity: "10110000" + rx_polarity: "11111111" + lane_swap: "64317520" + - id: "2" + tx_polarity: "00000000" + rx_polarity: "00000011" + lane_swap: "63147520" + - id: "3" + tx_polarity: "01101000" + rx_polarity: "00001110" + lane_swap: "31572046" + - id: "4" + tx_polarity: "00111000" + rx_polarity: "00001000" + lane_swap: "46105732" + - id: "5" + tx_polarity: "10111111" + rx_polarity: "11101000" + lane_swap: "27153604" + - id: "6" + tx_polarity: "01101110" + rx_polarity: "00001101" + lane_swap: "46503721" + - id: "7" + tx_polarity: "01000100" + rx_polarity: "10000101" + lane_swap: "03671245" + - id: "8" + tx_polarity: "01110101" + rx_polarity: "00010000" + lane_swap: "12640375" + - id: "9" + tx_polarity: "01011100" + rx_polarity: "11001111" + lane_swap: "02561347" + - id: "10" + tx_polarity: "01110110" + rx_polarity: "11000000" + lane_swap: "12740365" + - id: "11" + tx_polarity: "00111000" + rx_polarity: "00010111" + lane_swap: "01572436" + - id: "12" + tx_polarity: "00001111" + rx_polarity: "10111001" + lane_swap: "54320176" + - id: "13" + tx_polarity: "10011101" + rx_polarity: "00111011" + lane_swap: "26153704" + - id: "14" + tx_polarity: "00110000" + rx_polarity: "11010000" + lane_swap: "37452601" + - id: "15" + tx_polarity: "11100010" + rx_polarity: "01110011" + lane_swap: "51370462" + - id: "16" + tx_polarity: "10111010" + rx_polarity: "11010011" + lane_swap: "36152704" + - id: "17" + tx_polarity: "01011101" + rx_polarity: "00110001" + lane_swap: "45621073" + - id: "18" + tx_polarity: "11011111" + rx_polarity: "11001011" + lane_swap: "26143705" + - id: "19" + tx_polarity: "00100110" + rx_polarity: "00001001" + lane_swap: "42730165" + - id: "20" + tx_polarity: "10011011" + rx_polarity: "01101101" + lane_swap: "54217603" + - id: "21" + tx_polarity: "00101110" + rx_polarity: "10111111" + lane_swap: "26031745" + - id: "22" + tx_polarity: "01001110" + rx_polarity: "00111001" + lane_swap: "36024715" + - id: "23" + tx_polarity: "10101101" + rx_polarity: "01010011" + lane_swap: "45621370" + - id: "24" + tx_polarity: "11001110" + rx_polarity: "00011111" + lane_swap: "65234701" + - id: "25" + tx_polarity: "01110001" + rx_polarity: "01010111" + lane_swap: "37601452" + - id: "26" + tx_polarity: "01000100" + rx_polarity: "00001111" + lane_swap: "65034721" + - id: "27" + tx_polarity: "10111101" + rx_polarity: "11000101" + lane_swap: "34501672" + - id: "28" + tx_polarity: "01111000" + rx_polarity: "01110110" + lane_swap: "43061275" + - id: "29" + tx_polarity: "11110111" + rx_polarity: "11100111" + lane_swap: "57304621" + - id: "30" + tx_polarity: "10000100" + rx_polarity: "00101111" + lane_swap: "47125603" + - id: "31" + tx_polarity: "11111111" + rx_polarity: "11100010" + lane_swap: "13460275" + - id: "32" + tx_polarity: "00000000" + rx_polarity: "00000000" + lane_swap: "01234567" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/innovium.77700_B b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/innovium.77700_B new file mode 100644 index 000000000000..27297b313959 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/innovium.77700_B @@ -0,0 +1,59 @@ +sku: innovium.77700_B + +device_id: 0x1b58 + +# Hardware constraint information +hardware: + num_ibs: 6 + + ports_per_ib: 32, 32, 32, 32, 20, 20 + recirc_port_num: 32, 32, 32, 32, 32, 32 + cpu_port_num: 33 + cpu_port_ib: 0 + mgmt_port_num: 33 + mgmt_port_ibs: 1,2 + + pics_per_ib: 6, 7, 7, 6, 5, 5 + pic_ports_per_pic: 8 + max_serdes_speed: 50 + + num_shared_pics: 2 + + isg [0-4]: + ib: 0 + pic_id: [0-4] + + isg [5-9]: + ib: 5 + pic_id: [0-4] + + isg [10-14]: + ib: 1 + pic_id: [0-4] + + isg [16-20]: + ib: 3 + pic_id: [0-4] + + isg [21-25]: + ib: 4 + pic_id: [0-4] + + isg [26-30]: + ib: 2 + pic_id: [0-4] + + isg 15: + mode: 4:4 + ib: 1, 3 + pic_id: 5 + + isg 31: + mode: 4:4 + ib: 0, 2 + pic_id: 5 + + isg 32: + mode: 1:1 + ib: 1, 2 + pic_id: 6 diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/ivm.sai.config.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/ivm.sai.config.yaml new file mode 100755 index 000000000000..607e2da93126 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/ivm.sai.config.yaml @@ -0,0 +1,9 @@ +IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_32x100G_Delta-evs-a-32q56.yaml" +IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.55300" +IFCS_INNO_CLI_PORT : "9999" +IFCS_TARGET : "device" +INNOVIUM_DIR : "/innovium" +PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes" +AVG_IPG_RESERVED_SIZE: "1518" +AVG_QUEUE_RESERVED_SIZE: "1518" +IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/ivm.sai.datapath.config.yaml b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/ivm.sai.datapath.config.yaml new file mode 100644 index 000000000000..2dcf88fc9555 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/ivm.sai.datapath.config.yaml @@ -0,0 +1,10 @@ +ISAI_PARAM_A000 : "0" +ISAI_PARAM_P0_0_LS : "9216 9216" +ISAI_PARAM_P0_1_LS : "2850 2650" +ISAI_PARAM_P0_1_ALS : "290 90" +ISAI_PARAM_P1_0_LS : "3072 3072" +ISAI_PARAM_P1_0_LL : "6144 6144" +ISAI_PARAM_P1_1_LS : "2210 2010" +ISAI_PARAM_P1_1_LL : "1330 1330" +ISAI_PARAM_P1_1_ALS : "290 90" +ISAI_PARAM_P1_1_ALL : "50 50" diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/pg_profile_lookup.ini b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/pg_profile_lookup.ini new file mode 100644 index 000000000000..36c3bb0a484e --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/pg_profile_lookup.ini @@ -0,0 +1,14 @@ +# PG lossless profiles. +# speed cable size xon xoff threshold xon_offset + 25000 5m 1518 0 17600 3 13440 + 50000 5m 1518 0 23456 3 13440 + 100000 5m 1518 0 36064 3 13440 + 400000 5m 1518 0 118464 3 13440 + 25000 40m 1518 0 18720 3 13440 + 50000 40m 1518 0 25696 3 13440 + 100000 40m 1518 0 40544 3 13440 + 400000 40m 1518 0 136384 3 13440 + 25000 300m 1518 0 27040 3 13440 + 50000 300m 1518 0 42336 3 13440 + 100000 300m 1518 0 73824 3 13440 + 400000 300m 1518 0 269504 3 13440 diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/port_config.ini b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/port_config.ini new file mode 100644 index 000000000000..9999a677da49 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/port_config.ini @@ -0,0 +1,67 @@ +# name lanes speed index mtu +Ethernet0 249,250,251,252 100000 0 9126 +Ethernet4 253,254,255,256 100000 0 9126 +Ethernet8 241,242,243,244 100000 1 9126 +Ethernet12 245,246,247,248 100000 1 9126 +Ethernet16 233,234,235,236 100000 2 9126 +Ethernet20 237,238,239,240 100000 2 9126 +Ethernet24 225,226,227,228 100000 3 9126 +Ethernet28 229,230,231,232 100000 3 9126 +Ethernet32 217,218,219,220 100000 4 9126 +Ethernet36 221,222,223,224 100000 4 9126 +Ethernet40 209,210,211,212 100000 5 9126 +Ethernet44 213,214,215,216 100000 5 9126 +Ethernet48 201,202,203,204 100000 6 9126 +Ethernet52 205,206,207,208 100000 6 9126 +Ethernet56 193,194,195,196 100000 7 9126 +Ethernet60 197,198,199,200 100000 7 9126 +Ethernet64 185,186,187,188 100000 8 9126 +Ethernet68 189,190,191,192 100000 8 9126 +Ethernet72 177,178,179,180 100000 9 9126 +Ethernet76 181,182,183,184 100000 9 9126 +Ethernet80 169,170,171,172 100000 10 9126 +Ethernet84 173,174,175,176 100000 10 9126 +Ethernet88 161,162,163,164 100000 11 9126 +Ethernet92 165,166,167,168 100000 11 9126 +Ethernet96 153,154,155,156 100000 12 9126 +Ethernet100 157,158,159,160 100000 12 9126 +Ethernet104 145,146,147,148 100000 13 9126 +Ethernet108 149,150,151,152 100000 13 9126 +Ethernet112 137,138,139,140 100000 14 9126 +Ethernet116 141,142,143,144 100000 14 9126 +Ethernet120 129,130,131,132 100000 15 9126 +Ethernet124 133,134,135,136 100000 15 9126 +Ethernet128 121,122,123,124 100000 16 9126 +Ethernet132 125,126,127,128 100000 16 9126 +Ethernet136 113,114,115,116 100000 17 9126 +Ethernet140 117,118,119,120 100000 17 9126 +Ethernet144 97,98,99,100 100000 18 9126 +Ethernet148 101,102,103,104 100000 18 9126 +Ethernet152 105,106,107,108 100000 19 9126 +Ethernet156 109,110,111,112 100000 19 9126 +Ethernet160 81,82,83,84 100000 20 9126 +Ethernet164 85,86,87,88 100000 20 9126 +Ethernet168 89,90,91,92 100000 21 9126 +Ethernet172 93,94,95,96 100000 21 9126 +Ethernet176 65,66,67,68 100000 22 9126 +Ethernet180 69,70,71,72 100000 22 9126 +Ethernet184 73,74,75,76 100000 23 9126 +Ethernet188 77,78,79,80 100000 23 9126 +Ethernet192 49,50,51,52 100000 24 9126 +Ethernet196 53,54,55,56 100000 24 9126 +Ethernet200 57,58,59,60 100000 25 9126 +Ethernet204 61,62,63,64 100000 25 9126 +Ethernet208 33,34,35,36 100000 26 9126 +Ethernet212 37,38,39,40 100000 26 9126 +Ethernet216 41,42,43,44 100000 27 9126 +Ethernet220 45,46,47,48 100000 27 9126 +Ethernet224 17,18,19,20 100000 28 9126 +Ethernet228 21,22,23,24 100000 28 9126 +Ethernet232 25,26,27,28 100000 29 9126 +Ethernet236 29,30,31,32 100000 29 9126 +Ethernet240 1,2,3,4 100000 30 9126 +Ethernet244 5,6,7,8 100000 30 9126 +Ethernet248 9,10,11,12 100000 31 9126 +Ethernet252 13,14,15,16 100000 31 9126 +Ethernet256 257 10000 32 9126 +Ethernet257 258 10000 33 9126 diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/qos.json.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/qos.json.j2 new file mode 100755 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/qos.json.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/qos_defaults_def_lossy.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/qos_defaults_def_lossy.j2 new file mode 100755 index 000000000000..205242d82910 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/qos_defaults_def_lossy.j2 @@ -0,0 +1,118 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"0", + "4":"0", + "5":"0", + "6":"0", + "7":"0", + "8":"0", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]" + } + }, + "SCHEDULER": { + "scheduler.7": { + "type": "STRICT" + } + }, + "QUEUE": { + "{{ port_names }}|7": { + "scheduler": "[SCHEDULER|scheduler.7]" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/qos_defaults_t1.j2 b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/qos_defaults_t1.j2 new file mode 100644 index 000000000000..3938fc1a05c4 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/qos_defaults_t1.j2 @@ -0,0 +1,114 @@ +{% set port_names_list = [] %} +{% for port in PORT %} + {%- if port_names_list.append(port) %}{% endif %} +{% endfor %} +{% set port_names = port_names_list | join(',') -%} + + +{ + "TC_TO_QUEUE_MAP":{ + "AZURE":{ + "0":"0", + "1":"1", + "2":"2", + "3":"3", + "4":"4", + "5":"5", + "6":"6", + "7":"7" + } + }, + "TC_TO_PRIORITY_GROUP_MAP": { + "AZURE": { + "0": "0", + "1": "0", + "2": "0", + "3": "1", + "4": "2", + "5": "0", + "6": "0", + "7": "0" + } + }, + "DSCP_TO_TC_MAP": { + "AZURE": { + "0":"0", + "1":"0", + "2":"0", + "3":"3", + "4":"4", + "5":"0", + "6":"0", + "7":"0", + "8":"1", + "9":"0", + "10":"0", + "11":"0", + "12":"0", + "13":"0", + "14":"0", + "15":"0", + "16":"0", + "17":"0", + "18":"0", + "19":"0", + "20":"0", + "21":"0", + "22":"0", + "23":"0", + "24":"0", + "25":"0", + "26":"0", + "27":"0", + "28":"0", + "29":"0", + "30":"0", + "31":"0", + "32":"0", + "33":"0", + "34":"0", + "35":"0", + "36":"0", + "37":"0", + "38":"0", + "39":"0", + "40":"0", + "41":"0", + "42":"0", + "43":"0", + "44":"0", + "45":"0", + "46":"0", + "47":"0", + "48":"0", + "49":"0", + "50":"0", + "51":"0", + "52":"0", + "53":"0", + "54":"0", + "55":"0", + "56":"0", + "57":"0", + "58":"0", + "59":"0", + "60":"0", + "61":"0", + "62":"0", + "63":"0" + } + }, + "PORT_QOS_MAP": { + "{{ port_names }}": { + "tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP:AZURE]", + "tc_to_queue_map": "[TC_TO_QUEUE_MAP:AZURE]", + "dscp_to_tc_map": "[DSCP_TO_TC_MAP:AZURE]", + "pfc_enable": "3,4" + } + }, + "WRED_PROFILE": { + "AZURE_LOSSLESS" : { + "red_min_threshold":"50000" + } + } +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/sai.profile b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/sai.profile new file mode 100755 index 000000000000..aba4fc81fb17 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/Delta-evs-a-32q56_64x100/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/default_sku b/device/delta/x86_64-delta_evs-a-32q56-r0/default_sku new file mode 100644 index 000000000000..c52a1e4d3fcc --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/default_sku @@ -0,0 +1 @@ +Delta-evs-a-32q56_32x100 t1 diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/installer.conf b/device/delta/x86_64-delta_evs-a-32q56-r0/installer.conf new file mode 100644 index 000000000000..925a32fc0c3a --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/installer.conf @@ -0,0 +1,3 @@ +CONSOLE_PORT=0x3f8 +CONSOLE_DEV=0 +CONSOLE_SPEED=115200 diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/plugins/eeprom.py b/device/delta/x86_64-delta_evs-a-32q56-r0/plugins/eeprom.py new file mode 100644 index 000000000000..667673239950 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/plugins/eeprom.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python + +############################################################################# +# Mellanox +# +# Platform and model specific eeprom subclass, inherits from the base class, +# and provides the followings: +# - the eeprom format definition +# - specific encoder/decoder if there is special need +############################################################################# + +try: + from sonic_eeprom import eeprom_tlvinfo +except ImportError, e: + raise ImportError (str(e) + "- required module not found") + +class board(eeprom_tlvinfo.TlvInfoDecoder): + + def __init__(self, name, path, cpld_root, ro): + self.eeprom_path = "/sys/class/i2c-adapter/i2c-0/0-0056/eeprom" + super(board, self).__init__(self.eeprom_path, 2048, '', True) diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/plugins/psuutil.py b/device/delta/x86_64-delta_evs-a-32q56-r0/plugins/psuutil.py new file mode 100644 index 000000000000..88300af1a2ce --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/plugins/psuutil.py @@ -0,0 +1,75 @@ +# +# Module contains an implementation of SONiC PSU Base API and +# provides the PSUs status which are available in the platform +# + +try: + import os.path + from sonic_psu.psu_base import PsuBase +except ImportError as e: + raise ImportError (str(e) + "- required module not found") + +class PsuUtil(PsuBase): + """Platform-specific PSUutil class""" + + def __init__(self): + PsuBase.__init__(self) + self.psu_status = "ipmitool raw 0x06 0x52 0x07 0x62 0x01 0x21" + + def get_num_psus(self): + """ + Retrieves the number of PSUs available on the device + + :return: An integer, the number of PSUs available on the device + """ + return 2 + + def get_psu_status(self, index): + """ + Retrieves the oprational status of power supply unit (PSU) defined + by 1-based index + + :param index: An integer, 1-based index of the PSU of which to query status + :return: Boolean, True if PSU is operating properly, False if PSU is faulty + """ + if index is None: + return False + + status = 0 + try: + content = os.popen("ipmitool raw 0x06 0x52 0x07 0x62 0x01 0x23").readline().strip() + reg_value = int(content, 16) + mask = (1 << (index - 1)) + if reg_value & mask == 0: + status = 0 + else: + status = 1 + except IOError: + return False + return status == 1 + + + def get_psu_presence(self, index): + """ + Retrieves the presence status of power supply unit (PSU) defined + by 1-based index + + :param index: An integer, 1-based index of the PSU of which to query status + :return: Boolean, True if PSU is plugged, False if not + """ + if index is None: + return False + + status = 0 + try: + content = os.popen("ipmitool raw 0x06 0x52 0x07 0x62 0x01 0x21").readline().strip() + reg_value = int(content, 16) + mask = (1 << (index - 1)) + if reg_value & mask != 0: + status = 0 + else: + status = 1 + except IOError: + return False + return status == 1 + diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/plugins/sfputil.py b/device/delta/x86_64-delta_evs-a-32q56-r0/plugins/sfputil.py new file mode 100644 index 000000000000..d0ed79f45ba0 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/plugins/sfputil.py @@ -0,0 +1,260 @@ +# sfputil.py +# +# Platform-specific SFP transceiver interface for SONiC +# + +try: + import os.path + import time + from sonic_sfp.sfputilbase import SfpUtilBase +except ImportError as e: + raise ImportError("%s - required module not found" % str(e)) + + +class SfpUtil(SfpUtilBase): + """Platform-specific SfpUtil class""" + + PORT_START = 0 + PORT_START_SFP = 32 + PORT_END = 33 + PORTS_IN_BLOCK = 34 + + _port_to_eeprom_mapping = {} + port_dict = {} + + @property + def port_start(self): + return self.PORT_START + + @property + def port_end(self): + return self.PORT_END + + @property + def port_start_sfp(self): + return self.PORT_START_SFP + + @property + def qsfp_ports(self): + return range(0, self.PORTS_IN_BLOCK + 1) + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping + + @property + def get_transceiver_status(self): + + try: + reg_file = open("/sys/kernel/sfp/sfp_is_present") + + except IOError as e: + print "Error: unable to open file: %s" % str(e) + return False + + content = reg_file.readline().rstrip() + reg_file.close() + + return int(content, 16) + + def __init__(self): + eeprom_path = "/sys/bus/i2c/devices/{0}-0050/eeprom" + + for x in range(0, self.port_end + 1): + if x >= self.port_start_sfp: + # SFP1: 41-0050, SFP2: 42-0050 + self.port_to_eeprom_mapping[x] = eeprom_path.format(x + 9) + else: + # QSFP1: 51-0050 ~ QSFP32: 82-0050 + self.port_to_eeprom_mapping[x] = eeprom_path.format(x + 51) + + self.modprs_register = self.get_transceiver_status + SfpUtilBase.__init__(self) + + def get_presence(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + if port_num < 16 or port_num >= self.port_start_sfp: + os.popen("ipmitool raw 0x06 0x52 0x07 0xe2 0x01 0x01") + else: + os.popen("ipmitool raw 0x06 0x52 0x07 0xe2 0x01 0x10") + + if port_num >= self.port_start_sfp: + content = os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x01 0x01").readline().strip() + else: + if ((port_num / 8) % 2 == 0): + content = os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x01 0x08").readline().strip() + else: + content = os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x01 0x09").readline().strip() + + # content is a string containing the hex representation of the register + reg_value = int(content, 16) + + # Mask off the bit corresponding to our port + mask = (1 << (port_num % 8)) + + # ModPrsL is active low + if reg_value & mask == 0: + return True + + return False + + def get_low_power_mode(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end - 2: + return False + + if port_num < 16: + os.popen("ipmitool raw 0x06 0x52 0x07 0xe2 0x01 0x01") + else: + os.popen("ipmitool raw 0x06 0x52 0x07 0xe2 0x01 0x10") + + if ((port_num / 8) % 2 == 0): + content = os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x01 0x12").readline().strip() + else: + content = os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x01 0x13").readline().strip() + + # content is a string containing the hex representation of the register + reg_value = int(content, 16) + + # Mask off the bit corresponding to our port + mask = (1 << (port_num % 8)) + + # LPMode is active high + if reg_value & mask == 0: + return False + + return True + + def set_low_power_mode(self, port_num, lpmode): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end - 2: + return False + + if port_num < 16: + os.popen("ipmitool raw 0x06 0x52 0x07 0xe2 0x01 0x01") + else: + os.popen("ipmitool raw 0x06 0x52 0x07 0xe2 0x01 0x10") + + if ((port_num / 8) % 2 == 0): + content = os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x01 0x12").readline().strip() + else: + content = os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x01 0x13").readline().strip() + + # content is a string containing the hex representation of the register + reg_value = int(content, 16) + + # Mask off the bit corresponding to our port + mask = (1 << (port_num % 8)) + + # LPMode is active high; set or clear the bit accordingly + if lpmode is True: + reg_value = reg_value | mask + else: + reg_value = reg_value & ~mask + + # Convert our register value back to a hex string and write back + content = hex(reg_value).rstrip("L") or "0" + if ((port_num / 8) % 2 == 0): + os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x00 0x12 {0}".format(content)) + else: + os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x00 0x13 {0}".format(content)) + + return True + + def reset(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end - 2: + return False + + if port_num < 16: + os.popen("ipmitool raw 0x06 0x52 0x07 0xe2 0x01 0x01") + else: + os.popen("ipmitool raw 0x06 0x52 0x07 0xe2 0x01 0x10") + + if ((port_num / 8) % 2 == 0): + content = os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x01 0x06").readline().strip() + else: + content = os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x01 0x07").readline().strip() + + # File content is a string containing the hex representation of the register + reg_value = int(content, 16) + + # Mask off the bit corresponding to our port + mask = (1 << (port_num % 8)) + + # ResetL is active low + reg_value = reg_value & ~mask + + # Convert our register value back to a hex string and write back + if ((port_num / 8) % 2 == 0): + os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x00 0x06 {0}".format(hex(reg_value))) + else: + os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x00 0x07 {0}".format(hex(reg_value))) + + # Sleep 1 second to allow it to settle + time.sleep(1) + + # Flip the bit back high and write back to the register to take port out of reset + reg_value = reg_value | mask + if ((port_num / 8) % 2 == 0): + os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x00 0x06 {0}".format(hex(reg_value))) + else: + os.popen("ipmitool raw 0x06 0x52 0x07 0x64 0x00 0x07 {0}".format(hex(reg_value))) + + return True + + def get_transceiver_change_event(self, timeout=2000): + start_time = time.time() + port_dict = {} + port = self.port_start + forever = False + if timeout == 0: + forever = True + elif timeout > 0: + timeout = timeout / float(1000) # Convert to secs + else: + print "get_transceiver_change_event:Invalid timeout value", timeout + return False, {} + + end_time = start_time + timeout + if start_time > end_time: + print 'get_transceiver_change_event:' \ + 'time wrap / invalid timeout value', timeout + + return False, {} # Time wrap or possibly incorrect timeout + while timeout >= 0: + # Check for OIR events and return updated port_dict + reg_value = self.get_transceiver_status + if reg_value != self.modprs_register: + changed_ports = self.modprs_register ^ reg_value + while port >= self.port_start and port <= self.port_end: + + # Mask off the bit corresponding to our port + mask = (1 << port) + if changed_ports & mask: + # ModPrsL is active low + if reg_value & mask == 0: + port_dict[port] = '1' + else: + port_dict[port] = '0' + + port += 1 + + # Update reg value + self.modprs_register = reg_value + return True, port_dict + if forever: + time.sleep(1) + else: + timeout = end_time - time.time() + if timeout >= 1: + time.sleep(1) # We poll at 1 second granularity + else: + if timeout > 0: + time.sleep(timeout) + return True, {} + print "get_transceiver_change_event: Should not reach here." + return False, {} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/pmon_daemon_control.json b/device/delta/x86_64-delta_evs-a-32q56-r0/pmon_daemon_control.json new file mode 100644 index 000000000000..f490a4dc0f39 --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/pmon_daemon_control.json @@ -0,0 +1,3 @@ +{ + "skip_thermalctld": true +} diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/sensors.conf b/device/delta/x86_64-delta_evs-a-32q56-r0/sensors.conf new file mode 100644 index 000000000000..db34a541b26f --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/sensors.conf @@ -0,0 +1,4 @@ +# libsensors configuration file for DELTA-ET-C032IF +# ------------------------------------------------ +# + diff --git a/device/delta/x86_64-delta_evs-a-32q56-r0/topo.conf b/device/delta/x86_64-delta_evs-a-32q56-r0/topo.conf new file mode 100644 index 000000000000..795ea43143eb --- /dev/null +++ b/device/delta/x86_64-delta_evs-a-32q56-r0/topo.conf @@ -0,0 +1 @@ +t1 diff --git a/platform/innovium/docker-syncd-invm-rpc.mk b/platform/innovium/docker-syncd-invm-rpc.mk index 62d6891bbc21..313f0d12ac20 100755 --- a/platform/innovium/docker-syncd-invm-rpc.mk +++ b/platform/innovium/docker-syncd-invm-rpc.mk @@ -2,7 +2,7 @@ DOCKER_SYNCD_INVM_RPC = docker-syncd-invm-rpc.gz $(DOCKER_SYNCD_INVM_RPC)_PATH = $(PLATFORM_PATH)/docker-syncd-invm-rpc -$(DOCKER_SYNCD_INVM_RPC)_DEPENDS += $(SYNCD_RPC) $(LIBTHRIFT) $(INVM_LIBSAI) $(PTF) +$(DOCKER_SYNCD_INVM_RPC)_DEPENDS += $(SYNCD_RPC) $(LIBTHRIFT) $(INVM_LIBSAI) $(DOCKER_SYNCD_INVM_RPC)_LOAD_DOCKERS += $(DOCKER_SYNCD_BASE) SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_INVM_RPC) ifeq ($(ENABLE_SYNCD_RPC),y) diff --git a/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 b/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 index af31d587b90a..2a9c692b4b06 100755 --- a/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 +++ b/platform/innovium/docker-syncd-invm-rpc/Dockerfile.j2 @@ -42,6 +42,8 @@ RUN apt-get update \ && pip install cffi==1.7.0 \ && pip install --upgrade cffi==1.7.0 \ && pip install nnpy \ + && pip install numpy \ + && pip install scipy \ && mkdir -p /opt \ && cd /opt \ && wget https://raw.githubusercontent.com/p4lang/ptf/master/ptf_nn/ptf_nn_agent.py \ diff --git a/platform/innovium/docker-syncd-invm/Dockerfile.j2 b/platform/innovium/docker-syncd-invm/Dockerfile.j2 index 27054e23e472..6f6f5eca9b60 100755 --- a/platform/innovium/docker-syncd-invm/Dockerfile.j2 +++ b/platform/innovium/docker-syncd-invm/Dockerfile.j2 @@ -24,6 +24,7 @@ RUN dpkg -i \ debs/{{ deb }}{{' '}} {%- endfor %} +COPY ["start.sh", "/usr/bin/"] COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] ## Clean up diff --git a/platform/innovium/docker-syncd-invm/start.sh b/platform/innovium/docker-syncd-invm/start.sh new file mode 100755 index 000000000000..32bdb12ebfc0 --- /dev/null +++ b/platform/innovium/docker-syncd-invm/start.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +if [ -f /usr/bin/ivm_start.sh ]; +then + /usr/bin/ivm_start.sh +fi diff --git a/platform/innovium/docker-syncd-invm/supervisord.conf b/platform/innovium/docker-syncd-invm/supervisord.conf index 2a2413b30098..c5541518f861 100755 --- a/platform/innovium/docker-syncd-invm/supervisord.conf +++ b/platform/innovium/docker-syncd-invm/supervisord.conf @@ -21,6 +21,17 @@ stdout_logfile=syslog stderr_logfile=syslog dependent_startup=true +[program:start] +command=/usr/bin/start.sh +priority=1 +autostart=false +autorestart=false +startsecs=0 +stdout_logfile=syslog +stderr_logfile=syslog +dependent_startup=true +dependent_startup_wait_for=rsyslogd:running + [program:syncd] command=/usr/bin/syncd_start.sh priority=2 diff --git a/platform/innovium/libsaithrift-dev.mk b/platform/innovium/libsaithrift-dev.mk index 5357705bac98..2f2ed91d511d 100755 --- a/platform/innovium/libsaithrift-dev.mk +++ b/platform/innovium/libsaithrift-dev.mk @@ -1,7 +1,20 @@ # libsaithrift-dev package -LIBSAITHRIFT_DEV_INVM = libsaithrift-dev_0.9.4_$(CONFIGURED_ARCH).deb -$(LIBSAITHRIFT_DEV_INVM)_SRC_PATH = $(SRC_PATH)/sonic-sairedis/SAI -$(LIBSAITHRIFT_DEV_INVM)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(THRIFT_COMPILER) $(INVM_LIBSAI) $(INVM_HSAI) -$(LIBSAITHRIFT_DEV_INVM)_RDEPENDS += $(LIBTHRIFT) $(INVM_HSAI) -SONIC_DPKG_DEBS += $(LIBSAITHRIFT_DEV_INVM) +SAI_VER = 0.9.4 + +LIBSAITHRIFT_DEV = libsaithrift-dev_${SAI_VER}_$(CONFIGURED_ARCH).deb +$(LIBSAITHRIFT_DEV)_SRC_PATH = $(SRC_PATH)/sonic-sairedis/SAI +$(LIBSAITHRIFT_DEV)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER) $(INVM_LIBSAI) $(INVM_HSAI) +$(LIBSAITHRIFT_DEV)_RDEPENDS += $(LIBTHRIFT) $(INVM_HSAI) +SONIC_DPKG_DEBS += $(LIBSAITHRIFT_DEV) + +PYTHON_SAITHRIFT = python-saithrift_$(SAI_VER)_amd64.deb +$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(PYTHON_SAITHRIFT))) + +SAISERVER = saiserver_$(SAI_VER)_amd64.deb +$(SAISERVER)_RDEPENDS += $(LIBTHRIFT) $(BRCM_SAI) +$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(SAISERVER))) + +SAISERVER_DBG = saiserver-dbg_$(SAI_VER)_amd64.deb +$(SAISERVER_DBG)_RDEPENDS += $(SAISERVER) +$(eval $(call add_extra_package,$(LIBSAITHRIFT_DEV),$(SAISERVER_DBG))) diff --git a/platform/innovium/one-image.mk b/platform/innovium/one-image.mk index c88ec5e65cdf..daf38d9d86f1 100755 --- a/platform/innovium/one-image.mk +++ b/platform/innovium/one-image.mk @@ -2,10 +2,11 @@ SONIC_ONE_IMAGE = sonic-innovium.bin $(SONIC_ONE_IMAGE)_MACHINE = innovium -$(SONIC_ONE_IMAGE)_INSTALLS += $(SYSTEMD_SONIC_GENERATOR) $(SONIC_ONE_IMAGE)_IMAGE_TYPE = onie +$(SONIC_ONE_IMAGE)_INSTALLS += $(SYSTEMD_SONIC_GENERATOR) $(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(CEL_MIDSTONE_200I_PLATFORM_MODULE) -$(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(DELTA_PLATFORM_MODULE) +$(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(DELTA_ETC032IF_PLATFORM_MODULE) +$(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(DELTA_EVSA32Q56_PLATFORM_MODULE) $(SONIC_ONE_IMAGE)_INSTALLS += $(INVM_DRV) $(SONIC_ONE_IMAGE)_DOCKERS += $(SONIC_INSTALL_DOCKER_IMAGES) SONIC_INSTALLERS += $(SONIC_ONE_IMAGE) diff --git a/platform/innovium/platform-modules-delta.mk b/platform/innovium/platform-modules-delta.mk index 68e13fb8a8a4..e580f18c4ec7 100644 --- a/platform/innovium/platform-modules-delta.mk +++ b/platform/innovium/platform-modules-delta.mk @@ -1,13 +1,19 @@ # Delta Platform modules DELTA_ETC032IF_PLATFORM_MODULE_VERSION = 1.1 +DELTA_EVSA32Q56_PLATFORM_MODULE_VERSION = 1.1 export DELTA_ETC032IF_PLATFORM_MODULE_VERSION +export DELTA_EVSA32Q56_PLATFORM_MODULE_VERSION -DELTA_PLATFORM_MODULE = platform-modules-et-c032if_$(DELTA_ETC032IF_PLATFORM_MODULE_VERSION)_$(CONFIGURED_ARCH).deb -$(DELTA_PLATFORM_MODULE)_SRC_PATH = $(PLATFORM_PATH)/sonic-platform-modules-delta -$(DELTA_PLATFORM_MODULE)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON) -$(DELTA_PLATFORM_MODULE)_PLATFORM = x86_64-delta_et-c032if-r0 +DELTA_ETC032IF_PLATFORM_MODULE = platform-modules-et-c032if_$(DELTA_ETC032IF_PLATFORM_MODULE_VERSION)_$(CONFIGURED_ARCH).deb +$(DELTA_ETC032IF_PLATFORM_MODULE)_SRC_PATH = $(PLATFORM_PATH)/sonic-platform-modules-delta +$(DELTA_ETC032IF_PLATFORM_MODULE)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON) +$(DELTA_ETC032IF_PLATFORM_MODULE)_PLATFORM = x86_64-delta_et-c032if-r0 +SONIC_DPKG_DEBS += $(DELTA_ETC032IF_PLATFORM_MODULE) -SONIC_DPKG_DEBS += $(DELTA_PLATFORM_MODULE) -SONIC_STRETCH_DEBS += $(DELTA_PLATFORM_MODULE) +DELTA_EVSA32Q56_PLATFORM_MODULE = platform-modules-evs-a-32q56_$(DELTA_EVSA32Q56_PLATFORM_MODULE_VERSION)_$(CONFIGURED_ARCH).deb +$(DELTA_EVSA32Q56_PLATFORM_MODULE)_PLATFORM = x86_64-delta_evs-a-32q56-r0 +$(eval $(call add_extra_package,$(DELTA_ETC032IF_PLATFORM_MODULE),$(DELTA_EVSA32Q56_PLATFORM_MODULE))) + +SONIC_STRETCH_DEBS += $(DELTA_ETC032IF_PLATFORM_MODULE) diff --git a/platform/innovium/rules.mk b/platform/innovium/rules.mk index 68a9dbb41040..5e8b72393538 100755 --- a/platform/innovium/rules.mk +++ b/platform/innovium/rules.mk @@ -5,7 +5,6 @@ include $(PLATFORM_PATH)/docker-syncd-invm.mk include $(PLATFORM_PATH)/docker-syncd-invm-rpc.mk include $(PLATFORM_PATH)/one-image.mk include $(PLATFORM_PATH)/libsaithrift-dev.mk -include $(PLATFORM_PATH)/python-saithrift.mk include $(PLATFORM_PATH)/docker-ptf-invm.mk SONIC_ALL += $(SONIC_INVM_ONE_IMAGE) \ @@ -14,7 +13,7 @@ SONIC_ALL += $(SONIC_INVM_ONE_IMAGE) \ $(DOCKER_SYNCD_INVM_RPC) # Inject invm sai into sairedis -$(LIBSAIREDIS)_DEPENDS += $(INVM_HSAI) $(INVM_LIBSAI) $(LIBSAITHRIFT_DEV_INVM) +$(LIBSAIREDIS)_DEPENDS += $(INVM_HSAI) $(INVM_LIBSAI) $(LIBSAITHRIFT_DEV) # Runtime dependency on invm sai is set only for syncd $(SYNCD)_RDEPENDS += $(INVM_HSAI) diff --git a/platform/innovium/sonic-platform-modules-delta/debian/control b/platform/innovium/sonic-platform-modules-delta/debian/control index 3fe3ffc9f526..9f3f4931bfa0 100644 --- a/platform/innovium/sonic-platform-modules-delta/debian/control +++ b/platform/innovium/sonic-platform-modules-delta/debian/control @@ -10,4 +10,7 @@ Architecture: amd64 Depends: linux-image-4.9.0-11-2-amd64 Description: kernel modules for platform devices such as fan, led, sfp - +Package: platform-modules-evs-a-32q56 +Architecture: amd64 +Depends: linux-image-4.9.0-11-2-amd64 +Description: kernel modules for platform devices such as fan, led, sfp diff --git a/platform/innovium/sonic-platform-modules-delta/debian/rules b/platform/innovium/sonic-platform-modules-delta/debian/rules index a84c235e5480..cc45ac570330 100755 --- a/platform/innovium/sonic-platform-modules-delta/debian/rules +++ b/platform/innovium/sonic-platform-modules-delta/debian/rules @@ -5,7 +5,7 @@ export INSTALL_MOD_DIR:=extra KVERSION ?= $(shell uname -r) KERNEL_SRC := /lib/modules/$(KVERSION) MOD_SRC_DIR:= $(shell pwd) -MODULE_DIRS:= et-c032if +MODULE_DIRS:= et-c032if evs-a-32q56 %: dh $@ --with=systemd diff --git a/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/cfg/evs-a-32q56-modules.conf b/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/cfg/evs-a-32q56-modules.conf new file mode 100644 index 000000000000..552b4103ed02 --- /dev/null +++ b/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/cfg/evs-a-32q56-modules.conf @@ -0,0 +1,13 @@ +# /etc/modules: kernel modules to load at boot time. +# +# This file contains the names of kernel modules that should be loaded +# at boot time, one per line. Lines beginning with "#" are ignored. + +i2c-i801 +i2c-isch +i2c-ismt +i2c-dev +i2c-mux +i2c-smbus +i2c-mux-gpio +i2c-mux-pca954x diff --git a/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/modules/Makefile b/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/modules/Makefile new file mode 100644 index 000000000000..4c0c1375c998 --- /dev/null +++ b/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/modules/Makefile @@ -0,0 +1,2 @@ +obj-m := delta_evs-a-32q56_platform.o delta_at24.o + diff --git a/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/modules/delta_at24.c b/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/modules/delta_at24.c new file mode 100644 index 000000000000..447f2432776d --- /dev/null +++ b/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/modules/delta_at24.c @@ -0,0 +1,641 @@ +/* + * at24.c - handle most I2C EEPROMs + * + * Copyright (C) 2005-2007 David Brownell + * Copyright (C) 2008 Wolfram Sang, Pengutronix + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * I2C EEPROMs from most vendors are inexpensive and mostly interchangeable. + * Differences between different vendor product lines (like Atmel AT24C or + * MicroChip 24LC, etc) won't much matter for typical read/write access. + * There are also I2C RAM chips, likewise interchangeable. One example + * would be the PCF8570, which acts like a 24c02 EEPROM (256 bytes). + * + * However, misconfiguration can lose data. "Set 16-bit memory address" + * to a part with 8-bit addressing will overwrite data. Writing with too + * big a page size also loses data. And it's not safe to assume that the + * conventional addresses 0x50..0x57 only hold eeproms; a PCF8563 RTC + * uses 0x51, for just one example. + * + * Accordingly, explicit board-specific configuration data should be used + * in almost all cases. (One partial exception is an SMBus used to access + * "SPD" data for DRAM sticks. Those only use 24c02 EEPROMs.) + * + * So this driver uses "new style" I2C driver binding, expecting to be + * told what devices exist. That may be in arch/X/mach-Y/board-Z.c or + * similar kernel-resident tables; or, configuration data coming from + * a bootloader. + * + * Other than binding model, current differences from "eeprom" driver are + * that this one handles write access and isn't restricted to 24c02 devices. + * It also handles larger devices (32 kbit and up) with two-byte addresses, + * which won't work on pure SMBus systems. + */ + +struct at24_data { + struct at24_platform_data chip; + int use_smbus; + + /* + * Lock protects against activities from other Linux tasks, + * but not from changes by other I2C masters. + */ + struct mutex lock; + struct bin_attribute bin; + + u8 *writebuf; + unsigned write_max; + unsigned num_addresses; + + /* + * Some chips tie up multiple I2C addresses; dummy devices reserve + * them for us, and we'll use them with SMBus calls. + */ + struct i2c_client *client[]; +}; + +/* + * This parameter is to help this driver avoid blocking other drivers out + * of I2C for potentially troublesome amounts of time. With a 100 kHz I2C + * clock, one 256 byte read takes about 1/43 second which is excessive; + * but the 1/170 second it takes at 400 kHz may be quite reasonable; and + * at 1 MHz (Fm+) a 1/430 second delay could easily be invisible. + * + * This value is forced to be a power of two so that writes align on pages. + */ +static unsigned io_limit = 128; +module_param(io_limit, uint, 0); +MODULE_PARM_DESC(io_limit, "Maximum bytes per I/O (default 128)"); + +/* + * Specs often allow 5 msec for a page write, sometimes 20 msec; + * it's important to recover from write timeouts. + */ +static unsigned write_timeout = 25; +module_param(write_timeout, uint, 0); +MODULE_PARM_DESC(write_timeout, "Time (in ms) to try writes (default 25)"); + +#define AT24_SIZE_BYTELEN 5 +#define AT24_SIZE_FLAGS 8 + +#define AT24_BITMASK(x) (BIT(x) - 1) + +/* create non-zero magic value for given eeprom parameters */ +#define AT24_DEVICE_MAGIC(_len, _flags) \ + ((1 << AT24_SIZE_FLAGS | (_flags)) \ + << AT24_SIZE_BYTELEN | ilog2(_len)) + +static const struct i2c_device_id delta_at24_ids[] = { + /* needs 8 addresses as A0-A2 are ignored */ + { "24c00-delta", AT24_DEVICE_MAGIC(128 / 8, AT24_FLAG_TAKE8ADDR) }, + /* old variants can't be handled with this generic entry! */ + { "24c01-delta", AT24_DEVICE_MAGIC(1024 / 8, 0) }, + { "24cs01-delta", AT24_DEVICE_MAGIC(16, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY) }, + { "24c02-delta", AT24_DEVICE_MAGIC(2048 / 8, 0) }, + { "24cs02-delta", AT24_DEVICE_MAGIC(16, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY) }, + { "24mac402-delta", AT24_DEVICE_MAGIC(48 / 8, + AT24_FLAG_MAC | AT24_FLAG_READONLY) }, + { "24mac602-delta", AT24_DEVICE_MAGIC(64 / 8, + AT24_FLAG_MAC | AT24_FLAG_READONLY) }, + /* spd is a 24c02 in memory DIMMs */ + { "spd-delta", AT24_DEVICE_MAGIC(2048 / 8, + AT24_FLAG_READONLY | AT24_FLAG_IRUGO) }, + { "24c04-delta", AT24_DEVICE_MAGIC(4096 / 8, 0) }, + { "24cs04-delta", AT24_DEVICE_MAGIC(16, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY) }, + /* 24rf08 quirk is handled at i2c-core */ + { "24c08-delta", AT24_DEVICE_MAGIC(8192 / 8, 0) }, + { "24cs08-delta", AT24_DEVICE_MAGIC(16, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY) }, + { "24c16-delta", AT24_DEVICE_MAGIC(16384 / 8, 0) }, + { "24cs16-delta", AT24_DEVICE_MAGIC(16, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY) }, + { "24c32-delta", AT24_DEVICE_MAGIC(32768 / 8, AT24_FLAG_ADDR16) }, + { "24cs32-delta", AT24_DEVICE_MAGIC(16, + AT24_FLAG_ADDR16 | + AT24_FLAG_SERIAL | + AT24_FLAG_READONLY) }, + { "24c64-delta", AT24_DEVICE_MAGIC(65536 / 8, AT24_FLAG_ADDR16) }, + { "24cs64-delta", AT24_DEVICE_MAGIC(16, + AT24_FLAG_ADDR16 | + AT24_FLAG_SERIAL | + AT24_FLAG_READONLY) }, + { "24c128-delta", AT24_DEVICE_MAGIC(131072 / 8, AT24_FLAG_ADDR16) }, + { "24c256-delta", AT24_DEVICE_MAGIC(262144 / 8, AT24_FLAG_ADDR16) }, + { "24c512-delta", AT24_DEVICE_MAGIC(524288 / 8, AT24_FLAG_ADDR16) }, + { "24c1024-delta", AT24_DEVICE_MAGIC(1048576 / 8, AT24_FLAG_ADDR16) }, + { "24c2048-delta", AT24_DEVICE_MAGIC(2097152 / 8, AT24_FLAG_ADDR16) }, + { "at24-delta", 0 }, + { /* END OF LIST */ } +}; +MODULE_DEVICE_TABLE(i2c, delta_at24_ids); + +/*-------------------------------------------------------------------------*/ + +/* + * This routine supports chips which consume multiple I2C addresses. It + * computes the addressing information to be used for a given r/w request. + * Assumes that sanity checks for offset happened at sysfs-layer. + */ +static struct i2c_client *at24_translate_offset(struct at24_data *at24, + unsigned *offset) +{ + unsigned i = 0; + + if (at24->chip.flags & AT24_FLAG_ADDR16) { + i = *offset >> 16; + *offset &= 0xffff; + } else { + i = *offset >> 8; + *offset &= 0xff; + } + + return at24->client[i]; +} + +static ssize_t at24_eeprom_read(struct at24_data *at24, char *buf, + unsigned offset, size_t count) +{ + struct i2c_msg msg[2]; + struct i2c_client *client; + unsigned long timeout, read_time; + int status; + + memset(msg, 0, sizeof(msg)); + + /* + * REVISIT some multi-address chips don't rollover page reads to + * the next slave address, so we may need to truncate the count. + * Those chips might need another quirk flag. + * + * If the real hardware used four adjacent 24c02 chips and that + * were misconfigured as one 24c08, that would be a similar effect: + * one "eeprom" file not four, but larger reads would fail when + * they crossed certain pages. + */ + + /* + * Slave address and byte offset derive from the offset. Always + * set the byte address; on a multi-master board, another master + * may have changed the chip's "current" address pointer. + */ + client = at24_translate_offset(at24, &offset); + + if (count > io_limit) + count = io_limit; + + count = 1; + + /* + * Reads fail if the previous write didn't complete yet. We may + * loop a few times until this one succeeds, waiting at least + * long enough for one entire page write to work. + */ + timeout = jiffies + msecs_to_jiffies(write_timeout); + do { + read_time = jiffies; + + status = i2c_smbus_write_byte_data(client, (offset >> 8) & 0x0ff, offset & 0x0ff ); + status = i2c_smbus_read_byte(client); + if (status >= 0) { + buf[0] = status; + status = count; + } + + dev_dbg(&client->dev, "read %zu@%d --> %d (%ld)\n", count, offset, status, jiffies); + + if (status == count) + return count; + + /* REVISIT: at HZ=100, this is sloooow */ + msleep(1); + } while (time_before(read_time, timeout)); + + return -ETIMEDOUT; +} + +static ssize_t at24_read(struct at24_data *at24, + char *buf, loff_t off, size_t count) +{ + ssize_t retval = 0; + + if (unlikely(!count)) + return count; + + memset(buf, 0, count); + + /* + * Read data from chip, protecting against concurrent updates + * from this host, but not from other I2C masters. + */ + mutex_lock(&at24->lock); + + while (count) { + ssize_t status; + + status = at24_eeprom_read(at24, buf, off, count); + if (status <= 0) { + if (retval == 0) + retval = status; + break; + } + buf += status; + off += status; + count -= status; + retval += status; + } + + mutex_unlock(&at24->lock); + + return retval; +} + +static ssize_t at24_bin_read(struct file *filp, struct kobject *kobj, + struct bin_attribute *attr, + char *buf, loff_t off, size_t count) +{ + struct at24_data *at24; + + at24 = dev_get_drvdata(container_of(kobj, struct device, kobj)); + return at24_read(at24, buf, off, count); +} + + +/* + * Note that if the hardware write-protect pin is pulled high, the whole + * chip is normally write protected. But there are plenty of product + * variants here, including OTP fuses and partial chip protect. + * + * We only use page mode writes; the alternative is sloooow. This routine + * writes at most one page. + */ +static ssize_t at24_eeprom_write(struct at24_data *at24, const char *buf, + unsigned offset, size_t count) +{ + struct i2c_client *client; + ssize_t status; + unsigned long timeout, write_time; + unsigned next_page; + + /* Get corresponding I2C address and adjust offset */ + client = at24_translate_offset(at24, &offset); + + /* write_max is at most a page */ + if (count > at24->write_max) + count = at24->write_max; + + /* Never roll over backwards, to the start of this page */ + next_page = roundup(offset + 1, at24->chip.page_size); + if (offset + count > next_page) + count = next_page - offset; + + /* + * Writes fail if the previous one didn't complete yet. We may + * loop a few times until this one succeeds, waiting at least + * long enough for one entire page write to work. + */ + timeout = jiffies + msecs_to_jiffies(write_timeout); + do { + write_time = jiffies; + + status = i2c_smbus_write_word_data(client, (offset >> 8) & 0x0ff, (offset & 0xFF) | buf[0]); + if (status == 0) + status = count; + + dev_dbg(&client->dev, "write %zu@%d --> %zd (%ld)\n", count, offset, status, jiffies); + + if (status == count) + return count; + + /* REVISIT: at HZ=100, this is sloooow */ + msleep(1); + } while (time_before(write_time, timeout)); + + return -ETIMEDOUT; +} + +static ssize_t at24_write(struct at24_data *at24, const char *buf, loff_t off, + size_t count) +{ + ssize_t retval = 0; + + if (unlikely(!count)) + return count; + + /* + * Write data to chip, protecting against concurrent updates + * from this host, but not from other I2C masters. + */ + mutex_lock(&at24->lock); + + while (count) { + ssize_t status; + + status = at24_eeprom_write(at24, buf, off, 1); /* only one-byte to write; TODO page wirte */ + if (status <= 0) { + if (retval == 0) + retval = status; + break; + } + buf += status; + off += status; + count -= status; + retval += status; + } + + mutex_unlock(&at24->lock); + + return retval; +} + +static ssize_t at24_bin_write(struct file *filp, struct kobject *kobj, + struct bin_attribute *attr, + char *buf, loff_t off, size_t count) +{ + struct at24_data *at24; + + if (unlikely(off >= attr->size)) + return -EFBIG; + + at24 = dev_get_drvdata(container_of(kobj, struct device, kobj)); + return at24_write(at24, buf, off, count); +} + +/*-------------------------------------------------------------------------*/ + +#ifdef CONFIG_OF +static void at24_get_ofdata(struct i2c_client *client, + struct at24_platform_data *chip) +{ + const __be32 *val; + struct device_node *node = client->dev.of_node; + + if (node) { + if (of_get_property(node, "read-only", NULL)) + chip->flags |= AT24_FLAG_READONLY; + val = of_get_property(node, "pagesize", NULL); + if (val) + chip->page_size = be32_to_cpup(val); + } +} +#else +static void at24_get_ofdata(struct i2c_client *client, + struct at24_platform_data *chip) +{ } +#endif /* CONFIG_OF */ + +static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct at24_platform_data chip; + bool writable; + int use_smbus = 0; + struct at24_data *at24; + int err; + unsigned i, num_addresses; + kernel_ulong_t magic; + + if (client->dev.platform_data) { + chip = *(struct at24_platform_data *)client->dev.platform_data; + } else { + if (!id->driver_data) + return -ENODEV; + + magic = id->driver_data; + chip.byte_len = BIT(magic & AT24_BITMASK(AT24_SIZE_BYTELEN)); + magic >>= AT24_SIZE_BYTELEN; + chip.flags = magic & AT24_BITMASK(AT24_SIZE_FLAGS); + + /* + * This is slow, but we can't know all eeproms, so we better + * play safe. Specifying custom eeprom-types via platform_data + * is recommended anyhow. + */ + chip.page_size = 1; + + /* update chipdata if OF is present */ + at24_get_ofdata(client, &chip); + + chip.setup = NULL; + chip.context = NULL; + } + + if (!is_power_of_2(chip.byte_len)) + dev_warn(&client->dev, + "byte_len looks suspicious (no power of 2)!\n"); + if (!chip.page_size) { + dev_err(&client->dev, "page_size must not be 0!\n"); + return -EINVAL; + } + if (!is_power_of_2(chip.page_size)) + dev_warn(&client->dev, + "page_size looks suspicious (no power of 2)!\n"); + + /* Use I2C operations unless we're stuck with SMBus extensions. */ + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + if (i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_READ_I2C_BLOCK)) { + use_smbus = I2C_SMBUS_I2C_BLOCK_DATA; + } else if (i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_READ_WORD_DATA)) { + use_smbus = I2C_SMBUS_WORD_DATA; + } else if (i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_READ_BYTE_DATA)) { + use_smbus = I2C_SMBUS_BYTE_DATA; + } else { + return -EPFNOSUPPORT; + } + use_smbus = I2C_SMBUS_BYTE_DATA; + } + + if (chip.flags & AT24_FLAG_TAKE8ADDR) + num_addresses = 8; + else + num_addresses = DIV_ROUND_UP(chip.byte_len, (chip.flags & AT24_FLAG_ADDR16) ? 65536 : 256); + + at24 = devm_kzalloc(&client->dev, sizeof(struct at24_data) + num_addresses * sizeof(struct i2c_client *), GFP_KERNEL); + if (!at24) + return -ENOMEM; + + mutex_init(&at24->lock); + at24->use_smbus = use_smbus; + at24->chip = chip; + at24->num_addresses = num_addresses; + + printk(KERN_ALERT "at24_probe chip.byte_len = 0x%x\n", chip.byte_len); + printk(KERN_ALERT "at24_probe chip.flags = 0x%x\n", chip.flags); + printk(KERN_ALERT "at24_probe chip.magic = 0x%lx\n", id->driver_data); + printk(KERN_ALERT "at24_probe use_smbus = %d\n", at24->use_smbus); + printk(KERN_ALERT "at24_probe num_addresses = %d\n", at24->num_addresses); + + /* + * Export the EEPROM bytes through sysfs, since that's convenient. + * By default, only root should see the data (maybe passwords etc) + */ + sysfs_bin_attr_init(&at24->bin); + at24->bin.attr.name = "eeprom"; + at24->bin.attr.mode = chip.flags & AT24_FLAG_IRUGO ? S_IRUGO : S_IRUSR; + at24->bin.read = at24_bin_read; + at24->bin.size = chip.byte_len; + + writable = !(chip.flags & AT24_FLAG_READONLY); + if (writable) { + if (!use_smbus || i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WRITE_I2C_BLOCK)) { + unsigned write_max = chip.page_size; + + at24->bin.write = at24_bin_write; + at24->bin.attr.mode |= S_IWUSR; + + if (write_max > io_limit) + write_max = io_limit; + if (use_smbus && write_max > I2C_SMBUS_BLOCK_MAX) + write_max = I2C_SMBUS_BLOCK_MAX; + at24->write_max = write_max; + + /* buffer (data + address at the beginning) */ + at24->writebuf = devm_kzalloc(&client->dev, write_max + 2, GFP_KERNEL); + if (!at24->writebuf) + return -ENOMEM; + } else { + dev_warn(&client->dev, "cannot write due to controller restrictions."); + } + } + + at24->client[0] = client; + + /* use dummy devices for multiple-address chips */ + for (i = 1; i < num_addresses; i++) { + at24->client[i] = i2c_new_dummy(client->adapter, client->addr + i); + if (!at24->client[i]) { + dev_err(&client->dev, "address 0x%02x unavailable\n", client->addr + i); + err = -EADDRINUSE; + goto err_clients; + } + } + + err = sysfs_create_bin_file(&client->dev.kobj, &at24->bin); + if (err) + goto err_clients; + + i2c_set_clientdata(client, at24); + + printk(KERN_ALERT "at24_probe %s done\n", client->name); + + return 0; + +err_clients: + for (i = 1; i < num_addresses; i++) + if (at24->client[i]) + i2c_unregister_device(at24->client[i]); + + return err; +} + +static int at24_remove(struct i2c_client *client) +{ + struct at24_data *at24; + int i; + + at24 = i2c_get_clientdata(client); + sysfs_remove_bin_file(&client->dev.kobj, &at24->bin); + + for (i = 1; i < at24->num_addresses; i++) + i2c_unregister_device(at24->client[i]); + + return 0; +} + +/*-------------------------------------------------------------------------*/ + +// static struct i2c_board_info i2c_devs = { +// I2C_BOARD_INFO("24c128-delta", 0x56), +// }; + +// static struct i2c_adapter *adapter = NULL; +// static struct i2c_client *client = NULL; + +// static int delta_at24c128_dev_init(void) +// { +// printk(KERN_ALERT "delta_at24c128_dev_init\n"); + +// adapter = i2c_get_adapter(0); +// if(adapter == NULL){ +// printk(KERN_ALERT "i2c_get_adapter == NULL\n"); +// return -1; +// } + +// client = i2c_new_device(adapter, &i2c_devs); +// if(client == NULL){ +// printk(KERN_ALERT "i2c_new_device == NULL\n"); +// i2c_put_adapter(adapter); +// adapter = NULL; +// return -1; +// } + +// return 0; +// } + +// static void delta_at24c128_dev_exit(void) +// { +// printk(KERN_ALERT "delta_at24c128_dev_exit\n"); +// if(client){ +// i2c_unregister_device(client); +// } +// if(adapter){ +// i2c_put_adapter(adapter); +// } +// } + +static struct i2c_driver delta_at24_driver = { + .driver = { + .name = "delta-at24", + .owner = THIS_MODULE, + }, + .probe = at24_probe, + .remove = at24_remove, + .id_table = delta_at24_ids, +}; + +static int __init delta_at24_init(void) +{ + if (!io_limit) { + pr_err("delta-at24: io_limit must not be 0!\n"); + return -EINVAL; + } + + io_limit = rounddown_pow_of_two(io_limit); + + // delta_at24c128_dev_init(); + + return i2c_add_driver(&delta_at24_driver); +} +module_init(delta_at24_init); + +static void __exit delta_at24_exit(void) +{ + // delta_at24c128_dev_exit(); + i2c_del_driver(&delta_at24_driver); +} +module_exit(delta_at24_exit); + +MODULE_DESCRIPTION("Driver for most I2C EEPROMs"); +MODULE_AUTHOR("David Brownell and Wolfram Sang"); +MODULE_LICENSE("GPL"); diff --git a/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/modules/delta_evs-a-32q56_platform.c b/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/modules/delta_evs-a-32q56_platform.c new file mode 100644 index 000000000000..235cdb20d53d --- /dev/null +++ b/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/modules/delta_evs-a-32q56_platform.c @@ -0,0 +1,1158 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define SYSTEM_CPLD_ADDR 0x30 +#define PORT_CPLD0_ADDR 0x32 +#define PORT_CPLD1_ADDR 0x32 +#define DEFAULT_CPLD 0 + +#define DEF_DEV_NUM 1 + +#define PORT_SFP_DEV_NUM 2 +#define PORT_SFP_BASE_NUM 41 +#define PORT_QSFP_DEV_NUM 32 +#define PORT_QSFP_BASE_NUM 51 +#define PORT_QSFP_GROUP1_BASE_NUM 51 +#define PORT_QSFP_GROUP2_BASE_NUM 59 +#define PORT_QSFP_GROUP3_BASE_NUM 67 +#define PORT_QSFP_GROUP4_BASE_NUM 75 +#define PORT_QSFP_GROUP1_DEV_NUM 8 +#define PORT_QSFP_GROUP2_DEV_NUM 8 +#define PORT_QSFP_GROUP3_DEV_NUM 8 +#define PORT_QSFP_GROUP4_DEV_NUM 8 +#define PORT_QSFP_GROUP1_MUX_SEL_REG 0x0c +#define PORT_QSFP_GROUP2_MUX_SEL_REG 0x0d +#define PORT_QSFP_GROUP3_MUX_SEL_REG 0x0c +#define PORT_QSFP_GROUP4_MUX_SEL_REG 0x0d +#define PORT_QSFP_GROUP1_PRESENT_REG 0x08 +#define PORT_QSFP_GROUP2_PRESENT_REG 0x09 +#define PORT_QSFP_GROUP3_PRESENT_REG 0x08 +#define PORT_QSFP_GROUP4_PRESENT_REG 0x09 +#define PORT_SFP_PRESENT_REG 0x01 +#define PORT_QSFP_GROUP1_LOW_POWER_REG 0x12 +#define PORT_QSFP_GROUP2_LOW_POWER_REG 0x13 +#define PORT_QSFP_GROUP3_LOW_POWER_REG 0x12 +#define PORT_QSFP_GROUP4_LOW_POWER_REG 0x13 +#define PORT_QSFP_GROUP1_RESET_REG 0x06 +#define PORT_QSFP_GROUP2_RESET_REG 0x07 +#define PORT_QSFP_GROUP3_RESET_REG 0x06 +#define PORT_QSFP_GROUP4_RESET_REG 0x07 + +/* BMC IMPI CMD */ +#define IPMI_MAX_INTF (4) + +#define BMC_I2C_BUS0 ((0x00 << 1) | 0x01) +#define BMC_I2C_BUS1 ((0x01 << 1) | 0x01) +#define BMC_I2C_BUS2 ((0x02 << 1) | 0x01) +#define BMC_I2C_BUS3 ((0x03 << 1) | 0x01) +#define BMC_I2C_BUS4 ((0x04 << 1) | 0x01) +#define BMC_I2C_BUS5 ((0x05 << 1) | 0x01) +#define BMC_I2C_BUS6 ((0x06 << 1) | 0x01) +#define BMC_I2C_BUS7 ((0x07 << 1) | 0x01) + +#define PCA9548_0_MUX_ADDR (0x71 << 1) +#define PCA9546_0_MUX_ADDR (0x72 << 1) + +#define PCA9548_0_MUX_REG 0x00 +#define PCA9546_0_MUX_REG 0x00 + +#define PCA954X_MUX_OFF 0x00 +#define PCA954X_MUX_CH0 (0x01 << 0) +#define PCA954X_MUX_CH1 (0x01 << 1) +#define PCA954X_MUX_CH2 (0x01 << 2) +#define PCA954X_MUX_CH3 (0x01 << 3) +#define PCA954X_MUX_CH4 (0x01 << 4) +#define PCA954X_MUX_CH5 (0x01 << 5) +#define PCA954X_MUX_CH6 (0x01 << 6) +#define PCA954X_MUX_CH7 (0x01 << 7) + +/* Check cpld read results */ +#define VALIDATED_READ(_buf, _rv, _read, _invert) \ + do { \ + _rv = _read; \ + if (_rv < 0) { \ + return sprintf(_buf, "READ ERROR\n"); \ + } \ + if (_invert) { \ + _rv = ~_rv; \ + } \ + _rv &= 0xFF; \ + } while(0) \ + +enum bus_index { + BUS0 = 0, +}; + +struct mutex dni_lock; +static struct kobject *kobj_sfp; + +extern int dni_ipmi_create_user(void); +extern int dni_ipmi_i2c_read_byte(uint8_t dev_bus, uint8_t dev_addr, uint8_t dev_reg); +extern int dni_ipmi_i2c_write_byte(uint8_t dev_bus, uint8_t dev_addr, uint8_t dev_reg, uint8_t write_data); +extern unsigned char dni_log2(unsigned char num); +extern void device_release(struct device *dev); +extern void msg_handler(struct ipmi_recv_msg *recv_msg,void* handler_data); +extern void dummy_smi_free(struct ipmi_smi_msg *msg); +extern void dummy_recv_free(struct ipmi_recv_msg *msg); + +static atomic_t dummy_count = ATOMIC_INIT(0); +static ipmi_user_t ipmi_mh_user = NULL; +static struct ipmi_user_hndl ipmi_hndlrs = { + .ipmi_recv_hndl = msg_handler +}; + +static struct ipmi_smi_msg halt_smi_msg = { + .done = dummy_smi_free +}; + +static struct ipmi_recv_msg halt_recv_msg = { + .done = dummy_recv_free +}; + +void device_release(struct device *dev) +{ + return; +} +EXPORT_SYMBOL(device_release); + +void msg_handler(struct ipmi_recv_msg *recv_msg, void* handler_data) +{ + struct completion *comp = recv_msg->user_msg_data; + if (comp) + complete(comp); + else + ipmi_free_recv_msg(recv_msg); + return; +} +EXPORT_SYMBOL(msg_handler); + +void dummy_smi_free(struct ipmi_smi_msg *msg) +{ + atomic_dec(&dummy_count); +} +EXPORT_SYMBOL(dummy_smi_free); + +void dummy_recv_free(struct ipmi_recv_msg *msg) +{ + atomic_dec(&dummy_count); +} +EXPORT_SYMBOL(dummy_recv_free); + +unsigned char dni_log2 (unsigned char num) +{ + unsigned char num_log2 = 0; + while(num > 0){ + num = num >> 1; + num_log2 += 1; + } + return num_log2 -1; +} +EXPORT_SYMBOL(dni_log2); + + +/* ---------------- IPMI - start ------------- */ +int dni_ipmi_create_user(void) +{ + int rv, i; + + for (i = 0, rv = 1; i < IPMI_MAX_INTF && rv; i++) + { + rv = ipmi_create_user(i, &ipmi_hndlrs, NULL, &ipmi_mh_user); + } + if (rv == 0) + printk(KERN_INFO "Enable IPMI protocol.\n"); + + return rv; +} +EXPORT_SYMBOL(dni_ipmi_create_user); + +int dni_ipmi_i2c_read_byte(uint8_t dev_bus, uint8_t dev_addr, uint8_t dev_reg) +{ + int rv; + struct ipmi_system_interface_addr addr; + struct kernel_ipmi_msg msg; + struct completion comp; + uint8_t cmd_data[4] = {0}; + + cmd_data[0] = dev_bus; + cmd_data[1] = dev_addr; + cmd_data[2] = 0x01; + cmd_data[3] = dev_reg; + + addr.addr_type = IPMI_SYSTEM_INTERFACE_ADDR_TYPE; + addr.channel = IPMI_BMC_CHANNEL; + addr.lun = 0; + + msg.netfn = IPMI_NETFN_APP_REQUEST; + msg.cmd = 0x52; + msg.data_len = sizeof(cmd_data);; + msg.data = cmd_data; + + init_completion(&comp); + rv = ipmi_request_supply_msgs(ipmi_mh_user, (struct ipmi_addr*)&addr, 0, &msg, &comp, &halt_smi_msg, &halt_recv_msg, 0); + wait_for_completion(&comp); + if(rv) + { + printk(KERN_ERR "IPMI i2c read byte command Error!\n"); + ipmi_free_recv_msg(&halt_recv_msg); + return rv; + } + + return halt_recv_msg.msg.data[1]; +} +EXPORT_SYMBOL(dni_ipmi_i2c_read_byte); + +int dni_ipmi_i2c_write_byte(uint8_t dev_bus, uint8_t dev_addr, uint8_t dev_reg, uint8_t write_data) +{ + int rv; + struct ipmi_system_interface_addr addr; + struct kernel_ipmi_msg msg; + struct completion comp; + uint8_t cmd_data[5] = {0}; + + cmd_data[0] = dev_bus; + cmd_data[1] = dev_addr; + cmd_data[2] = 0x00; + cmd_data[3] = dev_reg; + cmd_data[4] = write_data; + + addr.addr_type = IPMI_SYSTEM_INTERFACE_ADDR_TYPE; + addr.channel = IPMI_BMC_CHANNEL; + addr.lun = 0; + + msg.netfn = IPMI_NETFN_APP_REQUEST; + msg.cmd = 0x52; + msg.data_len = sizeof(cmd_data);; + msg.data = cmd_data; + + init_completion(&comp); + rv = ipmi_request_supply_msgs(ipmi_mh_user, (struct ipmi_addr*)&addr, 0, &msg, &comp, &halt_smi_msg, &halt_recv_msg, 0); + wait_for_completion(&comp); + if(rv) + { + printk(KERN_ERR "IPMI i2c write byte command Error!\n"); + ipmi_free_recv_msg(&halt_recv_msg); + return rv; + } + + return rv; +} +EXPORT_SYMBOL(dni_ipmi_i2c_write_byte); + +/* ---------------- IPMI - stop ------------- */ + +/* ---------------- I2C device - start ------------- */ +struct i2c_device_platform_data { + int parent; + struct i2c_board_info info; + struct i2c_client *client; +}; + +static struct i2c_device_platform_data evs_a_32q56_i2c_device_platform_data[] = { + { + // id eeprom (0x56) + .parent = 0, + .info = { I2C_BOARD_INFO("24c128-delta", 0x56) }, + .client = NULL, + }, + { + // sfp 1 (0x50) + .parent = 41, + .info = { .type = "optoe2", .addr = 0x50 }, + .client = NULL, + }, + { + // sfp 2 (0x50) + .parent = 42, + .info = { .type = "optoe2", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 1 (0x50) + .parent = 51, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 2 (0x50) + .parent = 52, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 3 (0x50) + .parent = 53, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 4 (0x50) + .parent = 54, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 5 (0x50) + .parent = 55, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 6 (0x50) + .parent = 56, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 7 (0x50) + .parent = 57, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 8 (0x50) + .parent = 58, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 9 (0x50) + .parent = 59, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 10 (0x50) + .parent = 60, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 11 (0x50) + .parent = 61, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 12 (0x50) + .parent = 62, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 13 (0x50) + .parent = 63, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 14 (0x50) + .parent = 64, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 15 (0x50) + .parent = 65, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 16 (0x50) + .parent = 66, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 17 (0x50) + .parent = 67, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 18 (0x50) + .parent = 68, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 19 (0x50) + .parent = 69, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 20 (0x50) + .parent = 70, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 21 (0x50) + .parent = 71, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 22 (0x50) + .parent = 72, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 23 (0x50) + .parent = 73, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 24 (0x50) + .parent = 74, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 25 (0x50) + .parent = 75, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 26 (0x50) + .parent = 76, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 27 (0x50) + .parent = 77, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 28 (0x50) + .parent = 78, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 29 (0x50) + .parent = 79, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 30 (0x50) + .parent = 80, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 31 (0x50) + .parent = 81, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, + { + // qsfp 32 (0x50) + .parent = 82, + .info = { .type = "optoe1", .addr = 0x50 }, + .client = NULL, + }, +}; + +#define evs_a_32q56_i2c_device_num(NUM){ \ + .name = "delta-evs-a-32q56-i2c-device", \ + .id = NUM, \ + .dev = { \ + .platform_data = &evs_a_32q56_i2c_device_platform_data[NUM], \ + .release = device_release, \ + }, \ +} + +static struct platform_device evs_a_32q56_i2c_device[] = { + evs_a_32q56_i2c_device_num(0), + evs_a_32q56_i2c_device_num(1), + evs_a_32q56_i2c_device_num(2), + evs_a_32q56_i2c_device_num(3), + evs_a_32q56_i2c_device_num(4), + evs_a_32q56_i2c_device_num(5), + evs_a_32q56_i2c_device_num(6), + evs_a_32q56_i2c_device_num(7), + evs_a_32q56_i2c_device_num(8), + evs_a_32q56_i2c_device_num(9), + evs_a_32q56_i2c_device_num(10), + evs_a_32q56_i2c_device_num(11), + evs_a_32q56_i2c_device_num(12), + evs_a_32q56_i2c_device_num(13), + evs_a_32q56_i2c_device_num(14), + evs_a_32q56_i2c_device_num(15), + evs_a_32q56_i2c_device_num(16), + evs_a_32q56_i2c_device_num(17), + evs_a_32q56_i2c_device_num(18), + evs_a_32q56_i2c_device_num(19), + evs_a_32q56_i2c_device_num(20), + evs_a_32q56_i2c_device_num(21), + evs_a_32q56_i2c_device_num(22), + evs_a_32q56_i2c_device_num(23), + evs_a_32q56_i2c_device_num(24), + evs_a_32q56_i2c_device_num(25), + evs_a_32q56_i2c_device_num(26), + evs_a_32q56_i2c_device_num(27), + evs_a_32q56_i2c_device_num(28), + evs_a_32q56_i2c_device_num(29), + evs_a_32q56_i2c_device_num(30), + evs_a_32q56_i2c_device_num(31), + evs_a_32q56_i2c_device_num(32), + evs_a_32q56_i2c_device_num(33), + evs_a_32q56_i2c_device_num(34), +}; +/* ---------------- I2C device - end ------------- */ + +/* ---------------- I2C driver - start ------------- */ +static int __init i2c_device_probe(struct platform_device *pdev) +{ + struct i2c_device_platform_data *pdata; + struct i2c_adapter *parent; + + pdata = pdev->dev.platform_data; + if (!pdata) { + dev_err(&pdev->dev, "Missing platform data\n"); + return -ENODEV; + } + + parent = i2c_get_adapter(pdata->parent); + if (!parent) { + dev_err(&pdev->dev, "Parent adapter (%d) not found\n", + pdata->parent); + return -ENODEV; + } + + pdata->client = i2c_new_device(parent, &pdata->info); + if (!pdata->client) { + dev_err(&pdev->dev, "Failed to create i2c client %s at %d\n", + pdata->info.type, pdata->parent); + return -ENODEV; + } + + return 0; +} + +static int __exit i2c_deivce_remove(struct platform_device *pdev) +{ + struct i2c_adapter *parent; + struct i2c_device_platform_data *pdata; + + pdata = pdev->dev.platform_data; + if (!pdata) { + dev_err(&pdev->dev, "Missing platform data\n"); + return -ENODEV; + } + + if (pdata->client) { + parent = (pdata->client)->adapter; + i2c_unregister_device(pdata->client); + i2c_put_adapter(parent); + } + + return 0; +} +static struct platform_driver i2c_device_driver = { + .probe = i2c_device_probe, + .remove = __exit_p(i2c_deivce_remove), + .driver = { + .owner = THIS_MODULE, + .name = "delta-evs-a-32q56-i2c-device", + } +}; +/* ---------------- I2C driver - end ------------- */ + +/* ---------------- CPLD - start ------------- */ + +/* ---------------- CPLD - end ------------- */ + +/* ---------------- MUX - start ------------- */ +struct virtual_mux_platform_data { + int parent; + int base_nr; + int reg_addr; + struct i2c_client *cpld; +}; + +struct virtual_mux { + struct i2c_adapter *parent; + struct i2c_adapter **child; + struct virtual_mux_platform_data data; +}; + +static struct virtual_mux_platform_data evs_a_32q56_port_mux_platform_data[] = { + { + .parent = BUS0, + .base_nr = PORT_SFP_BASE_NUM, + .reg_addr = 0, + .cpld = NULL, + }, + { + .parent = BUS0, + .base_nr = PORT_QSFP_GROUP1_BASE_NUM, + .reg_addr = PORT_QSFP_GROUP1_MUX_SEL_REG, + .cpld = NULL, + }, + { + .parent = BUS0, + .base_nr = PORT_QSFP_GROUP2_BASE_NUM, + .reg_addr = PORT_QSFP_GROUP2_MUX_SEL_REG, + .cpld = NULL, + }, + { + .parent = BUS0, + .base_nr = PORT_QSFP_GROUP3_BASE_NUM, + .reg_addr = PORT_QSFP_GROUP3_MUX_SEL_REG, + .cpld = NULL, + }, + { + .parent = BUS0, + .base_nr = PORT_QSFP_GROUP4_BASE_NUM, + .reg_addr = PORT_QSFP_GROUP4_MUX_SEL_REG, + .cpld = NULL, + }, +}; + +static struct platform_device port_mux_device[] = +{ + { + .name = "delta-evs-a-32q56-port-mux", + .id = 0, + .dev = { + .platform_data = &evs_a_32q56_port_mux_platform_data[0], + .release = device_release, + }, + }, + { + .name = "delta-evs-a-32q56-port-mux", + .id = 1, + .dev = { + .platform_data = &evs_a_32q56_port_mux_platform_data[1], + .release = device_release, + }, + }, + { + .name = "delta-evs-a-32q56-port-mux", + .id = 2, + .dev = { + .platform_data = &evs_a_32q56_port_mux_platform_data[2], + .release = device_release, + }, + }, + { + .name = "delta-evs-a-32q56-port-mux", + .id = 3, + .dev = { + .platform_data = &evs_a_32q56_port_mux_platform_data[3], + .release = device_release, + }, + }, + { + .name = "delta-evs-a-32q56-port-mux", + .id = 4, + .dev = { + .platform_data = &evs_a_32q56_port_mux_platform_data[4], + .release = device_release, + }, + }, +}; + +static int port_mux_select(struct i2c_mux_core *muxc, u32 chan) +{ + int ret; + struct virtual_mux *mux; + + mux = i2c_mux_priv(muxc); + if (mux->data.base_nr == PORT_SFP_BASE_NUM) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_OFF); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9546_0_MUX_ADDR, PCA9546_0_MUX_REG, (chan + 1)); + } + else if (mux->data.base_nr == PORT_QSFP_GROUP1_BASE_NUM) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP1_MUX_SEL_REG, ~(0x01 << chan)); + if (chan / 4) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH1); + } + else + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + } + } + else if (mux->data.base_nr == PORT_QSFP_GROUP2_BASE_NUM) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP2_MUX_SEL_REG, ~(0x01 << chan)); + if (chan / 4) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH3); + } + else + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH2); + } + } + else if (mux->data.base_nr == PORT_QSFP_GROUP3_BASE_NUM) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP3_MUX_SEL_REG, ~(0x01 << chan)); + if (chan / 4) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH5); + } + else + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + } + } + else if (mux->data.base_nr == PORT_QSFP_GROUP4_BASE_NUM) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP4_MUX_SEL_REG, ~(0x01 << chan)); + if (chan / 4) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH7); + } + else + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH6); + } + } + return ret; +} + +static int port_mux_deselect(struct i2c_mux_core *muxc, u32 chan) +{ + int ret; + struct virtual_mux *mux; + + mux = i2c_mux_priv(muxc); + if (mux->data.base_nr == PORT_SFP_BASE_NUM) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9546_0_MUX_ADDR, PCA9546_0_MUX_REG, PCA954X_MUX_OFF); + + } + else if (mux->data.base_nr == PORT_QSFP_GROUP1_BASE_NUM) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP1_MUX_SEL_REG, 0xff); + } + else if (mux->data.base_nr == PORT_QSFP_GROUP2_BASE_NUM) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP2_MUX_SEL_REG, 0xff); + } + else if (mux->data.base_nr == PORT_QSFP_GROUP3_BASE_NUM) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP3_MUX_SEL_REG, 0xff); + } + else if (mux->data.base_nr == PORT_QSFP_GROUP4_BASE_NUM) + { + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP4_MUX_SEL_REG, 0xff); + } + return ret; +} + +static int __init port_mux_probe(struct platform_device *pdev) +{ + struct i2c_mux_core *muxc; + struct virtual_mux *mux; + struct virtual_mux_platform_data *pdata; + struct i2c_adapter *parent; + int i, ret, dev_num; + + pdata = pdev->dev.platform_data; + if (!pdata) { + dev_err(&pdev->dev, "Port MUX platform data not found\n"); + return -ENODEV; + } + mux = kzalloc(sizeof(*mux), GFP_KERNEL); + if (!mux) { + printk(KERN_ERR "Failed to allocate memory for mux\n"); + return -ENOMEM; + } + mux->data = *pdata; + parent = i2c_get_adapter(pdata->parent); + if (!parent) { + kfree(mux); + dev_err(&pdev->dev, "Parent adapter (%d) not found\n", pdata->parent); + return -ENODEV; + } + /* Judge bus number to decide how many devices*/ + switch (pdata->base_nr) { + case PORT_SFP_BASE_NUM: + dev_num = PORT_SFP_DEV_NUM; + break; + case PORT_QSFP_GROUP1_BASE_NUM: + dev_num = PORT_QSFP_GROUP1_DEV_NUM; + break; + case PORT_QSFP_GROUP2_BASE_NUM: + dev_num = PORT_QSFP_GROUP2_DEV_NUM; + break; + case PORT_QSFP_GROUP3_BASE_NUM: + dev_num = PORT_QSFP_GROUP3_DEV_NUM; + break; + case PORT_QSFP_GROUP4_BASE_NUM: + dev_num = PORT_QSFP_GROUP4_DEV_NUM; + break; + default : + dev_num = DEF_DEV_NUM; + break; + } + + muxc = i2c_mux_alloc(parent, &pdev->dev, dev_num, 0, 0, port_mux_select, port_mux_deselect); + if (!muxc) { + ret = -ENOMEM; + goto alloc_failed; + } + muxc->priv = mux; + platform_set_drvdata(pdev, muxc); + for (i = 0; i < dev_num; i++) + { + int nr = pdata->base_nr + i; + unsigned int class = 0; + ret = i2c_mux_add_adapter(muxc, nr, i, class); + if (ret) { + dev_err(&pdev->dev, "Failed to add adapter %d\n", i); + goto add_adapter_failed; + } + } + dev_info(&pdev->dev, "%d port mux on %s adapter\n", dev_num, parent->name); + return 0; + +add_adapter_failed: + i2c_mux_del_adapters(muxc); +alloc_failed: + kfree(mux); + i2c_put_adapter(parent); + + return ret; +} + +static int __exit port_mux_remove(struct platform_device *pdev) +{ + struct i2c_mux_core *muxc = platform_get_drvdata(pdev); + struct i2c_adapter *parent = muxc->parent; + + i2c_mux_del_adapters(muxc); + i2c_put_adapter(parent); + + return 0; +} + +static struct platform_driver port_mux_driver = { + .probe = port_mux_probe, + .remove = __exit_p(port_mux_remove), /* TODO */ + .driver = { + .owner = THIS_MODULE, + .name = "delta-evs-a-32q56-port-mux", + }, +}; +/* ---------------- MUX - end ------------- */ + +/* ---------------- SFP - start ------------- */ + +enum delta_evs_a_32q56_sfp_sysfs_attributes +{ + SFP_IS_PRESENT, + QSFP_LOW_POWER, + QSFP_RESET, +}; + +static ssize_t for_status(struct device *dev, struct device_attribute *dev_attr, char *buf){ + struct sensor_device_attribute *attr = to_sensor_dev_attr(dev_attr); + int ret; + int ret_sfp; + u64 data = 0; + + mutex_lock(&dni_lock); + switch (attr->index) { + case SFP_IS_PRESENT: + /*QSFP1~8*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP1_PRESENT_REG); + data = (u32)ret & 0xff; + /*QSFP9~16*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP2_PRESENT_REG); + data |= ((u32)ret & 0xff) << 8; + /*QSFP17~24*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP3_PRESENT_REG); + data |= (u32)(ret & 0xff) << 16; + /*QSFP25~32*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP4_PRESENT_REG); + data |= (u32)(ret & 0xff) << 24; + /*SFP*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_SFP_PRESENT_REG); + ret_sfp = (ret & (0x03)); + mutex_unlock(&dni_lock); + return sprintf(buf, "0x%02x%x\n", ret_sfp, data); + + case QSFP_LOW_POWER: + /*QSFP1~8*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP1_LOW_POWER_REG); + data = (u32)(ret & 0xff); + /*QSFP9~16*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP2_LOW_POWER_REG); + data |= (u32)(ret & 0xff) << 8; + /*QSFP17~24*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP3_LOW_POWER_REG); + data |= (u32)(ret & 0xff) << 16; + /*QSFP25~32*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP4_LOW_POWER_REG); + data |= (u32)(ret & 0xff) << 24; + + mutex_unlock(&dni_lock); + return sprintf(buf, "0x%x\n", data); + + case QSFP_RESET: + /*QSFP1~8*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP1_RESET_REG); + data = (u32)(ret & 0xff); + /*QSFP9~16*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP2_RESET_REG); + data |= (u32)(ret & 0xff) << 8; + /*QSFP17~24*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP3_RESET_REG); + data |= (u32)(ret & 0xff) << 16; + /*QSFP25~32*/ + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + ret = dni_ipmi_i2c_read_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP4_RESET_REG); + data |= (u32)(ret & 0xff) << 24; + + mutex_unlock(&dni_lock); + return sprintf(buf, "0x%x\n", data); + + default: + mutex_unlock(&dni_lock); + return sprintf(buf, "%d not found", attr->index); + } +} + +static ssize_t set_qsfp_low_power(struct device *dev, struct device_attribute *dev_attr, const char *buf, size_t count) +{ + unsigned long long set_data; + int err; + int status = 0; + unsigned char set_bytes; + + err = kstrtoull(buf, 16, &set_data); + if (err){ + return err; + } + mutex_lock(&dni_lock); + /*QSFP1~8*/ + set_bytes = set_data & 0xff; + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP1_LOW_POWER_REG, set_bytes); + /*QSFP9~16*/ + set_bytes = (set_data >> 8 ) & 0xff; + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP2_LOW_POWER_REG, set_bytes); + /*QSFP17~24*/ + set_bytes = (set_data >> 16 ) & 0xff; + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP3_LOW_POWER_REG, set_bytes); + /*QSFP25~32*/ + set_bytes = (set_data >> 24 ) & 0xff; + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP4_LOW_POWER_REG, set_bytes); + + mutex_unlock(&dni_lock); + return count; + +} + +static ssize_t set_qsfp_reset(struct device *dev, struct device_attribute *dev_attr, const char *buf, size_t count) +{ + unsigned long long set_data; + int err; + int status = 0; + unsigned char set_bytes; + + err = kstrtoull(buf, 16, &set_data); + if (err){ + return err; + } + + mutex_lock(&dni_lock); + /*QSFP1~8*/ + set_bytes = set_data & 0xff; + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP1_RESET_REG, set_bytes); + /*QSFP9~16*/ + set_bytes = (set_data >> 8 ) & 0xff; + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH0); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD0_ADDR << 1), PORT_QSFP_GROUP2_RESET_REG, set_bytes); + /*QSFP17~24*/ + set_bytes = (set_data >> 16 ) & 0xff; + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP3_RESET_REG, set_bytes); + /*QSFP25~32*/ + set_bytes = (set_data >> 24 ) & 0xff; + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, PCA9548_0_MUX_ADDR, PCA9548_0_MUX_REG, PCA954X_MUX_CH4); + dni_ipmi_i2c_write_byte(BMC_I2C_BUS3, (PORT_CPLD1_ADDR << 1), PORT_QSFP_GROUP4_RESET_REG, set_bytes); + mutex_unlock(&dni_lock); + return count; +} + +//QSFP/SFP +static SENSOR_DEVICE_ATTR(sfp_is_present, S_IRUGO, for_status, NULL, SFP_IS_PRESENT); +static SENSOR_DEVICE_ATTR(qsfp_low_power, S_IRUGO | S_IWUSR, for_status, set_qsfp_low_power, QSFP_LOW_POWER); +static SENSOR_DEVICE_ATTR(qsfp_reset, S_IRUGO | S_IWUSR, for_status, set_qsfp_reset, QSFP_RESET); + +static struct attribute *delta_evs_a_32q56_sfp_attrs[] = { + &sensor_dev_attr_sfp_is_present.dev_attr.attr, + &sensor_dev_attr_qsfp_low_power.dev_attr.attr, + &sensor_dev_attr_qsfp_reset.dev_attr.attr, + NULL, +}; + +static struct attribute_group sfp_attr_grp = { + .attrs = delta_evs_a_32q56_sfp_attrs, +}; +/* ---------------- SFP - end ------------- */ + +/* ---------------- module initialization ------------- */ +static int __init delta_evs_a_32q56_platform_init(void) +{ + int ret,i = 0; + + mutex_init(&dni_lock); + printk(KERN_INFO "delta-evs-a-32q56-platform module initialization\n"); + + ret = dni_ipmi_create_user(); + if (ret != 0) { + printk(KERN_WARNING "Fail to create IPMI user\n"); + } + + // register the mux prob which call the port cpld by ipmi + ret = platform_driver_register(&port_mux_driver); + if (ret) { + printk(KERN_WARNING "Fail to register port mux driver\n"); + goto error_port_mux_driver; + } + + // register the i2c devices + ret = platform_driver_register(&i2c_device_driver); + if (ret) { + printk(KERN_WARNING "Fail to register i2c device driver\n"); + goto error_i2c_device_driver; + } + + // link the port cpld and the Mux + for (i = 0; i < ARRAY_SIZE(port_mux_device); i++) + { + ret = platform_device_register(&port_mux_device[i]); + if (ret) { + printk(KERN_WARNING "Fail to create port mux %d\n", i); + goto error_evs_a_32q56_port_mux; + } + } + + for (i = 0; i < ARRAY_SIZE(evs_a_32q56_i2c_device); i++) + { + ret = platform_device_register(&evs_a_32q56_i2c_device[i]); + if (ret) + { + printk(KERN_WARNING "Fail to create i2c device %d\n", i); + goto error_evs_a_32q56_i2c_device; + } + } + + // create sfp attributes + kobj_sfp = kobject_create_and_add("sfp", kernel_kobj); + if(!kobj_sfp) + { + return -ENOMEM; + } + ret = sysfs_create_group(kobj_sfp, &sfp_attr_grp); + if (ret) + { + printk(KERN_WARNING "Fail to create sysfs of sfp group\n"); + goto error_create_sfp_group; + } + + printk("Initial delta_evs_a_32q56_platform driver......[Success]\n"); + + return 0; + +error_create_sfp_group: + kobject_put(kobj_sfp); +error_evs_a_32q56_i2c_device: + i--; + for (; i >= 0; i--) { + platform_device_unregister(&evs_a_32q56_i2c_device[i]); + } + i = ARRAY_SIZE(port_mux_device); +error_evs_a_32q56_port_mux: + i--; + for (; i >= 0; i--) { + platform_device_unregister(&port_mux_device[i]); + } + platform_driver_unregister(&i2c_device_driver); +error_i2c_device_driver: + platform_driver_unregister(&port_mux_driver); +error_port_mux_driver: + printk("Initial delta_evs_a_32q56_platform driver......[Fail]\n"); + return ret; +} + +static void __exit delta_evs_a_32q56_platform_exit(void) +{ + int i = 0; + + for (i = 0; i < ARRAY_SIZE(evs_a_32q56_i2c_device); i++) { + platform_device_unregister(&evs_a_32q56_i2c_device[i]); + } + + for (i = 0; i < ARRAY_SIZE(port_mux_device); i++) { + platform_device_unregister(&port_mux_device[i]); + } + + platform_driver_unregister(&i2c_device_driver); + platform_driver_unregister(&port_mux_driver); + kobject_put(kobj_sfp); + + printk("Remove delta_evs_a_32q56_platform driver......[Success]\n"); +} + +module_init(delta_evs_a_32q56_platform_init); +module_exit(delta_evs_a_32q56_platform_exit); + +MODULE_DESCRIPTION("DELTA EVS-A-32Q56 Platform Support"); +MODULE_AUTHOR("Jim Lee "); +MODULE_LICENSE("GPL"); diff --git a/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/scripts/evs-a-32q56_platform_init.sh b/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/scripts/evs-a-32q56_platform_init.sh new file mode 100644 index 000000000000..3497b46aeb98 --- /dev/null +++ b/platform/innovium/sonic-platform-modules-delta/evs-a-32q56/scripts/evs-a-32q56_platform_init.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +#platform init script for Delta EVS-A-32Q56 + + + +exit 0 + + diff --git a/platform/innovium/sonic-platform-modules-delta/systemd/platform-modules-evs-a-32q56.service b/platform/innovium/sonic-platform-modules-delta/systemd/platform-modules-evs-a-32q56.service new file mode 100644 index 000000000000..1805209c82df --- /dev/null +++ b/platform/innovium/sonic-platform-modules-delta/systemd/platform-modules-evs-a-32q56.service @@ -0,0 +1,13 @@ +[Unit] +Description=Delta EVS-A-32Q56 Platform modules +After=local-fs.target +Before=pmon.service + +[Service] +Type=oneshot +ExecStart=-/etc/init.d/platform-modules-evs-a-32q56 start +ExecStop=-/etc/init.d/platform-modules-evs-a-32q56 stop +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target