# Mesh interfaces

# Dummy-Interface als MainIF mit manueller MAC fuer batman-adv
auto meshdummy0
iface meshdummy0 inet manual
    pre-up ip link add $IFACE type dummy
    pre-up ip link set address {{mesh_mac}} dev $IFACE
    pre-up ip link set up dev $IFACE
    post-down ip link set down dev $IFACE
    post-down ip link del dev $IFACE
    up batctl if add $IFACE

# batman-adv Mesh Interface, wird von meshdummy0 per Hotplug aktiviert
allow-hotplug bat0
iface bat0 inet static
    address {{mesh_ipv4|ipaddr('address')}}
    netmask {{mesh_ipv4|ipaddr('netmask')}}
    hwaddress {{bat_mac}}
    pre-up ip rule add from {{mesh_ipv4}} table 42
    pre-up ip rule add to {{mesh_ipv4}} table 42
    pre-up batctl it 5000
    pre-up batctl bl 0
    pre-up batctl gw server 48mbit/48mbit
    pre-up echo 120 > /sys/class/net/$IFACE/mesh/hop_penalty
    post-down ip rule del from {{mesh_ipv4}} table 42
    post-down ip rule del to {{mesh_ipv4}} table 42
    # Paralleles Macvlan-Interface mit fixer MTU fuer Alfred
    up ip link add link $IFACE alfred0 type macvlan
    up ip link set dev alfred0 mtu 1280
    up ip link set up dev alfred0
    down ip link set down dev alfred0
    down ip link del dev alfred0

iface bat0 inet6 static
    address {{mesh_ipv6}}
    pre-up ip -6 rule add from {{mesh_ipv6|ipaddr('cidr')}} table 42
    pre-up ip -6 rule add to {{mesh_ipv6|ipaddr('cidr')}} table 42
    post-down ip -6 rule del from {{mesh_ipv6|ipaddr('cidr')}} table 42
    post-down ip -6 rule del to {{mesh_ipv6|ipaddr('cidr')}} table 42
    #pre-up ebtables -A FORWARD -p IPv6 -i $IFACE --ip6-proto ipv6-icmp --ip6-icmp-type router-advertisement -j DROP