mirror of
https://github.com/Telecominfraproject/ols-ucentral-schema.git
synced 2025-10-29 01:02:20 +00:00
58 lines
1.6 KiB
Ucode
58 lines
1.6 KiB
Ucode
{%
|
|
let roles = (state.switch && state.switch.loop_detection &&
|
|
state.switch.loop_detection.roles) ?
|
|
state.switch.loop_detection.roles : [];
|
|
|
|
services.set_enabled("ustpd", length(roles));
|
|
|
|
function loop_detect(role) {
|
|
return (index(roles, role) >= 0) ? 1 : 0;
|
|
}
|
|
%}
|
|
|
|
# Basic configuration
|
|
set network.loopback=interface
|
|
set network.loopback.ifname='lo'
|
|
set network.loopback.proto='static'
|
|
set network.loopback.ipaddr='127.0.0.1'
|
|
set network.loopback.netmask='255.0.0.0'
|
|
|
|
set network.up=device
|
|
set network.up.name=up
|
|
set network.up.type=bridge
|
|
set network.up.stp={{ loop_detect("upstream") }}
|
|
set network.up.igmp_snooping='1'
|
|
|
|
{% if (capab.platform != "switch"): %}
|
|
set network.down=device
|
|
set network.down.name=down
|
|
set network.down.type=bridge
|
|
set network.down.stp={{ loop_detect("downstream") }}
|
|
set network.down.igmp_snooping='1'
|
|
|
|
{% endif %}
|
|
set network.up_none=interface
|
|
set network.up_none.ifname=up
|
|
set network.up_none.proto=none
|
|
|
|
{% for (let k, v in capab.macaddr): %}
|
|
add network device
|
|
set network.@device[-1].name={{ s(k) }}
|
|
set network.@device[-1].macaddr={{ s(v) }}
|
|
{% endfor %}
|
|
|
|
{% for (let k, v in capab.switch): %}
|
|
add network switch
|
|
set network.@switch[-1].name={{ s(v.name) }}
|
|
set network.@switch[-1].reset={{ b(v.reset) }}
|
|
set network.@switch[-1].enable_vlan={{ b(v.enable) }}
|
|
{% endfor %}
|
|
|
|
{% for (let k, port in ethernet.ports): %}
|
|
{% if (!port.switch) continue; %}
|
|
add network switch_vlan
|
|
set network.@switch_vlan[-1].device={{ s(port.switch.name) }}
|
|
set network.@switch_vlan[-1].vlan={{ s(port.vlan) }}
|
|
set network.@switch_vlan[-1].ports={{s(port.switch.port + 't ' + port.swconfig)}}
|
|
{% endfor %}
|