[buffer] create infrastructure to enable buffer/QoS profiles

Signed-off-by: Ying Xie <ying.xie@microsoft.com>
This commit is contained in:
Ying Xie 2022-04-26 21:26:52 +00:00 committed by Ying Xie
parent 4f95974669
commit 61b52a2af7
18 changed files with 274 additions and 146 deletions

View File

@ -0,0 +1 @@
../../../common/profiles/th/gen/BALANCED

View File

@ -0,0 +1 @@
../../../common/profiles/th/gen/RDMA-CENTRIC

View File

@ -0,0 +1 @@
../../../common/profiles/th/gen/TCP-CENTRIC

View File

@ -0,0 +1,13 @@
{%- set ports2cable = {
'torrouter_server' : '300m',
'leafrouter_torrouter' : '300m',
'spinerouter_leafrouter' : '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 %}

View File

@ -0,0 +1,13 @@
{%- set ports2cable = {
'torrouter_server' : '300m',
'leafrouter_torrouter' : '300m',
'spinerouter_leafrouter' : '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 %}

View File

@ -1,54 +0,0 @@
{%- set default_cable = '5m' %}
{%- set ports2cable = {
'torrouter_server' : '300m',
'leafrouter_torrouter' : '300m',
'spinerouter_leafrouter' : '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": "10875072",
"type": "ingress",
"mode": "dynamic",
"xoff": "4194112"
},
"egress_lossy_pool": {
"size": "9243812",
"type": "egress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "15982720",
"type": "egress",
"mode": "static"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"egress_lossless_pool",
"size":"1518",
"static_th":"15982720"
},
"egress_lossy_profile": {
"pool":"egress_lossy_pool",
"size":"1518",
"dynamic_th":"3"
}
},
{%- endmacro %}

View File

@ -0,0 +1 @@
BALANCED/buffers_defaults_t0.j2

View File

@ -1,54 +0,0 @@
{%- set default_cable = '40m' %}
{%- set ports2cable = {
'torrouter_server' : '300m',
'leafrouter_torrouter' : '300m',
'spinerouter_leafrouter' : '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": "10875072",
"type": "ingress",
"mode": "dynamic",
"xoff": "4194112"
},
"egress_lossy_pool": {
"size": "9243812",
"type": "egress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "15982720",
"type": "egress",
"mode": "static"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"egress_lossless_pool",
"size":"1518",
"static_th":"15982720"
},
"egress_lossy_profile": {
"pool":"egress_lossy_pool",
"size":"1518",
"dynamic_th":"3"
}
},
{%- endmacro %}

View File

@ -0,0 +1 @@
BALANCED/buffers_defaults_t1.j2

View File

@ -1,17 +0,0 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
10000 5m 1248 2288 35776 0 2288
25000 5m 1248 2288 53248 0 2288
40000 5m 1248 2288 66560 0 2288
50000 5m 1248 2288 90272 0 2288
100000 5m 1248 2288 165568 0 2288
10000 40m 1248 2288 37024 0 2288
25000 40m 1248 2288 53248 0 2288
40000 40m 1248 2288 71552 0 2288
50000 40m 1248 2288 96096 0 2288
100000 40m 1248 2288 177632 0 2288
10000 300m 1248 2288 46176 0 2288
25000 300m 1248 2288 79040 0 2288
40000 300m 1248 2288 108160 0 2288
50000 300m 1248 2288 141856 0 2288
100000 300m 1248 2288 268736 0 2288

View File

@ -0,0 +1 @@
BALANCED/pg_profile_lookup.ini

View File

@ -1,21 +0,0 @@
{%- macro generate_wred_profiles() %}
"WRED_PROFILE": {
"AZURE_LOSSLESS" : {
"wred_green_enable" : "true",
"wred_yellow_enable" : "true",
"wred_red_enable" : "true",
"ecn" : "ecn_all",
"green_max_threshold" : "2097152",
"green_min_threshold" : "250000",
"yellow_max_threshold" : "2097152",
"yellow_min_threshold" : "1048576",
"red_max_threshold" : "2097152",
"red_min_threshold" : "1048576",
"green_drop_probability" : "5",
"yellow_drop_probability": "5",
"red_drop_probability" : "5"
}
},
{%- endmacro %}
{%- include 'qos_config.j2' %}

View File

@ -0,0 +1 @@
BALANCED/qos.json.j2

View File

@ -0,0 +1,41 @@
{%- set default_cable = '5m' %}
{%- include 'buffer_ports_t0.j2' %}
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "10875072",
"type": "ingress",
"mode": "dynamic",
"xoff": "4194112"
},
"egress_lossy_pool": {
"size": "9243812",
"type": "egress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "15982720",
"type": "egress",
"mode": "static"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"egress_lossless_pool",
"size":"1518",
"static_th":"15982720"
},
"egress_lossy_profile": {
"pool":"egress_lossy_pool",
"size":"1518",
"dynamic_th":"3"
}
},
{%- endmacro %}

View File

@ -0,0 +1,41 @@
{%- set default_cable = '40m' %}
{%- include 'buffer_ports_t1.j2' %}
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "10875072",
"type": "ingress",
"mode": "dynamic",
"xoff": "4194112"
},
"egress_lossy_pool": {
"size": "9243812",
"type": "egress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "15982720",
"type": "egress",
"mode": "static"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"egress_lossless_pool",
"size":"1518",
"static_th":"15982720"
},
"egress_lossy_profile": {
"pool":"egress_lossy_pool",
"size":"1518",
"dynamic_th":"3"
}
},
{%- endmacro %}

