We always want to prefer the unique node address for outgoing traffic. Note that this doesn't have an effect with batman-adv, as usually br-client will be the outgoing interface, so the unique address would be chosen anyways.
		
			
				
	
	
		
			49 lines
		
	
	
		
			924 B
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			924 B
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/lua
 | |
| 
 | |
| local site = require 'gluon.site_config'
 | |
| local sysconfig = require 'gluon.sysconfig'
 | |
| 
 | |
| local uci = require('simple-uci').cursor()
 | |
| 
 | |
| 
 | |
| uci:delete('network', 'local_node_dev')
 | |
| uci:section('network', 'device', 'local_node_dev', {
 | |
| 	type = 'veth',
 | |
| 	name = 'local-node',
 | |
| 	macaddr = site.next_node.mac,
 | |
| 	peer_name = 'local-port',
 | |
| 	peer_macaddr = sysconfig.primary_mac,
 | |
| })
 | |
| 
 | |
| 
 | |
| local ip4, ip6
 | |
| 
 | |
| if site.next_node.ip4 then
 | |
| 	local plen = site.prefix4:match('/%d+$')
 | |
| 	ip4 = site.next_node.ip4 .. plen
 | |
| end
 | |
| 
 | |
| if site.next_node.ip6 then
 | |
| 	ip6 = site.next_node.ip6 .. '/128'
 | |
| end
 | |
| 
 | |
| uci:delete('network', 'local_node')
 | |
| uci:section('network', 'interface', 'local_node', {
 | |
| 	ifname = 'local-node',
 | |
| 	proto = 'static',
 | |
| 	ipaddr = ip4,
 | |
| 	ip6addr = ip6,
 | |
| 	ip6deprecated = true,
 | |
| })
 | |
| 
 | |
| uci:save('network')
 | |
| 
 | |
| 
 | |
| uci:delete('dhcp', 'local_node')
 | |
| uci:section('dhcp', 'dhcp', 'local_node', {
 | |
| 	interface = 'local_node',
 | |
| 	ignore = true,
 | |
| })
 | |
| 
 | |
| uci:save('dhcp')
 |