auto lo
iface lo inet loopback

{% for iface in interfaces | selectattr('enabled') %}
auto {{ iface.name }}
iface {{ iface.name }} inet static
{% for address in iface.ip_addresses %}
    address {{ address.address }}
{% if address.family.value == 4 %}
{% set subnet = address.address | ipaddr('subnet') %}
{% set prefix = prefixes | selectattr('prefix', '==', subnet) | first %}
{% set gateway = prefix.custom_fields.gateway.address %}
{% if gateway is defined and gateway != address.address %}
    gateway {{ gateway | ipaddr('address') }}
{% endif %}
{% endif %}
{% endfor -%}

{# disable SLAAC if we have a manually set IPv6 address #}
{% if iface.ip_addresses | selectattr("family.value", "==", 6) %}
    pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/autoconf
{% endif %}

{% endfor %}