From f81bbfed656535bed7c193558b320ab86b8bfd09 Mon Sep 17 00:00:00 2001 From: Julian Labus Date: Thu, 1 Feb 2018 16:18:57 +0100 Subject: [PATCH] Role network-meshbridge: update workaround to set hwaddress `pre-up` doesn't work properly as it is called before the bridge is created. Initializing the bridge via `up` in the batman mesh interface seems to be a better solution. --- roles/network-batman/templates/batman.j2 | 1 + roles/network-meshbridge/templates/bridge.j2 | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/network-batman/templates/batman.j2 b/roles/network-batman/templates/batman.j2 index 557af93..cc1a1e4 100644 --- a/roles/network-batman/templates/batman.j2 +++ b/roles/network-batman/templates/batman.j2 @@ -9,6 +9,7 @@ iface {{ item.id }}bat hwaddress {{ mac | hwaddr('linux') }} batman-ifaces {{ item.id }}0 {% for instance in item.fastd.nodes.instances %}{{ item.id }}vpn-{{ instance.mtu }}{% if not loop.last %} {% endif %}{% endfor %} {% for instance in item.fastd.intragate.instances %}{{ item.id }}igvpn-{{ instance.mtu }}{% if not loop.last %} {% endif %}{% endfor %} batman-hop-penalty {{ item.batman.hop_penalty }} + up /sbin/ip link add name {{ item.id }}br type bridge # workaround to properly set hwaddress on {{ item.id }}br post-up /usr/sbin/batctl -m $IFACE it {{ item.batman.it }} post-up /usr/sbin/batctl -m $IFACE gw {{ item.batman.gw }} post-up /usr/sbin/batctl -m $IFACE mm {{ item.batman.mm }} diff --git a/roles/network-meshbridge/templates/bridge.j2 b/roles/network-meshbridge/templates/bridge.j2 index 626f08d..984d3ac 100644 --- a/roles/network-meshbridge/templates/bridge.j2 +++ b/roles/network-meshbridge/templates/bridge.j2 @@ -5,8 +5,7 @@ # auto {{ item.id }}br iface {{ item.id }}br -# hwaddress {{ mac | hwaddr('linux') }} <-- preferred way, not working - ipv6 addresses not set on boot - pre-up /sbin/ip link set address {{ mac | hwaddr('linux') }} dev $IFACE # ^^^ dirty workaround to get rid of + hwaddress {{ mac | hwaddr('linux') }} address {{ item.ipv4_network | ipaddr('net') | ipaddr(magic) | ipaddr('ip/prefix') }} {% for prefix in item.ipv6_ula %} address {{ prefix | ipaddr('net') | ipsubnet(64, 0) | ipaddr(magic) | ipaddr('ip/prefix') }}