Skip to content

Commit

Permalink
Add extra lossy PG profile for ports between T1 and T2 (sonic-net#11157)
Browse files Browse the repository at this point in the history
Signed-off-by: bingwang <wang.bing@microsoft.com>

Why I did it
This PR brings two changes

Add lossy PG profile for PG2 and PG6 on T1 for ports between T1 and T2.
After PR Update qos config to clear queues for bounced back traffic sonic-net#10176 , the DSCP_TO_TC_MAP and TC_TO_PG_MAP is updated when remapping is enable

DSCP_TO_TC_MAP
Before	After	Why do this change
"2" : "1"	"2" : "2"	Only change for leaf router to map DSCP 2 to TC 2 as TC 2 will be used for lossless TC
"6" : "1"	"6" : "6"	Only change for leaf router to map DSCP 6 to TC 6 as TC 6 will be used for lossless TC

TC_TO_PRIORITY_GROUP_MAP
Before	After	Why do this change
"2" : "0"	"2" : "2"	Only change for leaf router to map TC 2 to PG 2 as PG 2 will be used for lossless PG
"6" : "0"	"6" : "6"	Only change for leaf router to map TC 6 to PG 6 as PG 6 will be used for lossless PG

So, we have two new lossy PGs (2 and 6) for the T2 facing ports on T1, and two new lossless PGs (2 and 6) for the T0 facing port on T1.
However, there is no lossy PG profile for the T2 facing ports on T1. The lossless PGs for ports between T1 and T0 have been handled by buffermgrd .Therefore, We need to add lossy PG profiles for T2 facing ports on T1.

We don't have this issue on T0 because PG 2 and PG 6 are lossless PGs, and there is no lossy traffic mapped to PG 2 and PG 6

Map port level TC7 to PG0
Before the PCBB change, DSCP48 -> TC 6 -> PG 0.
After the PCBB change, DSCP48 -> TC 7 -> PG 7
Actually, we can map TC7 to PG0 to save a lossy PG.

How I did it
Update the qos and buffer template.

How to verify it
Verified by UT.
  • Loading branch information
bingwang-ms authored and skbarista committed Aug 17, 2022
1 parent 1a04f35 commit f3f4fc1
Show file tree
Hide file tree
Showing 11 changed files with 91 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@
"4": "4",
"5": "0",
"6": "6",
"7": "7",
"7": "0",
"8": "0"
},
"AZURE_TUNNEL": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,12 @@
},
{%- endmacro %}

{% import 'buffers_extra_queues.j2' as defs with context %}
{% import 'buffers_extra_queues.j2' as defs1 with context %}
{% import 'buffers_extra_pgs.j2' as defs2 with context %}

{%- macro generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) %}
{{ defs.generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) }}
{{ defs1.generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) }}
{%- endmacro %}
{%- macro generate_pg_buffers_with_extra_lossy_pgs(port_names, port_names_require_no_extra_pgs) %}
{{ defs2.generate_pg_buffers_with_extra_lossy_pgs(port_names, port_names_require_no_extra_pgs) }}
{%- endmacro %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{% if DEVICE_METADATA is defined and 'type' in DEVICE_METADATA['localhost'] and DEVICE_METADATA['localhost']['type'] == 'LeafRouter' %}
{%- macro generate_pg_buffers_with_extra_lossy_pgs(port_names, port_names_require_no_extra_pg) %}
"BUFFER_PG": {
{% for port in port_names.split(',') %}
{% if port not in port_names_require_no_extra_pg.split(',') %}
"{{ port }}|2": {
"profile" : "ingress_lossy_profile"
},
"{{ port }}|6": {
"profile" : "ingress_lossy_profile"
},
{% endif %}
"{{ port }}|0": {
"profile" : "ingress_lossy_profile"
}{% if not loop.last %},{% endif %}

{% endfor %}
},
{% endmacro %}
{% endif %}
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
"4": "4",
"5": "0",
"6": "6",
"7": "7"
"7": "0"
}
},
{%- endmacro %}
Expand Down Expand Up @@ -230,7 +230,7 @@
"4": "4",
"5": "0",
"6": "6",
"7": "7",
"7": "0",
"8": "0"
},
"AZURE_TUNNEL": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,12 @@
},
{%- endmacro %}

{% import 'buffers_extra_queues.j2' as defs with context %}
{% import 'buffers_extra_queues.j2' as defs1 with context %}
{% import 'buffers_extra_pgs.j2' as defs2 with context %}

