108 lines
2.9 KiB
Bash
Executable File
108 lines
2.9 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
START=99
|
|
STOP=10
|
|
|
|
enable=$(uci get easymesh.config.enabled 2>/dev/null)
|
|
mesh_bat0=$(uci get network.bat0 2>/dev/null)
|
|
mesh_nwi_mesh0=$(uci get network.nwi_mesh0 2>/dev/null)
|
|
mesh_mesh0=$(uci get wireless.mesh0 2>/dev/null)
|
|
lan=$(uci get network.lan.ifname 2>/dev/null)
|
|
mesh_id=$(uci get easymesh.config.mesh_id 2>/dev/null)
|
|
apRadio=$(uci get easymesh.config.apRadio 2>/dev/null)
|
|
mesh0_apRadio=$(uci get wireless.mesh0.device 2>/dev/null)
|
|
encryption=$(uci get easymesh.config.encryption 2>/dev/null)
|
|
key=$(uci get easymesh.config.key 2>/dev/null)
|
|
|
|
start(){
|
|
if [ "$enable" == 1 ]; then
|
|
if [ "$mesh_bat0" != "interface" ]; then
|
|
uci set network.bat0=interface
|
|
uci set network.bat0.proto='batadv'
|
|
uci set network.bat0.routing_algo='BATMAN_IV'
|
|
uci set network.bat0.aggregated_ogms='1'
|
|
#uci set network.bat0.gw_bandwidth='10000/2000'
|
|
uci set network.bat0.ap_isolation='0'
|
|
uci set network.bat0.bonding='0'
|
|
uci set network.bat0.fragmentation='1'
|
|
uci set network.bat0.gw_mode='off'
|
|
#uci set network.bat0.gw_sel_class='20'
|
|
uci set network.bat0.log_level='0'
|
|
uci set network.bat0.orig_interval='1000'
|
|
uci set network.bat0.bridge_loop_avoidance='1'
|
|
uci set network.bat0.distributed_arp_table='1'
|
|
uci set network.bat0.multicast_mode='1'
|
|
uci set network.bat0.network_coding='0'
|
|
uci set network.bat0.hop_penalty='30'
|
|
uci set network.bat0.isolation_mark='0x00000000/0x00000000'
|
|
|
|
uci add_list network.lan.ifname='bat0'
|
|
uci commit network
|
|
fi
|
|
|
|
if [ "$mesh_nwi_mesh0" != "interface" ]; then
|
|
uci set network.nwi_mesh0=interface
|
|
uci set network.nwi_mesh0.proto='batadv_hardif'
|
|
uci set network.nwi_mesh0.mtu='2304'
|
|
uci set network.nwi_mesh0.master='bat0'
|
|
uci commit network
|
|
fi
|
|
|
|
if [ "$mesh_mesh0" != "wifi-iface" ]; then
|
|
uci set wireless.mesh0=wifi-iface
|
|
uci set wireless.mesh0.device=$apRadio
|
|
uci set wireless.mesh0.ifname='mesh0'
|
|
uci set wireless.mesh0.network='nwi_mesh0'
|
|
uci set wireless.mesh0.mode='mesh'
|
|
uci set wireless.mesh0.mesh_fwding='0'
|
|
uci set wireless.mesh0.mesh_id=$mesh_id
|
|
uci commit wireless
|
|
fi
|
|
|
|
if [ "$mesh_mesh0" = "wifi-iface" ]; then
|
|
if [ "$mesh0_apRadio" != "$apRadio" ]; then
|
|
uci set wireless.mesh0.device=$apRadio
|
|
uci commit wireless
|
|
fi
|
|
fi
|
|
|
|
if [ "$encryption" != 1 ]; then
|
|
uci set wireless.mesh0.encryption='none'
|
|
uci commit wireless
|
|
else
|
|
uci set wireless.mesh0.encryption='sae'
|
|
uci set wireless.mesh0.key=$key
|
|
uci commit wireless
|
|
fi
|
|
|
|
/etc/init.d/network restart
|
|
else
|
|
stop
|
|
fi
|
|
}
|
|
|
|
stop(){
|
|
if [ "$enable" != 1 ]; then
|
|
if [ "$mesh_bat0" = "interface" ]; then
|
|
uci delete network.bat0
|
|
uci del_list network.lan.ifname='bat0'
|
|
uci commit network
|
|
fi
|
|
|
|
if [ "$mesh_nwi_mesh0" = "interface" ]; then
|
|
uci delete network.nwi_mesh0
|
|
uci commit network
|
|
fi
|
|
|
|
if [ "$mesh_mesh0" = "wifi-iface" ]; then
|
|
uci delete wireless.mesh0
|
|
uci commit wireless
|
|
fi
|
|
|
|
/etc/init.d/network restart
|
|
fi
|
|
}
|
|
|
|
restart() {
|
|
start
|
|
}
|