[QoS] Support dynamic headroom calculation for Barefoot platforms (#11708)
Signed-off-by: Mariusz Stachura <mariusz.stachura@intel.com> What I did Adding the dynamic headroom calculation support for Barefoot platforms. Why I did it Enabling dynamic mode for barefoot case. How I verified it The community tests are adjusted and pass.
This commit is contained in:
parent
6f67a3ac6a
commit
9f88d03c2b
@ -1,12 +1,12 @@
|
||||
{% set default_cable = '5m' %}
|
||||
{% set ingress_lossless_pool_size = '23850816' %}
|
||||
{% set ingress_lossy_pool_size = '36222208' %}
|
||||
{% set egress_lossless_pool_size = '29482816' %}
|
||||
{% set egress_lossy_pool_size = '26400000' %}
|
||||
{% set ingress_lossless_pool_size = '43067728' %}
|
||||
{% set ingress_lossy_pool_size = '3520000' %}
|
||||
{% set egress_lossless_pool_size = '46749824' %}
|
||||
{% set egress_lossy_pool_size = '2463824' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{%- for port_idx in range(0,32) %}
|
||||
{%- for port_idx in range(0, 32) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endmacro %}
|
||||
@ -15,6 +15,9 @@
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "{{ ingress_lossless_pool_size }}",
|
||||
{%- if dynamic_mode is defined %}
|
||||
"xoff": "3153920",
|
||||
{%- endif %}
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
|
@ -1,12 +1,12 @@
|
||||
{% set default_cable = '5m' %}
|
||||
{% set ingress_lossless_pool_size = '23850816' %}
|
||||
{% set ingress_lossy_pool_size = '36222208' %}
|
||||
{% set egress_lossless_pool_size = '29482816' %}
|
||||
{% set egress_lossy_pool_size = '26400000' %}
|
||||
{% set ingress_lossless_pool_size = '43067728' %}
|
||||
{% set ingress_lossy_pool_size = '3520000' %}
|
||||
{% set egress_lossless_pool_size = '46749824' %}
|
||||
{% set egress_lossy_pool_size = '2463824' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{%- for port_idx in range(0,32) %}
|
||||
{%- for port_idx in range(0, 32) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endmacro %}
|
||||
@ -15,6 +15,9 @@
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "{{ ingress_lossless_pool_size }}",
|
||||
{%- if dynamic_mode is defined %}
|
||||
"xoff": "3153920",
|
||||
{%- endif %}
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
|
@ -0,0 +1,4 @@
|
||||
{%- set default_topo = 't0' %}
|
||||
{%- set dynamic_mode = 'true' %}
|
||||
{%- set shp = 'true' %}
|
||||
{%- include 'buffers_config.j2' %}
|
@ -23,7 +23,7 @@
|
||||
],
|
||||
"model_json_path" : "share/switch/aug_model.json",
|
||||
"switchapi_port_add": false,
|
||||
"non_default_port_ppgs": 5
|
||||
"non_default_port_ppgs": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -32,7 +32,7 @@
|
||||
{
|
||||
"device-id": 0,
|
||||
"model_json_path": "share/switch/aug_model.json",
|
||||
"non_default_port_ppgs": 5,
|
||||
"non_default_port_ppgs": 6,
|
||||
"switchapi_port_add": false
|
||||
}
|
||||
]
|
||||
|
@ -0,0 +1,10 @@
|
||||
[
|
||||
{%- include 'peripheral_table.j2' %}
|
||||
,
|
||||
{
|
||||
"PORT_PERIPHERAL_TABLE:global": {
|
||||
"gearbox_model": "barefoot"
|
||||
},
|
||||
"OP": "SET"
|
||||
}
|
||||
]
|
@ -226,6 +226,11 @@ def
|
||||
"DEFAULT_LOSSLESS_BUFFER_PARAMETER": {
|
||||
"AZURE": {
|
||||
"default_dynamic_th": "0"
|
||||
{%- if shp is defined -%}
|
||||
,
|
||||
"max_headroom_size" : "0",
|
||||
"over_subscribe_ratio" : "1"
|
||||
{%- endif -%}
|
||||
}
|
||||
},
|
||||
"LOSSLESS_TRAFFIC_PATTERN": {
|
||||
|
@ -530,7 +530,7 @@ sudo cp $BUILD_TEMPLATES/buffers_config.j2 $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMP
|
||||
sudo cp $BUILD_TEMPLATES/qos_config.j2 $FILESYSTEM_ROOT_USR_SHARE_SONIC_TEMPLATES/
|
||||
|
||||
# Copy the templates for dynamically buffer calculation
|
||||
{% if sonic_asic_platform == "mellanox" or sonic_asic_platform == "vs" %}
|
||||
{% if sonic_asic_platform == "mellanox" or sonic_asic_platform == "vs" or sonic_asic_platform == "barefoot" %}
|
||||
if [ -f platform/{{ sonic_asic_platform }}/asic_table.j2 ]
|
||||
then
|
||||
sudo cp platform/{{ sonic_asic_platform }}/asic_table.j2 $FILESYSTEM_ROOT/usr/share/sonic/templates/asic_table.j2
|
||||
|
24
platform/barefoot/asic_table.j2
Normal file
24
platform/barefoot/asic_table.j2
Normal file
@ -0,0 +1,24 @@
|
||||
{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost']['platform'] is defined %}
|
||||
{%- set platform = DEVICE_METADATA['localhost']['platform'] %}
|
||||
{%- endif -%}
|
||||
|
||||
|
||||
[
|
||||
{% set platform2asic = {
|
||||
'x86_64-accton_as9516_32d-r0':'BAREFOOT-TOFINO-2',
|
||||
'x86_64-accton_as9516bf_32d-r0':'BAREFOOT-TOFINO-2'
|
||||
}
|
||||
%}
|
||||
{% set asic_type = platform2asic[platform] %}
|
||||
{% if asic_type == 'BAREFOOT-TOFINO-2' %}
|
||||
{
|
||||
"ASIC_TABLE:BAREFOOT-TOFINO-2": {
|
||||
"cell_size": "176",
|
||||
"pipeline_latency": "68",
|
||||
"mac_phy_delay": "0.8",
|
||||
"peer_response_time": "9"
|
||||
},
|
||||
"OP": "SET"
|
||||
}
|
||||
{% endif %}
|
||||
]
|
18
platform/barefoot/peripheral_table.j2
Normal file
18
platform/barefoot/peripheral_table.j2
Normal file
@ -0,0 +1,18 @@
|
||||
{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost']['platform'] is defined %}
|
||||
{%- set platform = DEVICE_METADATA['localhost']['platform'] %}
|
||||
{%- endif -%}
|
||||
|
||||
{% set platform2gearbox = {
|
||||
'x86_64-accton_as9516_32d-r0':'barefoot',
|
||||
'x86_64-accton_as9516bf_32d-r0':'barefoot'
|
||||
}
|
||||
%}
|
||||
{% set gearbox_type = platform2gearbox[platform] %}
|
||||
{% if gearbox_type == 'barefoot' %}
|
||||
{
|
||||
"PERIPHERAL TABLE:barefoot": {
|
||||
"gearbox_delay" : "365"
|
||||
},
|
||||
"OP": "SET"
|
||||
}
|
||||
{% endif %}
|
@ -33,3 +33,5 @@ endif
|
||||
# Runtime dependency on sai is set only for syncd
|
||||
#$(SYNCD)_RDEPENDS += $(BFN_SAI) $(WNC_OSW1800_PLATFORM) $(BFN_INGRASYS_PLATFORM) $(BFN_PLATFORM)
|
||||
$(SYNCD)_RDEPENDS += $(BFN_SAI) $(BFN_INGRASYS_PLATFORM) $(BFN_PLATFORM)
|
||||
|
||||
export SONIC_BUFFER_MODEL=dynamic
|
||||
|
Loading…
Reference in New Issue
Block a user