blob: cfbd6a428f24e283b1a12ce4ccb019d60dd521af [file] [log] [blame]
#! /bin/sh
#
# ping the peer radio each second, and touch a file (up or down)
#
. /etc/utils.sh
# If DoNotGenerateAlarmLogs experiment is present then script will
# not print ping state periodically.
register_experiment DoNotGenerateAlarmLogs
rm -f /tmp/peer-up /tmp/peer-down
last_print_time=0
last_change_time=0
last=
while sleep 1; do
addr=$(ptp-config -g peer_ipaddr)
addr=${addr%%/*}
log="false"
if ! ping -q -c 1 -w 1 "$addr" 2>&1 >/dev/null; then
new=down
print_every_seconds=30
else
new=up
print_every_seconds=120
fi
if [ "$last" != "$new" ]; then
rm -f /tmp/peer-up /tmp/peer-down
>/tmp/peer-"$new"
log="true"
last_change_time=$(date +%s)
else
last_printed=$((now - last_print_time))
if [ "$last_printed" -ge "$print_every_seconds" ]; then
log="true";
fi
if experiment DoNotGenerateAlarmLogs; then
# never print periodically
log="false";
fi
fi
now=$(date +%s)
if [ "$log" = "true" ]; then
seconds_since_change=$((now - last_change_time))
echo "peer is $new changed $seconds_since_change seconds ago"
last_print_time=$(date +%s)
fi
last="$new"
done