mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-02-11 06:13:09 +01:00
84 lines
1.6 KiB
Bash
Executable file
84 lines
1.6 KiB
Bash
Executable file
#!/bin/sh /etc/rc.common
|
|
|
|
START=98
|
|
STOP=20
|
|
|
|
USE_PROCD=1
|
|
|
|
MAP_DEV="map_dev"
|
|
MAP_IF="map"
|
|
MAP_VETH="lei"
|
|
|
|
create_map() {
|
|
uci -q set network.${MAP_DEV}=device
|
|
uci -q set network.${MAP_DEV}.name=br-map
|
|
uci -q set network.${MAP_DEV}.type=bridge
|
|
uci -q set network.${MAP_DEV}.bridge_empty=1
|
|
|
|
uci -q set network.${MAP_IF}=interface
|
|
uci -q set network.${MAP_IF}.device=br-map
|
|
uci -q set network.${MAP_IF}.is_lan=1
|
|
|
|
uci -q set mapagent.agent.al_bridge=br-map
|
|
|
|
uci -q commit
|
|
|
|
ubus call network reload
|
|
ubus -t 5 wait_for network.device
|
|
|
|
ip link add ${MAP_VETH} type veth peer name ${MAP_VETH}_lan 2>/dev/null
|
|
brctl addif br-map ${MAP_VETH} 2>/dev/null
|
|
brctl addif br-lan ${MAP_VETH}_lan 2>/dev/null
|
|
ip link set ${MAP_VETH} up 2>/dev/null
|
|
ip link set ${MAP_VETH}_lan up 2>/dev/null
|
|
}
|
|
|
|
remove_map() {
|
|
ip link delete ${MAP_VETH} &>/dev/null
|
|
|
|
uci -q delete network.${MAP_DEV}
|
|
uci -q delete network.${MAP_IF}
|
|
|
|
uci -q set mapagent.agent.al_bridge=br-lan
|
|
|
|
uci -q commit
|
|
|
|
ubus call network reload
|
|
}
|
|
|
|
start_service() {
|
|
config_load "mapagent"
|
|
|
|
ubus -t 5 wait_for wifi
|
|
|
|
sleep 2
|
|
|
|
local enabled
|
|
config_get_bool enabled agent enabled 1
|
|
[ "$enabled" -eq 0 ] && return 1
|
|
|
|
local ts
|
|
config_get_bool ts agent vlan_segregation 0
|
|
[ "$ts" -eq 1 ] && create_map #|| remove_map
|
|
|
|
procd_open_instance
|
|
procd_set_param command "/usr/sbin/mapagent" "-d"
|
|
procd_set_param respawn
|
|
# procd_set_param stdout 1
|
|
# procd_set_param stderr 1
|
|
procd_close_instance
|
|
}
|
|
|
|
#stop_service() {
|
|
# remove_map
|
|
#}
|
|
|
|
service_triggers()
|
|
{
|
|
procd_add_reload_trigger "ieee1905"
|
|
}
|
|
|
|
reload_service() {
|
|
stop
|
|
start
|
|
}
|