Remove TCP Vegas support (ARM7)
[tomato.git] / release / src-rt-6.x.4708 / router / others / watchdog
blobbdb6ce2c0b7557ff1c0def6199e6e7c8f825c6cc
1 #!/bin/sh
4 # Copyright (C) 2015 shibby
7 PREFIX=$1
8 IFACE=`nvram get "$PREFIX"_ifname`
9 PROTO=`nvram get "$PREFIX"_proto`
10 ADDR=`ifconfig "$IFACE" | grep inet | cut -d ":" -f2 | cut -d " " -f1`
11 LOCK="/tmp/watchdog.$PREFIX"
13 watchdogRun() {
14 DST=`nvram get mwan_ckdst`
15 HOSTLIST=`echo $DST | sed 's/,/ /'`
17 RXBYTES1=`cat /sys/class/net/$IFACE/statistics/rx_bytes`
18 for HOST in $HOSTLIST; do
19 # we need only send/receive few packages to be sure is connection works.
20 # Probe = 1, Max hops = 3
21 traceroute -i $IFACE -w 1 -m 3 $HOST > /dev/null 2>&1
22 done
23 RXBYTES2=`cat /sys/class/net/$IFACE/statistics/rx_bytes`
24 if [ "$RXBYTES2" == "$RXBYTES1" ]; then
25 logger WAN Watchdog - Connection $PREFIX down - Reconnecting ...
26 echo "0" > /tmp/"$PREFIX"_state
28 if [ "$PROTO" == "lte" ]; then
29 switch4g $PREFIX
30 else
31 if [ "$PREFIX" == "wan" ]; then
32 service wan1 restart
33 else
34 service $PREFIX restart
38 else
39 echo "1" > /tmp/"$PREFIX"_state
43 watchdogAdd() {
44 CKTIME=`nvram get mwan_cktime`
45 MINS=`expr "$CKTIME" / 60`
47 if [ "$MINS" -gt 0 ]; then
48 ISSET=`cru l | grep watchdog_"$PREFIX" | wc -l`
50 if [ "$ISSET" == "0" ]; then
51 cru a watchdog_$PREFIX "*/$MINS * * * * /usr/sbin/watchdog $PREFIX"
54 echo "0" > /tmp/"$PREFIX"_state
57 watchdogDel() {
58 ISSET=`cru l | grep watchdog_"$PREFIX" | wc -l`
60 if [ "$ISSET" == "1" ]; then
61 cru d watchdog_"$PREFIX"
65 checkLock() {
66 if [ -f $LOCK ]; then #lock exist
67 logger WAN Watchdog - another proces in action for $PREFIX
68 exit 0
71 touch $LOCK
74 checkLock2() {
75 if [ -f /etc/switch3g.lock -o -f /etc/switch4g.lock ]; then
76 logger WAN Watchdog - switch3g or switch4g script in action for $PREFIX - skip
77 rm $LOCK
78 exit 0
82 ###################################################
84 checkLock
86 checkLock2
88 if [ -n "$1" ]; then
89 if [ "$2" == "add" ]; then
90 watchdogAdd
91 elif [ "$2" == "del" ]; then
92 watchdogDel
93 else
94 watchdogRun
98 rm $LOCK