diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md
index d84487ab92c..27bfcf620f4 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/host1.md
@@ -3796,9 +3796,9 @@ interface Dps1
#### Traffic Engineering
-| Interface | Enabled | Administrative Groups |
-| --------- | ------- | --------------------- |
-| Ethernet81/3 | True | 3,15-29,testgrp |
+| Interface | Administrative Groups | Metric | Max Reservable Bandwidth | Min-delay | SRLG |
+| --------- | --------------------- | ------ | ------------------------ | --------- | ---- |
+| Ethernet81/3 | 3,15-29,testgrp | 4 | 10 percent | 5 microseconds | TEST-SRLG |
#### Ethernet Interfaces Device Configuration
@@ -4789,14 +4789,22 @@ interface Ethernet81/3
no switchport
ip address 100.64.127.0/31
traffic-engineering
+ traffic-engineering bandwidth 10 percent
traffic-engineering administrative-group 3,15-29,testgrp
+ traffic-engineering srlg TEST-SRLG
+ traffic-engineering metric 4
+ traffic-engineering min-delay static 5 microseconds
!
interface Ethernet81/4
description Traffic Engineering Interface
no shutdown
no switchport
ip address 100.64.127.0/31
+ traffic-engineering bandwidth 100 mbps
traffic-engineering administrative-group 4,7-100,testgrp
+ traffic-engineering srlg 16
+ traffic-engineering metric 2
+ traffic-engineering min-delay static 2 milliseconds
!
interface Ethernet81/10
description isis_port_channel_member
@@ -5031,9 +5039,9 @@ interface Ethernet84
#### Traffic Engineering
-| Interface | Enabled | Administrative Groups |
-| --------- | ------- | --------------------- |
-| Port-Channel136 | True | 7 |
+| Interface | Administrative Groups | Metric | Max Reservable Bandwidth | Min-delay | SRLG |
+| --------- | --------------------- | ------ | ------------------------ | --------- | ---- |
+| Port-Channel136 | 7 | - | - | - | - |
#### Port-Channel Interfaces Device Configuration
@@ -5649,7 +5657,11 @@ interface Port-Channel137
description Traffic Engineering Interface
no switchport
ip address 100.64.127.4/31
+ traffic-engineering bandwidth 100 mbps
traffic-engineering administrative-group 4,7-100,testgrp
+ traffic-engineering srlg 16
+ traffic-engineering metric 2
+ traffic-engineering min-delay static 2 milliseconds
```
### Loopback Interfaces
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg
index e213b30b800..30ed1a899ed 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/host1.cfg
@@ -2234,7 +2234,11 @@ interface Port-Channel137
description Traffic Engineering Interface
no switchport
ip address 100.64.127.4/31
+ traffic-engineering bandwidth 100 mbps
traffic-engineering administrative-group 4,7-100,testgrp
+ traffic-engineering srlg 16
+ traffic-engineering metric 2
+ traffic-engineering min-delay static 2 milliseconds
!
interface Dps1
description Test DPS Interface
@@ -3231,14 +3235,22 @@ interface Ethernet81/3
no switchport
ip address 100.64.127.0/31
traffic-engineering
+ traffic-engineering bandwidth 10 percent
traffic-engineering administrative-group 3,15-29,testgrp
+ traffic-engineering srlg TEST-SRLG
+ traffic-engineering metric 4
+ traffic-engineering min-delay static 5 microseconds
!
interface Ethernet81/4
description Traffic Engineering Interface
no shutdown
no switchport
ip address 100.64.127.0/31
+ traffic-engineering bandwidth 100 mbps
traffic-engineering administrative-group 4,7-100,testgrp
+ traffic-engineering srlg 16
+ traffic-engineering metric 2
+ traffic-engineering min-delay static 2 milliseconds
!
interface Ethernet81/10
description isis_port_channel_member
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ethernet-interfaces.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ethernet-interfaces.yml
index ea22cb6f482..daec5ddda67 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ethernet-interfaces.yml
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/ethernet-interfaces.yml
@@ -1874,6 +1874,14 @@ ethernet_interfaces:
- 3
- 15-29
- testgrp
+ srlg: TEST-SRLG
+ metric: 4
+ bandwidth:
+ number: 10
+ unit: percent
+ min_delay_static:
+ number: 5
+ unit: microseconds
- name: Ethernet81/4
description: Traffic Engineering Interface
@@ -1887,6 +1895,14 @@ ethernet_interfaces:
- 4
- 7-100
- testgrp
+ srlg: 16
+ metric: 2
+ bandwidth:
+ number: 100
+ unit: mbps
+ min_delay_static:
+ number: 2
+ unit: milliseconds
- name: Ethernet82
description: Switchport_tap_tool
diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/port-channel-interfaces.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/port-channel-interfaces.yml
index c03f8e31ee2..18ec3400772 100644
--- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/port-channel-interfaces.yml
+++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/host1/port-channel-interfaces.yml
@@ -1068,3 +1068,11 @@ port_channel_interfaces:
- 4
- 7-100
- testgrp
+ srlg: 16
+ metric: 2
+ bandwidth:
+ number: 100
+ unit: mbps
+ min_delay_static:
+ number: 2
+ unit: milliseconds
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ethernet-interfaces.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ethernet-interfaces.md
index c6a53d3fad3..5503d7b3fb1 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ethernet-interfaces.md
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/ethernet-interfaces.md
@@ -607,6 +607,14 @@
| [ enabled](## "ethernet_interfaces.[].traffic_engineering.enabled") | Boolean | | | | Whether to enable traffic-engineering on this interface. |
| [ administrative_groups](## "ethernet_interfaces.[].traffic_engineering.administrative_groups") | List, items: String | | | | List of traffic-engineering administrative groups, valid values are names, ranges 0-127, or single integers 0-127. |
| [ - <str>](## "ethernet_interfaces.[].traffic_engineering.administrative_groups.[]") | String | | | | |
+ | [ srlg](## "ethernet_interfaces.[].traffic_engineering.srlg") | String | | | | SRLG name or number |
+ | [ metric](## "ethernet_interfaces.[].traffic_engineering.metric") | Integer | | | Min: 1
Max: 16777215 | |
+ | [ bandwidth](## "ethernet_interfaces.[].traffic_engineering.bandwidth") | Dictionary | | | | Interface maximum reservable bandwidth |
+ | [ number](## "ethernet_interfaces.[].traffic_engineering.bandwidth.number") | Integer | | | Min: 0
Max: 10000 | |
+ | [ unit](## "ethernet_interfaces.[].traffic_engineering.bandwidth.unit") | String | | | Valid Values:
- gbps
- mbps
- percent
| |
+ | [ min_delay_static](## "ethernet_interfaces.[].traffic_engineering.min_delay_static") | Dictionary | | | | |
+ | [ number](## "ethernet_interfaces.[].traffic_engineering.min_delay_static.number") | Integer | | | Min: 1
Max: 16777215 | |
+ | [ unit](## "ethernet_interfaces.[].traffic_engineering.min_delay_static.unit") | String | | | Valid Values:
- microseconds
- milliseconds
| |
| [ eos_cli](## "ethernet_interfaces.[].eos_cli") | String | | | | Multiline EOS CLI rendered directly on the ethernet interface in the final EOS configuration. |
=== "YAML"
@@ -1946,6 +1954,18 @@
administrative_groups:
-
+ # SRLG name or number
+ srlg:
+ metric:
+
+ # Interface maximum reservable bandwidth
+ bandwidth:
+ number:
+ unit:
+ min_delay_static:
+ number:
+ unit:
+
# Multiline EOS CLI rendered directly on the ethernet interface in the final EOS configuration.
eos_cli:
```
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md
index c594d5500d5..7ec9fa30f1d 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/port-channel-interfaces.md
@@ -430,6 +430,14 @@
| [ enabled](## "port_channel_interfaces.[].traffic_engineering.enabled") | Boolean | | | | Whether to enable traffic-engineering on this interface. |
| [ administrative_groups](## "port_channel_interfaces.[].traffic_engineering.administrative_groups") | List, items: String | | | | List of traffic-engineering administrative groups, valid values are names, ranges 0-127, or single integers 0-127. |
| [ - <str>](## "port_channel_interfaces.[].traffic_engineering.administrative_groups.[]") | String | | | | |
+ | [ srlg](## "port_channel_interfaces.[].traffic_engineering.srlg") | String | | | | SRLG name or number |
+ | [ metric](## "port_channel_interfaces.[].traffic_engineering.metric") | Integer | | | Min: 1
Max: 16777215 | |
+ | [ bandwidth](## "port_channel_interfaces.[].traffic_engineering.bandwidth") | Dictionary | | | | Interface maximum reservable bandwidth |
+ | [ number](## "port_channel_interfaces.[].traffic_engineering.bandwidth.number") | Integer | | | Min: 0
Max: 10000 | |
+ | [ unit](## "port_channel_interfaces.[].traffic_engineering.bandwidth.unit") | String | | | Valid Values:
- gbps
- mbps
- percent
| |
+ | [ min_delay_static](## "port_channel_interfaces.[].traffic_engineering.min_delay_static") | Dictionary | | | | |
+ | [ number](## "port_channel_interfaces.[].traffic_engineering.min_delay_static.number") | Integer | | | Min: 1
Max: 16777215 | |
+ | [ unit](## "port_channel_interfaces.[].traffic_engineering.min_delay_static.unit") | String | | | Valid Values:
- microseconds
- milliseconds
| |
| [ validate_state](## "port_channel_interfaces.[].validate_state") | Boolean | | | | Set to false to disable interface state and LLDP topology validation performed by the `eos_validate_state` role. |
| [ validate_lldp](## "port_channel_interfaces.[].validate_lldp") | Boolean | | | | Set to false to disable the LLDP topology validation performed by the `eos_validate_state` role. |
| [ eos_cli](## "port_channel_interfaces.[].eos_cli") | String | | | | Multiline EOS CLI rendered directly on the port-channel interface in the final EOS configuration. |
@@ -1420,6 +1428,18 @@
administrative_groups:
-
+ # SRLG name or number
+ srlg:
+ metric:
+
+ # Interface maximum reservable bandwidth
+ bandwidth:
+ number:
+ unit:
+ min_delay_static:
+ number:
+ unit:
+
# Set to false to disable interface state and LLDP topology validation performed by the `eos_validate_state` role.
validate_state:
diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/ethernet-interfaces.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/ethernet-interfaces.j2
index a71324ff420..af53fd3afef 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/ethernet-interfaces.j2
+++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/ethernet-interfaces.j2
@@ -805,12 +805,23 @@
#### Traffic Engineering
-| Interface | Enabled | Administrative Groups |
-| --------- | ------- | --------------------- |
+| Interface | Administrative Groups | Metric | Max Reservable Bandwidth | Min-delay | SRLG |
+| --------- | --------------------- | ------ | ------------------------ | --------- | ---- |
{% for te_interface in te_interfaces %}
{% set admin_groups = te_interface.traffic_engineering.administrative_groups | arista.avd.default (["-"]) | join(",") %}
-{% set te_enabled = te_interface.traffic_engineering.enabled | arista.avd.default ("-") %}
-| {{ te_interface.name }} | {{ te_enabled }} | {{ admin_groups }} |
+{% set te_srlg = te_interface.traffic_engineering.srlg | arista.avd.default("-") %}
+{% set te_metric = te_interface.traffic_engineering.metric | arista.avd.default("-") %}
+{% if te_interface.traffic_engineering.bandwidth is arista.avd.defined %}
+{% set te_bandwidth = te_interface.traffic_engineering.bandwidth.number ~ " " ~ te_interface.traffic_engineering.bandwidth.unit %}
+{% else %}
+{% set te_bandwidth = "-" %}
+{% endif %}
+{% if te_interface.traffic_engineering.min_delay_static is arista.avd.defined %}
+{% set te_min_del = te_interface.traffic_engineering.min_delay_static.number ~ " " ~ te_interface.traffic_engineering.min_delay_static.unit %}
+{% else %}
+{% set te_min_del = "-" %}
+{% endif %}
+| {{ te_interface.name }} | {{ admin_groups }} | {{ te_metric }} | {{ te_bandwidth }} | {{ te_min_del }} | {{ te_srlg }} |
{% endfor %}
{% endif %}
diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/port-channel-interfaces.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/port-channel-interfaces.j2
index 643b317ed2b..e1f7654a905 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/port-channel-interfaces.j2
+++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/documentation/port-channel-interfaces.j2
@@ -421,12 +421,23 @@
#### Traffic Engineering
-| Interface | Enabled | Administrative Groups |
-| --------- | ------- | --------------------- |
+| Interface | Administrative Groups | Metric | Max Reservable Bandwidth | Min-delay | SRLG |
+| --------- | --------------------- | ------ | ------------------------ | --------- | ---- |
{% for po_te_interface in port_channel_te_interfaces %}
-{% set admin_groups = po_te_interface.traffic_engineering.administrative_groups | arista.avd.default(["-"]) | join(",") %}
-{% set te_enabled = po_te_interface.traffic_engineering.enabled | arista.avd.default("-") %}
-| {{ po_te_interface.name }} | {{ te_enabled }} | {{ admin_groups }} |
+{% set admin_groups = po_te_interface.traffic_engineering.administrative_groups | arista.avd.default (["-"]) | join(",") %}
+{% set te_srlg = po_te_interface.traffic_engineering.srlg | arista.avd.default("-") %}
+{% set te_metric = po_te_interface.traffic_engineering.metric | arista.avd.default("-") %}
+{% if po_te_interface.traffic_engineering.bandwidth is arista.avd.defined %}
+{% set te_bandwidth = po_te_interface.traffic_engineering.bandwidth.number ~ " " ~ po_te_interface.traffic_engineering.bandwidth.unit %}
+{% else %}
+{% set te_bandwidth = "-" %}
+{% endif %}
+{% if po_te_interface.traffic_engineering.min_delay_static is arista.avd.defined %}
+{% set te_min_del = po_te_interface.traffic_engineering.min_delay_static.number ~ " " ~ po_te_interface.traffic_engineering.min_delay_static.unit %}
+{% else %}
+{% set te_min_del = "-" %}
+{% endif %}
+| {{ po_te_interface.name }} | {{ admin_groups }} | {{ te_metric }} | {{ te_bandwidth }} | {{ te_min_del }} | {{ te_srlg }} |
{% endfor %}
{% endif %}
diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interfaces.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interfaces.j2
index 5dbad587b3a..136065a8c22 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interfaces.j2
+++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/ethernet-interfaces.j2
@@ -1124,9 +1124,21 @@ interface {{ ethernet_interface.name }}
{% if ethernet_interface.traffic_engineering.enabled is arista.avd.defined(true) %}
traffic-engineering
{% endif %}
+{% if ethernet_interface.traffic_engineering.bandwidth is arista.avd.defined %}
+ traffic-engineering bandwidth {{ ethernet_interface.traffic_engineering.bandwidth.number }} {{ ethernet_interface.traffic_engineering.bandwidth.unit }}
+{% endif %}
{% if ethernet_interface.traffic_engineering.administrative_groups is arista.avd.defined %}
traffic-engineering administrative-group {{ ethernet_interface.traffic_engineering.administrative_groups | join(",") }}
{% endif %}
+{% if ethernet_interface.traffic_engineering.srlg is arista.avd.defined %}
+ traffic-engineering srlg {{ ethernet_interface.traffic_engineering.srlg }}
+{% endif %}
+{% if ethernet_interface.traffic_engineering.metric is arista.avd.defined %}
+ traffic-engineering metric {{ ethernet_interface.traffic_engineering.metric }}
+{% endif %}
+{% if ethernet_interface.traffic_engineering.min_delay_static is arista.avd.defined %}
+ traffic-engineering min-delay static {{ ethernet_interface.traffic_engineering.min_delay_static.number }} {{ ethernet_interface.traffic_engineering.min_delay_static.unit }}
+{% endif %}
{% for link_tracking_group in ethernet_interface.link_tracking_groups | arista.avd.natural_sort %}
{% if link_tracking_group.name is arista.avd.defined and link_tracking_group.direction is arista.avd.defined %}
link tracking group {{ link_tracking_group.name }} {{ link_tracking_group.direction }}
diff --git a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/port-channel-interfaces.j2 b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/port-channel-interfaces.j2
index 6c9d56275a9..92a538f7106 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/port-channel-interfaces.j2
+++ b/python-avd/pyavd/_eos_cli_config_gen/j2templates/eos/port-channel-interfaces.j2
@@ -926,9 +926,21 @@ interface {{ port_channel_interface.name }}
{% if port_channel_interface.traffic_engineering.enabled is arista.avd.defined(true) %}
traffic-engineering
{% endif %}
+{% if port_channel_interface.traffic_engineering.bandwidth is arista.avd.defined %}
+ traffic-engineering bandwidth {{ port_channel_interface.traffic_engineering.bandwidth.number }} {{ port_channel_interface.traffic_engineering.bandwidth.unit }}
+{% endif %}
{% if port_channel_interface.traffic_engineering.administrative_groups is arista.avd.defined %}
traffic-engineering administrative-group {{ port_channel_interface.traffic_engineering.administrative_groups | join(",") }}
{% endif %}
+{% if port_channel_interface.traffic_engineering.srlg is arista.avd.defined %}
+ traffic-engineering srlg {{ port_channel_interface.traffic_engineering.srlg }}
+{% endif %}
+{% if port_channel_interface.traffic_engineering.metric is arista.avd.defined %}
+ traffic-engineering metric {{ port_channel_interface.traffic_engineering.metric }}
+{% endif %}
+{% if port_channel_interface.traffic_engineering.min_delay_static is arista.avd.defined %}
+ traffic-engineering min-delay static {{ port_channel_interface.traffic_engineering.min_delay_static.number }} {{ port_channel_interface.traffic_engineering.min_delay_static.unit }}
+{% endif %}
{% for link_tracking_group in port_channel_interface.link_tracking_groups | arista.avd.natural_sort('name') %}
{% if link_tracking_group.name is arista.avd.defined and link_tracking_group.direction is arista.avd.defined %}
link tracking group {{ link_tracking_group.name }} {{ link_tracking_group.direction }}
diff --git a/python-avd/pyavd/_eos_cli_config_gen/schema/__init__.py b/python-avd/pyavd/_eos_cli_config_gen/schema/__init__.py
index 2e50cbc1579..3458410beb8 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/schema/__init__.py
+++ b/python-avd/pyavd/_eos_cli_config_gen/schema/__init__.py
@@ -12271,7 +12271,75 @@ class AdministrativeGroups(AvdList[str]):
AdministrativeGroups._item_type = str
- _fields: ClassVar[dict] = {"enabled": {"type": bool}, "administrative_groups": {"type": AdministrativeGroups}, "_custom_data": {"type": dict}}
+ class Bandwidth(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {"number": {"type": int}, "unit": {"type": str}, "_custom_data": {"type": dict}}
+ number: int | None
+ unit: Literal["gbps", "mbps", "percent"] | None
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ number: int | None | UndefinedType = Undefined,
+ unit: Literal["gbps", "mbps", "percent"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ Bandwidth.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ number: number
+ unit: unit
+ _custom_data: _custom_data
+
+ """
+
+ class MinDelayStatic(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {"number": {"type": int}, "unit": {"type": str}, "_custom_data": {"type": dict}}
+ number: int | None
+ unit: Literal["microseconds", "milliseconds"] | None
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ number: int | None | UndefinedType = Undefined,
+ unit: Literal["microseconds", "milliseconds"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ MinDelayStatic.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ number: number
+ unit: unit
+ _custom_data: _custom_data
+
+ """
+
+ _fields: ClassVar[dict] = {
+ "enabled": {"type": bool},
+ "administrative_groups": {"type": AdministrativeGroups},
+ "srlg": {"type": str},
+ "metric": {"type": int},
+ "bandwidth": {"type": Bandwidth},
+ "min_delay_static": {"type": MinDelayStatic},
+ "_custom_data": {"type": dict},
+ }
enabled: bool | None
"""Whether to enable traffic-engineering on this interface."""
administrative_groups: AdministrativeGroups
@@ -12281,6 +12349,17 @@ class AdministrativeGroups(AvdList[str]):
Subclass of AvdList with `str` items.
"""
+ srlg: str | None
+ """SRLG name or number"""
+ metric: int | None
+ bandwidth: Bandwidth
+ """
+ Interface maximum reservable bandwidth
+
+ Subclass of AvdModel.
+ """
+ min_delay_static: MinDelayStatic
+ """Subclass of AvdModel."""
_custom_data: dict[str, Any]
if TYPE_CHECKING:
@@ -12290,6 +12369,10 @@ def __init__(
*,
enabled: bool | None | UndefinedType = Undefined,
administrative_groups: AdministrativeGroups | UndefinedType = Undefined,
+ srlg: str | None | UndefinedType = Undefined,
+ metric: int | None | UndefinedType = Undefined,
+ bandwidth: Bandwidth | UndefinedType = Undefined,
+ min_delay_static: MinDelayStatic | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
"""
@@ -12305,6 +12388,13 @@ def __init__(
integers 0-127.
Subclass of AvdList with `str` items.
+ srlg: SRLG name or number
+ metric: metric
+ bandwidth:
+ Interface maximum reservable bandwidth
+
+ Subclass of AvdModel.
+ min_delay_static: Subclass of AvdModel.
_custom_data: _custom_data
"""
@@ -32775,7 +32865,75 @@ class AdministrativeGroups(AvdList[str]):
AdministrativeGroups._item_type = str
- _fields: ClassVar[dict] = {"enabled": {"type": bool}, "administrative_groups": {"type": AdministrativeGroups}, "_custom_data": {"type": dict}}
+ class Bandwidth(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {"number": {"type": int}, "unit": {"type": str}, "_custom_data": {"type": dict}}
+ number: int | None
+ unit: Literal["gbps", "mbps", "percent"] | None
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ number: int | None | UndefinedType = Undefined,
+ unit: Literal["gbps", "mbps", "percent"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ Bandwidth.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ number: number
+ unit: unit
+ _custom_data: _custom_data
+
+ """
+
+ class MinDelayStatic(AvdModel):
+ """Subclass of AvdModel."""
+
+ _fields: ClassVar[dict] = {"number": {"type": int}, "unit": {"type": str}, "_custom_data": {"type": dict}}
+ number: int | None
+ unit: Literal["microseconds", "milliseconds"] | None
+ _custom_data: dict[str, Any]
+
+ if TYPE_CHECKING:
+
+ def __init__(
+ self,
+ *,
+ number: int | None | UndefinedType = Undefined,
+ unit: Literal["microseconds", "milliseconds"] | None | UndefinedType = Undefined,
+ _custom_data: dict[str, Any] | UndefinedType = Undefined,
+ ) -> None:
+ """
+ MinDelayStatic.
+
+
+ Subclass of AvdModel.
+
+ Args:
+ number: number
+ unit: unit
+ _custom_data: _custom_data
+
+ """
+
+ _fields: ClassVar[dict] = {
+ "enabled": {"type": bool},
+ "administrative_groups": {"type": AdministrativeGroups},
+ "srlg": {"type": str},
+ "metric": {"type": int},
+ "bandwidth": {"type": Bandwidth},
+ "min_delay_static": {"type": MinDelayStatic},
+ "_custom_data": {"type": dict},
+ }
enabled: bool | None
"""Whether to enable traffic-engineering on this interface."""
administrative_groups: AdministrativeGroups
@@ -32785,6 +32943,17 @@ class AdministrativeGroups(AvdList[str]):
Subclass of AvdList with `str` items.
"""
+ srlg: str | None
+ """SRLG name or number"""
+ metric: int | None
+ bandwidth: Bandwidth
+ """
+ Interface maximum reservable bandwidth
+
+ Subclass of AvdModel.
+ """
+ min_delay_static: MinDelayStatic
+ """Subclass of AvdModel."""
_custom_data: dict[str, Any]
if TYPE_CHECKING:
@@ -32794,6 +32963,10 @@ def __init__(
*,
enabled: bool | None | UndefinedType = Undefined,
administrative_groups: AdministrativeGroups | UndefinedType = Undefined,
+ srlg: str | None | UndefinedType = Undefined,
+ metric: int | None | UndefinedType = Undefined,
+ bandwidth: Bandwidth | UndefinedType = Undefined,
+ min_delay_static: MinDelayStatic | UndefinedType = Undefined,
_custom_data: dict[str, Any] | UndefinedType = Undefined,
) -> None:
"""
@@ -32809,6 +32982,13 @@ def __init__(
integers 0-127.
Subclass of AvdList with `str` items.
+ srlg: SRLG name or number
+ metric: metric
+ bandwidth:
+ Interface maximum reservable bandwidth
+
+ Subclass of AvdModel.
+ min_delay_static: Subclass of AvdModel.
_custom_data: _custom_data
"""
diff --git a/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml b/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml
index d3e7c577fcc..d8c617b7e31 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml
+++ b/python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.schema.yml
@@ -4430,6 +4430,47 @@ keys:
type: str
convert_types:
- int
+ srlg:
+ description: SRLG name or number
+ type: str
+ convert_types:
+ - int
+ metric:
+ type: int
+ convert_types:
+ - str
+ min: 1
+ max: 16777215
+ bandwidth:
+ type: dict
+ description: Interface maximum reservable bandwidth
+ keys:
+ number:
+ type: int
+ convert_types:
+ - str
+ min: 0
+ max: 10000
+ unit:
+ type: str
+ valid_values:
+ - gbps
+ - mbps
+ - percent
+ min_delay_static:
+ type: dict
+ keys:
+ number:
+ type: int
+ convert_types:
+ - str
+ min: 1
+ max: 16777215
+ unit:
+ type: str
+ valid_values:
+ - microseconds
+ - milliseconds
eos_cli:
type: str
description: Multiline EOS CLI rendered directly on the ethernet interface
@@ -11264,6 +11305,47 @@ keys:
type: str
convert_types:
- int
+ srlg:
+ description: SRLG name or number
+ type: str
+ convert_types:
+ - int
+ metric:
+ type: int
+ convert_types:
+ - str
+ min: 1
+ max: 16777215
+ bandwidth:
+ type: dict
+ description: Interface maximum reservable bandwidth
+ keys:
+ number:
+ type: int
+ convert_types:
+ - str
+ min: 0
+ max: 10000
+ unit:
+ type: str
+ valid_values:
+ - gbps
+ - mbps
+ - percent
+ min_delay_static:
+ type: dict
+ keys:
+ number:
+ type: int
+ convert_types:
+ - str
+ min: 1
+ max: 16777215
+ unit:
+ type: str
+ valid_values:
+ - microseconds
+ - milliseconds
validate_state:
type: bool
description: Set to false to disable interface state and LLDP topology validation
diff --git a/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/ethernet_interfaces.schema.yml b/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/ethernet_interfaces.schema.yml
index 6eda1e0b8b5..73af26db39e 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/ethernet_interfaces.schema.yml
+++ b/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/ethernet_interfaces.schema.yml
@@ -2216,6 +2216,47 @@ keys:
type: str
convert_types:
- int
+ srlg:
+ description: SRLG name or number
+ type: str
+ convert_types:
+ - int
+ metric:
+ type: int
+ convert_types:
+ - str
+ min: 1
+ max: 16777215
+ bandwidth:
+ type: dict
+ description: Interface maximum reservable bandwidth
+ keys:
+ number:
+ type: int
+ convert_types:
+ - str
+ min: 0
+ max: 10000
+ unit:
+ type: str
+ valid_values:
+ - gbps
+ - mbps
+ - percent
+ min_delay_static:
+ type: dict
+ keys:
+ number:
+ type: int
+ convert_types:
+ - str
+ min: 1
+ max: 16777215
+ unit:
+ type: str
+ valid_values:
+ - microseconds
+ - milliseconds
eos_cli:
type: str
description: Multiline EOS CLI rendered directly on the ethernet interface in the final EOS configuration.
diff --git a/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/port_channel_interfaces.schema.yml b/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/port_channel_interfaces.schema.yml
index b1d8ea708fa..889f851048b 100644
--- a/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/port_channel_interfaces.schema.yml
+++ b/python-avd/pyavd/_eos_cli_config_gen/schema/schema_fragments/port_channel_interfaces.schema.yml
@@ -1398,6 +1398,47 @@ keys:
type: str
convert_types:
- int
+ srlg:
+ description: SRLG name or number
+ type: str
+ convert_types:
+ - int
+ metric:
+ type: int
+ convert_types:
+ - str
+ min: 1
+ max: 16777215
+ bandwidth:
+ type: dict
+ description: Interface maximum reservable bandwidth
+ keys:
+ number:
+ type: int
+ convert_types:
+ - str
+ min: 0
+ max: 10000
+ unit:
+ type: str
+ valid_values:
+ - gbps
+ - mbps
+ - percent
+ min_delay_static:
+ type: dict
+ keys:
+ number:
+ type: int
+ convert_types:
+ - str
+ min: 1
+ max: 16777215
+ unit:
+ type: str
+ valid_values:
+ - microseconds
+ - milliseconds
validate_state:
type: bool
description: Set to false to disable interface state and LLDP topology validation performed by the `eos_validate_state` role.