Add Marvell platform support for dbmvt9180
This commit is contained in:
parent
34bdfc8b39
commit
55d19fef3f
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -121,3 +121,6 @@
|
||||
[submodule "platform/marvell-arm64/sonic-platform-marvell"]
|
||||
path = platform/marvell-arm64/sonic-platform-marvell
|
||||
url = https://github.com/Marvell-switching/sonic-platform-arm64.git
|
||||
[submodule "platform/innovium/sonic-platform-marvell"]
|
||||
path = platform/innovium/sonic-platform-marvell
|
||||
url = https://github.com/Marvell-switching/sonic-platform-marvell
|
||||
|
@ -0,0 +1,162 @@
|
||||
{# Default values which will be used if no actual configuration 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": "158630302",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic",
|
||||
"xoff": "71577600"
|
||||
},
|
||||
"lossy_pool": {
|
||||
"size": "56012386",
|
||||
"type": "egress",
|
||||
"mode": "dynamic",
|
||||
"xoff": "0"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "214642688",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossless_profile": {
|
||||
"pool":"ingress_lossless_pool",
|
||||
"xoff":"135520",
|
||||
"size":"1518",
|
||||
"dynamic_th":"1",
|
||||
"xon_offset":"9408"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"ingress_lossless_pool",
|
||||
"size":"0",
|
||||
"static_th":"22798336"
|
||||
},
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"lossy_pool",
|
||||
"size":"0",
|
||||
"static_th":"22798336"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"lossy_pool",
|
||||
"size":"1518",
|
||||
"dynamic_th":"2"
|
||||
}
|
||||
},
|
||||
"BUFFER_PG": {
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|3-4": {
|
||||
"profile" : "ingress_lossless_profile"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|0": {
|
||||
"profile" : "ingress_lossy_profile"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|1-2": {
|
||||
"profile" : "ingress_lossy_profile"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|5-7": {
|
||||
"profile" : "ingress_lossy_profile"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
},
|
||||
|
||||
"BUFFER_QUEUE": {
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|3-4": {
|
||||
"profile" : "egress_lossless_profile"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|0-2": {
|
||||
"profile" : "egress_lossy_profile"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|5-7": {
|
||||
"profile" : "egress_lossy_profile"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
}
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
{% 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": "182386688",
|
||||
"type": "egress",
|
||||
"mode": "dynamic",
|
||||
"xoff": "0"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"lossy_pool",
|
||||
"size":"0",
|
||||
"static_th":"22798336"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"lossy_pool",
|
||||
"size":"1518",
|
||||
"dynamic_th":"2"
|
||||
}
|
||||
},
|
||||
"BUFFER_PG": {
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|0-7": {
|
||||
"profile" : "ingress_lossy_profile"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
},
|
||||
"BUFFER_QUEUE": {
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|0-7": {
|
||||
"profile" : "egress_lossy_profile"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
}
|
||||
}
|
@ -0,0 +1,162 @@
|
||||
{# Default values which will be used if no actual configuration 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": "158630302",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic",
|
||||
"xoff": "71577600"
|
||||
},
|
||||
"lossy_pool": {
|
||||
"size": "56012386",
|
||||
"type": "egress",
|
||||
"mode": "dynamic",
|
||||
"xoff": "0"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "214642688",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossless_profile": {
|
||||
"pool":"ingress_lossless_pool",
|
||||
"xoff":"135520",
|
||||
"size":"1518",
|
||||
"dynamic_th":"1",
|
||||
"xon_offset":"9408"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"ingress_lossless_pool",
|
||||
"size":"0",
|
||||
"static_th":"22798336"
|
||||
},
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"lossy_pool",
|
||||
"size":"0",
|
||||
"static_th":"22798336"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"lossy_pool",
|
||||
"size":"1518",
|
||||
"dynamic_th":"2"
|
||||
}
|
||||
},
|
||||
"BUFFER_PG": {
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|3-4": {
|
||||
"profile" : "ingress_lossless_profile"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|0": {
|
||||
"profile" : "ingress_lossy_profile"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|1-2": {
|
||||
"profile" : "ingress_lossy_profile"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|5-7": {
|
||||
"profile" : "ingress_lossy_profile"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
},
|
||||
|
||||
"BUFFER_QUEUE": {
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|3-4": {
|
||||
"profile" : "egress_lossless_profile"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|0-2": {
|
||||
"profile" : "egress_lossy_profile"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|5-7": {
|
||||
"profile" : "egress_lossy_profile"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
}
|
||||
}
|
@ -0,0 +1,773 @@
|
||||
ifcs:
|
||||
options:
|
||||
log_level: "error"
|
||||
nodes:
|
||||
- node_id: "0"
|
||||
options:
|
||||
sku: "configs/sku/teralynx.MVTX9180"
|
||||
netdev:
|
||||
- auto_create: "no"
|
||||
multi_interface: "yes"
|
||||
buffer_management_mode: "api_driven"
|
||||
pt01: "256"
|
||||
wred_cr_ip_proto_list: "17"
|
||||
cr_assignment_mode: "1"
|
||||
max_lossless_tc: "2"
|
||||
ilpm_enable: "1"
|
||||
forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E"
|
||||
led_cfg_sck_rate: "0x5"
|
||||
led_refresh_precliff_timer: "0x18eec2"
|
||||
led_refresh_cliff_timer: "0x15e"
|
||||
led_cfg_pic_stream_mode: "1"
|
||||
led_refresh_tmr_ctl_enable: "1"
|
||||
skip_pll_check: "false"
|
||||
sys_clk: "1800"
|
||||
ifc_clk: "1800"
|
||||
mac_clk: "1600"
|
||||
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"
|
||||
devports:
|
||||
- id: "0"
|
||||
sysport: "1000"
|
||||
type: "cpu"
|
||||
- fec: "KPFEC"
|
||||
id: "489"
|
||||
lanes: "0:4"
|
||||
serdes_group: "61"
|
||||
speed: "100G"
|
||||
sysport: "489"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "505"
|
||||
lanes: "0:4"
|
||||
serdes_group: "63"
|
||||
speed: "100G"
|
||||
sysport: "505"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "441"
|
||||
lanes: "0:4"
|
||||
serdes_group: "55"
|
||||
speed: "100G"
|
||||
sysport: "441"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "425"
|
||||
lanes: "0:4"
|
||||
serdes_group: "53"
|
||||
speed: "100G"
|
||||
sysport: "425"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "41"
|
||||
lanes: "0:4"
|
||||
serdes_group: "5"
|
||||
speed: "100G"
|
||||
sysport: "41"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "49"
|
||||
lanes: "0:4"
|
||||
serdes_group: "6"
|
||||
speed: "100G"
|
||||
sysport: "49"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "153"
|
||||
lanes: "0:4"
|
||||
serdes_group: "19"
|
||||
speed: "100G"
|
||||
sysport: "153"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "137"
|
||||
lanes: "0:4"
|
||||
serdes_group: "17"
|
||||
speed: "100G"
|
||||
sysport: "137"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "1"
|
||||
lanes: "0:4"
|
||||
serdes_group: "0"
|
||||
speed: "100G"
|
||||
sysport: "1"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "17"
|
||||
lanes: "0:4"
|
||||
serdes_group: "2"
|
||||
speed: "100G"
|
||||
sysport: "17"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "81"
|
||||
lanes: "0:4"
|
||||
serdes_group: "10"
|
||||
speed: "100G"
|
||||
sysport: "81"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "65"
|
||||
lanes: "0:4"
|
||||
serdes_group: "8"
|
||||
speed: "100G"
|
||||
sysport: "65"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "97"
|
||||
lanes: "0:4"
|
||||
serdes_group: "12"
|
||||
speed: "100G"
|
||||
sysport: "97"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "113"
|
||||
lanes: "0:4"
|
||||
serdes_group: "14"
|
||||
speed: "100G"
|
||||
sysport: "113"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "193"
|
||||
lanes: "0:4"
|
||||
serdes_group: "24"
|
||||
speed: "100G"
|
||||
sysport: "193"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "177"
|
||||
lanes: "0:4"
|
||||
serdes_group: "22"
|
||||
speed: "100G"
|
||||
sysport: "177"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "33"
|
||||
lanes: "0:4"
|
||||
serdes_group: "4"
|
||||
speed: "100G"
|
||||
sysport: "33"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "57"
|
||||
lanes: "0:4"
|
||||
serdes_group: "7"
|
||||
speed: "100G"
|
||||
sysport: "57"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "161"
|
||||
lanes: "0:4"
|
||||
serdes_group: "20"
|
||||
speed: "100G"
|
||||
sysport: "161"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "129"
|
||||
lanes: "0:4"
|
||||
serdes_group: "16"
|
||||
speed: "100G"
|
||||
sysport: "129"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "217"
|
||||
lanes: "0:4"
|
||||
serdes_group: "27"
|
||||
speed: "100G"
|
||||
sysport: "217"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "241"
|
||||
lanes: "0:4"
|
||||
serdes_group: "30"
|
||||
speed: "100G"
|
||||
sysport: "241"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "233"
|
||||
lanes: "0:4"
|
||||
serdes_group: "29"
|
||||
speed: "100G"
|
||||
sysport: "233"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "209"
|
||||
lanes: "0:4"
|
||||
serdes_group: "26"
|
||||
speed: "100G"
|
||||
sysport: "209"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "105"
|
||||
lanes: "0:4"
|
||||
serdes_group: "13"
|
||||
speed: "100G"
|
||||
sysport: "105"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "121"
|
||||
lanes: "0:4"
|
||||
serdes_group: "15"
|
||||
speed: "100G"
|
||||
sysport: "121"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "169"
|
||||
lanes: "0:4"
|
||||
serdes_group: "21"
|
||||
speed: "100G"
|
||||
sysport: "169"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "145"
|
||||
lanes: "0:4"
|
||||
serdes_group: "18"
|
||||
speed: "100G"
|
||||
sysport: "145"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "265"
|
||||
lanes: "0:4"
|
||||
serdes_group: "33"
|
||||
speed: "100G"
|
||||
sysport: "265"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "289"
|
||||
lanes: "0:4"
|
||||
serdes_group: "36"
|
||||
speed: "100G"
|
||||
sysport: "289"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "297"
|
||||
lanes: "0:4"
|
||||
serdes_group: "37"
|
||||
speed: "100G"
|
||||
sysport: "297"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "273"
|
||||
lanes: "0:4"
|
||||
serdes_group: "34"
|
||||
speed: "100G"
|
||||
sysport: "273"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "225"
|
||||
lanes: "0:4"
|
||||
serdes_group: "28"
|
||||
speed: "100G"
|
||||
sysport: "225"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "249"
|
||||
lanes: "0:4"
|
||||
serdes_group: "31"
|
||||
speed: "100G"
|
||||
sysport: "249"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "201"
|
||||
lanes: "0:4"
|
||||
serdes_group: "25"
|
||||
speed: "100G"
|
||||
sysport: "201"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "185"
|
||||
lanes: "0:4"
|
||||
serdes_group: "23"
|
||||
speed: "100G"
|
||||
sysport: "185"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "393"
|
||||
lanes: "0:4"
|
||||
serdes_group: "49"
|
||||
speed: "100G"
|
||||
sysport: "393"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "409"
|
||||
lanes: "0:4"
|
||||
serdes_group: "51"
|
||||
speed: "100G"
|
||||
sysport: "409"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "329"
|
||||
lanes: "0:4"
|
||||
serdes_group: "41"
|
||||
speed: "100G"
|
||||
sysport: "329"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "313"
|
||||
lanes: "0:4"
|
||||
serdes_group: "39"
|
||||
speed: "100G"
|
||||
sysport: "313"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "257"
|
||||
lanes: "0:4"
|
||||
serdes_group: "32"
|
||||
speed: "100G"
|
||||
sysport: "257"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "281"
|
||||
lanes: "0:4"
|
||||
serdes_group: "35"
|
||||
speed: "100G"
|
||||
sysport: "281"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "321"
|
||||
lanes: "0:4"
|
||||
serdes_group: "40"
|
||||
speed: "100G"
|
||||
sysport: "321"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "305"
|
||||
lanes: "0:4"
|
||||
serdes_group: "38"
|
||||
speed: "100G"
|
||||
sysport: "305"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "457"
|
||||
lanes: "0:4"
|
||||
serdes_group: "57"
|
||||
speed: "100G"
|
||||
sysport: "457"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "465"
|
||||
lanes: "0:4"
|
||||
serdes_group: "58"
|
||||
speed: "100G"
|
||||
sysport: "465"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "369"
|
||||
lanes: "0:4"
|
||||
serdes_group: "46"
|
||||
speed: "100G"
|
||||
sysport: "369"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "353"
|
||||
lanes: "0:4"
|
||||
serdes_group: "44"
|
||||
speed: "100G"
|
||||
sysport: "353"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "385"
|
||||
lanes: "0:4"
|
||||
serdes_group: "48"
|
||||
speed: "100G"
|
||||
sysport: "385"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "401"
|
||||
lanes: "0:4"
|
||||
serdes_group: "50"
|
||||
speed: "100G"
|
||||
sysport: "401"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "361"
|
||||
lanes: "0:4"
|
||||
serdes_group: "45"
|
||||
speed: "100G"
|
||||
sysport: "361"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "337"
|
||||
lanes: "0:4"
|
||||
serdes_group: "42"
|
||||
speed: "100G"
|
||||
sysport: "337"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "481"
|
||||
lanes: "0:4"
|
||||
serdes_group: "60"
|
||||
speed: "100G"
|
||||
sysport: "481"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "497"
|
||||
lanes: "0:4"
|
||||
serdes_group: "62"
|
||||
speed: "100G"
|
||||
sysport: "497"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "433"
|
||||
lanes: "0:4"
|
||||
serdes_group: "54"
|
||||
speed: "100G"
|
||||
sysport: "433"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "417"
|
||||
lanes: "0:4"
|
||||
serdes_group: "52"
|
||||
speed: "100G"
|
||||
sysport: "417"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "449"
|
||||
lanes: "0:4"
|
||||
serdes_group: "56"
|
||||
speed: "100G"
|
||||
sysport: "449"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "473"
|
||||
lanes: "0:4"
|
||||
serdes_group: "59"
|
||||
speed: "100G"
|
||||
sysport: "473"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "377"
|
||||
lanes: "0:4"
|
||||
serdes_group: "47"
|
||||
speed: "100G"
|
||||
sysport: "377"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "345"
|
||||
lanes: "0:4"
|
||||
serdes_group: "43"
|
||||
speed: "100G"
|
||||
sysport: "345"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "9"
|
||||
lanes: "0:4"
|
||||
serdes_group: "1"
|
||||
speed: "100G"
|
||||
sysport: "9"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "25"
|
||||
lanes: "0:4"
|
||||
serdes_group: "3"
|
||||
speed: "100G"
|
||||
sysport: "25"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "89"
|
||||
lanes: "0:4"
|
||||
serdes_group: "11"
|
||||
speed: "100G"
|
||||
sysport: "89"
|
||||
type: "eth"
|
||||
- fec: "KPFEC"
|
||||
id: "73"
|
||||
lanes: "0:4"
|
||||
serdes_group: "9"
|
||||
speed: "100G"
|
||||
sysport: "73"
|
||||
type: "eth"
|
||||
isg:
|
||||
- id: "0"
|
||||
lane_swap: "74563102"
|
||||
rx_polarity: "11000001"
|
||||
tx_polarity: "00011100"
|
||||
- id: "1"
|
||||
lane_swap: "74563102"
|
||||
rx_polarity: "01110111"
|
||||
tx_polarity: "01111100"
|
||||
- id: "2"
|
||||
lane_swap: "20136547"
|
||||
rx_polarity: "10001110"
|
||||
tx_polarity: "01110011"
|
||||
- id: "3"
|
||||
lane_swap: "20136547"
|
||||
rx_polarity: "10001100"
|
||||
tx_polarity: "00101011"
|
||||
- id: "4"
|
||||
lane_swap: "74563102"
|
||||
rx_polarity: "11000001"
|
||||
tx_polarity: "00011100"
|
||||
- id: "5"
|
||||
lane_swap: "47563102"
|
||||
rx_polarity: "00010111"
|
||||
tx_polarity: "00111101"
|
||||
- id: "6"
|
||||
lane_swap: "02134567"
|
||||
rx_polarity: "00101110"
|
||||
tx_polarity: "01000000"
|
||||
- id: "7"
|
||||
lane_swap: "02134567"
|
||||
rx_polarity: "00101110"
|
||||
tx_polarity: "10010010"
|
||||
- id: "8"
|
||||
lane_swap: "67451302"
|
||||
rx_polarity: "10100010"
|
||||
tx_polarity: "10011110"
|
||||
- id: "9"
|
||||
lane_swap: "67453102"
|
||||
rx_polarity: "10100010"
|
||||
tx_polarity: "10111010"
|
||||
- id: "10"
|
||||
lane_swap: "20315476"
|
||||
rx_polarity: "01101101"
|
||||
tx_polarity: "10010001"
|
||||
- id: "11"
|
||||
lane_swap: "20315476"
|
||||
rx_polarity: "10111111"
|
||||
tx_polarity: "11010001"
|
||||
- id: "12"
|
||||
lane_swap: "76543120"
|
||||
rx_polarity: "10100101"
|
||||
tx_polarity: "11101000"
|
||||
- id: "13"
|
||||
lane_swap: "76543120"
|
||||
rx_polarity: "10011110"
|
||||
tx_polarity: "10100010"
|
||||
- id: "14"
|
||||
lane_swap: "02134567"
|
||||
rx_polarity: "10011110"
|
||||
tx_polarity: "11110101"
|
||||
- id: "15"
|
||||
lane_swap: "02134567"
|
||||
rx_polarity: "11010001"
|
||||
tx_polarity: "01101101"
|
||||
- id: "16"
|
||||
lane_swap: "67451302"
|
||||
rx_polarity: "00101010"
|
||||
tx_polarity: "01100011"
|
||||
- id: "17"
|
||||
lane_swap: "54760132"
|
||||
rx_polarity: "01010100"
|
||||
tx_polarity: "10010101"
|
||||
- id: "18"
|
||||
lane_swap: "54761032"
|
||||
rx_polarity: "10101011"
|
||||
tx_polarity: "01011000"
|
||||
- id: "19"
|
||||
lane_swap: "23016745"
|
||||
rx_polarity: "00100000"
|
||||
tx_polarity: "11111000"
|
||||
- id: "20"
|
||||
lane_swap: "20315476"
|
||||
rx_polarity: "10000101"
|
||||
tx_polarity: "11011111"
|
||||
- id: "21"
|
||||
lane_swap: "23016745"
|
||||
rx_polarity: "11110100"
|
||||
tx_polarity: "00010111"
|
||||
- id: "22"
|
||||
lane_swap: "54760132"
|
||||
rx_polarity: "10001011"
|
||||
tx_polarity: "11010101"
|
||||
- id: "23"
|
||||
lane_swap: "54761032"
|
||||
rx_polarity: "11110100"
|
||||
tx_polarity: "01011000"
|
||||
- id: "24"
|
||||
lane_swap: "23016745"
|
||||
rx_polarity: "01110000"
|
||||
tx_polarity: "10111000"
|
||||
- id: "25"
|
||||
lane_swap: "23016745"
|
||||
rx_polarity: "10111011"
|
||||
tx_polarity: "00000111"
|
||||
- id: "26"
|
||||
lane_swap: "02134567"
|
||||
rx_polarity: "00010101"
|
||||
tx_polarity: "11001001"
|
||||
- id: "27"
|
||||
lane_swap: "20314576"
|
||||
rx_polarity: "11010110"
|
||||
tx_polarity: "10110001"
|
||||
- id: "28"
|
||||
lane_swap: "20314576"
|
||||
rx_polarity: "11110011"
|
||||
tx_polarity: "10110001"
|
||||
- id: "29"
|
||||
lane_swap: "76453120"
|
||||
rx_polarity: "01101101"
|
||||
tx_polarity: "01001000"
|
||||
- id: "30"
|
||||
lane_swap: "67541302"
|
||||
rx_polarity: "00110111"
|
||||
tx_polarity: "11110101"
|
||||
- id: "31"
|
||||
lane_swap: "67541302"
|
||||
rx_polarity: "01100111"
|
||||
tx_polarity: "01000111"
|
||||
- id: "32"
|
||||
lane_swap: "67543120"
|
||||
rx_polarity: "00011110"
|
||||
tx_polarity: "11111000"
|
||||
- id: "33"
|
||||
lane_swap: "67543120"
|
||||
rx_polarity: "10011010"
|
||||
tx_polarity: "10011000"
|
||||
- id: "34"
|
||||
lane_swap: "67453102"
|
||||
rx_polarity: "11011001"
|
||||
tx_polarity: "10100001"
|
||||
- id: "35"
|
||||
lane_swap: "02134576"
|
||||
rx_polarity: "01010101"
|
||||
tx_polarity: "00110111"
|
||||
- id: "36"
|
||||
lane_swap: "02134576"
|
||||
rx_polarity: "10100001"
|
||||
tx_polarity: "11100110"
|
||||
- id: "37"
|
||||
lane_swap: "20315476"
|
||||
rx_polarity: "11000100"
|
||||
tx_polarity: "10001010"
|
||||
- id: "38"
|
||||
lane_swap: "23016745"
|
||||
rx_polarity: "01100101"
|
||||
tx_polarity: "11101111"
|
||||
- id: "39"
|
||||
lane_swap: "23017645"
|
||||
rx_polarity: "10000101"
|
||||
tx_polarity: "11111110"
|
||||
- id: "40"
|
||||
lane_swap: "54761032"
|
||||
rx_polarity: "11011111"
|
||||
tx_polarity: "00001101"
|
||||
- id: "41"
|
||||
lane_swap: "54761032"
|
||||
rx_polarity: "00100100"
|
||||
tx_polarity: "01001000"
|
||||
- id: "42"
|
||||
lane_swap: "23016745"
|
||||
rx_polarity: "11010101"
|
||||
tx_polarity: "01000000"
|
||||
- id: "43"
|
||||
lane_swap: "20315476"
|
||||
rx_polarity: "10101101"
|
||||
tx_polarity: "00010001"
|
||||
- id: "44"
|
||||
lane_swap: "23017645"
|
||||
rx_polarity: "11010101"
|
||||
tx_polarity: "11101011"
|
||||
- id: "45"
|
||||
lane_swap: "54761032"
|
||||
rx_polarity: "00101111"
|
||||
tx_polarity: "10110010"
|
||||
- id: "46"
|
||||
lane_swap: "54761032"
|
||||
rx_polarity: "11111011"
|
||||
tx_polarity: "01011101"
|
||||
- id: "47"
|
||||
lane_swap: "67451302"
|
||||
rx_polarity: "00111000"
|
||||
tx_polarity: "00010110"
|
||||
- id: "48"
|
||||
lane_swap: "02134567"
|
||||
rx_polarity: "00011111"
|
||||
tx_polarity: "01000101"
|
||||
- id: "49"
|
||||
lane_swap: "02134567"
|
||||
rx_polarity: "00011110"
|
||||
tx_polarity: "00001111"
|
||||
- id: "50"
|
||||
lane_swap: "76543120"
|
||||
rx_polarity: "11101011"
|
||||
tx_polarity: "10110000"
|
||||
- id: "51"
|
||||
lane_swap: "76543120"
|
||||
rx_polarity: "10100100"
|
||||
tx_polarity: "11010111"
|
||||
- id: "52"
|
||||
lane_swap: "20314576"
|
||||
rx_polarity: "01000101"
|
||||
tx_polarity: "01011101"
|
||||
- id: "53"
|
||||
lane_swap: "20315476"
|
||||
rx_polarity: "01000101"
|
||||
tx_polarity: "01011111"
|
||||
- id: "54"
|
||||
lane_swap: "67451302"
|
||||
rx_polarity: "10011101"
|
||||
tx_polarity: "11101011"
|
||||
- id: "55"
|
||||
lane_swap: "67451302"
|
||||
rx_polarity: "10110000"
|
||||
tx_polarity: "11101011"
|
||||
- id: "56"
|
||||
lane_swap: "02134567"
|
||||
rx_polarity: "11100000"
|
||||
tx_polarity: "10111010"
|
||||
- id: "57"
|
||||
lane_swap: "02134567"
|
||||
rx_polarity: "10101110"
|
||||
tx_polarity: "10111010"
|
||||
- id: "58"
|
||||
lane_swap: "47651320"
|
||||
rx_polarity: "00110110"
|
||||
tx_polarity: "10101000"
|
||||
- id: "59"
|
||||
lane_swap: "47651320"
|
||||
rx_polarity: "00110110"
|
||||
tx_polarity: "10101100"
|
||||
- id: "60"
|
||||
lane_swap: "02315674"
|
||||
rx_polarity: "11010101"
|
||||
tx_polarity: "01111110"
|
||||
- id: "61"
|
||||
lane_swap: "02315674"
|
||||
rx_polarity: "11000100"
|
||||
tx_polarity: "01011110"
|
||||
- id: "62"
|
||||
lane_swap: "47651320"
|
||||
rx_polarity: "10010000"
|
||||
tx_polarity: "11101110"
|
||||
- id: "63"
|
||||
lane_swap: "47651320"
|
||||
rx_polarity: "10010110"
|
||||
tx_polarity: "10100100"
|
@ -0,0 +1,8 @@
|
||||
IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_teralynx_MVTX9180_64x100G.yaml"
|
||||
IFCS_SKU_FILE : "/usr/share/sonic/hwsku/teralynx.MVTX9180"
|
||||
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:$INNOVIUM_DIR/ifcs_cmds:$INNOVIUM_DIR/testutil"
|
||||
IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml"
|
||||
IVM_SAI_PARAM_A0008: "32"
|
@ -0,0 +1,11 @@
|
||||
#Queue Type
|
||||
ISAI_PARAM_A000 : "0"
|
||||
ISAI_PARAM_P0_0_LS : "2304 2304 2304 2304 2304 2304 2304 2304"
|
||||
ISAI_PARAM_P0_1_LS : "1728 1608 1608 1584 1584 1584 1584 1584"
|
||||
ISAI_PARAM_P0_1_ALS : "192 72 72 48 48 48 48 48"
|
||||
ISAI_PARAM_P1_0_LS : "768 768 768 768 768 768 768 768"
|
||||
ISAI_PARAM_P1_0_LL : "1536 1536 1536 1536 1536 1536 1536 1536"
|
||||
ISAI_PARAM_P1_1_LS : "1344 1224 1224 1200 1200 1200 1200 1200"
|
||||
ISAI_PARAM_P1_1_LL : "3138 3138 3138 3138 3138 3138 3138 3138"
|
||||
ISAI_PARAM_P1_1_ALS : "192 72 72 48 48 48 48 48"
|
||||
ISAI_PARAM_P1_1_ALL : "86 86 86 86 86 86 86 86"
|
@ -0,0 +1,26 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold xon_offset
|
||||
25000 5m 1518 0 15680 1 9408
|
||||
50000 5m 1518 0 21248 1 9408
|
||||
100000 5m 1518 0 34624 1 9408
|
||||
200000 5m 1518 0 62368 1 9408
|
||||
400000 5m 1518 0 117536 1 9408
|
||||
800000 5m 1518 0 197536 1 9408
|
||||
25000 40m 1518 0 16928 1 9408
|
||||
50000 40m 1518 0 23392 1 9408
|
||||
100000 40m 1518 0 38816 1 9408
|
||||
200000 40m 1518 0 71904 1 9408
|
||||
400000 40m 1518 0 135520 1 9408
|
||||
800000 40m 1518 0 205520 1 9408
|
||||
25000 100m 1518 0 18848 1 9408
|
||||
50000 100m 1518 0 27264 1 9408
|
||||
100000 100m 1518 0 46496 1 9408
|
||||
200000 100m 1518 0 87168 1 9408
|
||||
400000 100m 1518 0 166688 1 9408
|
||||
800000 100m 1518 0 236688 1 9408
|
||||
25000 300m 1518 0 25184 1 9408
|
||||
50000 300m 1518 0 40128 1 9408
|
||||
100000 300m 1518 0 72384 1 9408
|
||||
200000 300m 1518 0 138112 1 9408
|
||||
400000 300m 1518 0 268640 1 9408
|
||||
800000 300m 1518 0 468640 1 9408
|
@ -0,0 +1,65 @@
|
||||
# name lanes alias fec index speed
|
||||
Ethernet0 489,490,491,492 Eth1 rs 1 100000
|
||||
Ethernet8 505,506,507,508 Eth2 rs 2 100000
|
||||
Ethernet16 441,442,443,444 Eth3 rs 3 100000
|
||||
Ethernet24 425,426,427,428 Eth4 rs 4 100000
|
||||
Ethernet32 41,42,43,44 Eth5 rs 5 100000
|
||||
Ethernet40 49,50,51,52 Eth6 rs 6 100000
|
||||
Ethernet48 153,154,155,156 Eth7 rs 7 100000
|
||||
Ethernet56 137,138,139,140 Eth8 rs 8 100000
|
||||
Ethernet64 1,2,3,4 Eth9 rs 9 100000
|
||||
Ethernet72 17,18,19,20 Eth10 rs 10 100000
|
||||
Ethernet80 81,82,83,84 Eth11 rs 11 100000
|
||||
Ethernet88 65,66,67,68 Eth12 rs 12 100000
|
||||
Ethernet96 97,98,99,100 Eth13 rs 13 100000
|
||||
Ethernet104 113,114,115,116 Eth14 rs 14 100000
|
||||
Ethernet112 193,194,195,196 Eth15 rs 15 100000
|
||||
Ethernet120 177,178,179,180 Eth16 rs 16 100000
|
||||
Ethernet128 33,34,35,36 Eth17 rs 17 100000
|
||||
Ethernet136 57,58,59,60 Eth18 rs 18 100000
|
||||
Ethernet144 161,162,163,164 Eth19 rs 19 100000
|
||||
Ethernet152 129,130,131,132 Eth20 rs 20 100000
|
||||
Ethernet160 217,218,219,220 Eth21 rs 21 100000
|
||||
Ethernet168 241,242,243,244 Eth22 rs 22 100000
|
||||
Ethernet176 233,234,235,236 Eth23 rs 23 100000
|
||||
Ethernet184 209,210,211,212 Eth24 rs 24 100000
|
||||
Ethernet192 105,106,107,108 Eth25 rs 25 100000
|
||||
Ethernet200 121,122,123,124 Eth26 rs 26 100000
|
||||
Ethernet208 169,170,171,172 Eth27 rs 27 100000
|
||||
Ethernet216 145,146,147,148 Eth28 rs 28 100000
|
||||
Ethernet224 265,266,267,268 Eth29 rs 29 100000
|
||||
Ethernet232 289,290,291,292 Eth30 rs 30 100000
|
||||
Ethernet240 297,298,299,300 Eth31 rs 31 100000
|
||||
Ethernet248 273,274,275,276 Eth32 rs 32 100000
|
||||
Ethernet256 225,226,227,228 Eth33 rs 33 100000
|
||||
Ethernet264 249,250,251,252 Eth34 rs 34 100000
|
||||
Ethernet272 201,202,203,204 Eth35 rs 35 100000
|
||||
Ethernet280 185,186,187,188 Eth36 rs 36 100000
|
||||
Ethernet288 393,394,395,396 Eth37 rs 37 100000
|
||||
Ethernet296 409,410,411,412 Eth38 rs 38 100000
|
||||
Ethernet304 329,330,331,332 Eth39 rs 39 100000
|
||||
Ethernet312 313,314,315,316 Eth40 rs 40 100000
|
||||
Ethernet320 257,258,259,260 Eth41 rs 41 100000
|
||||
Ethernet328 281,282,283,284 Eth42 rs 42 100000
|
||||
Ethernet336 321,322,323,324 Eth43 rs 43 100000
|
||||
Ethernet344 305,306,307,308 Eth44 rs 44 100000
|
||||
Ethernet352 457,458,459,460 Eth45 rs 45 100000
|
||||
Ethernet360 465,466,467,468 Eth46 rs 46 100000
|
||||
Ethernet368 369,370,371,372 Eth47 rs 47 100000
|
||||
Ethernet376 353,354,355,356 Eth48 rs 48 100000
|
||||
Ethernet384 385,386,387,388 Eth49 rs 49 100000
|
||||
Ethernet392 401,402,403,404 Eth50 rs 50 100000
|
||||
Ethernet400 361,362,363,364 Eth51 rs 51 100000
|
||||
Ethernet408 337,338,339,340 Eth52 rs 52 100000
|
||||
Ethernet416 481,482,483,484 Eth53 rs 53 100000
|
||||
Ethernet424 497,498,499,500 Eth54 rs 54 100000
|
||||
Ethernet432 433,434,435,436 Eth55 rs 55 100000
|
||||
Ethernet440 417,418,419,420 Eth56 rs 56 100000
|
||||
Ethernet448 449,450,451,452 Eth57 rs 57 100000
|
||||
Ethernet456 473,474,475,476 Eth58 rs 58 100000
|
||||
Ethernet464 377,378,379,380 Eth59 rs 59 100000
|
||||
Ethernet472 345,346,347,348 Eth60 rs 60 100000
|
||||
Ethernet480 9,10,11,12 Eth61 rs 61 100000
|
||||
Ethernet488 25,26,27,28 Eth62 rs 62 100000
|
||||
Ethernet496 89,90,91,92 Eth63 rs 63 100000
|
||||
Ethernet504 73,74,75,76 Eth64 rs 64 100000
|
192
device/marvell/x86_64-marvell_dbmvtx9180-r0/dbmvtx9180_64x100G/qos.json.j2
Executable file
192
device/marvell/x86_64-marvell_dbmvtx9180-r0/dbmvtx9180_64x100G/qos.json.j2
Executable file
@ -0,0 +1,192 @@
|
||||
{% 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"
|
||||
}
|
||||
},
|
||||
"MAP_PFC_PRIORITY_TO_QUEUE": {
|
||||
"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": "3",
|
||||
"4": "4",
|
||||
"5": "0",
|
||||
"6": "0",
|
||||
"7": "0"
|
||||
}
|
||||
},
|
||||
"DSCP_TO_TC_MAP": {
|
||||
"AZURE": {
|
||||
"0" : "1",
|
||||
"1" : "1",
|
||||
"2" : "1",
|
||||
"3" : "3",
|
||||
"4" : "4",
|
||||
"5" : "2",
|
||||
"6" : "1",
|
||||
"7" : "1",
|
||||
"8" : "0",
|
||||
"9" : "1",
|
||||
"10": "1",
|
||||
"11": "1",
|
||||
"12": "1",
|
||||
"13": "1",
|
||||
"14": "1",
|
||||
"15": "1",
|
||||
"16": "1",
|
||||
"17": "1",
|
||||
"18": "1",
|
||||
"19": "1",
|
||||
"20": "1",
|
||||
"21": "1",
|
||||
"22": "1",
|
||||
"23": "1",
|
||||
"24": "1",
|
||||
"25": "1",
|
||||
"26": "1",
|
||||
"27": "1",
|
||||
"28": "1",
|
||||
"29": "1",
|
||||
"30": "1",
|
||||
"31": "1",
|
||||
"32": "1",
|
||||
"33": "1",
|
||||
"34": "1",
|
||||
"35": "1",
|
||||
"36": "1",
|
||||
"37": "1",
|
||||
"38": "1",
|
||||
"39": "1",
|
||||
"40": "1",
|
||||
"41": "1",
|
||||
"42": "1",
|
||||
"43": "1",
|
||||
"44": "1",
|
||||
"45": "1",
|
||||
"46": "5",
|
||||
"47": "1",
|
||||
"48": "6",
|
||||
"49": "1",
|
||||
"50": "1",
|
||||
"51": "1",
|
||||
"52": "1",
|
||||
"53": "1",
|
||||
"54": "1",
|
||||
"55": "1",
|
||||
"56": "1",
|
||||
"57": "1",
|
||||
"58": "1",
|
||||
"59": "1",
|
||||
"60": "1",
|
||||
"61": "1",
|
||||
"62": "1",
|
||||
"63": "1"
|
||||
}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.0": {
|
||||
"type" : "DWRR",
|
||||
"weight": "1"
|
||||
},
|
||||
"scheduler.1": {
|
||||
"type" : "DWRR",
|
||||
"weight": "1"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|3": {
|
||||
"scheduler" : "scheduler.1",
|
||||
"wred_profile" : "AZURE_LOSSLESS"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|4": {
|
||||
"scheduler" : "scheduler.1",
|
||||
"wred_profile" : "AZURE_LOSSLESS"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|0": {
|
||||
"scheduler": "scheduler.0"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|1": {
|
||||
"scheduler": "scheduler.0"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|2": {
|
||||
"scheduler": "scheduler.0"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|5": {
|
||||
"scheduler": "scheduler.0"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|6": {
|
||||
"scheduler": "scheduler.0"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}": {
|
||||
"tc_to_pg_map": "AZURE",
|
||||
"tc_to_queue_map": "AZURE",
|
||||
"dscp_to_tc_map": "AZURE",
|
||||
"pfc_to_queue_map": "AZURE",
|
||||
"pfc_enable": "3,4"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
},
|
||||
"WRED_PROFILE": {
|
||||
"AZURE_LOSSLESS" : {
|
||||
"wred_green_enable" : "true",
|
||||
"wred_yellow_enable" : "true",
|
||||
"wred_red_enable" : "true",
|
||||
"ecn" : "ecn_all",
|
||||
"green_max_threshold" : "2097152",
|
||||
"green_min_threshold" : "1048576",
|
||||
"yellow_max_threshold" : "2097152",
|
||||
"yellow_min_threshold" : "1048576",
|
||||
"red_max_threshold" : "2097152",
|
||||
"red_min_threshold" : "1048576",
|
||||
"green_drop_probability" : "5",
|
||||
"yellow_drop_probability": "5",
|
||||
"red_drop_probability" : "5"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,121 @@
|
||||
{% 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": {
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}": {
|
||||
"tc_to_pg_map": "AZURE",
|
||||
"tc_to_queue_map": "AZURE",
|
||||
"dscp_to_tc_map": "AZURE"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.7": {
|
||||
"type": "STRICT"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"{{ port_names }}|7": {
|
||||
"scheduler": "[SCHEDULER|scheduler.7]"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,192 @@
|
||||
{% 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"
|
||||
}
|
||||
},
|
||||
"MAP_PFC_PRIORITY_TO_QUEUE": {
|
||||
"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": "3",
|
||||
"4": "4",
|
||||
"5": "0",
|
||||
"6": "0",
|
||||
"7": "0"
|
||||
}
|
||||
},
|
||||
"DSCP_TO_TC_MAP": {
|
||||
"AZURE": {
|
||||
"0" : "1",
|
||||
"1" : "1",
|
||||
"2" : "1",
|
||||
"3" : "3",
|
||||
"4" : "4",
|
||||
"5" : "2",
|
||||
"6" : "1",
|
||||
"7" : "1",
|
||||
"8" : "0",
|
||||
"9" : "1",
|
||||
"10": "1",
|
||||
"11": "1",
|
||||
"12": "1",
|
||||
"13": "1",
|
||||
"14": "1",
|
||||
"15": "1",
|
||||
"16": "1",
|
||||
"17": "1",
|
||||
"18": "1",
|
||||
"19": "1",
|
||||
"20": "1",
|
||||
"21": "1",
|
||||
"22": "1",
|
||||
"23": "1",
|
||||
"24": "1",
|
||||
"25": "1",
|
||||
"26": "1",
|
||||
"27": "1",
|
||||
"28": "1",
|
||||
"29": "1",
|
||||
"30": "1",
|
||||
"31": "1",
|
||||
"32": "1",
|
||||
"33": "1",
|
||||
"34": "1",
|
||||
"35": "1",
|
||||
"36": "1",
|
||||
"37": "1",
|
||||
"38": "1",
|
||||
"39": "1",
|
||||
"40": "1",
|
||||
"41": "1",
|
||||
"42": "1",
|
||||
"43": "1",
|
||||
"44": "1",
|
||||
"45": "1",
|
||||
"46": "5",
|
||||
"47": "1",
|
||||
"48": "6",
|
||||
"49": "1",
|
||||
"50": "1",
|
||||
"51": "1",
|
||||
"52": "1",
|
||||
"53": "1",
|
||||
"54": "1",
|
||||
"55": "1",
|
||||
"56": "1",
|
||||
"57": "1",
|
||||
"58": "1",
|
||||
"59": "1",
|
||||
"60": "1",
|
||||
"61": "1",
|
||||
"62": "1",
|
||||
"63": "1"
|
||||
}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.0": {
|
||||
"type" : "DWRR",
|
||||
"weight": "1"
|
||||
},
|
||||
"scheduler.1": {
|
||||
"type" : "DWRR",
|
||||
"weight": "1"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|3": {
|
||||
"scheduler" : "scheduler.1",
|
||||
"wred_profile" : "AZURE_LOSSLESS"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|4": {
|
||||
"scheduler" : "scheduler.1",
|
||||
"wred_profile" : "AZURE_LOSSLESS"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|0": {
|
||||
"scheduler": "scheduler.0"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|1": {
|
||||
"scheduler": "scheduler.0"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|2": {
|
||||
"scheduler": "scheduler.0"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|5": {
|
||||
"scheduler": "scheduler.0"
|
||||
},
|
||||
{% endfor %}
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}|6": {
|
||||
"scheduler": "scheduler.0"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
{% for port in port_names_list %}
|
||||
"{{ port }}": {
|
||||
"tc_to_pg_map": "AZURE",
|
||||
"tc_to_queue_map": "AZURE",
|
||||
"dscp_to_tc_map": "AZURE",
|
||||
"pfc_to_queue_map": "AZURE",
|
||||
"pfc_enable": "3,4"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
},
|
||||
"WRED_PROFILE": {
|
||||
"AZURE_LOSSLESS" : {
|
||||
"wred_green_enable" : "true",
|
||||
"wred_yellow_enable" : "true",
|
||||
"wred_red_enable" : "true",
|
||||
"ecn" : "ecn_all",
|
||||
"green_max_threshold" : "2097152",
|
||||
"green_min_threshold" : "1048576",
|
||||
"yellow_max_threshold" : "2097152",
|
||||
"yellow_min_threshold" : "1048576",
|
||||
"red_max_threshold" : "2097152",
|
||||
"red_min_threshold" : "1048576",
|
||||
"green_drop_probability" : "5",
|
||||
"yellow_drop_probability": "5",
|
||||
"red_drop_probability" : "5"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml
|
@ -0,0 +1,170 @@
|
||||
sku: teralynx.MVTX9180
|
||||
|
||||
device_id: 0x6000
|
||||
|
||||
# Hardware constraint information
|
||||
hardware:
|
||||
num_ibs: 8
|
||||
ib_active: 0,1,2,3,4,5,6,7
|
||||
|
||||
ports_per_ib: 66, 66, 66, 66, 66, 66, 66, 66
|
||||
recirc_port_num: 64, 64, 64, 64, 64, 64, 64, 64
|
||||
cpu_port_num: 65
|
||||
cpu_port_ib: 0
|
||||
mgmt_port_num: 65, 65
|
||||
mgmt_port_ibs: 1,2
|
||||
|
||||
pics_per_ib: 8, 9, 9, 8, 8, 8, 8, 8
|
||||
pic_ports_per_pic: 8
|
||||
max_serdes_speed: 100
|
||||
|
||||
num_shared_pics: 0
|
||||
|
||||
isg [0-7]:
|
||||
ib: 0
|
||||
pic_id: [0-7]
|
||||
|
||||
isg [8-15]:
|
||||
ib: 4
|
||||
pic_id: [0-7]
|
||||
|
||||
isg 16:
|
||||
ib: 6
|
||||
pic_id: 7
|
||||
|
||||
isg 17:
|
||||
ib: 6
|
||||
pic_id: 6
|
||||
|
||||
isg 18:
|
||||
ib: 6
|
||||
pic_id: 5
|
||||
|
||||
isg 19:
|
||||
ib: 6
|
||||
pic_id: 4
|
||||
|
||||
isg 20:
|
||||
ib: 6
|
||||
pic_id: 3
|
||||
|
||||
isg 21:
|
||||
ib: 6
|
||||
pic_id: 2
|
||||
|
||||
isg 22:
|
||||
ib: 6
|
||||
pic_id: 1
|
||||
|
||||
isg 23:
|
||||
ib: 6
|
||||
pic_id: 0
|
||||
|
||||
isg 24:
|
||||
ib: 2
|
||||
pic_id: 7
|
||||
|
||||
isg 25:
|
||||
ib: 2
|
||||
pic_id: 6
|
||||
|
||||
isg 26:
|
||||
ib: 2
|
||||
pic_id: 5
|
||||
|
||||
isg 27:
|
||||
ib: 2
|
||||
pic_id: 4
|
||||
|
||||
isg 28:
|
||||
ib: 2
|
||||
pic_id: 3
|
||||
|
||||
isg 29:
|
||||
ib: 2
|
||||
pic_id: 2
|
||||
|
||||
isg 30:
|
||||
ib: 2
|
||||
pic_id: 1
|
||||
|
||||
isg 31:
|
||||
ib: 2
|
||||
pic_id: 0
|
||||
|
||||
isg [32-39]:
|
||||
ib: 3
|
||||
pic_id: [0-7]
|
||||
|
||||
isg [40-47]:
|
||||
ib: 7
|
||||
pic_id: [0-7]
|
||||
|
||||
isg 48:
|
||||
ib: 5
|
||||
pic_id: 7
|
||||
|
||||
isg 49:
|
||||
ib: 5
|
||||
pic_id: 6
|
||||
|
||||
isg 50:
|
||||
ib: 5
|
||||
pic_id: 5
|
||||
|
||||
isg 51:
|
||||
ib: 5
|
||||
pic_id: 4
|
||||
|
||||
isg 52:
|
||||
ib: 5
|
||||
pic_id: 3
|
||||
|
||||
isg 53:
|
||||
ib: 5
|
||||
pic_id: 2
|
||||
|
||||
isg 54:
|
||||
ib: 5
|
||||
pic_id: 1
|
||||
|
||||
isg 55:
|
||||
ib: 5
|
||||
pic_id: 0
|
||||
|
||||
isg 56:
|
||||
ib: 1
|
||||
pic_id: 7
|
||||
|
||||
isg 57:
|
||||
ib: 1
|
||||
pic_id: 6
|
||||
|
||||
isg 58:
|
||||
ib: 1
|
||||
pic_id: 5
|
||||
|
||||
isg 59:
|
||||
ib: 1
|
||||
pic_id: 4
|
||||
|
||||
isg 60:
|
||||
ib: 1
|
||||
pic_id: 3
|
||||
|
||||
isg 61:
|
||||
ib: 1
|
||||
pic_id: 2
|
||||
|
||||
isg 62:
|
||||
ib: 1
|
||||
pic_id: 1
|
||||
|
||||
isg 63:
|
||||
ib: 1
|
||||
pic_id: 0
|
||||
|
||||
isg 64:
|
||||
mode: 1:1
|
||||
ib: 1, 2
|
||||
pic_id: 8
|
1
device/marvell/x86_64-marvell_dbmvtx9180-r0/default_sku
Normal file
1
device/marvell/x86_64-marvell_dbmvtx9180-r0/default_sku
Normal file
@ -0,0 +1 @@
|
||||
dbmvtx9180_64x100G t1
|
@ -0,0 +1,4 @@
|
||||
CONSOLE_PORT=0x3f8
|
||||
CONSOLE_DEV=4
|
||||
CONSOLE_SPEED=115200
|
||||
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="pcie_aspm=off intel_iommu=off"
|
@ -0,0 +1 @@
|
||||
innovium
|
@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
try:
|
||||
import os
|
||||
from sonic_eeprom import eeprom_tlvinfo
|
||||
except ImportError as e:
|
||||
raise ImportError (str(e) + "- required module not found")
|
||||
|
||||
def eeprom_check():
|
||||
filepath="/sys/bus/i2c/devices/0-0056/eeprom"
|
||||
if os.path.isfile(filepath):
|
||||
return 1 #now board, 0x56
|
||||
else:
|
||||
return 0 #now board, 0x57
|
||||
|
||||
class board(eeprom_tlvinfo.TlvInfoDecoder):
|
||||
_TLV_INFO_MAX_LEN = 256
|
||||
def __init__(self, name, path, cpld_root, ro):
|
||||
ret=eeprom_check()
|
||||
if ret==1:
|
||||
self.eeprom_path = "/sys/bus/i2c/devices/0-0056/eeprom"
|
||||
else:
|
||||
self.eeprom_path = "/sys/bus/i2c/devices/47-0057/eeprom"
|
||||
|
||||
super(board, self).__init__(self.eeprom_path, 0, '', True)
|
||||
|
@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
#############################################################################
|
||||
# Accton
|
||||
#
|
||||
# Module contains an implementation of SONiC PSU Base API and
|
||||
# provides the PSUs status which are available in the platform
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
try:
|
||||
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_path = "/sys/bus/i2c/devices/"
|
||||
self.psu_presence = "/psu_present"
|
||||
self.psu_oper_status = "/psu_power_good"
|
||||
self.psu_mapping = {
|
||||
2: "0-0051",
|
||||
1: "0-0052",
|
||||
}
|
||||
|
||||
def get_num_psus(self):
|
||||
return len(self.psu_mapping)
|
||||
|
||||
def get_psu_status(self, index):
|
||||
if index is None:
|
||||
return False
|
||||
|
||||
status = 0
|
||||
node = self.psu_path + self.psu_mapping[index]+self.psu_oper_status
|
||||
try:
|
||||
with open(node, 'r') as power_status:
|
||||
status = int(power_status.read())
|
||||
except IOError:
|
||||
return False
|
||||
|
||||
return status == 1
|
||||
|
||||
def get_psu_presence(self, index):
|
||||
if index is None:
|
||||
return False
|
||||
|
||||
status = 0
|
||||
node = self.psu_path + self.psu_mapping[index] + self.psu_presence
|
||||
try:
|
||||
with open(node, 'r') as presence_status:
|
||||
status = int(presence_status.read())
|
||||
except IOError:
|
||||
return False
|
||||
|
||||
return status == 1
|
186
device/marvell/x86_64-marvell_dbmvtx9180-r0/plugins/sfputil.py
Normal file
186
device/marvell/x86_64-marvell_dbmvtx9180-r0/plugins/sfputil.py
Normal file
@ -0,0 +1,186 @@
|
||||
# sfputil.py
|
||||
#
|
||||
# Platform-specific SFP transceiver interface for SONiC
|
||||
#
|
||||
|
||||
try:
|
||||
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"""
|
||||
SONIC_PORT_NAME_PREFIX = "Ethernet"
|
||||
PORT_START = 0
|
||||
PORT_END = 31
|
||||
PORTS_IN_BLOCK = 32
|
||||
|
||||
BASE_OOM_PATH = "/sys/bus/i2c/devices/0-00{0}/"
|
||||
BASE_CPLD1_PATH = "/sys/bus/i2c/devices/0-0061/"
|
||||
BASE_CPLD2_PATH = "/sys/bus/i2c/devices/0-0062/"
|
||||
|
||||
_port_to_is_present = {}
|
||||
_port_to_lp_mode = {}
|
||||
|
||||
_port_to_eeprom_mapping = {}
|
||||
_port_to_i2c_mapping = {
|
||||
0: [1, 10],
|
||||
1: [2, 11],
|
||||
2: [3, 12],
|
||||
3: [4, 13],
|
||||
4: [5, 14],
|
||||
5: [6, 15],
|
||||
6: [7, 16],
|
||||
7: [8, 17],
|
||||
8: [9, 18],
|
||||
9: [10, 19],
|
||||
10: [11, 20],
|
||||
11: [12, 21],
|
||||
12: [13, 22],
|
||||
13: [14, 23],
|
||||
14: [15, 24],
|
||||
15: [16, 25],
|
||||
16: [17, 26],
|
||||
17: [18, 27],
|
||||
18: [19, 28],
|
||||
19: [20, 29],
|
||||
20: [21, 30],
|
||||
21: [22, 31],
|
||||
22: [23, 32],
|
||||
23: [24, 33],
|
||||
24: [25, 34],
|
||||
25: [26, 35],
|
||||
26: [27, 36],
|
||||
27: [28, 37],
|
||||
28: [29, 38],
|
||||
29: [30, 39],
|
||||
30: [31, 40],
|
||||
31: [32, 41],
|
||||
}
|
||||
|
||||
@property
|
||||
def port_start(self):
|
||||
return self.PORT_START
|
||||
|
||||
@property
|
||||
def port_end(self):
|
||||
return self.PORT_END
|
||||
|
||||
@property
|
||||
def qsfp_ports(self):
|
||||
return range(self.PORT_START, self.PORTS_IN_BLOCK + 1)
|
||||
|
||||
@property
|
||||
def port_to_eeprom_mapping(self):
|
||||
return self._port_to_eeprom_mapping
|
||||
|
||||
def is_logical_port(self, port_name):
|
||||
return True
|
||||
|
||||
def get_logical_to_physical(self, port_name):
|
||||
if not port_name.startswith(self.SONIC_PORT_NAME_PREFIX):
|
||||
return None
|
||||
|
||||
port_idx = int(port_name[len(self.SONIC_PORT_NAME_PREFIX):])
|
||||
port_idx = port_idx // 8
|
||||
return [port_idx]
|
||||
|
||||
def __init__(self):
|
||||
eeprom_path = self.BASE_OOM_PATH + "eeprom1"
|
||||
|
||||
for x in range(0, self.port_end+1):
|
||||
self.port_to_eeprom_mapping[x] = eeprom_path.format(self._port_to_i2c_mapping[x][1])
|
||||
|
||||
self._transceiver_presence = self._get_sfp_presence()
|
||||
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 :
|
||||
present_path = self.BASE_CPLD1_PATH + "module_present_" + str(port_num+1)
|
||||
else:
|
||||
present_path = self.BASE_CPLD2_PATH + "module_present_" + str(port_num+1)
|
||||
self.__port_to_is_present = present_path
|
||||
|
||||
try:
|
||||
val_file = open(self.__port_to_is_present)
|
||||
content = val_file.readline().rstrip()
|
||||
val_file.close()
|
||||
except IOError as e:
|
||||
print("Error: unable to access file: %s" % str(e))
|
||||
return False
|
||||
|
||||
if content == "1":
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def get_low_power_mode(self, port_num):
|
||||
raise NotImplementedError
|
||||
|
||||
def set_low_power_mode(self, port_num, lpmode):
|
||||
raise NotImplementedError
|
||||
|
||||
def reset(self, port_num):
|
||||
raise NotImplementedError
|
||||
|
||||
def _get_sfp_presence(self):
|
||||
port_pres = {}
|
||||
for port in range(0, self.port_end+1):
|
||||
port_pres[port] = self.get_presence(port)
|
||||
|
||||
return port_pres
|
||||
|
||||
def get_transceiver_change_event(self, timeout=0):
|
||||
start_time = time.time()
|
||||
port_dict = {}
|
||||
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:
|
||||
change_status = False
|
||||
|
||||
cur_presence = self._get_sfp_presence()
|
||||
for port in range(0, self.port_end+1):
|
||||
if cur_presence[port] == 1:
|
||||
port_dict[port]='1'
|
||||
else:
|
||||
port_dict[port]='0'
|
||||
|
||||
if cur_presence[port] != self._transceiver_presence[port]:
|
||||
change_status = True
|
||||
|
||||
self._transceiver_presence = cur_presence
|
||||
if change_status:
|
||||
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_evt_change_event: Should not reach here.")
|
||||
return False, {}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"skip_ledd": true,
|
||||
"skip_pcied": true,
|
||||
"skip_thermalctld": true,
|
||||
"skip_psud": true
|
||||
}
|
1
device/marvell/x86_64-marvell_dbmvtx9180-r0/topo.conf
Normal file
1
device/marvell/x86_64-marvell_dbmvtx9180-r0/topo.conf
Normal file
@ -0,0 +1 @@
|
||||
t1
|
@ -9,6 +9,7 @@ $(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(DELTA_PLATFORM_MODULE)
|
||||
$(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(NETBERG_AURORA_715_PLATFORM_MODULE)
|
||||
$(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(SMCI_SSE_T7132S_PLATFORM_MODULE)
|
||||
$(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(WISTRON_PLATFORM_MODULE)
|
||||
$(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(TL10_DBMVTX9180_PLATFORM)
|
||||
$(SONIC_ONE_IMAGE)_INSTALLS += $(INVM_DRV)
|
||||
$(SONIC_ONE_IMAGE)_DOCKERS += $(SONIC_INSTALL_DOCKER_IMAGES)
|
||||
SONIC_INSTALLERS += $(SONIC_ONE_IMAGE)
|
||||
|
13
platform/innovium/platform-modules-marvell.mk
Normal file
13
platform/innovium/platform-modules-marvell.mk
Normal file
@ -0,0 +1,13 @@
|
||||
# Teralynx 10 Platform
|
||||
|
||||
TL10_DBMVTX9180_VERSION = 1.0
|
||||
|
||||
export TL10_DBMVTX9180_VERSION
|
||||
|
||||
TL10_DBMVTX9180_PLATFORM = sonic-platform-marvell-dbmvtx9180_$(TL10_DBMVTX9180_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(TL10_DBMVTX9180_PLATFORM)_SRC_PATH = $(PLATFORM_PATH)/sonic-platform-marvell
|
||||
$(TL10_DBMVTX9180_PLATFORM)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON)
|
||||
$(TL10_DBMVTX9180_PLATFORM)_PLATFORM = x86_64-marvell_dbmvtx9180-r0
|
||||
|
||||
SONIC_DPKG_DEBS += $(TL10_DBMVTX9180_PLATFORM)
|
||||
|
@ -1,9 +1,8 @@
|
||||
include $(PLATFORM_PATH)/invm-sai.mk
|
||||
include $(PLATFORM_PATH)/platform-modules-cel.mk
|
||||
include $(PLATFORM_PATH)/platform-modules-supermicro.mk
|
||||
#include $(PLATFORM_PATH)/platform-modules-delta.mk
|
||||
include $(PLATFORM_PATH)/platform-modules-wistron.mk
|
||||
#include $(PLATFORM_PATH)/platform-modules-netberg.mk
|
||||
include $(PLATFORM_PATH)/platform-modules-marvell.mk
|
||||
include $(PLATFORM_PATH)/docker-syncd-invm.mk
|
||||
include $(PLATFORM_PATH)/docker-syncd-invm-rpc.mk
|
||||
include $(PLATFORM_PATH)/one-image.mk
|
||||
|
1
platform/innovium/sonic-platform-marvell
Submodule
1
platform/innovium/sonic-platform-marvell
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit a6e250959b4e98f443e759179ac25f93cc891c9a
|
Loading…
Reference in New Issue
Block a user