blob: fee41a89879741715cd1bf990482c96ba0b47f5c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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 %}
|