2021-11-29 10:04:01 -06:00
|
|
|
{%- macro generate_buffer_pool_and_profiles_with_inactive_ports(port_names_inactive) %}
|
|
|
|
"BUFFER_POOL": {
|
|
|
|
{% if dynamic_mode is not defined and port_names_inactive|length > 0 -%}
|
|
|
|
"ingress_zero_pool" : {
|
|
|
|
"mode": "static",
|
|
|
|
"type": "ingress",
|
|
|
|
"size": "0"
|
|
|
|
},
|
|
|
|
{% endif -%}
|
|
|
|
"ingress_lossless_pool": {
|
|
|
|
{% if dynamic_mode is not defined -%}
|
|
|
|
"size": "{{ ingress_lossless_pool_size }}",
|
|
|
|
"xoff": "{{ ingress_lossless_pool_xoff }}",
|
|
|
|
{% endif -%}
|
|
|
|
"type": "ingress",
|
|
|
|
"mode": "dynamic"
|
|
|
|
},
|
|
|
|
"egress_lossless_pool": {
|
|
|
|
"size": "{{ egress_lossless_pool_size }}",
|
|
|
|
"type": "egress",
|
|
|
|
"mode": "dynamic"
|
|
|
|
},
|
|
|
|
"egress_lossy_pool": {
|
|
|
|
{% if dynamic_mode is not defined -%}
|
|
|
|
"size": "{{ egress_lossy_pool_size }}",
|
|
|
|
{% endif -%}
|
|
|
|
"type": "egress",
|
|
|
|
"mode": "dynamic"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"BUFFER_PROFILE": {
|
|
|
|
{% if dynamic_mode is not defined and port_names_inactive|length > 0 -%}
|
|
|
|
"ingress_lossy_pg_zero_profile" : {
|
|
|
|
"pool":"ingress_zero_pool",
|
|
|
|
"size":"0",
|
|
|
|
"static_th":"0"
|
|
|
|
},
|
|
|
|
"ingress_lossless_zero_profile" : {
|
|
|
|
"pool":"ingress_lossless_pool",
|
|
|
|
"size":"0",
|
|
|
|
"dynamic_th":"-8"
|
|
|
|
},
|
|
|
|
"egress_lossless_zero_profile" : {
|
|
|
|
"pool":"egress_lossless_pool",
|
|
|
|
"size":"0",
|
|
|
|
"dynamic_th":"-8"
|
|
|
|
},
|
|
|
|
"egress_lossy_zero_profile" : {
|
|
|
|
"pool":"egress_lossy_pool",
|
|
|
|
"size":"0",
|
|
|
|
"dynamic_th":"-8"
|
|
|
|
},
|
|
|
|
{% endif -%}
|
|
|
|
"ingress_lossless_profile": {
|
|
|
|
"pool":"ingress_lossless_pool",
|
|
|
|
"size":"0",
|
|
|
|
"dynamic_th":"7"
|
|
|
|
},
|
|
|
|
"ingress_lossy_profile": {
|
|
|
|
"pool":"ingress_lossless_pool",
|
|
|
|
"size":"0",
|
|
|
|
"dynamic_th":"3"
|
|
|
|
},
|
|
|
|
"egress_lossless_profile": {
|
|
|
|
"pool":"egress_lossless_pool",
|
|
|
|
"size":"0",
|
|
|
|
"dynamic_th":"7"
|
|
|
|
},
|
|
|
|
"egress_lossy_profile": {
|
|
|
|
"pool":"egress_lossy_pool",
|
|
|
|
"size":"9216",
|
|
|
|
"dynamic_th":"7"
|
|
|
|
},
|
|
|
|
"q_lossy_profile": {
|
|
|
|
"pool":"egress_lossy_pool",
|
|
|
|
"size":"0",
|
|
|
|
"dynamic_th":"3"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{%- endmacro %}
|
|
|
|
|
|
|
|
{%- macro generate_profile_lists(port_names_active, port_names_inactive) %}
|
|
|
|
"BUFFER_PORT_INGRESS_PROFILE_LIST": {
|
|
|
|
{% for port in port_names_active.split(',') %}
|
|
|
|
"{{ port }}": {
|
|
|
|
"profile_list" : "ingress_lossless_profile"
|
|
|
|
}{% if not loop.last %},{% endif %}
|
|
|
|
|
|
|
|
{% endfor %}
|
|
|
|
{% if port_names_inactive|length > 0 %}
|
|
|
|
,
|
|
|
|
{% for port in port_names_inactive.split(',') %}
|
|
|
|
"{{ port }}": {
|
|
|
|
{% if dynamic_mode is defined %}
|
|
|
|
"profile_list" : "ingress_lossless_profile"
|
|
|
|
{% else %}
|
|
|
|
"profile_list" : "ingress_lossless_zero_profile"
|
|
|
|
{% endif %}
|
|
|
|
}{% if not loop.last %},{% endif %}
|
|
|
|
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
|
|
|
},
|
|
|
|
"BUFFER_PORT_EGRESS_PROFILE_LIST": {
|
|
|
|
{% for port in port_names_active.split(',') %}
|
|
|
|
"{{ port }}": {
|
|
|
|
"profile_list" : "egress_lossless_profile,egress_lossy_profile"
|
|
|
|
}{% if not loop.last %},{% endif %}
|
|
|
|
|
|
|
|
{% endfor %}
|
|
|
|
{% if port_names_inactive|length > 0 %}
|
|
|
|
,
|
|
|
|
{% for port in port_names_inactive.split(',') %}
|
|
|
|
"{{ port }}": {
|
|
|
|
{% if dynamic_mode is defined %}
|
|
|
|
"profile_list" : "egress_lossless_profile,egress_lossy_profile"
|
|
|
|
{% else %}
|
|
|
|
"profile_list" : "egress_lossless_zero_profile,egress_lossy_zero_profile"
|
|
|
|
{% endif %}
|
|
|
|
}{% if not loop.last %},{% endif %}
|
|
|
|
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
|
|
|
}
|
|
|
|
{%- endmacro %}
|
|
|
|
|
2022-07-20 01:48:15 -05:00
|
|
|
{%- macro generate_queue_buffers_with_extra_lossless_queues(port_names_active, port_names_extra_queues, port_names_inactive) %}
|
2021-11-29 10:04:01 -06:00
|
|
|
"BUFFER_QUEUE": {
|
2022-07-20 01:48:15 -05:00
|
|
|
{% set q_loop = namespace(last_valid=false) %}
|
2021-11-29 10:04:01 -06:00
|
|
|
{% for port in port_names_active.split(',') %}
|
2022-07-20 01:48:15 -05:00
|
|
|
{% if port not in port_names_extra_queues.split(',') %}
|
2021-11-29 10:04:01 -06:00
|
|
|
"{{ port }}|3-4": {
|
|
|
|
"profile" : "egress_lossless_profile"
|
|
|
|
},
|
2022-07-20 01:48:15 -05:00
|
|
|
{% endif %}
|
2021-11-29 10:04:01 -06:00
|
|
|
{% endfor %}
|
|
|
|
{% for port in port_names_active.split(',') %}
|
2022-07-20 01:48:15 -05:00
|
|
|
{% if port not in port_names_extra_queues.split(',') %}
|
2021-11-29 10:04:01 -06:00
|
|
|
"{{ port }}|0-2": {
|
|
|
|
"profile" : "q_lossy_profile"
|
|
|
|
},
|
2022-07-20 01:48:15 -05:00
|
|
|
{% endif %}
|
2021-11-29 10:04:01 -06:00
|
|
|
{% endfor %}
|
|
|
|
{% for port in port_names_active.split(',') %}
|
2022-07-20 01:48:15 -05:00
|
|
|
{% if port not in port_names_extra_queues.split(',') %}
|
2022-07-31 20:27:36 -05:00
|
|
|
{% if port_names_extra_queues|length > 0 %}
|
|
|
|
"{{ port }}|5-7": {
|
|
|
|
{% else %}
|
2021-11-29 10:04:01 -06:00
|
|
|
"{{ port }}|5-6": {
|
2022-07-31 20:27:36 -05:00
|
|
|
{% endif %}
|
2021-11-29 10:04:01 -06:00
|
|
|
"profile" : "q_lossy_profile"
|
|
|
|
}{% if not loop.last %},{% endif %}
|
|
|
|
|
2022-07-20 01:48:15 -05:00
|
|
|
{% set q_loop.last_valid = true %}
|
|
|
|
{% else %}
|
|
|
|
{% set q_loop.last_valid = false %}
|
|
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
{% if port_names_extra_queues|length > 0 %}
|
|
|
|
{% if q_loop.last_valid %},{% endif %}
|
|
|
|
{% for port in port_names_extra_queues.split(',') %}
|
|
|
|
"{{ port }}|0-1": {
|
|
|
|
"profile" : "q_lossy_profile"
|
|
|
|
},
|
|
|
|
"{{ port }}|2-4": {
|
|
|
|
"profile" : "egress_lossless_profile"
|
|
|
|
},
|
|
|
|
"{{ port }}|5": {
|
|
|
|
"profile" : "q_lossy_profile"
|
|
|
|
},
|
|
|
|
"{{ port }}|6": {
|
|
|
|
"profile" : "egress_lossless_profile"
|
|
|
|
},
|
|
|
|
"{{ port }}|7": {
|
|
|
|
"profile" : "q_lossy_profile"
|
|
|
|
}{% if not loop.last %},{% endif %}
|
|
|
|
|
2021-11-29 10:04:01 -06:00
|
|
|
{% endfor %}
|
2022-07-20 01:48:15 -05:00
|
|
|
{% endif %}
|
2021-11-29 10:04:01 -06:00
|
|
|
{% if port_names_inactive|length > 0 %}
|
|
|
|
,
|
|
|
|
{% if dynamic_mode is defined %}
|
|
|
|
{% for port in port_names_inactive.split(',') %}
|
|
|
|
"{{ port }}|3-4": {
|
|
|
|
"profile" : "egress_lossless_profile"
|
|
|
|
},
|
|
|
|
{% endfor %}
|
|
|
|
{% for port in port_names_inactive.split(',') %}
|
|
|
|
"{{ port }}|0-2": {
|
|
|
|
"profile" : "q_lossy_profile"
|
|
|
|
},
|
|
|
|
{% endfor %}
|
|
|
|
{% for port in port_names_inactive.split(',') %}
|
2022-07-31 20:27:36 -05:00
|
|
|
{% if port_names_extra_queues|length > 0 %}
|
|
|
|
"{{ port }}|5-7": {
|
|
|
|
{% else %}
|
2021-11-29 10:04:01 -06:00
|
|
|
"{{ port }}|5-6": {
|
2022-07-31 20:27:36 -05:00
|
|
|
{% endif %}
|
2021-11-29 10:04:01 -06:00
|
|
|
"profile" : "q_lossy_profile"
|
|
|
|
}{% if not loop.last %},{% endif %}
|
|
|
|
|
|
|
|
{% endfor %}
|
|
|
|
{% else %}
|
|
|
|
{% for port in port_names_inactive.split(',') %}
|
|
|
|
"{{ port }}|3-4": {
|
|
|
|
"profile" : "egress_lossless_zero_profile"
|
|
|
|
},
|
|
|
|
{% endfor %}
|
|
|
|
{% for port in port_names_inactive.split(',') %}
|
|
|
|
"{{ port }}|0-2": {
|
|
|
|
"profile" : "egress_lossy_zero_profile"
|
|
|
|
},
|
|
|
|
{% endfor %}
|
|
|
|
{% for port in port_names_inactive.split(',') %}
|
2022-07-31 20:27:36 -05:00
|
|
|
{% if port_names_extra_queues|length > 0 %}
|
|
|
|
"{{ port }}|5-7": {
|
|
|
|
{% else %}
|
2021-11-29 10:04:01 -06:00
|
|
|
"{{ port }}|5-6": {
|
2022-07-31 20:27:36 -05:00
|
|
|
{% endif %}
|
2021-11-29 10:04:01 -06:00
|
|
|
"profile" : "egress_lossy_zero_profile"
|
|
|
|
}{% if not loop.last %},{% endif %}
|
|
|
|
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
|
|
}
|
|
|
|
{%- endmacro %}
|
|
|
|
|
2022-07-20 01:48:15 -05:00
|
|
|
{%- macro generate_queue_buffers(port_names_active, port_names_inactive) %}
|
|
|
|
{{ generate_queue_buffers_with_extra_lossless_queues(port_names_active, "", port_names_inactive) }}
|
|
|
|
{%- endmacro %}
|
|
|
|
|
|
|
|
{%- macro generate_pg_profiles_with_extra_lossless_pgs(port_names_active, port_names_extra_pgs, port_names_inactive) %}
|
2021-11-29 10:04:01 -06:00
|
|
|
"BUFFER_PG": {
|
2022-07-20 01:48:15 -05:00
|
|
|
{% set pg_loop = namespace(last_valid=false) %}
|
2021-11-29 10:04:01 -06:00
|
|
|
{% for port in port_names_active.split(',') %}
|
2022-07-20 01:48:15 -05:00
|
|
|
{% if port not in port_names_extra_pgs.split(',') %}
|
2021-11-29 10:04:01 -06:00
|
|
|
{% if dynamic_mode is defined %}
|
|
|
|
"{{ port }}|3-4": {
|
|
|
|
"profile" : "NULL"
|
|
|
|
},
|
|
|
|
{% endif %}
|
|
|
|
"{{ port }}|0": {
|
|
|
|
"profile" : "ingress_lossy_profile"
|
|
|
|
}{% if not loop.last %},{% endif %}
|
|
|
|
|
2022-07-20 01:48:15 -05:00
|
|
|
{% set pg_loop.last_valid = true %}
|
|
|
|
{% else %}
|
|
|
|
{% set pg_loop.last_valid = false %}
|
|
|
|
{% endif %}
|
2021-11-29 10:04:01 -06:00
|
|
|
{% endfor %}
|
2022-07-20 01:48:15 -05:00
|
|
|
{% if port_names_extra_pgs|length > 0 %}
|
|
|
|
{% if pg_loop.last_valid %},{% endif %}
|
|
|
|
{% for port in port_names_extra_pgs.split(',') %}
|
|
|
|
{% if dynamic_mode is defined %}
|
|
|
|
"{{ port }}|2-4": {
|
|
|
|
"profile" : "NULL"
|
|
|
|
},
|
|
|
|
"{{ port }}|6": {
|
|
|
|
"profile" : "NULL"
|
|
|
|
},
|
|
|
|
{% endif %}
|
|
|
|
"{{ port }}|0": {
|
|
|
|
"profile" : "ingress_lossy_profile"
|
|
|
|
}{% if not loop.last %},{% endif %}
|
|
|
|
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
2021-11-29 10:04:01 -06:00
|
|
|
{% if port_names_inactive|length > 0 %}
|
|
|
|
{%- for port in port_names_inactive.split(',') %}
|
|
|
|
{%- if loop.first -%},{%- endif -%}
|
|
|
|
{% if dynamic_mode is defined %}
|
|
|
|
"{{ port }}|3-4": {
|
|
|
|
"profile" : "NULL"
|
|
|
|
},
|
|
|
|
{% endif %}
|
|
|
|
"{{ port }}|0": {
|
|
|
|
{% if dynamic_mode is defined %}
|
|
|
|
"profile" : "ingress_lossy_profile"
|
|
|
|
{% else %}
|
|
|
|
"profile" : "ingress_lossy_pg_zero_profile"
|
|
|
|
{% endif %}
|
|
|
|
}{% if not loop.last %},{% endif %}
|
|
|
|
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
|
|
|
}
|
|
|
|
{%- endmacro %}
|
2022-07-20 01:48:15 -05:00
|
|
|
|
|
|
|
{%- macro generate_pg_profiles(port_names_active, port_names_inactive) %}
|
|
|
|
{{ generate_pg_profiles_with_extra_lossless_pgs(port_names_active, "", port_names_inactive) }}
|
|
|
|
{%- endmacro %}
|