[innovium]: Initial commit (#3243) (#3347)

[build] Add ipmitool
[dockers] Add innovium platform in orchagent + ipmitool in snmp
[platform/innovium] Add innovium platform
[device/celestica] Add x86_64-cel_midstone-r0 device for innovium
[device/delta] Add x86_64-delta_et-c032if-r0 device for innovium
[sonic-slave-stretch] Add texi2html

Signed-off-by: Tony Titus ttitus@innovium.com
This commit is contained in:
Tony Titus 2019-08-16 12:35:01 -07:00 committed by Ying Xie
parent d23f51e4ce
commit b5ebfc835e
156 changed files with 18548 additions and 2 deletions

View File

@ -245,7 +245,8 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
mtr-tiny \
locales \
mcelog \
ndisc6
ndisc6 \
ipmitool
#Adds a locale to a debian system in non-interactive mode
sudo sed -i '/^#.* en_US.* /s/^#//' $FILESYSTEM_ROOT/etc/locale.gen && \

View File

@ -0,0 +1,120 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '300m' %}
{% set default_ports_num = 64 -%}
{# 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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -0,0 +1,639 @@
ifcs:
options:
log_level: "info"
nodes:
- node_id: "0"
options:
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: "128"
type: "cpu"
- fec: "KRFEC"
id: "1"
lanes: "0:4"
serdes_group: "31"
speed: "100G"
sysport: "1"
type: "eth"
- fec: "KRFEC"
id: "2"
lanes: "4:4"
serdes_group: "31"
speed: "100G"
sysport: "2"
type: "eth"
- fec: "KRFEC"
id: "3"
lanes: "4:4"
serdes_group: "30"
speed: "100G"
sysport: "3"
type: "eth"
- fec: "KRFEC"
id: "4"
lanes: "0:4"
serdes_group: "30"
speed: "100G"
sysport: "4"
type: "eth"
- fec: "KRFEC"
id: "5"
lanes: "0:4"
serdes_group: "29"
speed: "100G"
sysport: "5"
type: "eth"
- fec: "KRFEC"
id: "6"
lanes: "4:4"
serdes_group: "29"
speed: "100G"
sysport: "6"
type: "eth"
- fec: "KRFEC"
id: "7"
lanes: "4:4"
serdes_group: "28"
speed: "100G"
sysport: "7"
type: "eth"
- fec: "KRFEC"
id: "8"
lanes: "0:4"
serdes_group: "28"
speed: "100G"
sysport: "8"
type: "eth"
- fec: "KRFEC"
id: "9"
lanes: "0:4"
serdes_group: "27"
speed: "100G"
sysport: "9"
type: "eth"
- fec: "KRFEC"
id: "10"
lanes: "4:4"
serdes_group: "27"
speed: "100G"
sysport: "10"
type: "eth"
- fec: "KRFEC"
id: "11"
lanes: "4:4"
serdes_group: "26"
speed: "100G"
sysport: "11"
type: "eth"
- fec: "KRFEC"
id: "12"
lanes: "0:4"
serdes_group: "26"
speed: "100G"
sysport: "12"
type: "eth"
- fec: "KRFEC"
id: "13"
lanes: "0:4"
serdes_group: "25"
speed: "100G"
sysport: "13"
type: "eth"
- fec: "KRFEC"
id: "14"
lanes: "4:4"
serdes_group: "25"
speed: "100G"
sysport: "14"
type: "eth"
- fec: "KRFEC"
id: "15"
lanes: "4:4"
serdes_group: "24"
speed: "100G"
sysport: "15"
type: "eth"
- fec: "KRFEC"
id: "16"
lanes: "0:4"
serdes_group: "24"
speed: "100G"
sysport: "16"
type: "eth"
- fec: "KRFEC"
id: "17"
lanes: "0:4"
serdes_group: "23"
speed: "100G"
sysport: "17"
type: "eth"
- fec: "KRFEC"
id: "18"
lanes: "4:4"
serdes_group: "23"
speed: "100G"
sysport: "18"
type: "eth"
- fec: "KRFEC"
id: "19"
lanes: "4:4"
serdes_group: "22"
speed: "100G"
sysport: "19"
type: "eth"
- fec: "KRFEC"
id: "20"
lanes: "0:4"
serdes_group: "22"
speed: "100G"
sysport: "20"
type: "eth"
- fec: "KRFEC"
id: "21"
lanes: "0:4"
serdes_group: "21"
speed: "100G"
sysport: "21"
type: "eth"
- fec: "KRFEC"
id: "22"
lanes: "4:4"
serdes_group: "21"
speed: "100G"
sysport: "22"
type: "eth"
- fec: "KRFEC"
id: "23"
lanes: "4:4"
serdes_group: "20"
speed: "100G"
sysport: "23"
type: "eth"
- fec: "KRFEC"
id: "24"
lanes: "0:4"
serdes_group: "20"
speed: "100G"
sysport: "24"
type: "eth"
- fec: "KRFEC"
id: "25"
lanes: "0:4"
serdes_group: "19"
speed: "100G"
sysport: "25"
type: "eth"
- fec: "KRFEC"
id: "26"
lanes: "4:4"
serdes_group: "19"
speed: "100G"
sysport: "26"
type: "eth"
- fec: "KRFEC"
id: "27"
lanes: "4:4"
serdes_group: "18"
speed: "100G"
sysport: "27"
type: "eth"
- fec: "KRFEC"
id: "28"
lanes: "0:4"
serdes_group: "18"
speed: "100G"
sysport: "28"
type: "eth"
- fec: "KRFEC"
id: "29"
lanes: "0:4"
serdes_group: "17"
speed: "100G"
sysport: "29"
type: "eth"
- fec: "KRFEC"
id: "30"
lanes: "4:4"
serdes_group: "17"
speed: "100G"
sysport: "30"
type: "eth"
- fec: "KRFEC"
id: "31"
lanes: "4:4"
serdes_group: "16"
speed: "100G"
sysport: "31"
type: "eth"
- fec: "KRFEC"
id: "32"
lanes: "0:4"
serdes_group: "16"
speed: "100G"
sysport: "32"
type: "eth"
- fec: "KRFEC"
id: "33"
lanes: "0:4"
serdes_group: "15"
speed: "100G"
sysport: "33"
type: "eth"
- fec: "KRFEC"
id: "34"
lanes: "4:4"
serdes_group: "15"
speed: "100G"
sysport: "34"
type: "eth"
- fec: "KRFEC"
id: "35"
lanes: "4:4"
serdes_group: "14"
speed: "100G"
sysport: "35"
type: "eth"
- fec: "KRFEC"
id: "36"
lanes: "0:4"
serdes_group: "14"
speed: "100G"
sysport: "36"
type: "eth"
- fec: "KRFEC"
id: "37"
lanes: "0:4"
serdes_group: "13"
speed: "100G"
sysport: "37"
type: "eth"
- fec: "KRFEC"
id: "38"
lanes: "4:4"
serdes_group: "13"
speed: "100G"
sysport: "38"
type: "eth"
- fec: "KRFEC"
id: "39"
lanes: "4:4"
serdes_group: "12"
speed: "100G"
sysport: "39"
type: "eth"
- fec: "KRFEC"
id: "40"
lanes: "0:4"
serdes_group: "12"
speed: "100G"
sysport: "40"
type: "eth"
- fec: "KRFEC"
id: "41"
lanes: "0:4"
serdes_group: "11"
speed: "100G"
sysport: "41"
type: "eth"
- fec: "KRFEC"
id: "42"
lanes: "4:4"
serdes_group: "11"
speed: "100G"
sysport: "42"
type: "eth"
- fec: "KRFEC"
id: "43"
lanes: "4:4"
serdes_group: "10"
speed: "100G"
sysport: "43"
type: "eth"
- fec: "KRFEC"
id: "44"
lanes: "0:4"
serdes_group: "10"
speed: "100G"
sysport: "44"
type: "eth"
- fec: "KRFEC"
id: "45"
lanes: "0:4"
serdes_group: "9"
speed: "100G"
sysport: "45"
type: "eth"
- fec: "KRFEC"
id: "46"
lanes: "4:4"
serdes_group: "9"
speed: "100G"
sysport: "46"
type: "eth"
- fec: "KRFEC"
id: "47"
lanes: "4:4"
serdes_group: "8"
speed: "100G"
sysport: "47"
type: "eth"
- fec: "KRFEC"
id: "48"
lanes: "0:4"
serdes_group: "8"
speed: "100G"
sysport: "48"
type: "eth"
- fec: "KRFEC"
id: "49"
lanes: "0:4"
serdes_group: "7"
speed: "100G"
sysport: "49"
type: "eth"
- fec: "KRFEC"
id: "50"
lanes: "4:4"
serdes_group: "7"
speed: "100G"
sysport: "50"
type: "eth"
- fec: "KRFEC"
id: "51"
lanes: "4:4"
serdes_group: "6"
speed: "100G"
sysport: "51"
type: "eth"
- fec: "KRFEC"
id: "52"
lanes: "0:4"
serdes_group: "6"
speed: "100G"
sysport: "52"
type: "eth"
- fec: "KRFEC"
id: "53"
lanes: "0:4"
serdes_group: "5"
speed: "100G"
sysport: "53"
type: "eth"
- fec: "KRFEC"
id: "54"
lanes: "4:4"
serdes_group: "5"
speed: "100G"
sysport: "54"
type: "eth"
- fec: "KRFEC"
id: "55"
lanes: "4:4"
serdes_group: "4"
speed: "100G"
sysport: "55"
type: "eth"
- fec: "KRFEC"
id: "56"
lanes: "0:4"
serdes_group: "4"
speed: "100G"
sysport: "56"
type: "eth"
- fec: "KRFEC"
id: "57"
lanes: "0:4"
serdes_group: "3"
speed: "100G"
sysport: "57"
type: "eth"
- fec: "KRFEC"
id: "58"
lanes: "4:4"
serdes_group: "3"
speed: "100G"
sysport: "58"
type: "eth"
- fec: "KRFEC"
id: "59"
lanes: "4:4"
serdes_group: "2"
speed: "100G"
sysport: "59"
type: "eth"
- fec: "KRFEC"
id: "60"
lanes: "0:4"
serdes_group: "2"
speed: "100G"
sysport: "60"
type: "eth"
- fec: "KRFEC"
id: "61"
lanes: "0:4"
serdes_group: "1"
speed: "100G"
sysport: "61"
type: "eth"
- fec: "KRFEC"
id: "62"
lanes: "4:4"
serdes_group: "1"
speed: "100G"
sysport: "62"
type: "eth"
- fec: "KRFEC"
id: "63"
lanes: "4:4"
serdes_group: "0"
speed: "100G"
sysport: "63"
type: "eth"
- fec: "KRFEC"
id: "64"
lanes: "0:4"
serdes_group: "0"
speed: "100G"
sysport: "64"
type: "eth"
isg:
- id: "0"
tx_polarity: "00101001"
rx_polarity: "01110001"
lane_swap: "01234567"
- id: "1"
tx_polarity: "10111111"
rx_polarity: "11100100"
lane_swap: "01234567"
- id: "2"
tx_polarity: "00100010"
rx_polarity: "00010001"
lane_swap: "01234567"
- id: "3"
tx_polarity: "00101010"
rx_polarity: "11011101"
lane_swap: "01234567"
- id: "4"
tx_polarity: "10111110"
rx_polarity: "10010101"
lane_swap: "01234567"
- id: "5"
tx_polarity: "01101000"
rx_polarity: "10111001"
lane_swap: "01234567"
- id: "6"
tx_polarity: "01110110"
rx_polarity: "01110011"
lane_swap: "01234567"
- id: "7"
tx_polarity: "01001000"
rx_polarity: "10111001"
lane_swap: "01234567"
- id: "8"
tx_polarity: "11000100"
rx_polarity: "01000000"
lane_swap: "01234567"
- id: "9"
tx_polarity: "10001010"
rx_polarity: "10100100"
lane_swap: "01234567"
- id: "10"
tx_polarity: "11000110"
rx_polarity: "00011101"
lane_swap: "01234567"
- id: "11"
tx_polarity: "01000111"
rx_polarity: "00000101"
lane_swap: "01234567"
- id: "12"
tx_polarity: "01111000"
rx_polarity: "11100000"
lane_swap: "01234567"
- id: "13"
tx_polarity: "10011111"
rx_polarity: "00101111"
lane_swap: "01234567"
- id: "14"
tx_polarity: "00101001"
rx_polarity: "00011000"
lane_swap: "01234567"
- id: "15"
tx_polarity: "10110111"
rx_polarity: "00110110"
lane_swap: "01234567"
- id: "16"
tx_polarity: "00101001"
rx_polarity: "00000111"
lane_swap: "01234567"
- id: "17"
tx_polarity: "10100111"
rx_polarity: "10001000"
lane_swap: "01234567"
- id: "18"
tx_polarity: "00011001"
rx_polarity: "11111110"
lane_swap: "01234567"
- id: "19"
tx_polarity: "10010101"
rx_polarity: "10011010"
lane_swap: "01234567"
- id: "20"
tx_polarity: "00101001"
rx_polarity: "01100000"
lane_swap: "01234567"
- id: "21"
tx_polarity: "10010111"
rx_polarity: "01111001"
lane_swap: "01234567"
- id: "22"
tx_polarity: "00101001"
rx_polarity: "11010011"
lane_swap: "01234567"
- id: "23"
tx_polarity: "10110111"
rx_polarity: "01111011"
lane_swap: "01234567"
- id: "24"
tx_polarity: "00101001"
rx_polarity: "11101011"
lane_swap: "01234567"
- id: "25"
tx_polarity: "10110111"
rx_polarity: "11010111"
lane_swap: "01234567"
- id: "26"
tx_polarity: "00100001"
rx_polarity: "00101101"
lane_swap: "01234567"
- id: "27"
tx_polarity: "11000111"
rx_polarity: "11011001"
lane_swap: "01234567"
- id: "28"
tx_polarity: "00100001"
rx_polarity: "01010011"
lane_swap: "01234567"
- id: "29"
tx_polarity: "10110111"
rx_polarity: "01111001"
lane_swap: "01234567"
- id: "30"
tx_polarity: "00101001"
rx_polarity: "00110001"
lane_swap: "01234567"
- id: "31"
tx_polarity: "10110101"
rx_polarity: "01101101"
lane_swap: "01234567"
- id: "32"
tx_polarity: "00000000"
rx_polarity: "00000000"
lane_swap: "01234567"

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -0,0 +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

View File

@ -0,0 +1,120 @@
{# 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 %}
{% 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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -0,0 +1,120 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '300m' %}
{% set default_ports_num = 128 -%}
{# 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*2)) %}{% 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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -0,0 +1,131 @@
# 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

View File

@ -0,0 +1,120 @@
{# 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 %}
{% 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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -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: "257"
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: "105"
lanes: "0:8"
serdes_group: "13"
speed: "400G"
sysport: "105"
type: "eth"
- fec: "KPFEC"
id: "97"
lanes: "0:8"
serdes_group: "12"
speed: "400G"
sysport: "97"
type: "eth"
- fec: "KPFEC"
id: "89"
lanes: "0:8"
serdes_group: "11"
speed: "400G"
sysport: "89"
type: "eth"
- fec: "KPFEC"
id: "81"
lanes: "0:8"
serdes_group: "10"
speed: "400G"
sysport: "81"
type: "eth"
- fec: "KPFEC"
id: "73"
lanes: "0:8"
serdes_group: "9"
speed: "400G"
sysport: "73"
type: "eth"
- fec: "KPFEC"
id: "65"
lanes: "0:8"
serdes_group: "8"
speed: "400G"
sysport: "65"
type: "eth"
- fec: "KPFEC"
id: "57"
lanes: "0:8"
serdes_group: "7"
speed: "400G"
sysport: "57"
type: "eth"
- fec: "KPFEC"
id: "49"
lanes: "0:8"
serdes_group: "6"
speed: "400G"
sysport: "49"
type: "eth"
- fec: "KPFEC"
id: "41"
lanes: "0:8"
serdes_group: "5"
speed: "400G"
sysport: "41"
type: "eth"
- fec: "KPFEC"
id: "33"
lanes: "0:8"
serdes_group: "4"
speed: "400G"
sysport: "33"
type: "eth"
- fec: "KPFEC"
id: "25"
lanes: "0:8"
serdes_group: "3"
speed: "400G"
sysport: "25"
type: "eth"
- fec: "KPFEC"
id: "17"
lanes: "0:8"
serdes_group: "2"
speed: "400G"
sysport: "17"
type: "eth"
- fec: "KPFEC"
id: "9"
lanes: "0:8"
serdes_group: "1"
speed: "400G"
sysport: "9"
type: "eth"
- fec: "KPFEC"
id: "1"
lanes: "0:8"
serdes_group: "0"
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"
rx_polarity: "01110001"
tx_polarity: "00101001"
- id: "1"
lane_swap: "01234567"
rx_polarity: "11100100"
tx_polarity: "10111111"
- id: "2"
lane_swap: "01234567"
rx_polarity: "00010001"
tx_polarity: "00100010"
- id: "3"
lane_swap: "01234567"
rx_polarity: "11011101"
tx_polarity: "00101010"
- id: "4"
lane_swap: "01234567"
rx_polarity: "10010101"
tx_polarity: "10111110"
- id: "5"
lane_swap: "01234567"
rx_polarity: "10111001"
tx_polarity: "01101000"
- id: "6"
lane_swap: "01234567"
rx_polarity: "01110011"
tx_polarity: "01110110"
- id: "7"
lane_swap: "01234567"
rx_polarity: "10111001"
tx_polarity: "01001000"
- id: "8"
lane_swap: "01234567"
rx_polarity: "01000000"
tx_polarity: "11000100"
- id: "9"
lane_swap: "01234567"
rx_polarity: "10100100"
tx_polarity: "10001010"
- id: "10"
lane_swap: "01234567"
rx_polarity: "00011101"
tx_polarity: "11000110"
- id: "11"
lane_swap: "01234567"
rx_polarity: "00000101"
tx_polarity: "01000111"
- id: "12"
lane_swap: "01234567"
rx_polarity: "11100000"
tx_polarity: "01111000"
- id: "13"
lane_swap: "01234567"
rx_polarity: "00101111"
tx_polarity: "10011111"
- id: "14"
lane_swap: "01234567"
rx_polarity: "00011000"
tx_polarity: "00101001"
- id: "15"
lane_swap: "01234567"
rx_polarity: "00110110"
tx_polarity: "10110111"
- id: "16"
lane_swap: "01234567"
rx_polarity: "00000111"
tx_polarity: "00101001"
- id: "17"
lane_swap: "01234567"
rx_polarity: "10001000"
tx_polarity: "10100111"
- id: "18"
lane_swap: "01234567"
rx_polarity: "11111110"
tx_polarity: "00011001"
- id: "19"
lane_swap: "01234567"
rx_polarity: "10011010"
tx_polarity: "10010101"
- id: "20"
lane_swap: "01234567"
rx_polarity: "01100000"
tx_polarity: "00101001"
- id: "21"
lane_swap: "01234567"
rx_polarity: "01111001"
tx_polarity: "10010111"
- id: "22"
lane_swap: "01234567"
rx_polarity: "11010011"
tx_polarity: "00101001"
- id: "23"
lane_swap: "01234567"
rx_polarity: "01111011"
tx_polarity: "10110111"
- id: "24"
lane_swap: "01234567"
rx_polarity: "11101011"
tx_polarity: "00101001"
- id: "25"
lane_swap: "01234567"
rx_polarity: "11010111"
tx_polarity: "10110111"
- id: "26"
lane_swap: "01234567"
rx_polarity: "00101101"
tx_polarity: "00100001"
- id: "27"
lane_swap: "01234567"
rx_polarity: "11011001"
tx_polarity: "11000111"
- id: "28"
lane_swap: "01234567"
rx_polarity: "01010011"
tx_polarity: "00100001"
- id: "29"
lane_swap: "01234567"
rx_polarity: "01111001"
tx_polarity: "10110111"
- id: "30"
lane_swap: "01234567"
rx_polarity: "00110001"
tx_polarity: "00101001"
- id: "31"
lane_swap: "01234567"
rx_polarity: "01101101"
tx_polarity: "10110101"
- id: "32"
lane_swap: "01234567"
rx_polarity: "00000000"
tx_polarity: "00000000"

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -0,0 +1,35 @@
# 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

View File

@ -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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -0,0 +1,120 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '300m' %}
{% set default_ports_num = 64 -%}
{# 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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -0,0 +1,785 @@
ifcs:
options:
log_level: "off"
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"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "253"
lanes: "4:4"
serdes_group: "31"
speed: "100G"
sysport: "253"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "245"
lanes: "4:4"
serdes_group: "30"
speed: "100G"
sysport: "245"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "241"
lanes: "0:4"
serdes_group: "30"
speed: "100G"
sysport: "241"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "233"
lanes: "0:4"
serdes_group: "29"
speed: "100G"
sysport: "233"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "237"
lanes: "4:4"
serdes_group: "29"
speed: "100G"
sysport: "237"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "229"
lanes: "4:4"
serdes_group: "28"
speed: "100G"
sysport: "229"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "225"
lanes: "0:4"
serdes_group: "28"
speed: "100G"
sysport: "225"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "217"
lanes: "0:4"
serdes_group: "27"
speed: "100G"
sysport: "217"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "221"
lanes: "4:4"
serdes_group: "27"
speed: "100G"
sysport: "221"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "213"
lanes: "4:4"
serdes_group: "26"
speed: "100G"
sysport: "213"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "209"
lanes: "0:4"
serdes_group: "26"
speed: "100G"
sysport: "209"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "201"
lanes: "0:4"
serdes_group: "25"
speed: "100G"
sysport: "201"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "205"
lanes: "4:4"
serdes_group: "25"
speed: "100G"
sysport: "205"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "197"
lanes: "4:4"
serdes_group: "24"
speed: "100G"
sysport: "197"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "193"
lanes: "0:4"
serdes_group: "24"
speed: "100G"
sysport: "193"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "185"
lanes: "0:4"
serdes_group: "23"
speed: "100G"
sysport: "185"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "189"
lanes: "4:4"
serdes_group: "23"
speed: "100G"
sysport: "189"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "181"
lanes: "4:4"
serdes_group: "22"
speed: "100G"
sysport: "181"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "177"
lanes: "0:4"
serdes_group: "22"
speed: "100G"
sysport: "177"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "169"
lanes: "0:4"
serdes_group: "21"
speed: "100G"
sysport: "169"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "173"
lanes: "4:4"
serdes_group: "21"
speed: "100G"
sysport: "173"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "165"
lanes: "4:4"
serdes_group: "20"
speed: "100G"
sysport: "165"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "161"
lanes: "0:4"
serdes_group: "20"
speed: "100G"
sysport: "161"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "153"
lanes: "0:4"
serdes_group: "19"
speed: "100G"
sysport: "153"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "157"
lanes: "4:4"
serdes_group: "19"
speed: "100G"
sysport: "157"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "149"
lanes: "4:4"
serdes_group: "18"
speed: "100G"
sysport: "149"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "145"
lanes: "0:4"
serdes_group: "18"
speed: "100G"
sysport: "145"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "137"
lanes: "0:4"
serdes_group: "17"
speed: "100G"
sysport: "137"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "141"
lanes: "4:4"
serdes_group: "17"
speed: "100G"
sysport: "141"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "133"
lanes: "4:4"
serdes_group: "16"
speed: "100G"
sysport: "133"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "129"
lanes: "0:4"
serdes_group: "16"
speed: "100G"
sysport: "129"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "121"
lanes: "0:4"
serdes_group: "15"
speed: "100G"
sysport: "121"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "125"
lanes: "4:4"
serdes_group: "15"
speed: "100G"
sysport: "125"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "117"
lanes: "4:4"
serdes_group: "14"
speed: "100G"
sysport: "117"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "113"
lanes: "0:4"
serdes_group: "14"
speed: "100G"
sysport: "113"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "105"
lanes: "0:4"
serdes_group: "13"
speed: "100G"
sysport: "105"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "109"
lanes: "4:4"
serdes_group: "13"
speed: "100G"
sysport: "109"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "101"
lanes: "4:4"
serdes_group: "12"
speed: "100G"
sysport: "101"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "97"
lanes: "0:4"
serdes_group: "12"
speed: "100G"
sysport: "97"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "89"
lanes: "0:4"
serdes_group: "11"
speed: "100G"
sysport: "89"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "93"
lanes: "4:4"
serdes_group: "11"
speed: "100G"
sysport: "93"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "85"
lanes: "4:4"
serdes_group: "10"
speed: "100G"
sysport: "85"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "81"
lanes: "0:4"
serdes_group: "10"
speed: "100G"
sysport: "81"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "73"
lanes: "0:4"
serdes_group: "9"
speed: "100G"
sysport: "73"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "77"
lanes: "4:4"
serdes_group: "9"
speed: "100G"
sysport: "77"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "69"
lanes: "4:4"
serdes_group: "8"
speed: "100G"
sysport: "69"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "65"
lanes: "0:4"
serdes_group: "8"
speed: "100G"
sysport: "65"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "57"
lanes: "0:4"
serdes_group: "7"
speed: "100G"
sysport: "57"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "61"
lanes: "4:4"
serdes_group: "7"
speed: "100G"
sysport: "61"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "53"
lanes: "4:4"
serdes_group: "6"
speed: "100G"
sysport: "53"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "49"
lanes: "0:4"
serdes_group: "6"
speed: "100G"
sysport: "49"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "53"
lanes: "0:4"
serdes_group: "5"
speed: "100G"
sysport: "53"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "45"
lanes: "4:4"
serdes_group: "5"
speed: "100G"
sysport: "45"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "37"
lanes: "4:4"
serdes_group: "4"
speed: "100G"
sysport: "37"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "33"
lanes: "0:4"
serdes_group: "4"
speed: "100G"
sysport: "33"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "57"
lanes: "0:4"
serdes_group: "3"
speed: "100G"
sysport: "57"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "29"
lanes: "4:4"
serdes_group: "3"
speed: "100G"
sysport: "29"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "21"
lanes: "4:4"
serdes_group: "2"
speed: "100G"
sysport: "21"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "17"
lanes: "0:4"
serdes_group: "2"
speed: "100G"
sysport: "17"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "61"
lanes: "0:4"
serdes_group: "1"
speed: "100G"
sysport: "61"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "13"
lanes: "4:4"
serdes_group: "1"
speed: "100G"
sysport: "13"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "5"
lanes: "4:4"
serdes_group: "0"
speed: "100G"
sysport: "5"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "1"
lanes: "0:4"
serdes_group: "0"
speed: "100G"
sysport: "1"
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"
rx_polarity: "01110001"
tx_polarity: "00101001"
- id: "1"
lane_swap: "01234567"
rx_polarity: "11100100"
tx_polarity: "10111111"
- id: "2"
lane_swap: "01234567"
rx_polarity: "00010001"
tx_polarity: "00100010"
- id: "3"
lane_swap: "01234567"
rx_polarity: "11011101"
tx_polarity: "00101010"
- id: "4"
lane_swap: "01234567"
rx_polarity: "10010101"
tx_polarity: "10111110"
- id: "5"
lane_swap: "01234567"
rx_polarity: "10111001"
tx_polarity: "01101000"
- id: "6"
lane_swap: "01234567"
rx_polarity: "01110011"
tx_polarity: "01110110"
- id: "7"
lane_swap: "01234567"
rx_polarity: "10111001"
tx_polarity: "01001000"
- id: "8"
lane_swap: "01234567"
rx_polarity: "01000000"
tx_polarity: "11000100"
- id: "9"
lane_swap: "01234567"
rx_polarity: "10100100"
tx_polarity: "10001010"
- id: "10"
lane_swap: "01234567"
rx_polarity: "00011101"
tx_polarity: "11000110"
- id: "11"
lane_swap: "01234567"
rx_polarity: "00000101"
tx_polarity: "01000111"
- id: "12"
lane_swap: "01234567"
rx_polarity: "11100000"
tx_polarity: "01111000"
- id: "13"
lane_swap: "01234567"
rx_polarity: "00101111"
tx_polarity: "10011111"
- id: "14"
lane_swap: "01234567"
rx_polarity: "00011000"
tx_polarity: "00101001"
- id: "15"
lane_swap: "01234567"
rx_polarity: "00110110"
tx_polarity: "10110111"
- id: "16"
lane_swap: "01234567"
rx_polarity: "00000111"
tx_polarity: "00101001"
- id: "17"
lane_swap: "01234567"
rx_polarity: "10001000"
tx_polarity: "10100111"
- id: "18"
lane_swap: "01234567"
rx_polarity: "11111110"
tx_polarity: "00011001"
- id: "19"
lane_swap: "01234567"
rx_polarity: "10011010"
tx_polarity: "10010101"
- id: "20"
lane_swap: "01234567"
rx_polarity: "01100000"
tx_polarity: "00101001"
- id: "21"
lane_swap: "01234567"
rx_polarity: "01111001"
tx_polarity: "10010111"
- id: "22"
lane_swap: "01234567"
rx_polarity: "11010011"
tx_polarity: "00101001"
- id: "23"
lane_swap: "01234567"
rx_polarity: "01111011"
tx_polarity: "10110111"
- id: "24"
lane_swap: "01234567"
rx_polarity: "11101011"
tx_polarity: "00101001"
- id: "25"
lane_swap: "01234567"
rx_polarity: "11010111"
tx_polarity: "10110111"
- id: "26"
lane_swap: "01234567"
rx_polarity: "00101101"
tx_polarity: "00100001"
- id: "27"
lane_swap: "01234567"
rx_polarity: "11011001"
tx_polarity: "11000111"
- id: "28"
lane_swap: "01234567"
rx_polarity: "01010011"
tx_polarity: "00100001"
- id: "29"
lane_swap: "01234567"
rx_polarity: "01111001"
tx_polarity: "10110111"
- id: "30"
lane_swap: "01234567"
rx_polarity: "00110001"
tx_polarity: "00101001"
- id: "31"
lane_swap: "01234567"
rx_polarity: "01101101"
tx_polarity: "10110101"
- id: "32"
lane_swap: "01234567"
rx_polarity: "00000000"
tx_polarity: "00000000"

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -0,0 +1,67 @@
# 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

View File

@ -0,0 +1,120 @@
{# 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 %}
{% 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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -0,0 +1,121 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '300m' %}
{% set default_speed = '100G' %}
{% 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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -0,0 +1,767 @@
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: "bootstrap_lossless"
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: "65"
type: "cpu"
- fec: "KRFEC"
id: "1"
lanes: "0:4"
serdes_group: "31"
speed: "100G"
sysport: "1"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "2"
lanes: "4:4"
serdes_group: "31"
speed: "100G"
sysport: "2"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "3"
lanes: "4:4"
serdes_group: "30"
speed: "100G"
sysport: "3"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "4"
lanes: "0:4"
serdes_group: "30"
speed: "100G"
sysport: "4"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "5"
lanes: "0:4"
serdes_group: "29"
speed: "100G"
sysport: "5"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "6"
lanes: "4:4"
serdes_group: "29"
speed: "100G"
sysport: "6"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "7"
lanes: "4:4"
serdes_group: "28"
speed: "100G"
sysport: "7"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "8"
lanes: "0:4"
serdes_group: "28"
speed: "100G"
sysport: "8"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "9"
lanes: "0:4"
serdes_group: "27"
speed: "100G"
sysport: "9"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "10"
lanes: "4:4"
serdes_group: "27"
speed: "100G"
sysport: "10"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "11"
lanes: "4:4"
serdes_group: "26"
speed: "100G"
sysport: "11"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "12"
lanes: "0:4"
serdes_group: "26"
speed: "100G"
sysport: "12"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "13"
lanes: "0:4"
serdes_group: "25"
speed: "100G"
sysport: "13"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "14"
lanes: "4:4"
serdes_group: "25"
speed: "100G"
sysport: "14"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "15"
lanes: "4:4"
serdes_group: "24"
speed: "100G"
sysport: "15"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "16"
lanes: "0:4"
serdes_group: "24"
speed: "100G"
sysport: "16"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "17"
lanes: "0:4"
serdes_group: "23"
speed: "100G"
sysport: "17"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "18"
lanes: "4:4"
serdes_group: "23"
speed: "100G"
sysport: "18"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "19"
lanes: "4:4"
serdes_group: "22"
speed: "100G"
sysport: "19"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "20"
lanes: "0:4"
serdes_group: "22"
speed: "100G"
sysport: "20"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "21"
lanes: "0:4"
serdes_group: "21"
speed: "100G"
sysport: "21"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "22"
lanes: "4:4"
serdes_group: "21"
speed: "100G"
sysport: "22"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "23"
lanes: "4:4"
serdes_group: "20"
speed: "100G"
sysport: "23"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "24"
lanes: "0:4"
serdes_group: "20"
speed: "100G"
sysport: "24"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "25"
lanes: "0:4"
serdes_group: "19"
speed: "100G"
sysport: "25"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "26"
lanes: "4:4"
serdes_group: "19"
speed: "100G"
sysport: "26"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "27"
lanes: "4:4"
serdes_group: "18"
speed: "100G"
sysport: "27"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "28"
lanes: "0:4"
serdes_group: "18"
speed: "100G"
sysport: "28"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "29"
lanes: "0:4"
serdes_group: "17"
speed: "100G"
sysport: "29"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "30"
lanes: "4:4"
serdes_group: "17"
speed: "100G"
sysport: "30"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "31"
lanes: "4:4"
serdes_group: "16"
speed: "100G"
sysport: "31"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "32"
lanes: "0:4"
serdes_group: "16"
speed: "100G"
sysport: "32"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "33"
lanes: "0:4"
serdes_group: "15"
speed: "100G"
sysport: "33"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "34"
lanes: "4:4"
serdes_group: "15"
speed: "100G"
sysport: "34"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "35"
lanes: "4:4"
serdes_group: "14"
speed: "100G"
sysport: "35"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "36"
lanes: "0:4"
serdes_group: "14"
speed: "100G"
sysport: "36"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "37"
lanes: "0:4"
serdes_group: "13"
speed: "100G"
sysport: "37"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "38"
lanes: "4:4"
serdes_group: "13"
speed: "100G"
sysport: "38"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "39"
lanes: "4:4"
serdes_group: "12"
speed: "100G"
sysport: "39"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "40"
lanes: "0:4"
serdes_group: "12"
speed: "100G"
sysport: "40"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "41"
lanes: "0:4"
serdes_group: "11"
speed: "100G"
sysport: "41"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "42"
lanes: "4:4"
serdes_group: "11"
speed: "100G"
sysport: "42"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "43"
lanes: "4:4"
serdes_group: "10"
speed: "100G"
sysport: "43"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "44"
lanes: "0:4"
serdes_group: "10"
speed: "100G"
sysport: "44"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "45"
lanes: "0:4"
serdes_group: "9"
speed: "100G"
sysport: "45"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "46"
lanes: "4:4"
serdes_group: "9"
speed: "100G"
sysport: "46"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "47"
lanes: "4:4"
serdes_group: "8"
speed: "100G"
sysport: "47"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "48"
lanes: "0:4"
serdes_group: "8"
speed: "100G"
sysport: "48"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "49"
lanes: "0:4"
serdes_group: "7"
speed: "100G"
sysport: "49"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "50"
lanes: "4:4"
serdes_group: "7"
speed: "100G"
sysport: "50"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "51"
lanes: "4:4"
serdes_group: "6"
speed: "100G"
sysport: "51"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "52"
lanes: "0:4"
serdes_group: "6"
speed: "100G"
sysport: "52"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "53"
lanes: "0:4"
serdes_group: "5"
speed: "100G"
sysport: "53"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "54"
lanes: "4:4"
serdes_group: "5"
speed: "100G"
sysport: "54"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "55"
lanes: "4:4"
serdes_group: "4"
speed: "100G"
sysport: "55"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "56"
lanes: "0:4"
serdes_group: "4"
speed: "100G"
sysport: "56"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "57"
lanes: "0:4"
serdes_group: "3"
speed: "100G"
sysport: "57"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "58"
lanes: "4:4"
serdes_group: "3"
speed: "100G"
sysport: "58"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "59"
lanes: "4:4"
serdes_group: "2"
speed: "100G"
sysport: "59"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "60"
lanes: "0:4"
serdes_group: "2"
speed: "100G"
sysport: "60"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "61"
lanes: "0:4"
serdes_group: "1"
speed: "100G"
sysport: "61"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "62"
lanes: "4:4"
serdes_group: "1"
speed: "100G"
sysport: "62"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "63"
lanes: "4:4"
serdes_group: "0"
speed: "100G"
sysport: "63"
type: "eth"
admin_state: "true"
loopback: "none"
- fec: "KRFEC"
id: "64"
lanes: "0:4"
serdes_group: "0"
speed: "100G"
sysport: "64"
type: "eth"
admin_state: "true"
loopback: "none"
isg:
- id: "0"
lane_swap: "01234567"
rx_polarity: "01110001"
tx_polarity: "00101001"
- id: "1"
lane_swap: "01234567"
rx_polarity: "11100100"
tx_polarity: "10111111"
- id: "2"
lane_swap: "01234567"
rx_polarity: "00010001"
tx_polarity: "00100010"
- id: "3"
lane_swap: "01234567"
rx_polarity: "11011101"
tx_polarity: "00101010"
- id: "4"
lane_swap: "01234567"
rx_polarity: "10010101"
tx_polarity: "10111110"
- id: "5"
lane_swap: "01234567"
rx_polarity: "10111001"
tx_polarity: "01101000"
- id: "6"
lane_swap: "01234567"
rx_polarity: "01110011"
tx_polarity: "01110110"
- id: "7"
lane_swap: "01234567"
rx_polarity: "10111001"
tx_polarity: "01001000"
- id: "8"
lane_swap: "01234567"
rx_polarity: "01000000"
tx_polarity: "11000100"
- id: "9"
lane_swap: "01234567"
rx_polarity: "10100100"
tx_polarity: "10001010"
- id: "10"
lane_swap: "01234567"
rx_polarity: "00011101"
tx_polarity: "11000110"
- id: "11"
lane_swap: "01234567"
rx_polarity: "00000101"
tx_polarity: "01000111"
- id: "12"
lane_swap: "01234567"
rx_polarity: "11100000"
tx_polarity: "01111000"
- id: "13"
lane_swap: "01234567"
rx_polarity: "00101111"
tx_polarity: "10011111"
- id: "14"
lane_swap: "01234567"
rx_polarity: "00011000"
tx_polarity: "00101001"
- id: "15"
lane_swap: "01234567"
rx_polarity: "00110110"
tx_polarity: "10110111"
- id: "16"
lane_swap: "01234567"
rx_polarity: "00000111"
tx_polarity: "00101001"
- id: "17"
lane_swap: "01234567"
rx_polarity: "10001000"
tx_polarity: "10100111"
- id: "18"
lane_swap: "01234567"
rx_polarity: "11111110"
tx_polarity: "00011001"
- id: "19"
lane_swap: "01234567"
rx_polarity: "10011010"
tx_polarity: "10010101"
- id: "20"
lane_swap: "01234567"
rx_polarity: "01100000"
tx_polarity: "00101001"
- id: "21"
lane_swap: "01234567"
rx_polarity: "01111001"
tx_polarity: "10010111"
- id: "22"
lane_swap: "01234567"
rx_polarity: "11010011"
tx_polarity: "00101001"
- id: "23"
lane_swap: "01234567"
rx_polarity: "01111011"
tx_polarity: "10110111"
- id: "24"
lane_swap: "01234567"
rx_polarity: "11101011"
tx_polarity: "00101001"
- id: "25"
lane_swap: "01234567"
rx_polarity: "11010111"
tx_polarity: "10110111"
- id: "26"
lane_swap: "01234567"
rx_polarity: "00101101"
tx_polarity: "00100001"
- id: "27"
lane_swap: "01234567"
rx_polarity: "11011001"
tx_polarity: "11000111"
- id: "28"
lane_swap: "01234567"
rx_polarity: "01010011"
tx_polarity: "00100001"
- id: "29"
lane_swap: "01234567"
rx_polarity: "01111001"
tx_polarity: "10110111"
- id: "30"
lane_swap: "01234567"
rx_polarity: "00110001"
tx_polarity: "00101001"
- id: "31"
lane_swap: "01234567"
rx_polarity: "01101101"
tx_polarity: "10110101"
- id: "32"
lane_swap: "01234567"
rx_polarity: "00000000"
tx_polarity: "00000000"

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
INNOVIUM_DIR : "/innovium"
PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils"

View File

@ -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

View File

@ -0,0 +1,65 @@
# name lanes speed mtu
Ethernet0 249,250,251,252 100000 9126
Ethernet4 253,254,255,256 100000 9126
Ethernet8 245,246,247,248 100000 9126
Ethernet12 241,242,243,244 100000 9126
Ethernet16 233,234,235,236 100000 9126
Ethernet20 237,238,239,240 100000 9126
Ethernet24 229,230,231,232 100000 9126
Ethernet28 225,226,227,228 100000 9126
Ethernet32 217,218,219,220 100000 9126
Ethernet36 221,222,223,224 100000 9126
Ethernet40 213,214,215,216 100000 9126
Ethernet44 209,210,211,212 100000 9126
Ethernet48 201,202,203,204 100000 9126
Ethernet52 205,206,207,208 100000 9126
Ethernet56 197,198,199,200 100000 9126
Ethernet60 193,194,195,196 100000 9126
Ethernet64 185,186,187,188 100000 9126
Ethernet68 189,190,191,192 100000 9126
Ethernet72 181,182,183,184 100000 9126
Ethernet76 177,178,179,180 100000 9126
Ethernet80 169,170,171,172 100000 9126
Ethernet84 173,174,175,176 100000 9126
Ethernet88 165,166,167,168 100000 9126
Ethernet92 161,162,163,164 100000 9126
Ethernet96 153,154,155,156 100000 9126
Ethernet100 157,158,159,160 100000 9126
Ethernet104 149,150,151,152 100000 9126
Ethernet108 145,146,147,148 100000 9126
Ethernet112 137,138,139,140 100000 9126
Ethernet116 141,142,143,144 100000 9126
Ethernet120 133,134,135,136 100000 9126
Ethernet124 129,130,131,132 100000 9126
Ethernet128 121,122,123,124 100000 9126
Ethernet132 125,126,127,128 100000 9126
Ethernet136 117,118,119,120 100000 9126
Ethernet140 113,114,115,116 100000 9126
Ethernet144 105,106,107,108 100000 9126
Ethernet148 109,110,111,112 100000 9126
Ethernet152 101,102,103,104 100000 9126
Ethernet156 97,98,99,100 100000 9126
Ethernet160 89,90,91,92 100000 9126
Ethernet164 93,94,95,96 100000 9126
Ethernet168 85,86,87,88 100000 9126
Ethernet172 81,82,83,84 100000 9126
Ethernet176 73,74,75,76 100000 9126
Ethernet180 77,78,79,80 100000 9126
Ethernet184 69,70,71,72 100000 9126
Ethernet188 65,66,67,68 100000 9126
Ethernet192 57,58,59,60 100000 9126
Ethernet196 61,62,63,64 100000 9126
Ethernet200 53,54,55,56 100000 9126
Ethernet204 49,50,51,52 100000 9126
Ethernet208 41,42,43,44 100000 9126
Ethernet212 45,46,47,48 100000 9126
Ethernet216 37,38,39,40 100000 9126
Ethernet220 33,34,35,36 100000 9126
Ethernet224 25,26,27,28 100000 9126
Ethernet228 29,30,31,32 100000 9126
Ethernet232 21,22,23,24 100000 9126
Ethernet236 17,18,19,20 100000 9126
Ethernet240 9,10,11,12 100000 9126
Ethernet244 13,14,15,16 100000 9126
Ethernet248 5,6,7,8 100000 9126
Ethernet252 1,2,3,4 100000 9126

View File

@ -0,0 +1,102 @@
{
"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": {
"Ethernet180,Ethernet8,Ethernet44,Ethernet184,Ethernet188,Ethernet0,Ethernet4,Ethernet108,Ethernet248,Ethernet100,Ethernet244,Ethernet128,Ethernet104,Ethernet240,Ethernet40,Ethernet228,Ethernet96,Ethernet168,Ethernet148,Ethernet204,Ethernet120,Ethernet220,Ethernet144,Ethernet208,Ethernet160,Ethernet224,Ethernet140,Ethernet56,Ethernet164,Ethernet76,Ethernet72,Ethernet32,Ethernet16,Ethernet36,Ethernet12,Ethernet196,Ethernet28,Ethernet192,Ethernet200,Ethernet124,Ethernet24,Ethernet116,Ethernet80,Ethernet112,Ethernet84,Ethernet152,Ethernet136,Ethernet156,Ethernet92,Ethernet132,Ethernet48,Ethernet232,Ethernet172,Ethernet216,Ethernet236,Ethernet176,Ethernet212,Ethernet64,Ethernet88,Ethernet60,Ethernet52,Ethernet20,Ethernet68,Ethernet252": {
"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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -0,0 +1,120 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '300m' %}
{% set default_ports_num = 64 -%}
{# 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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -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: "245"
lanes: "4:4"
serdes_group: "30"
speed: "200G"
sysport: "245"
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: "237"
lanes: "4:4"
serdes_group: "29"
speed: "200G"
sysport: "237"
type: "eth"
- fec: "KPFEC"
id: "229"
lanes: "4:4"
serdes_group: "28"
speed: "200G"
sysport: "229"
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: "221"
lanes: "4:4"
serdes_group: "27"
speed: "200G"
sysport: "221"
type: "eth"
- fec: "KPFEC"
id: "213"
lanes: "4:4"
serdes_group: "26"
speed: "200G"
sysport: "213"
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: "205"
lanes: "4:4"
serdes_group: "25"
speed: "200G"
sysport: "205"
type: "eth"
- fec: "KPFEC"
id: "197"
lanes: "4:4"
serdes_group: "24"
speed: "200G"
sysport: "197"
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: "189"
lanes: "4:4"
serdes_group: "23"
speed: "200G"
sysport: "189"
type: "eth"
- fec: "KPFEC"
id: "181"
lanes: "4:4"
serdes_group: "22"
speed: "200G"
sysport: "181"
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: "173"
lanes: "4:4"
serdes_group: "21"
speed: "200G"
sysport: "173"
type: "eth"
- fec: "KPFEC"
id: "165"
lanes: "4:4"
serdes_group: "20"
speed: "200G"
sysport: "165"
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: "157"
lanes: "4:4"
serdes_group: "19"
speed: "200G"
sysport: "157"
type: "eth"
- fec: "KPFEC"
id: "149"
lanes: "4:4"
serdes_group: "18"
speed: "200G"
sysport: "149"
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: "141"
lanes: "4:4"
serdes_group: "17"
speed: "200G"
sysport: "141"
type: "eth"
- fec: "KPFEC"
id: "133"
lanes: "4:4"
serdes_group: "16"
speed: "200G"
sysport: "133"
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: "125"
lanes: "4:4"
serdes_group: "15"
speed: "200G"
sysport: "125"
type: "eth"
- fec: "KPFEC"
id: "117"
lanes: "4:4"
serdes_group: "14"
speed: "200G"
sysport: "117"
type: "eth"
- fec: "KPFEC"
id: "113"
lanes: "0:4"
serdes_group: "14"
speed: "200G"
sysport: "113"
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: "101"
lanes: "4:4"
serdes_group: "12"
speed: "200G"
sysport: "101"
type: "eth"
- fec: "KPFEC"
id: "97"
lanes: "0:4"
serdes_group: "12"
speed: "200G"
sysport: "97"
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: "85"
lanes: "4:4"
serdes_group: "10"
speed: "200G"
sysport: "85"
type: "eth"
- fec: "KPFEC"
id: "81"
lanes: "0:4"
serdes_group: "10"
speed: "200G"
sysport: "81"
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: "69"
lanes: "4:4"
serdes_group: "8"
speed: "200G"
sysport: "69"
type: "eth"
- fec: "KPFEC"
id: "65"
lanes: "0:4"
serdes_group: "8"
speed: "200G"
sysport: "65"
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: "53"
lanes: "4:4"
serdes_group: "6"
speed: "200G"
sysport: "53"
type: "eth"
- fec: "KPFEC"
id: "49"
lanes: "0:4"
serdes_group: "6"
speed: "200G"
sysport: "49"
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: "37"
lanes: "4:4"
serdes_group: "4"
speed: "200G"
sysport: "37"
type: "eth"
- fec: "KPFEC"
id: "33"
lanes: "0:4"
serdes_group: "4"
speed: "200G"
sysport: "33"
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: "21"
lanes: "4:4"
serdes_group: "2"
speed: "200G"
sysport: "21"
type: "eth"
- fec: "KPFEC"
id: "17"
lanes: "0:4"
serdes_group: "2"
speed: "200G"
sysport: "17"
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: "KPFEC"
id: "5"
lanes: "4:4"
serdes_group: "0"
speed: "200G"
sysport: "5"
type: "eth"
- fec: "KPFEC"
id: "1"
lanes: "0:4"
serdes_group: "0"
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"
rx_polarity: "01110001"
tx_polarity: "00101001"
- id: "1"
lane_swap: "01234567"
rx_polarity: "11100100"
tx_polarity: "10111111"
- id: "2"
lane_swap: "01234567"
rx_polarity: "00010001"
tx_polarity: "00100010"
- id: "3"
lane_swap: "01234567"
rx_polarity: "11011101"
tx_polarity: "00101010"
- id: "4"
lane_swap: "01234567"
rx_polarity: "10010101"
tx_polarity: "10111110"
- id: "5"
lane_swap: "01234567"
rx_polarity: "10111001"
tx_polarity: "01101000"
- id: "6"
lane_swap: "01234567"
rx_polarity: "01110011"
tx_polarity: "01110110"
- id: "7"
lane_swap: "01234567"
rx_polarity: "10111001"
tx_polarity: "01001000"
- id: "8"
lane_swap: "01234567"
rx_polarity: "01000000"
tx_polarity: "11000100"
- id: "9"
lane_swap: "01234567"
rx_polarity: "10100100"
tx_polarity: "10001010"
- id: "10"
lane_swap: "01234567"
rx_polarity: "00011101"
tx_polarity: "11000110"
- id: "11"
lane_swap: "01234567"
rx_polarity: "00000101"
tx_polarity: "01000111"
- id: "12"
lane_swap: "01234567"
rx_polarity: "11100000"
tx_polarity: "01111000"
- id: "13"
lane_swap: "01234567"
rx_polarity: "00101111"
tx_polarity: "10011111"
- id: "14"
lane_swap: "01234567"
rx_polarity: "00011000"
tx_polarity: "00101001"
- id: "15"
lane_swap: "01234567"
rx_polarity: "00110110"
tx_polarity: "10110111"
- id: "16"
lane_swap: "01234567"
rx_polarity: "00000111"
tx_polarity: "00101001"
- id: "17"
lane_swap: "01234567"
rx_polarity: "10001000"
tx_polarity: "10100111"
- id: "18"
lane_swap: "01234567"
rx_polarity: "11111110"
tx_polarity: "00011001"
- id: "19"
lane_swap: "01234567"
rx_polarity: "10011010"
tx_polarity: "10010101"
- id: "20"
lane_swap: "01234567"
rx_polarity: "01100000"
tx_polarity: "00101001"
- id: "21"
lane_swap: "01234567"
rx_polarity: "01111001"
tx_polarity: "10010111"
- id: "22"
lane_swap: "01234567"
rx_polarity: "11010011"
tx_polarity: "00101001"
- id: "23"
lane_swap: "01234567"
rx_polarity: "01111011"
tx_polarity: "10110111"
- id: "24"
lane_swap: "01234567"
rx_polarity: "11101011"
tx_polarity: "00101001"
- id: "25"
lane_swap: "01234567"
rx_polarity: "11010111"
tx_polarity: "10110111"
- id: "26"
lane_swap: "01234567"
rx_polarity: "00101101"
tx_polarity: "00100001"
- id: "27"
lane_swap: "01234567"
rx_polarity: "11011001"
tx_polarity: "11000111"
- id: "28"
lane_swap: "01234567"
rx_polarity: "01010011"
tx_polarity: "00100001"
- id: "29"
lane_swap: "01234567"
rx_polarity: "01111001"
tx_polarity: "10110111"
- id: "30"
lane_swap: "01234567"
rx_polarity: "00110001"
tx_polarity: "00101001"
- id: "31"
lane_swap: "01234567"
rx_polarity: "01101101"
tx_polarity: "10110101"
- id: "32"
lane_swap: "01234567"
rx_polarity: "00000000"
tx_polarity: "00000000"

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -0,0 +1,67 @@
# 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

View File

@ -0,0 +1,120 @@
{# 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 %}
{% 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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -0,0 +1 @@
Midstone-200i t1

View File

@ -0,0 +1,3 @@
CONSOLE_PORT=0x3f8
CONSOLE_DEV=0
CONSOLE_SPEED=115200

View File

@ -0,0 +1,22 @@
#!/usr/bin/env python
#############################################################################
# Celestica Midstone-200i
#
# 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, 0, '', True)

View File

@ -0,0 +1,61 @@
#!/usr/bin/env python
#############################################################################
# Celestica
#
# Module contains an implementation of SONiC PSU Base API and
# provides the PSUs status which are available in the platform
#
#############################################################################
import os.path
import subprocess
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)
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 <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 = 1
return status == 1
def get_psu_presence(self, index):
"""
Retrieves the presence status of power supply unit (PSU) defined
by 1-based index <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 = 1
return status == 1

View File

@ -0,0 +1,205 @@
# 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"""
PORT_START = 0
PORT_END = 65
QSFP_PORT_START = PORT_START
QSFP_PORT_END = 63
EEPROM_OFFSET = 1
_port_to_eeprom_mapping = {}
@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.QSFP_PORT_START, self.QSFP_PORT_END+1)
@property
def port_to_eeprom_mapping(self):
return self._port_to_eeprom_mapping
def __init__(self):
eeprom_path = "/sys/class/i2c-adapter/i2c-{0}/{0}-0050/eeprom"
if self.port_start == 1:
offset = self.EEPROM_OFFSET - 1
else:
offset = self.EEPROM_OFFSET
for x in range(self.port_start, self.port_end + 1):
self._port_to_eeprom_mapping[x] = eeprom_path.format(x + offset)
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
try:
reg_file = open("/sys/devices/platform/ms200i_cpld/qsfp_modprs")
except IOError as e:
print "Error: unable to open file: %s" % str(e)
return False
content = reg_file.readline().rstrip()
# content is a string containing the hex representation of the register
reg_value = int(content, 16)
# Determind if port_num start from 1 or 0
if self.port_start == 1:
bit_index = port_num - 1
else:
bit_index = port_num
# Mask off the bit corresponding to our port
mask = (1 << bit_index)
# 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:
return False
try:
reg_file = open("/sys/devices/platform/ms200i_cpld/qsfp_lpmode")
except IOError as e:
print "Error: unable to open file: %s" % str(e)
content = reg_file.readline().rstrip()
# content is a string containing the hex representation of the register
reg_value = int(content, 16)
# Determind if port_num start from 1 or 0
if self.port_start == 1:
bit_index = port_num - 1
else:
bit_index = port_num
# Mask off the bit corresponding to our port
mask = (1 << bit_index)
# 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:
return False
try:
reg_file = open("/sys/devices/platform/ms200i_cpld/qsfp_lpmode", "r+")
except IOError as e:
print "Error: unable to open file: %s" % str(e)
return False
content = reg_file.readline().rstrip()
# content is a string containing the hex representation of the register
reg_value = int(content, 16)
# Determind if port_num start from 1 or 0
if self.port_start == 1:
bit_index = port_num - 1
else:
bit_index = port_num
# Mask off the bit corresponding to our port
mask = (1 << bit_index)
# 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).strip('L')
reg_file.seek(0)
reg_file.write(content)
reg_file.close()
return True
def reset(self, port_num):
QSFP_RESET_REGISTER_DEVICE_FILE = "/sys/devices/platform/ms200i_cpld/qsfp_reset"
# Check for invalid port_num
if port_num < self.port_start or port_num > self.port_end:
return False
try:
reg_file = open(QSFP_RESET_REGISTER_DEVICE_FILE, "r+")
except IOError as e:
print "Error: unable to open file: %s" % str(e)
return False
content = reg_file.readline().rstrip()
# File content is a string containing the hex representation of the register
reg_value = int(content, 16)
# Determind if port_num start from 1 or 0
if self.port_start == 1:
bit_index = port_num - 1
else:
bit_index = port_num
# Mask off the bit corresponding to our port
mask = (1 << bit_index)
# ResetL is active low
reg_value = reg_value & ~mask
# Convert our register value back to a hex string and write back
reg_file.seek(0)
reg_file.write(hex(reg_value).rstrip('L'))
reg_file.close()
# 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
try:
reg_file = open(QSFP_RESET_REGISTER_DEVICE_FILE, "w")
except IOError as e:
print "Error: unable to open file: %s" % str(e)
return False
reg_value = reg_value | mask
reg_file.seek(0)
reg_file.write(hex(reg_value).rstrip('L'))
reg_file.close()
return True

View File

@ -0,0 +1,2 @@
# libsensors configuration file for Celestica Midstone-200i.
# The i2c bus portion is omit because adapter name

View File

@ -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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -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"

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -0,0 +1,35 @@
# 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

View File

@ -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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -0,0 +1,120 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '300m' %}
{% set default_ports_num = 128 -%}
{# 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*2)) %}{% 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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -0,0 +1,131 @@
# 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

View File

@ -0,0 +1,120 @@
{# 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 %}
{% 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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -0,0 +1,415 @@
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: "241"
lanes: "0:4"
serdes_group: "30"
speed: "100G"
sysport: "241"
type: "eth"
- fec: "KRFEC"
id: "233"
lanes: "0:4"
serdes_group: "29"
speed: "100G"
sysport: "233"
type: "eth"
- fec: "KRFEC"
id: "225"
lanes: "0:4"
serdes_group: "28"
speed: "100G"
sysport: "225"
type: "eth"
- fec: "KRFEC"
id: "217"
lanes: "0:4"
serdes_group: "27"
speed: "100G"
sysport: "217"
type: "eth"
- fec: "KRFEC"
id: "209"
lanes: "0:4"
serdes_group: "26"
speed: "100G"
sysport: "209"
type: "eth"
- fec: "KRFEC"
id: "201"
lanes: "0:4"
serdes_group: "25"
speed: "100G"
sysport: "201"
type: "eth"
- fec: "KRFEC"
id: "193"
lanes: "0:4"
serdes_group: "24"
speed: "100G"
sysport: "193"
type: "eth"
- fec: "KRFEC"
id: "185"
lanes: "0:4"
serdes_group: "23"
speed: "100G"
sysport: "185"
type: "eth"
- fec: "KRFEC"
id: "177"
lanes: "0:4"
serdes_group: "22"
speed: "100G"
sysport: "177"
type: "eth"
- fec: "KRFEC"
id: "169"
lanes: "0:4"
serdes_group: "21"
speed: "100G"
sysport: "169"
type: "eth"
- fec: "KRFEC"
id: "161"
lanes: "0:4"
serdes_group: "20"
speed: "100G"
sysport: "161"
type: "eth"
- fec: "KRFEC"
id: "153"
lanes: "0:4"
serdes_group: "19"
speed: "100G"
sysport: "153"
type: "eth"
- fec: "KRFEC"
id: "145"
lanes: "0:4"
serdes_group: "18"
speed: "100G"
sysport: "145"
type: "eth"
- fec: "KRFEC"
id: "137"
lanes: "0:4"
serdes_group: "17"
speed: "100G"
sysport: "137"
type: "eth"
- fec: "KRFEC"
id: "129"
lanes: "0:4"
serdes_group: "16"
speed: "100G"
sysport: "129"
type: "eth"
- fec: "KRFEC"
id: "121"
lanes: "0:4"
serdes_group: "15"
speed: "100G"
sysport: "121"
type: "eth"
- fec: "KRFEC"
id: "113"
lanes: "0:4"
serdes_group: "14"
speed: "100G"
sysport: "113"
type: "eth"
- fec: "KRFEC"
id: "97"
lanes: "0:4"
serdes_group: "12"
speed: "100G"
sysport: "97"
type: "eth"
- fec: "KRFEC"
id: "105"
lanes: "0:4"
serdes_group: "13"
speed: "100G"
sysport: "105"
type: "eth"
- fec: "KRFEC"
id: "81"
lanes: "0:4"
serdes_group: "10"
speed: "100G"
sysport: "81"
type: "eth"
- fec: "KRFEC"
id: "89"
lanes: "0:4"
serdes_group: "11"
speed: "100G"
sysport: "89"
type: "eth"
- fec: "KRFEC"
id: "65"
lanes: "0:4"
serdes_group: "8"
speed: "100G"
sysport: "65"
type: "eth"
- fec: "KRFEC"
id: "73"
lanes: "0:4"
serdes_group: "9"
speed: "100G"
sysport: "73"
type: "eth"
- fec: "KRFEC"
id: "49"
lanes: "0:4"
serdes_group: "6"
speed: "100G"
sysport: "49"
type: "eth"
- fec: "KRFEC"
id: "57"
lanes: "0:4"
serdes_group: "7"
speed: "100G"
sysport: "57"
type: "eth"
- fec: "KRFEC"
id: "33"
lanes: "0:4"
serdes_group: "4"
speed: "100G"
sysport: "33"
type: "eth"
- fec: "KRFEC"
id: "41"
lanes: "0:4"
serdes_group: "5"
speed: "100G"
sysport: "41"
type: "eth"
- fec: "KRFEC"
id: "17"
lanes: "0:4"
serdes_group: "2"
speed: "100G"
sysport: "17"
type: "eth"
- fec: "KRFEC"
id: "25"
lanes: "0:4"
serdes_group: "3"
speed: "100G"
sysport: "25"
type: "eth"
- fec: "KRFEC"
id: "1"
lanes: "0:4"
serdes_group: "0"
speed: "100G"
sysport: "1"
type: "eth"
- fec: "KRFEC"
id: "9"
lanes: "0:4"
serdes_group: "1"
speed: "100G"
sysport: "9"
type: "eth"
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"

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -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

View File

@ -0,0 +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

View File

@ -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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -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"

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -0,0 +1,35 @@
# 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

View File

@ -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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -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"

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,35 @@
# 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

View File

@ -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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -0,0 +1,120 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '300m' %}
{% set default_ports_num = 64 -%}
{# 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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -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"

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,120 @@
{# 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 %}
{% 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"
}
}
}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml

View File

@ -0,0 +1,120 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '300m' %}
{% set default_ports_num = 64 -%}
{# 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": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"size": "18874368",
"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":"9721600"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"0",
"static_th":"9721600"
},
"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]"
}
}
}

View File

@ -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"

View File

@ -0,0 +1,7 @@
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"
ULIMIT : "65536"
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"

View File

@ -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

View File

@ -0,0 +1,67 @@
# 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

View File

@ -0,0 +1,120 @@
{# 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 %}
{% 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"
}
}
}

Some files were not shown because too many files have changed in this diff Show More