[arista] Add DPB for Arista 7050 QX32 (#7342)

This change introduces dynamic port breakout (DPB) for Arista 7050 QX32 model by adding a new SKU suffixed with `-Flex`.

The breakout configuration allowed is the same as in mainline Arista EOS, i.e. 24 first ports are allowed to be used in 4x10G in addition to the default 40G mode. The last 8 ports are fixed to 40G. This is due to ASIC limitations of a total of 104 max ports.

**NOTE**: As described in https://github.com/aristanetworks/sonic/issues/30#issuecomment-820584113 front panel LEDs are likely not working when operating in breakout mode. It is not clear if the LEDs work correctly in 40G mode as I have not had a chance to physically inspect the switch with this patch.

Signed-off-by: Christian Svensson <blue@cmd.nu>
This commit is contained in:
Christian Svensson 2021-04-27 19:57:07 +02:00 committed by GitHub
parent a7e1f7cbad
commit 186e1b9b57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1716 additions and 2 deletions

View File

@ -0,0 +1,3 @@
{%- set default_topo = 't1' %}
{%- include 'buffers_config.j2' %}

View File

@ -0,0 +1,45 @@
{%- set default_cable = '300m' %}
{%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #}
{% for port_idx in range(0,32) %}
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
{% endfor %}
{%- endmacro %}
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "12766208",
"type": "ingress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "12766208",
"type": "egress",
"mode": "static"
},
"egress_lossy_pool": {
"size": "7326924",
"type": "egress",
"mode": "dynamic"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossless_pool]",
"size":"0",
"static_th":"12766208"
},
"egress_lossy_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"1518",
"dynamic_th":"3"
}
},
{%- endmacro %}

View File

@ -0,0 +1,45 @@
{%- set default_cable = '300m' %}
{%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #}
{% for port_idx in range(0,32) %}
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
{% endfor %}
{%- endmacro %}
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "12766208",
"type": "ingress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "12766208",
"type": "egress",
"mode": "static"
},
"egress_lossy_pool": {
"size": "7326924",
"type": "egress",
"mode": "dynamic"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossless_pool]",
"size":"0",
"static_th":"12766208"
},
"egress_lossy_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"1518",
"dynamic_th":"3"
}
},
{%- endmacro %}

View File

@ -0,0 +1,132 @@
{
"interfaces": {
"Ethernet0": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet4": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet8": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet12": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet16": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet20": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet24": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet28": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet32": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet36": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet40": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet44": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet48": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet52": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet56": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet60": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet64": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet68": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet72": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet76": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet80": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet84": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet88": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet92": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet96": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet100": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet104": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet108": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet112": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet116": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet120": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
},
"Ethernet124": {
"default_brkout_mode": "1x40G",
"autoneg": "off"
}
}
}

View File

@ -0,0 +1,11 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
40000 5m 46384 18432 45136 -3 2496
50000 5m 46592 18432 45344 -3 2496
100000 5m 48464 18432 47216 -3 2496
40000 40m 48464 18432 47216 -3 2496
50000 40m 49296 18432 48048 -3 2496
100000 40m 53872 18432 52624 -3 2496
40000 300m 64064 18432 62816 -3 2496
50000 300m 68848 18432 67600 -3 2496
100000 300m 92976 18432 91728 -3 2496

View File

@ -0,0 +1,33 @@
# name lanes alias index speed
Ethernet0 125,126,127,128 Ethernet1/1 1 40000
Ethernet4 121,122,123,124 Ethernet2/1 2 40000
Ethernet8 13,14,15,16 Ethernet3/1 3 40000
Ethernet12 9,10,11,12 Ethernet4/1 4 40000
Ethernet16 17,18,19,20 Ethernet5/1 5 40000
Ethernet20 21,22,23,24 Ethernet6/1 6 40000
Ethernet24 25,26,27,28 Ethernet7/1 7 40000
Ethernet28 29,30,31,32 Ethernet8/1 8 40000
Ethernet32 37,38,39,40 Ethernet9/1 9 40000
Ethernet36 33,34,35,36 Ethernet10/1 10 40000
Ethernet40 45,46,47,48 Ethernet11/1 11 40000
Ethernet44 41,42,43,44 Ethernet12/1 12 40000
Ethernet48 53,54,55,56 Ethernet13/1 13 40000
Ethernet52 49,50,51,52 Ethernet14/1 14 40000
Ethernet56 69,70,71,72 Ethernet15/1 15 40000
Ethernet60 65,66,67,68 Ethernet16/1 16 40000
Ethernet64 77,78,79,80 Ethernet17/1 17 40000
Ethernet68 73,74,75,76 Ethernet18/1 18 40000
Ethernet72 93,94,95,96 Ethernet19/1 19 40000
Ethernet76 89,90,91,92 Ethernet20/1 20 40000
Ethernet80 101,102,103,104 Ethernet21/1 21 40000
Ethernet84 97,98,99,100 Ethernet22/1 22 40000
Ethernet88 109,110,111,112 Ethernet23/1 23 40000
Ethernet92 105,106,107,108 Ethernet24/1 24 40000
Ethernet96 61,62,63,64 Ethernet25 25 40000
Ethernet100 57,58,59,60 Ethernet26 26 40000
Ethernet104 81,82,83,84 Ethernet27 27 40000
Ethernet108 85,86,87,88 Ethernet28 28 40000
Ethernet112 117,118,119,120 Ethernet29 29 40000
Ethernet116 113,114,115,116 Ethernet30 30 40000
Ethernet120 5,6,7,8 Ethernet31 31 40000
Ethernet124 1,2,3,4 Ethernet32 32 40000

