mirror of
https://dev.iopsys.eu/bbf/bbfdm.git
synced 2025-12-10 07:44:39 +01:00
UDPEcho: use udpechoclientd instead of nping
This commit is contained in:
parent
aaaa260222
commit
381d47fcb9
3 changed files with 11 additions and 13 deletions
|
|
@ -2178,9 +2178,6 @@ static int operate_IPDiagnostics_ServerSelectionDiagnostics(char *refparam, stru
|
||||||
|
|
||||||
char *port = dmjson_get_value((json_object *)value, 1, "Port");
|
char *port = dmjson_get_value((json_object *)value, 1, "Port");
|
||||||
char *proto = dmjson_get_value((json_object *)value, 1, "Protocol");
|
char *proto = dmjson_get_value((json_object *)value, 1, "Protocol");
|
||||||
if (DM_LSTRCMP(proto, "ICMP") && port[0] == '\0')
|
|
||||||
return CMD_INVALID_ARGUMENTS;
|
|
||||||
|
|
||||||
char *protocol_version = dmjson_get_value((json_object *)value, 1, "ProtocolVersion");
|
char *protocol_version = dmjson_get_value((json_object *)value, 1, "ProtocolVersion");
|
||||||
char *interface = dmjson_get_value((json_object *)value, 1, "Interface");
|
char *interface = dmjson_get_value((json_object *)value, 1, "Interface");
|
||||||
char *nbofrepetition = dmjson_get_value((json_object *)value, 1, "NumberOfRepetitions");
|
char *nbofrepetition = dmjson_get_value((json_object *)value, 1, "NumberOfRepetitions");
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ serverselection_launch() {
|
||||||
hostlist=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.HostList)
|
hostlist=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.HostList)
|
||||||
cnt=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.NumberOfRepetitions 3)
|
cnt=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.NumberOfRepetitions 3)
|
||||||
timeout=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.Timeout 1000)
|
timeout=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.Timeout 1000)
|
||||||
port=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.port)
|
port=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.port 7)
|
||||||
interface=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.interface)
|
interface=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.interface)
|
||||||
protoversion=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.ProtocolVersion Any)
|
protoversion=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.ProtocolVersion Any)
|
||||||
protocol=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.Protocol ICMP)
|
protocol=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.Protocol ICMP)
|
||||||
|
|
@ -56,15 +56,13 @@ serverselection_launch() {
|
||||||
avg_time_sum=$((avg_time_sum+avg_time))
|
avg_time_sum=$((avg_time_sum+avg_time))
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
[ "$port" = "" ] && return
|
[[ "$host" == *"."* ]] && proto="4" || proto="6"
|
||||||
[ -n "$interface" ] && device=$(ifstatus "$interface" | jsonfilter -e @.device) && device="-e $device" || device=""
|
[ -n "$interface" ] && device=$(ifstatus "$interface" | jsonfilter -e @.device) && device="-i $device" || device=""
|
||||||
while [ $i -lt "$cnt" ]; do
|
while [ $i -lt "$cnt" ]; do
|
||||||
i=$((i+1))
|
i=$((i+1))
|
||||||
res=$(nping $proto -c 1 --udp --dest-port "$port" --data-length 24 "$device" "$host" 2>&1)
|
res=$(udpechoclientd -c 1 -t $timeout --host "$host" --port "$port" --protocol "$proto" $device 2>&1)
|
||||||
ba=$(echo "$res" | grep "RCVD")
|
ba=$(echo "$res" | grep "RCVD")
|
||||||
[ -z "$ba" ] && { $UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.DiagnosticState=Error_CannotResolveHostName; $UCI_COMMIT_BBF_DMMAP; return; }
|
[ -z "$ba" ] && { $UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.DiagnosticState=Error_CannotResolveHostName; $UCI_COMMIT_BBF_DMMAP; return; }
|
||||||
stc=$(echo "$res" | grep "RCVD" | grep "unreachable")
|
|
||||||
[ -n "$stc" ] && { $UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.DiagnosticState=Error_Other; $UCI_COMMIT_BBF_DMMAP; return; }
|
|
||||||
times=$(echo "$res" | grep "rtt")
|
times=$(echo "$res" | grep "rtt")
|
||||||
[ -z "$times" ] && continue
|
[ -z "$times" ] && continue
|
||||||
sc1=$(echo "$res" | grep "Rcvd" | awk -F': ' '{print $3}' | awk -F'(' '{ print $1 }')
|
sc1=$(echo "$res" | grep "Rcvd" | awk -F': ' '{print $3}' | awk -F'(' '{ print $1 }')
|
||||||
|
|
|
||||||
|
|
@ -7,19 +7,22 @@
|
||||||
udpecho_launch() {
|
udpecho_launch() {
|
||||||
host=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.Host)
|
host=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.Host)
|
||||||
port=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.port 7)
|
port=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.port 7)
|
||||||
|
timeout=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.Timeout 1000)
|
||||||
cnt=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.NumberOfRepetitions 1)
|
cnt=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.NumberOfRepetitions 1)
|
||||||
dsize=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.DataBlockSize 24)
|
dsize=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.DataBlockSize 24)
|
||||||
dscp=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.DSCP 0)
|
dscp=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.DSCP 0)
|
||||||
interface=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.interface)
|
interface=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.interface)
|
||||||
protocol=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.ProtocolVersion Any)
|
protocol=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.ProtocolVersion Any)
|
||||||
inter_time=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.InterTransmissionTime 1000)
|
inter_time=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.InterTransmissionTime 1000)
|
||||||
[ -n "$interface" ] && device=$(ifstatus "$interface" | jsonfilter -e @.device) && device="-e $device" || device=""
|
[ -n "$interface" ] && device=$(ifstatus "$interface" | jsonfilter -e @.device) && device="-i $device" || device=""
|
||||||
if [ "$protocol" = "IPv4" ]; then proto="-4"; elif [ "$protocol" = "IPv6" ]; then proto="-6"; else proto=""; fi
|
if [ "$protocol" = "IPv4" ]; then proto="4"; elif [ "$protocol" = "IPv6" ]; then proto="6"; else proto="4"; fi
|
||||||
tos=$((dscp<<2))
|
tos=$((dscp<<2))
|
||||||
inter_time=$((inter_time/1000))
|
inter_time=$((inter_time/1000))
|
||||||
[ "$inter_time" = "0" ] && inter_time="1"
|
[ "$inter_time" = "0" ] && inter_time="1"
|
||||||
|
timeout=$((timeout/1000))
|
||||||
|
[ "$timeout" = "0" ] && timeout="1"
|
||||||
[ "$host" = "" ] && return
|
[ "$host" = "" ] && return
|
||||||
[[ "$host" == *"."* ]] && proto="-4" || proto="-6"
|
[[ "$host" == *"."* ]] && proto="4" || proto="6"
|
||||||
micros=1000
|
micros=1000
|
||||||
success_count=0
|
success_count=0
|
||||||
avg_time_sum=0
|
avg_time_sum=0
|
||||||
|
|
@ -29,7 +32,7 @@ udpecho_launch() {
|
||||||
|
|
||||||
while [ $i -lt "$cnt" ]; do
|
while [ $i -lt "$cnt" ]; do
|
||||||
i=$((i+1))
|
i=$((i+1))
|
||||||
res=$(nping $proto -c 1 --tos $tos --udp --dest-port "$port" --data-length "$dsize" $device "$host" 2>&1)
|
res=$(udpechoclientd -c 1 -t $timeout --host "$host" --data-length "$dsize" --port "$port" --protocol "$proto" $device 2>&1)
|
||||||
ba=$(echo "$res" | grep "RCVD")
|
ba=$(echo "$res" | grep "RCVD")
|
||||||
[ -z "$ba" ] && { $UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.DiagnosticState=Error_CannotResolveHostName; $UCI_COMMIT_BBF_DMMAP; return; }
|
[ -z "$ba" ] && { $UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.DiagnosticState=Error_CannotResolveHostName; $UCI_COMMIT_BBF_DMMAP; return; }
|
||||||
times=$(echo "$res" | grep "rtt")
|
times=$(echo "$res" | grep "rtt")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue