mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
300 lines
6.7 KiB
Bash
300 lines
6.7 KiB
Bash
wlmngr_setupTPs() {
|
|
local pid_nic0=$(pgrep wl0-kthrd)
|
|
local pid_nic1=$(pgrep wl1-kthrd)
|
|
local pid_dhd0=$(pgrep dhd0_dpc)
|
|
local pid_dhd1=$(pgrep dhd1_dpc)
|
|
local pid_wfd0=$(pgrep wfd0-thrd)
|
|
local pid_wfd1=$(pgrep wfd1-thrd)
|
|
local pid_wl0=${pid_dhd0:-$pid_nic0}
|
|
local pid_wl1=${pid_dhd1:-$pid_nic1}
|
|
|
|
# set affinity
|
|
if [ -n "$pid_wl0" -a -n "$pid_wl1" ]; then
|
|
# bind to TP0
|
|
taskset -p 1 $pid_wl0
|
|
# bind to TP1
|
|
taskset -p 2 $pid_wl1
|
|
else
|
|
if [ "$pid_wl0" == "$pid_dhd0" ]; then
|
|
# bind to TP0
|
|
taskset -p 1 $pid_wl0
|
|
else
|
|
# bind to TP1
|
|
taskset -p 2 $pid_wl0
|
|
fi
|
|
fi
|
|
|
|
# set priority
|
|
local pid pids
|
|
pids="$pid_wl0 $pid_wl1 $pid_wfd0 $pid_wfd1"
|
|
for pid in $pids; do
|
|
chrt -rp 5 $pid
|
|
done
|
|
}
|
|
|
|
wlmngr_stopServices() {
|
|
local idx=$1
|
|
|
|
killall -q -9 lld2d 2>/dev/null
|
|
killall -q -9 wps_ap 2>/dev/null
|
|
killall -q -9 wps_enr 2>/dev/null
|
|
killall -q -15 wps_monitor 2>/dev/null # Kill Child Thread first, -15: SIGTERM to force to remove WPS IE
|
|
killall -15 bcmupnp 2>/dev/null # -15: SIGTERM, force bcmupnp to send SSDP ByeBye message out (refer to CR18802)
|
|
rm -rf /var/bcmupnp.pid
|
|
|
|
killall -q -9 nas 2>/dev/null
|
|
killall -q -9 eapd 2>/dev/null
|
|
|
|
killall -q -9 acsd 2>/dev/null
|
|
|
|
nvram unset acs_ifnames # remove wlidx only
|
|
|
|
killall -q -15 wapid
|
|
killall -q -15 hspotap
|
|
killall -q -15 bsd
|
|
killall -q -15 ssd
|
|
killall -q -9 vis-datacollector
|
|
killall -q -9 vis-dcon
|
|
}
|
|
|
|
wlmngr_WlConfDown() {
|
|
local idx=$1
|
|
wlconf wl$idx down
|
|
wlctl -i wl$idx chanspec 36/80
|
|
}
|
|
|
|
wlmngr_setSsid() {
|
|
# local idx=$1
|
|
|
|
# for vif in $(nvram get "wl$idx"_vifs); do
|
|
# wlctl -i wl$idx ssid -C $vifno $(nvram get "$vif"_ssid)
|
|
# done
|
|
return
|
|
}
|
|
|
|
wlmngr_wlIfcDown() {
|
|
local idx=$1
|
|
|
|
for vif in wl$idx $(nvram get "wl$idx"_vifs); do
|
|
ifconfig $vif down
|
|
done
|
|
}
|
|
|
|
wlmngr_doWlConf() {
|
|
local idx=$1;
|
|
|
|
#wlctl -i wl$idx nreqd $nreqd
|
|
wlconf wl$idx up
|
|
}
|
|
|
|
wlmngr_setupMbssMacAddr() {
|
|
local idx=$1
|
|
local hwaddr
|
|
|
|
for vif in $(nvram get "wl$idx"_vifs); do
|
|
hwaddr=$(nvram get "$vif"_hwaddr)
|
|
ifconfig $vif hw ether $hwaddr 2>/dev/null
|
|
wlctl -i $vif cur_etheraddr $hwaddr 2>/dev/null
|
|
done
|
|
}
|
|
|
|
#enableBSD() {
|
|
# nvram_set bsd_role=0
|
|
# [ act_wl_cnt == 0 ] && return FALSE
|
|
# for i in wl0 wl1; do
|
|
# if [ m_instance_wl[i].m_wlVar.wlEnbl == TRUE && m_instance_wl[i].m_wlVar.bsdRole > 0 ]; then
|
|
# nvram set bsd_role=m_instance_wl[i].m_wlVar.bsdRole
|
|
# nvram set bsd_pport=m_instance_wl[i].m_wlVar.bsdPport
|
|
# nvram set bsd_hpport=m_instance_wl[i].m_wlVar.bsdHport
|
|
# nvram set bsd_helper=m_instance_wl[i].m_wlVar.bsdHelper
|
|
# nvram set bsd_primary=m_instance_wl[i].m_wlVar.bsdPrimary
|
|
# return TRUE
|
|
# fi
|
|
# done
|
|
# return FALSE
|
|
#}
|
|
|
|
#enableSSD() {
|
|
# nvram set ssd_enable=0
|
|
# [ act_wl_cnt == 0 ] && return FALSE
|
|
# for i in wl0 wl1; do
|
|
# if [ m_instance_wl[i].m_wlVar.wlEnbl == TRUE && m_instance_wl[i].m_wlVar.ssdEnable > 0 ]; then
|
|
# nvram set ssd_enable=m_instance_wl[i].m_wlVar.ssdEnable
|
|
# return TRUE
|
|
# fi
|
|
# done
|
|
# return FALSE
|
|
#}
|
|
|
|
wlmngr_startServices() {
|
|
local idx=$1
|
|
|
|
#bcmupnp -D
|
|
lld2d br-lan # $(nvram get lan_ifname)
|
|
eapd
|
|
nas
|
|
acsd
|
|
|
|
# wlmngr_startWsc() {
|
|
# return
|
|
# }
|
|
|
|
# wlmngr_startSes() {
|
|
# if [ m_instance_wl[idx].m_wlVar.wlSesEnable == FALSE ]; then
|
|
# return
|
|
# fi
|
|
# ses -f
|
|
# }
|
|
# wlmngr_startSesCl() {
|
|
# if [ m_instance_wl[idx].m_wlVar.wlSesClEnable == FALSE ]; then
|
|
# return
|
|
# fi
|
|
# ses_cl -f
|
|
# }
|
|
|
|
# wapid
|
|
|
|
# wlmngr_BSDCtrl() {
|
|
# killall -q -15 bsd 2>/dev/null
|
|
# if [ "$(enableBSD)" == "TRUE" ]; then
|
|
# bsd&
|
|
# fi
|
|
# }
|
|
|
|
# wlmngr_SSDCtrl(){
|
|
# killall -q -15 ssd 2>/dev/null
|
|
# if [ "$(enableSSD)" == "TRUE" ]; then
|
|
# ssd&
|
|
# fi
|
|
# }
|
|
}
|
|
|
|
wlmngr_startWsc()
|
|
{
|
|
local idx=$1
|
|
local wlunit
|
|
|
|
wlunit=$(nvram get wl_unit)
|
|
|
|
[ -n $wlunit ] && nvram set wl_unit=0
|
|
|
|
nvram set wps_mode=enabled # "enabled/disabled"
|
|
nvram set wl_wps_config_state=1 # "1/0"
|
|
nvram set wl_wps_reg="enabled"
|
|
nvram set lan_wps_reg=enabled #"enabled/disabled"
|
|
nvram set wps_uuid=0x000102030405060708090a0b0c0d0ebb
|
|
nvram set wps_device_name=BroadcomAP
|
|
nvram set wps_mfstring=Broadcom
|
|
nvram set wps_modelname=Broadcom
|
|
nvram set wps_modelnum=123456
|
|
nvram set boardnum=1234
|
|
nvram set wps_timeout_enable=0
|
|
#nvram get wps_config_method
|
|
nvram set wps_version2=enabled # extra
|
|
nvram set lan_wps_oob=disabled # extra
|
|
nvram set lan_wps_reg=enabled # extra
|
|
|
|
|
|
if [ "$(nvram get wps_version2)" == "enabled" ]; then
|
|
nvram set _wps_config_method=sta-pin
|
|
else
|
|
nvram set _wps_config_method=pbc
|
|
fi
|
|
|
|
nvram set wps_config_command=0
|
|
nvram set wps_status=0
|
|
nvram set wps_method=1
|
|
nvram set wps_proc_mac=""
|
|
|
|
if [ "$(nvram get wps_restart)" == "1" ]; then
|
|
nvram set wps_restart=0
|
|
else
|
|
nvram set wps_restart=0
|
|
nvram set wps_proc_status=0
|
|
fi
|
|
|
|
nvram set wps_sta_pin=00000000
|
|
nvram set wps_currentband=""
|
|
nvram set wps_autho_sta_mac="00:00:00:00:00:00"
|
|
|
|
wps_monitor&
|
|
}
|
|
|
|
wlmngr_issueWpsCmd() {
|
|
return
|
|
}
|
|
|
|
wlmngr_WlConfStart() {
|
|
local idx=$1
|
|
wlconf wl$idx up
|
|
}
|
|
|
|
wlmngr_wlIfcUp() {
|
|
local idx=$1
|
|
|
|
for vif in wl$idx $(nvram get "wl$idx"_vifs); do
|
|
if [ "$(nvram get "$vif"_bss_enabled)" == "1" ]; then
|
|
ifconfig $vif up 2>/dev/null
|
|
wlctl -i $vif bss up # extra
|
|
else
|
|
ifconfig $vif down
|
|
fi
|
|
done
|
|
}
|
|
|
|
wlmngr_doWds() {
|
|
return
|
|
}
|
|
|
|
wlmngr_doQoS() {
|
|
local idx=$1
|
|
|
|
for vif in wl$idx $(nvram get "wl$idx"_vifs); do
|
|
ebtables -t nat -D POSTROUTING -o $vif -p IPV4 -j wmm-mark 2>/dev/null
|
|
ebtables -t nat -D POSTROUTING -o $vif -p IPV6 -j wmm-mark 2>/dev/null
|
|
ebtables -t nat -D POSTROUTING -o $vif -p 802_1Q -j wmm-mark --wmm-marktag vlan 2>/dev/null
|
|
if [ "$(nvram get "$vif"_bss_enabled)" == "1" ]; then
|
|
ebtables -t nat -A POSTROUTING -o $vif -p IPV4 -j wmm-mark 2>/dev/null
|
|
ebtables -t nat -A POSTROUTING -o $vif -p IPV6 -j wmm-mark 2>/dev/null
|
|
ebtables -t nat -A POSTROUTING -o $vif -p 802_1Q -j wmm-mark --wmm-marktag vlan 2>/dev/null
|
|
fi
|
|
done
|
|
}
|
|
|
|
wlmngr_finalize() {
|
|
local idx=$1
|
|
|
|
wlctl -i wl$idx phy_watchdog 1
|
|
wlctl -i wl$idx fcache 1
|
|
|
|
# RADAR THRESHOLD VALUES #
|
|
local pcid="$(wlctl -i wl$idx revinfo | awk 'FNR == 2 {print}' | cut -d'x' -f2)"
|
|
# local isac="$(db get hw.$pcid.is_ac)"
|
|
# if [ "$isac" == "1" ]; then
|
|
# wlctl -i $device msglevel +radar +dfs
|
|
# fi
|
|
local rdrthrs="$(db get hw.$pcid.radarthrs)"
|
|
if [ -n "$rdrthrs" ]; then
|
|
wlctl -i wl$idx radarthrs $rdrthrs
|
|
fi
|
|
|
|
# send ARP packet with bridge IP and hardware address to device
|
|
# this piece of code is -required- to make br-lan's mac work properly
|
|
# in all cases
|
|
sendarp -s br-lan -d br-lan
|
|
}
|
|
|
|
wlmngr_issueServiceCmd() {
|
|
return
|
|
}
|
|
|
|
wlmngr_HspotCtrl() {
|
|
killall -q -15 hspotap 2>/dev/null
|
|
if [ "$(enableHspot)" == "TRUE" ]; then
|
|
hspotap&
|
|
fi
|
|
}
|
|
|
|
wlmngr_postStart() {
|
|
return
|
|
}
|