68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| . /lib/functions.sh
 | |
| 
 | |
| config_load wireless
 | |
| 
 | |
| configure_radio() {
 | |
| 	local radio="$1"
 | |
| 	local channel; local htmode; local ssid; local mesh_ssid; local mesh_bssid; local mesh_mcast_rate
 | |
| 
 | |
| 	config_get hwmode "$radio" 'hwmode'
 | |
| 
 | |
| 	case "$hwmode" in
 | |
| 		11g|11ng)
 | |
| 			channel='@wifi24.channel@'
 | |
| 			htmode='@wifi24.htmode@'
 | |
| 
 | |
| 			ssid='@wifi24.ssid@'
 | |
| 			mesh_ssid='@wifi24.mesh_ssid@'
 | |
| 			mesh_bssid='@wifi24.mesh_bssid@'
 | |
| 			mesh_mcast_rate='@wifi24.mesh_mcast_rate@'
 | |
| 			;;
 | |
| 		11a|11na)
 | |
| 			channel='@wifi5.channel@'
 | |
| 			htmode='@wifi5.htmode@'
 | |
| 
 | |
| 			ssid='@wifi5.ssid@'
 | |
| 			mesh_ssid='@wifi5.mesh_ssid@'
 | |
| 			mesh_bssid='@wifi5.mesh_bssid@'
 | |
| 			mesh_mcast_rate='@wifi5.mesh_mcast_rate@'
 | |
| 			;;
 | |
| 		*)
 | |
| 			return
 | |
| 	esac
 | |
| 
 | |
| 	uci_remove wireless "$radio" 'disabled'
 | |
| 
 | |
| 	uci_set wireless "$radio" channel "$channel"
 | |
| 	uci_set wireless "$radio" htmode "$htmode"
 | |
| 	uci_set wireless "$radio" country '@regdom@'
 | |
| 
 | |
| 	uci_remove wireless "client_${radio}"
 | |
| 	uci_add wireless 'wifi-iface' "client_${radio}"
 | |
| 	uci_set wireless "client_${radio}" device "$radio"
 | |
| 	uci_set wireless "client_${radio}" network 'client'
 | |
| 	uci_set wireless "client_${radio}" mode 'ap'
 | |
| 	uci_set wireless "client_${radio}" ssid "$ssid"
 | |
| 
 | |
| 	uci_remove network "mesh_${radio}"
 | |
| 	uci_add network 'interface' "mesh_${radio}"
 | |
| 	uci_set network "mesh_${radio}" proto 'batadv'
 | |
| 	uci_set network "mesh_${radio}" mtu '1528'
 | |
| 	uci_set network "mesh_${radio}" mesh 'bat0'
 | |
| 
 | |
| 	uci_remove wireless "mesh_${radio}"
 | |
| 	uci_add wireless 'wifi-iface' "mesh_${radio}"
 | |
| 	uci_set wireless "mesh_${radio}" device "$radio"
 | |
| 	uci_set wireless "mesh_${radio}" network "mesh_${radio}"
 | |
| 	uci_set wireless "mesh_${radio}" mode 'adhoc'
 | |
| 	uci_set wireless "mesh_${radio}" ssid "$mesh_ssid"
 | |
| 	uci_set wireless "mesh_${radio}" bssid "$mesh_bssid"
 | |
| 	uci_set wireless "mesh_${radio}" mcast_rate "$mesh_mcast_rate"
 | |
| }
 | |
| 
 | |
| config_foreach configure_radio 'wifi-device'
 | |
| uci_commit wireless
 | |
| uci_commit network
 |