diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/platform.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/platform.md index ba287338262..c4b8632e308 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/platform.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/platform.md @@ -99,12 +99,12 @@ interface Management1 ! platform trident l3 routing mac-address per-vlan platform trident forwarding-table partition 2 +platform sand forwarding mode arad +platform sand lag mode 512x32 +platform sand lag hardware-only platform sand qos map traffic-class 0 to network-qos 0 platform sand qos map traffic-class 1 to network-qos 7 platform sand qos map traffic-class 2 to network-qos 15 -platform sand lag hardware-only -platform sand lag mode 512x32 -platform sand forwarding mode arad platform sand multicast replication default ingress platform sand mdb profile l3-xxl platform sfe data-plane cpu allocation maximum 42 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/qos.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/qos.md index dbd61fd888e..a4695a1a692 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/qos.md +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/qos.md @@ -519,8 +519,8 @@ qos profile experiment service-policy type qos input test_qos_policy_v1 ! tx-queue 3 - bandwidth percent 30 no priority + bandwidth percent 30 ! tx-queue 4 bandwidth guaranteed percent 10 @@ -549,8 +549,8 @@ qos profile qprof_testwithpolicy tx-queue 5 !! Multi-line comment !! here. - bandwidth percent 19 no priority + bandwidth percent 19 ! qos profile test qos trust dscp @@ -558,12 +558,12 @@ qos profile test shape rate 80 percent ! tx-queue 1 - bandwidth percent 50 no priority + bandwidth percent 50 ! tx-queue 2 - bandwidth percent 10 priority strict + bandwidth percent 10 random-detect ecn minimum-threshold 320 kbytes maximum-threshold 320 kbytes max-mark-probability 90 ! tx-queue 4 @@ -580,8 +580,8 @@ qos profile test_with_pfc bandwidth percent 80 ! tx-queue 5 - bandwidth percent 19 no priority + bandwidth percent 19 ! priority-flow-control on priority-flow-control priority 0 no-drop @@ -594,13 +594,13 @@ qos profile uc_mc_queues_test ! uc-tx-queue 1 !! Test no priority - bandwidth percent 50 no priority + bandwidth percent 50 random-detect ecn minimum-threshold 3 milliseconds maximum-threshold 9 milliseconds max-mark-probability 90 ! uc-tx-queue 2 - bandwidth percent 10 priority strict + bandwidth percent 10 random-detect ecn minimum-threshold 320 kbytes maximum-threshold 320 kbytes max-mark-probability 90 ! uc-tx-queue 4 @@ -609,13 +609,13 @@ qos profile uc_mc_queues_test random-detect ecn minimum-threshold 320 segments maximum-threshold 320 segments weight 10 ! mc-tx-queue 1 - bandwidth percent 50 no priority + bandwidth percent 50 ! mc-tx-queue 2 !! Test strict priority - bandwidth percent 10 priority strict + bandwidth percent 10 ! mc-tx-queue 4 !! Test guaranteed percent @@ -625,18 +625,18 @@ qos profile wred_queues_test ! tx-queue 1 !! Test no priority - bandwidth percent 50 no priority + bandwidth percent 50 random-detect drop minimum-threshold 1 kbytes maximum-threshold 10 kbytes drop-probability 100 ! tx-queue 2 - bandwidth percent 10 priority strict + bandwidth percent 10 random-detect drop drop-precedence 2 minimum-threshold 2 kbytes maximum-threshold 200 kbytes drop-probability 50 weight 10 ! tx-queue 3 - bandwidth percent 10 priority strict + bandwidth percent 10 random-detect ecn minimum-threshold 320 kbytes maximum-threshold 320 kbytes weight 10 ! tx-queue 4 @@ -645,13 +645,13 @@ qos profile wred_queues_test random-detect drop minimum-threshold 1 kbytes maximum-threshold 10 kbytes drop-probability 90 ! mc-tx-queue 1 - bandwidth percent 50 no priority + bandwidth percent 50 ! mc-tx-queue 2 !! Test strict priority - bandwidth percent 10 priority strict + bandwidth percent 10 ! mc-tx-queue 4 !! Test guaranteed percent @@ -661,13 +661,13 @@ qos profile wred_uc_queues_test ! uc-tx-queue 1 !! Test no priority - bandwidth percent 50 no priority + bandwidth percent 50 random-detect drop minimum-threshold 1 microseconds maximum-threshold 10 microseconds drop-probability 90 weight 15 ! uc-tx-queue 2 - bandwidth percent 10 priority strict + bandwidth percent 10 random-detect drop drop-precedence 1 minimum-threshold 2 milliseconds maximum-threshold 20 milliseconds drop-probability 80 ! uc-tx-queue 4 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/platform.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/platform.cfg index d5a3cc4b69c..e7daa0782e5 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/platform.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/platform.cfg @@ -22,12 +22,12 @@ platform trident mmu queue profile unused_profile ! platform trident l3 routing mac-address per-vlan platform trident forwarding-table partition 2 +platform sand forwarding mode arad +platform sand lag mode 512x32 +platform sand lag hardware-only platform sand qos map traffic-class 0 to network-qos 0 platform sand qos map traffic-class 1 to network-qos 7 platform sand qos map traffic-class 2 to network-qos 15 -platform sand lag hardware-only -platform sand lag mode 512x32 -platform sand forwarding mode arad platform sand multicast replication default ingress platform sand mdb profile l3-xxl platform sfe data-plane cpu allocation maximum 42 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/qos.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/qos.cfg index 32861576754..ecee48bd6af 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/qos.cfg +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/qos.cfg @@ -5,8 +5,8 @@ qos profile experiment service-policy type qos input test_qos_policy_v1 ! tx-queue 3 - bandwidth percent 30 no priority + bandwidth percent 30 ! tx-queue 4 bandwidth guaranteed percent 10 @@ -35,8 +35,8 @@ qos profile qprof_testwithpolicy tx-queue 5 !! Multi-line comment !! here. - bandwidth percent 19 no priority + bandwidth percent 19 ! qos profile test qos trust dscp @@ -44,12 +44,12 @@ qos profile test shape rate 80 percent ! tx-queue 1 - bandwidth percent 50 no priority + bandwidth percent 50 ! tx-queue 2 - bandwidth percent 10 priority strict + bandwidth percent 10 random-detect ecn minimum-threshold 320 kbytes maximum-threshold 320 kbytes max-mark-probability 90 ! tx-queue 4 @@ -66,8 +66,8 @@ qos profile test_with_pfc bandwidth percent 80 ! tx-queue 5 - bandwidth percent 19 no priority + bandwidth percent 19 ! priority-flow-control on priority-flow-control priority 0 no-drop @@ -80,13 +80,13 @@ qos profile uc_mc_queues_test ! uc-tx-queue 1 !! Test no priority - bandwidth percent 50 no priority + bandwidth percent 50 random-detect ecn minimum-threshold 3 milliseconds maximum-threshold 9 milliseconds max-mark-probability 90 ! uc-tx-queue 2 - bandwidth percent 10 priority strict + bandwidth percent 10 random-detect ecn minimum-threshold 320 kbytes maximum-threshold 320 kbytes max-mark-probability 90 ! uc-tx-queue 4 @@ -95,13 +95,13 @@ qos profile uc_mc_queues_test random-detect ecn minimum-threshold 320 segments maximum-threshold 320 segments weight 10 ! mc-tx-queue 1 - bandwidth percent 50 no priority + bandwidth percent 50 ! mc-tx-queue 2 !! Test strict priority - bandwidth percent 10 priority strict + bandwidth percent 10 ! mc-tx-queue 4 !! Test guaranteed percent @@ -111,18 +111,18 @@ qos profile wred_queues_test ! tx-queue 1 !! Test no priority - bandwidth percent 50 no priority + bandwidth percent 50 random-detect drop minimum-threshold 1 kbytes maximum-threshold 10 kbytes drop-probability 100 ! tx-queue 2 - bandwidth percent 10 priority strict + bandwidth percent 10 random-detect drop drop-precedence 2 minimum-threshold 2 kbytes maximum-threshold 200 kbytes drop-probability 50 weight 10 ! tx-queue 3 - bandwidth percent 10 priority strict + bandwidth percent 10 random-detect ecn minimum-threshold 320 kbytes maximum-threshold 320 kbytes weight 10 ! tx-queue 4 @@ -131,13 +131,13 @@ qos profile wred_queues_test random-detect drop minimum-threshold 1 kbytes maximum-threshold 10 kbytes drop-probability 90 ! mc-tx-queue 1 - bandwidth percent 50 no priority + bandwidth percent 50 ! mc-tx-queue 2 !! Test strict priority - bandwidth percent 10 priority strict + bandwidth percent 10 ! mc-tx-queue 4 !! Test guaranteed percent @@ -147,13 +147,13 @@ qos profile wred_uc_queues_test ! uc-tx-queue 1 !! Test no priority - bandwidth percent 50 no priority + bandwidth percent 50 random-detect drop minimum-threshold 1 microseconds maximum-threshold 10 microseconds drop-probability 90 weight 15 ! uc-tx-queue 2 - bandwidth percent 10 priority strict + bandwidth percent 10 random-detect drop drop-precedence 1 minimum-threshold 2 milliseconds maximum-threshold 20 milliseconds drop-probability 80 ! uc-tx-queue 4 diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interface-tx-queues.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interface-tx-queues.j2 index 5f383b62385..63497c89eef 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interface-tx-queues.j2 +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interface-tx-queues.j2 @@ -11,14 +11,14 @@ !! {{ comment_line }} {% endfor %} {% endif %} +{% if tx_queue.priority is arista.avd.defined %} + {{ tx_queue.priority }} +{% endif %} {% if tx_queue.bandwidth_percent is arista.avd.defined %} bandwidth percent {{ tx_queue.bandwidth_percent }} {% elif tx_queue.bandwidth_guaranteed_percent is arista.avd.defined %} bandwidth guaranteed percent {{ tx_queue.bandwidth_guaranteed_percent }} {% endif %} -{% if tx_queue.priority is arista.avd.defined %} - {{ tx_queue.priority }} -{% endif %} {% if tx_queue.shape.rate is arista.avd.defined %} shape rate {{ tx_queue.shape.rate }} {% endif %} diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interface-uc-tx-queues.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interface-uc-tx-queues.j2 index 973bea4c53b..2cb11af776a 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interface-uc-tx-queues.j2 +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interface-uc-tx-queues.j2 @@ -11,14 +11,14 @@ !! {{ comment_line }} {% endfor %} {% endif %} +{% if uc_tx_queue.priority is arista.avd.defined %} + {{ uc_tx_queue.priority }} +{% endif %} {% if uc_tx_queue.bandwidth_percent is arista.avd.defined %} bandwidth percent {{ uc_tx_queue.bandwidth_percent }} {% elif uc_tx_queue.bandwidth_guaranteed_percent is arista.avd.defined %} bandwidth guaranteed percent {{ uc_tx_queue.bandwidth_guaranteed_percent }} {% endif %} -{% if uc_tx_queue.priority is arista.avd.defined %} - {{ uc_tx_queue.priority }} -{% endif %} {% if uc_tx_queue.shape.rate is arista.avd.defined %} shape rate {{ uc_tx_queue.shape.rate }} {% endif %} diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/platform.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/platform.j2 index 6c68be31956..134b9366af2 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/platform.j2 +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/platform.j2 @@ -15,20 +15,20 @@ platform trident l3 routing mac-address per-vlan platform trident forwarding-table partition {{ platform.trident.forwarding_table_partition }} {% endif %} {% if platform.sand is arista.avd.defined %} -{% for qos_map in platform.sand.qos_maps | arista.avd.natural_sort('traffic_class') %} -{% if qos_map.traffic_class is arista.avd.defined and qos_map.to_network_qos is arista.avd.defined %} -platform sand qos map traffic-class {{ qos_map.traffic_class }} to network-qos {{ qos_map.to_network_qos }} -{% endif %} -{% endfor %} -{% if platform.sand.lag.hardware_only is arista.avd.defined(true) %} -platform sand lag hardware-only +{% if platform.sand.forwarding_mode is arista.avd.defined %} +platform sand forwarding mode {{ platform.sand.forwarding_mode }} {% endif %} {% if platform.sand.lag.mode is arista.avd.defined %} platform sand lag mode {{ platform.sand.lag.mode }} {% endif %} -{% if platform.sand.forwarding_mode is arista.avd.defined %} -platform sand forwarding mode {{ platform.sand.forwarding_mode }} +{% if platform.sand.lag.hardware_only is arista.avd.defined(true) %} +platform sand lag hardware-only {% endif %} +{% for qos_map in platform.sand.qos_maps | arista.avd.natural_sort('traffic_class') %} +{% if qos_map.traffic_class is arista.avd.defined and qos_map.to_network_qos is arista.avd.defined %} +platform sand qos map traffic-class {{ qos_map.traffic_class }} to network-qos {{ qos_map.to_network_qos }} +{% endif %} +{% endfor %} {% if platform.sand.multicast_replication.default is arista.avd.defined %} platform sand multicast replication default {{ platform.sand.multicast_replication.default }} {% endif %} diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/qos-profiles.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/qos-profiles.j2 index 18a3571a40d..760faecc3df 100644 --- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/qos-profiles.j2 +++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/qos-profiles.j2 @@ -40,14 +40,14 @@ qos profile {{ profile.name }} !! {{ comment_line }} {% endfor %} {% endif %} +{% if mc_tx_queue.priority is arista.avd.defined %} + {{ mc_tx_queue.priority }} +{% endif %} {% if mc_tx_queue.bandwidth_percent is arista.avd.defined %} bandwidth percent {{ mc_tx_queue.bandwidth_percent }} {% elif mc_tx_queue.bandwidth_guaranteed_percent is arista.avd.defined %} bandwidth guaranteed percent {{ mc_tx_queue.bandwidth_guaranteed_percent }} {% endif %} -{% if mc_tx_queue.priority is arista.avd.defined %} - {{ mc_tx_queue.priority }} -{% endif %} {% if mc_tx_queue.shape.rate is arista.avd.defined %} shape rate {{ mc_tx_queue.shape.rate }} {% endif %}