View File

@ -0,0 +1 @@
{%- include 'qos_config.j2' %}

View File

@ -0,0 +1,2 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/td2-a7050-qx32-flex.config.bcm
SAI_NUM_ECMP_MEMBERS=32

View File

@ -185,5 +185,439 @@
}
]
},
"interfaces": {}
}
"interfaces": {
"Ethernet0": {
"breakout_modes": {
"1x40G": [
"Ethernet1/1"
],
"4x10G": [
"Ethernet1/1",
"Ethernet1/2",
"Ethernet1/3",
"Ethernet1/4"
]
},
"index": "1,1,1,1",
"lanes": "125,126,127,128"
},
"Ethernet4": {
"breakout_modes": {
"1x40G": [
"Ethernet2/1"
],
"4x10G": [
"Ethernet2/1",
"Ethernet2/2",
"Ethernet2/3",
"Ethernet2/4"
]
},
"index": "2,2,2,2",
"lanes": "121,122,123,124"
},
"Ethernet8": {
"breakout_modes": {
"1x40G": [
"Ethernet3/1"
],
"4x10G": [
"Ethernet3/1",
"Ethernet3/2",
"Ethernet3/3",
"Ethernet3/4"
]
},
"index": "3,3,3,3",
"lanes": "13,14,15,16"
},
"Ethernet12": {
"breakout_modes": {
"1x40G": [
"Ethernet4/1"
],
"4x10G": [
"Ethernet4/1",
"Ethernet4/2",
"Ethernet4/3",
"Ethernet4/4"
]
},
"index": "4,4,4,4",
"lanes": "9,10,11,12"
},
"Ethernet16": {
"breakout_modes": {
"1x40G": [
"Ethernet5/1"
],
"4x10G": [
"Ethernet5/1",
"Ethernet5/2",
"Ethernet5/3",
"Ethernet5/4"
]
},
"index": "5,5,5,5",
"lanes": "17,18,19,20"
},
"Ethernet20": {
"breakout_modes": {
"1x40G": [
"Ethernet6/1"
],
"4x10G": [
"Ethernet6/1",
"Ethernet6/2",
"Ethernet6/3",
"Ethernet6/4"
]
},
"index": "6,6,6,6",
"lanes": "21,22,23,24"
},
"Ethernet24": {
"breakout_modes": {
"1x40G": [
"Ethernet7/1"
],
"4x10G": [
"Ethernet7/1",
"Ethernet7/2",
"Ethernet7/3",
"Ethernet7/4"
]
},
"index": "7,7,7,7",
"lanes": "25,26,27,28"
},
"Ethernet28": {
"breakout_modes": {
"1x40G": [
"Ethernet8/1"
],
"4x10G": [
"Ethernet8/1",
"Ethernet8/2",
"Ethernet8/3",
"Ethernet8/4"
]
},
"index": "8,8,8,8",
"lanes": "29,30,31,32"
},
"Ethernet32": {
"breakout_modes": {
"1x40G": [
"Ethernet9/1"
],
"4x10G": [
"Ethernet9/1",
"Ethernet9/2",
"Ethernet9/3",
"Ethernet9/4"
]
},
"index": "9,9,9,9",
"lanes": "37,38,39,40"
},
"Ethernet36": {
"breakout_modes": {
"1x40G": [
"Ethernet10/1"
],
"4x10G": [
"Ethernet10/1",
"Ethernet10/2",
"Ethernet10/3",
"Ethernet10/4"
]
},
"index": "10,10,10,10",
"lanes": "33,34,35,36"
},
"Ethernet40": {
"breakout_modes": {
"1x40G": [
"Ethernet11/1"
],
"4x10G": [
"Ethernet11/1",
"Ethernet11/2",
"Ethernet11/3",
"Ethernet11/4"
]
},
"index": "11,11,11,11",
"lanes": "45,46,47,48"
},
"Ethernet44": {
"breakout_modes": {
"1x40G": [
"Ethernet12/1"
],
"4x10G": [
"Ethernet12/1",
"Ethernet12/2",
"Ethernet12/3",
"Ethernet12/4"
]
},
"index": "12,12,12,12",
"lanes": "41,42,43,44"
},
"Ethernet48": {
"breakout_modes": {
"1x40G": [
"Ethernet13/1"
],
"4x10G": [
"Ethernet13/1",
"Ethernet13/2",
"Ethernet13/3",
"Ethernet13/4"
]
},
"index": "13,13,13,13",
"lanes": "53,54,55,56"
},
"Ethernet52": {
"breakout_modes": {
"1x40G": [
"Ethernet14/1"
],
"4x10G": [
"Ethernet14/1",
"Ethernet14/2",
"Ethernet14/3",
"Ethernet14/4"
]
},
"index": "14,14,14,14",
"lanes": "49,50,51,52"
},
"Ethernet56": {
"breakout_modes": {
"1x40G": [
"Ethernet15/1"
],
"4x10G": [
"Ethernet15/1",
"Ethernet15/2",
"Ethernet15/3",
"Ethernet15/4"
]
},
"index": "15,15,15,15",
"lanes": "69,70,71,72"
},
"Ethernet60": {
"breakout_modes": {
"1x40G": [
"Ethernet16/1"
],
"4x10G": [
"Ethernet16/1",
"Ethernet16/2",
"Ethernet16/3",
"Ethernet16/4"
]
},
"index": "16,16,16,16",
"lanes": "65,66,67,68"
},
"Ethernet64": {
"breakout_modes": {
"1x40G": [
"Ethernet17/1"
],
"4x10G": [
"Ethernet17/1",
"Ethernet17/2",
"Ethernet17/3",
"Ethernet17/4"
]
},
"index": "17,17,17,17",
"lanes": "77,78,79,80"
},
"Ethernet68": {
"breakout_modes": {
"1x40G": [
"Ethernet18/1"
],
"4x10G": [
"Ethernet18/1",
"Ethernet18/2",
"Ethernet18/3",
"Ethernet18/4"
]
},
"index": "18,18,18,18",
"lanes": "73,74,75,76"
},
"Ethernet72": {
"breakout_modes": {
"1x40G": [
"Ethernet19/1"
],
"4x10G": [
"Ethernet19/1",
"Ethernet19/2",
"Ethernet19/3",
"Ethernet19/4"
]
},
"index": "19,19,19,19",
"lanes": "93,94,95,96"
},
"Ethernet76": {
"breakout_modes": {
"1x40G": [
"Ethernet20/1"
],
"4x10G": [
"Ethernet20/1",
"Ethernet20/2",
"Ethernet20/3",
"Ethernet20/4"
]
},
"index": "20,20,20,20",
"lanes": "89,90,91,92"
},
"Ethernet80": {
"breakout_modes": {
"1x40G": [
"Ethernet21/1"
],
"4x10G": [
"Ethernet21/1",
"Ethernet21/2",
"Ethernet21/3",
"Ethernet21/4"
]
},
"index": "21,21,21,21",
"lanes": "101,102,103,104"
},
"Ethernet84": {
"breakout_modes": {
"1x40G": [
"Ethernet22/1"
],
"4x10G": [
"Ethernet22/1",
"Ethernet22/2",
"Ethernet22/3",
"Ethernet22/4"
]
},
"index": "22,22,22,22",
"lanes": "97,98,99,100"
},
"Ethernet88": {
"breakout_modes": {
"1x40G": [
"Ethernet23/1"
],
"4x10G": [
"Ethernet23/1",
"Ethernet23/2",
"Ethernet23/3",
"Ethernet23/4"
]
},
"index": "23,23,23,23",
"lanes": "109,110,111,112"
},
"Ethernet92": {
"breakout_modes": {
"1x40G": [
"Ethernet24/1"
],
"4x10G": [
"Ethernet24/1",
"Ethernet24/2",
"Ethernet24/3",
"Ethernet24/4"
]
},
"index": "24,24,24,24",
"lanes": "105,106,107,108"
},
"Ethernet96": {
"breakout_modes": {
"1x40G": [
"Ethernet25"
]
},
"index": "25",
"lanes": "61,62,63,64"
},
"Ethernet100": {
"breakout_modes": {
"1x40G": [
"Ethernet26"
]
},
"index": "26",
"lanes": "57,58,59,60"
},
"Ethernet104": {
"breakout_modes": {
"1x40G": [
"Ethernet27"
]
},
"index": "27",
"lanes": "81,82,83,84"
},
"Ethernet108": {
"breakout_modes": {
"1x40G": [
"Ethernet28"
]
},
"index": "28",
"lanes": "85,86,87,88"
},
"Ethernet112": {
"breakout_modes": {
"1x40G": [
"Ethernet29"
]
},
"index": "29",
"lanes": "117,118,119,120"
},
"Ethernet116": {
"breakout_modes": {
"1x40G": [
"Ethernet30"
]
},
"index": "30",
"lanes": "113,114,115,116"
},
"Ethernet120": {
"breakout_modes": {
"1x40G": [
"Ethernet31"
]
},
"index": "31",
"lanes": "5,6,7,8"
},
"Ethernet124": {
"breakout_modes": {
"1x40G": [
"Ethernet32"
]
},
"index": "32",
"lanes": "1,2,3,4"
}
}
}