From fb85d96d5e4007751ec5290f64cc5f5066e0e17a Mon Sep 17 00:00:00 2001 From: Matthias Schiffer <mschiffer@universe-factory.net> Date: Wed, 30 Nov 2016 15:27:33 +0100 Subject: [PATCH] gluon-next-node: don't require next_node.ip6 The next-node interface may be useful with IPv4 only or even just a MAC address. This prepares merging gluon-next-node into gluon-batman-adv-core. --- package/gluon-next-node/check_site.lua | 2 +- .../files/lib/gluon/ebtables/250-next-node | 10 ++++++---- .../files/lib/gluon/upgrade/400-next-node | 8 ++++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/package/gluon-next-node/check_site.lua b/package/gluon-next-node/check_site.lua index b38de2a41..b4d7dd2c9 100644 --- a/package/gluon-next-node/check_site.lua +++ b/package/gluon-next-node/check_site.lua @@ -2,6 +2,6 @@ if need_string_match('next_node.ip4', '^%d+.%d+.%d+.%d+$', false) then need_string_match('prefix4', '^%d+.%d+.%d+.%d+/%d+$') end -need_string_match('next_node.ip6', '^[%x:]+$') +need_string_match('next_node.ip6', '^[%x:]+$', false) need_string_match('next_node.mac', '^%x[02468aAcCeE]:%x%x:%x%x:%x%x:%x%x:%x%x$') diff --git a/package/gluon-next-node/files/lib/gluon/ebtables/250-next-node b/package/gluon-next-node/files/lib/gluon/ebtables/250-next-node index abe297e7c..64b32859c 100644 --- a/package/gluon-next-node/files/lib/gluon/ebtables/250-next-node +++ b/package/gluon-next-node/files/lib/gluon/ebtables/250-next-node @@ -16,7 +16,9 @@ if next_node.ip4 then rule('OUTPUT --logical-out br-client -o bat0 -p IPv4 --ip-source ' .. next_node.ip4 .. ' -j DROP') end -rule('FORWARD --logical-out br-client -o bat0 -p IPv6 --ip6-destination ' .. next_node.ip6 .. ' -j DROP') -rule('OUTPUT --logical-out br-client -o bat0 -p IPv6 --ip6-destination ' .. next_node.ip6 .. ' -j DROP') -rule('FORWARD --logical-out br-client -o bat0 -p IPv6 --ip6-source ' .. next_node.ip6 .. ' -j DROP') -rule('OUTPUT --logical-out br-client -o bat0 -p IPv6 --ip6-source ' .. next_node.ip6 .. ' -j DROP') +if next_node.ip6 then + rule('FORWARD --logical-out br-client -o bat0 -p IPv6 --ip6-destination ' .. next_node.ip6 .. ' -j DROP') + rule('OUTPUT --logical-out br-client -o bat0 -p IPv6 --ip6-destination ' .. next_node.ip6 .. ' -j DROP') + rule('FORWARD --logical-out br-client -o bat0 -p IPv6 --ip6-source ' .. next_node.ip6 .. ' -j DROP') + rule('OUTPUT --logical-out br-client -o bat0 -p IPv6 --ip6-source ' .. next_node.ip6 .. ' -j DROP') +end diff --git a/package/gluon-next-node/files/lib/gluon/upgrade/400-next-node b/package/gluon-next-node/files/lib/gluon/upgrade/400-next-node index e8ecfca4f..98dffbc9d 100755 --- a/package/gluon-next-node/files/lib/gluon/upgrade/400-next-node +++ b/package/gluon-next-node/files/lib/gluon/upgrade/400-next-node @@ -17,13 +17,17 @@ c:section('network', 'device', 'local_node_dev', } ) -local ip4, netmask +local ip4, netmask, ip6 if site.next_node.ip4 then ip4 = site.next_node.ip4 netmask = ip.IPv4(site.prefix4):mask():string() end +if site.next_node.ip6 then + ip6 = site.next_node.ip6 .. '/128' +end + c:delete('network', 'local_node') c:section('network', 'interface', 'local_node', { @@ -31,7 +35,7 @@ c:section('network', 'interface', 'local_node', proto = 'static', ipaddr = ip4, netmask = netmask, - ip6addr = site.next_node.ip6 .. '/128', + ip6addr = ip6, } ) -- GitLab