-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix buffer configurations for 7170 #2972
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,8 @@ | ||
{%- set default_cable = '5m' %} | ||
{% set default_cable = '5m' %} | ||
{% set ingress_lossless_pool_size = '4194304' %} | ||
{% set ingress_lossy_pool_size = '7340032' %} | ||
{% set egress_lossless_pool_size = '16777152' %} | ||
{% set egress_lossy_pool_size = '7340032' %} | ||
|
||
{%- macro generate_port_lists(PORT_ALL) %} | ||
{# Generate list of ports #} | ||
|
@@ -10,37 +14,70 @@ | |
{%- macro generate_buffer_pool_and_profiles() %} | ||
"BUFFER_POOL": { | ||
"ingress_lossless_pool": { | ||
"size": "33329088", | ||
"size": "{{ ingress_lossless_pool_size }}", | ||
"type": "ingress", | ||
"mode": "dynamic", | ||
"xoff": "7827456" | ||
"mode": "dynamic" | ||
}, | ||
"egress_lossy_pool": { | ||
"size": "26663272", | ||
"type": "egress", | ||
"ingress_lossy_pool": { | ||
"size": "{{ ingress_lossy_pool_size }}", | ||
"type": "ingress", | ||
"mode": "dynamic" | ||
}, | ||
"egress_lossless_pool": { | ||
"size": "42349632", | ||
"size": "{{ egress_lossless_pool_size }}", | ||
"type": "egress", | ||
"mode": "static" | ||
"mode": "dynamic" | ||
}, | ||
"egress_lossy_pool": { | ||
"size": "{{ egress_lossy_pool_size }}", | ||
"type": "egress", | ||
"mode": "dynamic" | ||
} | ||
}, | ||
"BUFFER_PROFILE": { | ||
"ingress_lossy_profile": { | ||
"ingress_lossless_profile": { | ||
"pool":"[BUFFER_POOL|ingress_lossless_pool]", | ||
"size":"0", | ||
"static_th":"11075584" | ||
"dynamic_th":"0" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. the dynamic threshold definating is alpha = 2^dynamic_th. If the dynamic_th is zero, then alpha is 1. it does not guarantee lossless behavior by SAI definition. |
||
}, | ||
"ingress_lossy_profile": { | ||
"pool":"[BUFFER_POOL|ingress_lossy_pool]", | ||
"size":"4096", | ||
"dynamic_th":"3" | ||
}, | ||
"egress_lossless_profile": { | ||
"pool":"[BUFFER_POOL|egress_lossless_pool]", | ||
"size":"0", | ||
"static_th":"10587408" | ||
"dynamic_th":"7" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we should avoid any egress packet drop for lossless traffic. previously configuration was to avoid any packet drop at egress. I do not think current configuration can guarantee no packet drop at egress for lossless traffic. |
||
}, | ||
"egress_lossy_profile": { | ||
"pool":"[BUFFER_POOL|egress_lossy_pool]", | ||
"size":"1664", | ||
"dynamic_th":"-1" | ||
"size":"4096", | ||
"dynamic_th":"3" | ||
}, | ||
"q_lossy_profile": { | ||
"pool":"[BUFFER_POOL|egress_lossy_pool]", | ||
"size":"4096", | ||
"dynamic_th":"3" | ||
} | ||
}, | ||
{%- endmacro %} | ||
|
||
{%- macro generate_pg_profils(port_names) %} | ||
"BUFFER_PG": { | ||
"{{ port_names }}|3-4": { | ||
"profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" | ||
} | ||
}, | ||
{%- endmacro %} | ||
|
||
{%- macro generate_queue_buffers(port_names) %} | ||
"BUFFER_QUEUE": { | ||
"{{ port_names }}|3-4": { | ||
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]" | ||
}, | ||
"{{ port_names }}|0-1": { | ||
"profile" : "[BUFFER_PROFILE|q_lossy_profile]" | ||
} | ||
} | ||
{%- endmacro %} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
{% set default_cable = '5m' %} | ||
{% set ingress_lossless_pool_size = '2097152' %} | ||
{% set ingress_lossy_pool_size = '5242880' %} | ||
{% set egress_lossless_pool_size = '16777152' %} | ||
{% set egress_lossy_pool_size = '5242880' %} | ||
|
||
{%- macro generate_port_lists(PORT_ALL) %} | ||
{# Generate list of ports #} | ||
{%- for port_idx in range(0,64) %} | ||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} | ||
{%- endfor %} | ||
{%- endmacro %} | ||
|
||
{%- macro generate_buffer_pool_and_profiles() %} | ||
"BUFFER_POOL": { | ||
"ingress_lossless_pool": { | ||
"size": "{{ ingress_lossless_pool_size }}", | ||
"type": "ingress", | ||
"mode": "dynamic" | ||
}, | ||
"ingress_lossy_pool": { | ||
"size": "{{ ingress_lossy_pool_size }}", | ||
"type": "ingress", | ||
"mode": "dynamic" | ||
}, | ||
"egress_lossless_pool": { | ||
"size": "{{ egress_lossless_pool_size }}", | ||
"type": "egress", | ||
"mode": "dynamic" | ||
}, | ||
"egress_lossy_pool": { | ||
"size": "{{ egress_lossy_pool_size }}", | ||
"type": "egress", | ||
"mode": "dynamic" | ||
} | ||
}, | ||
"BUFFER_PROFILE": { | ||
"ingress_lossless_profile": { | ||
"pool":"[BUFFER_POOL|ingress_lossless_pool]", | ||
"size":"0", | ||
"dynamic_th":"0" | ||
}, | ||
"ingress_lossy_profile": { | ||
"pool":"[BUFFER_POOL|ingress_lossy_pool]", | ||
"size":"4096", | ||
"dynamic_th":"3" | ||
}, | ||
"egress_lossless_profile": { | ||
"pool":"[BUFFER_POOL|egress_lossless_pool]", | ||
"size":"0", | ||
"dynamic_th":"7" | ||
}, | ||
"egress_lossy_profile": { | ||
"pool":"[BUFFER_POOL|egress_lossy_pool]", | ||
"size":"4096", | ||
"dynamic_th":"3" | ||
}, | ||
"q_lossy_profile": { | ||
"pool":"[BUFFER_POOL|egress_lossy_pool]", | ||
"size":"4096", | ||
"dynamic_th":"3" | ||
} | ||
}, | ||
{%- endmacro %} | ||
|
||
{%- macro generate_pg_profils(port_names) %} | ||
"BUFFER_PG": { | ||
"{{ port_names }}|3-4": { | ||
"profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" | ||
} | ||
}, | ||
{%- endmacro %} | ||
|
||
{%- macro generate_queue_buffers(port_names) %} | ||
"BUFFER_QUEUE": { | ||
"{{ port_names }}|3-4": { | ||
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]" | ||
}, | ||
"{{ port_names }}|0-1": { | ||
"profile" : "[BUFFER_PROFILE|q_lossy_profile]" | ||
} | ||
} | ||
{%- endmacro %} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
{% set default_cable = '5m' %} | ||
{% set ingress_lossless_pool_size = '2097152' %} | ||
{% set ingress_lossy_pool_size = '5242880' %} | ||
{% set egress_lossless_pool_size = '16777152' %} | ||
{% set egress_lossy_pool_size = '5242880' %} | ||
|
||
{%- macro generate_port_lists(PORT_ALL) %} | ||
{# Generate list of ports #} | ||
{%- for port_idx in range(0,20) %} | ||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} | ||
{%- endfor %} | ||
{%- for port_idx in range(80,88) %} | ||
{%- if PORT_ALL.append("Ethernet%d" % port_idx) %}{%- endif %} | ||
{%- endfor %} | ||
{%- for port_idx in range(22,32) %} | ||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} | ||
{%- endfor %} | ||
{%- for port_idx in range(128,140) %} | ||
{%- if PORT_ALL.append("Ethernet%d" % port_idx) %}{%- endif %} | ||
{%- endfor %} | ||
{%- for port_idx in range(35,64) %} | ||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %} | ||
{%- endfor %} | ||
{%- endmacro %} | ||
|
||
{%- macro generate_buffer_pool_and_profiles() %} | ||
"BUFFER_POOL": { | ||
"ingress_lossless_pool": { | ||
"size": "{{ ingress_lossless_pool_size }}", | ||
"type": "ingress", | ||
"mode": "dynamic" | ||
}, | ||
"ingress_lossy_pool": { | ||
"size": "{{ ingress_lossy_pool_size }}", | ||
"type": "ingress", | ||
"mode": "dynamic" | ||
}, | ||
"egress_lossless_pool": { | ||
"size": "{{ egress_lossless_pool_size }}", | ||
"type": "egress", | ||
"mode": "dynamic" | ||
}, | ||
"egress_lossy_pool": { | ||
"size": "{{ egress_lossy_pool_size }}", | ||
"type": "egress", | ||
"mode": "dynamic" | ||
} | ||
}, | ||
"BUFFER_PROFILE": { | ||
"ingress_lossless_profile": { | ||
wendani marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"pool":"[BUFFER_POOL|ingress_lossless_pool]", | ||
"size":"0", | ||
"dynamic_th":"0" | ||
}, | ||
"ingress_lossy_profile": { | ||
"pool":"[BUFFER_POOL|ingress_lossy_pool]", | ||
"size":"4096", | ||
"dynamic_th":"3" | ||
}, | ||
"egress_lossless_profile": { | ||
"pool":"[BUFFER_POOL|egress_lossless_pool]", | ||
"size":"0", | ||
"dynamic_th":"7" | ||
}, | ||
"egress_lossy_profile": { | ||
"pool":"[BUFFER_POOL|egress_lossy_pool]", | ||
"size":"4096", | ||
"dynamic_th":"3" | ||
}, | ||
"q_lossy_profile": { | ||
"pool":"[BUFFER_POOL|egress_lossy_pool]", | ||
"size":"4096", | ||
"dynamic_th":"3" | ||
} | ||
}, | ||
{%- endmacro %} | ||
|
||
{%- macro generate_pg_profils(port_names) %} | ||
"BUFFER_PG": { | ||
"{{ port_names }}|3-4": { | ||
"profile" : "[BUFFER_PROFILE|ingress_lossless_profile]" | ||
} | ||
}, | ||
{%- endmacro %} | ||
|
||
{%- macro generate_queue_buffers(port_names) %} | ||
"BUFFER_QUEUE": { | ||
"{{ port_names }}|3-4": { | ||
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]" | ||
}, | ||
"{{ port_names }}|0-1": { | ||
"profile" : "[BUFFER_PROFILE|q_lossy_profile]" | ||
} | ||
} | ||
{%- endmacro %} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the ingress lossless pool size is changed from 32M -> 4M, why such change. I do not understand the rationale behind this change.