{%- macro generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) %}
{{ defs.generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) }}
{{ defs1.generate_queue_buffers_with_extra_lossless_queues(port_names, port_names_require_extra_buffer) }}
{%- endmacro %}
{%- macro generate_pg_buffers_with_extra_lossy_pgs(port_names, port_names_require_no_extra_pgs) %}
{{ defs2.generate_pg_buffers_with_extra_lossy_pgs(port_names, port_names_require_no_extra_pgs) }}
{%- endmacro %}
4 changes: 4 additions & 0 deletions files/build_templates/buffers_config.j2
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,10 @@ def
{{ defs.generate_pg_profils(port_names_active) }}
{% elif defs.generate_pg_profiles_with_inactive_ports is defined %}
{{ defs.generate_pg_profiles_with_inactive_ports(port_names_active, port_names_inactive) }},
{% elif (defs.generate_pg_buffers_with_extra_lossy_pgs is defined) and (port_names_extra_queues != '') %}
{{ defs.generate_pg_buffers_with_extra_lossy_pgs(port_names_active, port_names_extra_queues) }}
{% elif (defs.generate_pg_buffers_with_extra_lossy_pgs_with_inactive_ports is defined) and (port_names_extra_queues != '') %}
{{ defs.generate_pg_buffers_with_extra_lossy_pgs_with_inactive_ports(port_names_active, port_names_extra_queues, port_names_inactive) }}
{% else %}
"BUFFER_PG": {
{% for port in PORT_ACTIVE %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,21 @@
"Ethernet0|0": {
"profile" : "ingress_lossy_profile"
},
"Ethernet0|2": {
"profile" : "ingress_lossy_profile"
},
"Ethernet0|6": {
"profile" : "ingress_lossy_profile"
},
"Ethernet4|0": {
"profile" : "ingress_lossy_profile"
},
"Ethernet4|2": {
"profile" : "ingress_lossy_profile"
},
"Ethernet4|6": {
"profile" : "ingress_lossy_profile"
},
"Ethernet144|0": {
"profile" : "ingress_lossy_profile"
},
Expand All @@ -124,9 +136,21 @@
"Ethernet16|0": {
"profile" : "ingress_lossy_profile"
},
"Ethernet16|2": {
"profile" : "ingress_lossy_profile"
},
"Ethernet16|6": {
"profile" : "ingress_lossy_profile"
},
"Ethernet20|0": {
"profile" : "ingress_lossy_profile"
},
"Ethernet20|2": {
"profile" : "ingress_lossy_profile"
},
"Ethernet20|6": {
"profile" : "ingress_lossy_profile"
},
"Ethernet152|0": {
"profile" : "ingress_lossy_profile"
},
Expand All @@ -136,9 +160,21 @@
"Ethernet64|0": {
"profile" : "ingress_lossy_profile"
},
"Ethernet64|2": {
"profile" : "ingress_lossy_profile"
},
"Ethernet64|6": {
"profile" : "ingress_lossy_profile"
},
"Ethernet68|0": {
"profile" : "ingress_lossy_profile"
},
"Ethernet68|2": {
"profile" : "ingress_lossy_profile"
},
"Ethernet68|6": {
"profile" : "ingress_lossy_profile"
},
"Ethernet168|0": {
"profile" : "ingress_lossy_profile"
},
Expand All @@ -148,9 +184,21 @@
"Ethernet80|0": {
"profile" : "ingress_lossy_profile"
},
"Ethernet80|2": {
"profile" : "ingress_lossy_profile"
},
"Ethernet80|6": {
"profile" : "ingress_lossy_profile"
},
"Ethernet84|0": {
"profile" : "ingress_lossy_profile"
},
"Ethernet84|2": {
"profile" : "ingress_lossy_profile"
},
"Ethernet84|6": {
"profile" : "ingress_lossy_profile"
},
"Ethernet180|0": {
"profile" : "ingress_lossy_profile"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@
"4": "4",
"5": "0",
"6": "6",
"7": "7",
"7": "0",
"8": "0"
},
"AZURE_TUNNEL": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@
"4": "4",
"5": "0",
"6": "6",
"7": "7",
"7": "0",
"8": "0"
},
"AZURE_TUNNEL": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
"4": "4",
"5": "0",
"6": "6",
"7": "7"
"7": "0"
}
},
"SCHEDULER": {
Expand Down

0 comments on commit f3f4fc1

Please sign in to comment.