diff options
| author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2026-01-09 14:55:52 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-09 14:55:52 +0200 |
| commit | 33f1763bf6434497ad0f7904122d5cb943d20138 (patch) | |
| tree | 8f221183536bdfc2879c74f1c81c82cde730295b /data | |
| parent | f80aae18439fe93a32101dfe45ef65812cf91e45 (diff) | |
| parent | a4b3cd33ca11aba579510456941f404839135af4 (diff) | |
| download | vyos-1x-33f1763bf6434497ad0f7904122d5cb943d20138.tar.gz vyos-1x-33f1763bf6434497ad0f7904122d5cb943d20138.zip | |
Merge pull request #4912 from hedrok/T8046-add-link-params-cli
T8046: traffic-engineering: support link-params
Diffstat (limited to 'data')
| -rw-r--r-- | data/templates/frr/isisd.frr.j2 | 3 | ||||
| -rw-r--r-- | data/templates/frr/zebra.traffic_engineering.frr.j2 | 37 |
2 files changed, 40 insertions, 0 deletions
diff --git a/data/templates/frr/isisd.frr.j2 b/data/templates/frr/isisd.frr.j2 index 6691517b4..a7e614e3e 100644 --- a/data/templates/frr/isisd.frr.j2 +++ b/data/templates/frr/isisd.frr.j2 @@ -153,6 +153,9 @@ advertise-passive-only {% endif %} mpls-te inter-as{{ level }} {% endif %} +{% if traffic_engineering.export is vyos_defined %} + mpls-te export +{% endif %} {% if segment_routing is vyos_defined %} {% if segment_routing.maximum_label_depth is vyos_defined %} segment-routing node-msd {{ segment_routing.maximum_label_depth }} diff --git a/data/templates/frr/zebra.traffic_engineering.frr.j2 b/data/templates/frr/zebra.traffic_engineering.frr.j2 new file mode 100644 index 000000000..fee41a898 --- /dev/null +++ b/data/templates/frr/zebra.traffic_engineering.frr.j2 @@ -0,0 +1,37 @@ +{% if interface is vyos_defined %} +! +{% set ns = namespace(mask_by_admin_group=dict()) %} +{% if admin_group is vyos_defined %} +{% for ag in admin_group %} +{% set _ = ns.mask_by_admin_group.update({ag: 1.__lshift__(admin_group[ag]['bit_position'] | int)}) %} +{% endfor %} +{% endif %} +{% set mbit_per_second_2_byte_per_second = 1024 * 1024 / 8 %} +{% for ifname, data in interface.items() %} +interface {{ ifname }} + link-params +{% if data.metric is vyos_defined %} + metric {{ data.metric }} +{% endif %} +{% if data.admin_group is vyos_defined %} +{% set val = namespace(x=0) %} +{% for ag in data.admin_group %} +{% set val.x = (val.x | int).__or__(ns.mask_by_admin_group[ag]) %} +{% endfor %} + admin-grp {{ '0x{:x}'.format(val.x) }} +{% endif %} +{% if data.max_bandwidth is vyos_defined %} + max-bw {{ (data.max_bandwidth | int) * mbit_per_second_2_byte_per_second }} +{% endif %} +{% if data.max_reservable_bandwidth is vyos_defined %} +{% set v = (data.max_reservable_bandwidth | int) * mbit_per_second_2_byte_per_second %} + max-rsv-bw {{ v }} +{% for i in range(8) %} + unrsv-bw {{ i }} {{ v }} +{% endfor %} +{% endif %} + exit-link-params +exit +! +{% endfor %} +{% endif %} |
