Skip to content

Commit

Permalink
[device/dell] Add z9100 pfc T0 support (#1708)
Browse files Browse the repository at this point in the history
This commit adds new code to support z9100 PFC T0 support with
broadcom recommended MMU settings for PFC feature.

Unit tested the setting by loading sonic-broadcom.bin and checking
the hardware for the values from the JSON file. The T0 configs supports
fan-out of 100G ports on Z9100. Added new config.bcm for fanout of 100G
ports and tested the fanout by sending traffic using bcmcmd, new config.bcm
file will be copied to /usr/share/sonic/hwsku/th-z9100-8x100-48x50G.config.bcm.
The sai.profile file is updated to point to hwsku directory.

Signed-off-by: Harish Venkatraman <[email protected]>
  • Loading branch information
vharish02 authored and yxieca committed May 21, 2018
1 parent 46dc46e commit 5feb363
Show file tree
Hide file tree
Showing 7 changed files with 682 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{%- set default_topo = 't0' %}
{%- include 'buffers_config.j2' %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
{%- set default_cable = '5m' %}

{%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #}
{%- for port_idx in range(0,6) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4 + 2)) %}{%- endif %}
{%- endfor %}
{%- for port_idx in range(10,26) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4 + 2)) %}{%- endif %}
{%- endfor %}
{%- for port_idx in range(30,32) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4 + 2)) %}{%- endif %}
{%- endfor %}
{%- for port_idx in range(6,10) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
{%- endfor %}
{%- for port_idx in range(26,30) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
{%- endfor %}
{%- endmacro %}

{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "11213696",
"type": "ingress",
"mode": "dynamic",
"xoff": "8356608"
},
"egress_lossy_pool": {
"size": "9532224",
"type": "egress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "15982720",
"type": "egress",
"mode": "static"
}
},
"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":"1518",
"static_th":"3995680"
},
"egress_lossy_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"1518",
"dynamic_th":"3"
}
},
{%- endmacro %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
10000 5m 1248 2288 35776 -4 2288
25000 5m 1248 2288 53248 -4 2288
40000 5m 1248 2288 66560 -4 2288
50000 5m 1248 2288 79872 -4 2288
100000 5m 1248 2288 165568 -4 2288
10000 40m 1248 2288 37024 -4 2288
25000 40m 1248 2288 56160 -4 2288
40000 40m 1248 2288 71552 -4 2288
50000 40m 1248 2288 85696 -4 2288
100000 40m 1248 2288 177632 -4 2288
10000 300m 1248 2288 46176 -4 2288
25000 300m 1248 2288 79040 -4 2288
40000 300m 1248 2288 108160 -4 2288
50000 300m 1248 2288 131456 -4 2288
100000 300m 1248 2288 268736 -4 2288
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# name lanes alias index speed
Ethernet0 49,50 fiftyGigE1/1/1 1 50000
Ethernet2 51,52 fiftyGigE1/1/2 1 50000
Ethernet4 53,54 fiftyGigE1/2/1 2 50000
Ethernet6 55,56 fiftyGigE1/2/2 2 50000
Ethernet8 57,58 fiftyGigE1/3/1 3 50000
Ethernet10 59,60 fiftyGigE1/3/2 3 50000
Ethernet12 61,62 fiftyGigE1/4/1 4 50000
Ethernet14 63,64 fiftyGigE1/4/2 4 50000
Ethernet16 65,66 fiftyGigE1/5/1 5 50000
Ethernet18 67,68 fiftyGigE1/5/2 5 50000
Ethernet20 69,70 fiftyGigE1/6/1 6 50000
Ethernet22 71,72 fiftyGigE1/6/2 6 50000
Ethernet24 73,74,75,76 hundredGigE1/7 7 100000
Ethernet28 77,78,79,80 hundredGigE1/8 8 100000
Ethernet32 37,38,39,40 hundredGigE1/9 9 100000
Ethernet36 33,34,35,36 hundredGigE1/10 10 100000
Ethernet40 45,46 fiftyGigE1/11/1 11 50000
Ethernet42 47,48 fiftyGigE1/11/2 11 50000
Ethernet44 41,42 fiftyGigE1/12/1 12 50000
Ethernet46 43,44 fiftyGigE1/12/2 12 50000
Ethernet48 81,82 fiftyGigE1/13/1 13 50000
Ethernet50 83,84 fiftyGigE1/13/2 13 50000
Ethernet52 85,86 fiftyGigE1/14/1 14 50000
Ethernet54 87,88 fiftyGigE1/14/2 14 50000
Ethernet56 89,90 fiftyGigE1/15/1 15 50000
Ethernet58 91,92 fiftyGigE1/15/2 15 50000
Ethernet60 93,94 fiftyGigE1/16/1 16 50000
Ethernet62 95,96 fiftyGigE1/16/2 16 50000
Ethernet64 97,98 fiftyGigE1/17/1 17 50000
Ethernet66 99,100 fiftyGigE1/17/2 17 50000
Ethernet68 101,102 fiftyGigE1/18/1 18 50000
Ethernet70 103,104 fiftyGigE1/18/2 18 50000
Ethernet72 105,106 fiftyGigE1/19/1 19 50000
Ethernet74 107,108 fiftyGigE1/19/2 19 50000
Ethernet76 109,110 fiftyGigE1/20/1 20 50000
Ethernet78 111,112 fiftyGigE1/20/2 20 50000
Ethernet80 21,22 fiftyGigE1/21/1 21 50000
Ethernet82 23,24 fiftyGigE1/21/2 21 50000
Ethernet84 17,18 fiftyGigE1/22/1 22 50000
Ethernet86 19,20 fiftyGigE1/22/2 22 50000
Ethernet88 29,30 fiftyGigE1/23/1 23 50000
Ethernet90 31,32 fiftyGigE1/23/2 23 50000
Ethernet92 25,26 fiftyGigE1/24/1 24 50000
Ethernet94 27,28 fiftyGigE1/24/2 24 50000
Ethernet96 117,118 fiftyGigE1/25/1 25 50000
Ethernet98 119,120 fiftyGigE1/25/2 25 50000
Ethernet100 113,114 fiftyGigE1/26/1 26 50000
Ethernet102 115,116 fiftyGigE1/26/2 26 50000
Ethernet104 125,126,127,128 hundredGigE1/27 27 100000
Ethernet108 121,122,123,124 hundredGigE1/28 28 100000
Ethernet112 5,6,7,8 hundredGigE1/29 29 100000
Ethernet116 1,2,3,4 hundredGigE1/30 30 100000
Ethernet120 13,14 fiftyGigE1/31/1 31 50000
Ethernet122 15,16 fiftyGigE1/31/2 31 50000
Ethernet124 9,10 fiftyGigE1/32/1 32 50000
Ethernet126 11,12 fiftyGigE1/32/2 32 50000
167 changes: 167 additions & 0 deletions device/dell/x86_64-dell_z9100_c2538-r0/Force10-Z9100-T0/qos.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
{
"TC_TO_PRIORITY_GROUP_MAP": {
"AZURE": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7"
}
},
"MAP_PFC_PRIORITY_TO_QUEUE": {
"AZURE": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7"
}
},
"TC_TO_QUEUE_MAP": {
"AZURE": {
"0": "0",
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7"
}
},
"DSCP_TO_TC_MAP": {
"AZURE": {
"0":"0",
"1":"0",
"2":"0",
"3":"3",
"4":"4",
"5":"0",
"6":"0",
"7":"0",
"8":"1",
"9":"0",
"10":"0",
"11":"0",
"12":"0",
"13":"0",
"14":"0",
"15":"0",
"16":"0",
"17":"0",
"18":"0",
"19":"0",
"20":"0",
"21":"0",
"22":"0",
"23":"0",
"24":"0",
"25":"0",
"26":"0",
"27":"0",
"28":"0",
"29":"0",
"30":"0",
"31":"0",
"32":"0",
"33":"0",
"34":"0",
"35":"0",
"36":"0",
"37":"0",
"38":"0",
"39":"0",
"40":"0",
"41":"0",
"42":"0",
"43":"0",
"44":"0",
"45":"0",
"46":"0",
"47":"0",
"48":"0",
"49":"0",
"50":"0",
"51":"0",
"52":"0",
"53":"0",
"54":"0",
"55":"0",
"56":"0",
"57":"0",
"58":"0",
"59":"0",
"60":"0",
"61":"0",
"62":"0",
"63":"0"
}
},
"SCHEDULER": {
"scheduler.0" : {
"type":"DWRR",
"weight": "25"
},
"scheduler.1" : {
"type":"DWRR",
"weight": "30"
},
"scheduler.2" : {
"type":"DWRR",
"weight": "20"
}
},
"PORT_QOS_MAP": {
"Ethernet0,Ethernet2,Ethernet4,Ethernet6,Ethernet8,Ethernet10,Ethernet12,Ethernet14,Ethernet16,Ethernet18,Ethernet20,Ethernet22,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet42,Ethernet44,Ethernet46,Ethernet48,Ethernet50,Ethernet52,Ethernet54,Ethernet56,Ethernet58,Ethernet60,Ethernet62,Ethernet64,Ethernet66,Ethernet68,Ethernet70,Ethernet72,Ethernet74,Ethernet76,Ethernet78,Ethernet80,Ethernet82,Ethernet84,Ethernet86,Ethernet88,Ethernet90,Ethernet92,Ethernet94,Ethernet96,Ethernet98,Ethernet100,Ethernet102,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet122,Ethernet124,Ethernet126": {
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
"pfc_enable": "3,4"
}
},
"WRED_PROFILE": {
"AZURE_LOSSY" : {
"wred_green_enable":"true",
"wred_yellow_enable":"true",
"ecn":"ecn_all",
"red_max_threshold":"512000",
"red_min_threshold":"512000",
"yellow_max_threshold":"512000",
"yellow_min_threshold":"512000",
"green_max_threshold": "184320",
"green_min_threshold": "184320"
},
"AZURE_LOSSLESS" : {
"wred_green_enable":"true",
"wred_yellow_enable":"true",
"ecn":"ecn_all",
"red_max_threshold":"512000",
"red_min_threshold":"512000",
"yellow_max_threshold":"512000",
"yellow_min_threshold":"512000",
"green_max_threshold": "184320",
"green_min_threshold": "184320"
}
},
"QUEUE": {
"Ethernet0,Ethernet2,Ethernet4,Ethernet6,Ethernet8,Ethernet10,Ethernet12,Ethernet14,Ethernet16,Ethernet18,Ethernet20,Ethernet22,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet42,Ethernet44,Ethernet46,Ethernet48,Ethernet50,Ethernet52,Ethernet54,Ethernet56,Ethernet58,Ethernet60,Ethernet62,Ethernet64,Ethernet66,Ethernet68,Ethernet70,Ethernet72,Ethernet74,Ethernet76,Ethernet78,Ethernet80,Ethernet82,Ethernet84,Ethernet86,Ethernet88,Ethernet90,Ethernet92,Ethernet94,Ethernet96,Ethernet98,Ethernet100,Ethernet102,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet122,Ethernet124,Ethernet126|0-1": {
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
},
"Ethernet0,Ethernet2,Ethernet4,Ethernet6,Ethernet8,Ethernet10,Ethernet12,Ethernet14,Ethernet16,Ethernet18,Ethernet20,Ethernet22,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet42,Ethernet44,Ethernet46,Ethernet48,Ethernet50,Ethernet52,Ethernet54,Ethernet56,Ethernet58,Ethernet60,Ethernet62,Ethernet64,Ethernet66,Ethernet68,Ethernet70,Ethernet72,Ethernet74,Ethernet76,Ethernet78,Ethernet80,Ethernet82,Ethernet84,Ethernet86,Ethernet88,Ethernet90,Ethernet92,Ethernet94,Ethernet96,Ethernet98,Ethernet100,Ethernet102,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet122,Ethernet124,Ethernet126|3-4": {
"scheduler" : "[SCHEDULER|scheduler.0]"
},
"Ethernet0,Ethernet2,Ethernet4,Ethernet6,Ethernet8,Ethernet10,Ethernet12,Ethernet14,Ethernet16,Ethernet18,Ethernet20,Ethernet22,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet42,Ethernet44,Ethernet46,Ethernet48,Ethernet50,Ethernet52,Ethernet54,Ethernet56,Ethernet58,Ethernet60,Ethernet62,Ethernet64,Ethernet66,Ethernet68,Ethernet70,Ethernet72,Ethernet74,Ethernet76,Ethernet78,Ethernet80,Ethernet82,Ethernet84,Ethernet86,Ethernet88,Ethernet90,Ethernet92,Ethernet94,Ethernet96,Ethernet98,Ethernet100,Ethernet102,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet122,Ethernet124,Ethernet126|0": {
"scheduler" : "[SCHEDULER|scheduler.1]"
},
"Ethernet0,Ethernet2,Ethernet4,Ethernet6,Ethernet8,Ethernet10,Ethernet12,Ethernet14,Ethernet16,Ethernet18,Ethernet20,Ethernet22,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet42,Ethernet44,Ethernet46,Ethernet48,Ethernet50,Ethernet52,Ethernet54,Ethernet56,Ethernet58,Ethernet60,Ethernet62,Ethernet64,Ethernet66,Ethernet68,Ethernet70,Ethernet72,Ethernet74,Ethernet76,Ethernet78,Ethernet80,Ethernet82,Ethernet84,Ethernet86,Ethernet88,Ethernet90,Ethernet92,Ethernet94,Ethernet96,Ethernet98,Ethernet100,Ethernet102,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet122,Ethernet124,Ethernet126|1": {
"scheduler" : "[SCHEDULER|scheduler.2]"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th-z9100-8x100G-48x50G.config.bcm
Loading

0 comments on commit 5feb363

Please sign in to comment.