View File

@ -0,0 +1,17 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
10000 5m 1248 2288 35776 0 2288
25000 5m 1248 2288 53248 0 2288
40000 5m 1248 2288 66560 0 2288
50000 5m 1248 2288 90272 0 2288
100000 5m 1248 2288 165568 0 2288
10000 40m 1248 2288 37024 0 2288
25000 40m 1248 2288 53248 0 2288
40000 40m 1248 2288 71552 0 2288
50000 40m 1248 2288 96096 0 2288
100000 40m 1248 2288 177632 0 2288
10000 300m 1248 2288 46176 0 2288
25000 300m 1248 2288 79040 0 2288
40000 300m 1248 2288 108160 0 2288
50000 300m 1248 2288 141856 0 2288
100000 300m 1248 2288 268736 0 2288

View File

@ -0,0 +1,21 @@
{%- macro generate_wred_profiles() %}
"WRED_PROFILE": {
"AZURE_LOSSLESS" : {
"wred_green_enable" : "true",
"wred_yellow_enable" : "true",
"wred_red_enable" : "true",
"ecn" : "ecn_all",
"green_max_threshold" : "2097152",
"green_min_threshold" : "250000",
"yellow_max_threshold" : "2097152",
"yellow_min_threshold" : "1048576",
"red_max_threshold" : "2097152",
"red_min_threshold" : "1048576",
"green_drop_probability" : "5",
"yellow_drop_probability": "5",
"red_drop_probability" : "5"
}
},
{%- endmacro %}
{%- include 'qos_config.j2' %}

View File

@ -0,0 +1,41 @@
{%- set default_cable = '5m' %}
{%- include 'buffer_ports_t0.j2' %}
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "10875072",
"type": "ingress",
"mode": "dynamic",
"xoff": "4194112"
},
"egress_lossy_pool": {
"size": "9243812",
"type": "egress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "15982720",
"type": "egress",
"mode": "static"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"egress_lossless_pool",
"size":"1518",
"static_th":"15982720"
},
"egress_lossy_profile": {
"pool":"egress_lossy_pool",
"size":"1518",
"dynamic_th":"3"
}
},
{%- endmacro %}

View File

@ -0,0 +1,41 @@
{%- set default_cable = '40m' %}
{%- include 'buffer_ports_t1.j2' %}
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "10875072",
"type": "ingress",
"mode": "dynamic",
"xoff": "4194112"
},
"egress_lossy_pool": {
"size": "9243812",
"type": "egress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "15982720",
"type": "egress",
"mode": "static"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"egress_lossless_pool",
"size":"1518",
"static_th":"15982720"
},
"egress_lossy_profile": {
"pool":"egress_lossy_pool",
"size":"1518",
"dynamic_th":"3"
}
},
{%- endmacro %}

View File

@ -0,0 +1,17 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
10000 5m 1248 2288 35776 0 2288
25000 5m 1248 2288 53248 0 2288
40000 5m 1248 2288 66560 0 2288
50000 5m 1248 2288 90272 0 2288
100000 5m 1248 2288 165568 0 2288
10000 40m 1248 2288 37024 0 2288
25000 40m 1248 2288 53248 0 2288
40000 40m 1248 2288 71552 0 2288
50000 40m 1248 2288 96096 0 2288
100000 40m 1248 2288 177632 0 2288
10000 300m 1248 2288 46176 0 2288
25000 300m 1248 2288 79040 0 2288
40000 300m 1248 2288 108160 0 2288
50000 300m 1248 2288 141856 0 2288
100000 300m 1248 2288 268736 0 2288

View File

@ -0,0 +1,21 @@
{%- macro generate_wred_profiles() %}
"WRED_PROFILE": {
"AZURE_LOSSLESS" : {
"wred_green_enable" : "true",
"wred_yellow_enable" : "true",
"wred_red_enable" : "true",
"ecn" : "ecn_all",
"green_max_threshold" : "2097152",
"green_min_threshold" : "250000",
"yellow_max_threshold" : "2097152",
"yellow_min_threshold" : "1048576",
"red_max_threshold" : "2097152",
"red_min_threshold" : "1048576",
"green_drop_probability" : "5",
"yellow_drop_probability": "5",
"red_drop_probability" : "5"
}
},
{%- endmacro %}
{%- include 'qos_config.j2' %}

View File

@ -0,0 +1 @@
BALANCED