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 *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 *interface = dmjson_get_value((json_object *)value, 1, "Interface");
|
||||
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)
|
||||
cnt=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.NumberOfRepetitions 3)
|
||||
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)
|
||||
protoversion=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.ProtocolVersion Any)
|
||||
protocol=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.Protocol ICMP)
|
||||
|
|
@ -56,15 +56,13 @@ serverselection_launch() {
|
|||
avg_time_sum=$((avg_time_sum+avg_time))
|
||||
done
|
||||
else
|
||||
[ "$port" = "" ] && return
|
||||
[ -n "$interface" ] && device=$(ifstatus "$interface" | jsonfilter -e @.device) && device="-e $device" || device=""
|
||||
[[ "$host" == *"."* ]] && proto="4" || proto="6"
|
||||
[ -n "$interface" ] && device=$(ifstatus "$interface" | jsonfilter -e @.device) && device="-i $device" || device=""
|
||||
while [ $i -lt "$cnt" ]; do
|
||||
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")
|
||||
[ -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")
|
||||
[ -z "$times" ] && continue
|
||||
sc1=$(echo "$res" | grep "Rcvd" | awk -F': ' '{print $3}' | awk -F'(' '{ print $1 }')
|
||||
|
|
|
|||
|
|
@ -7,19 +7,22 @@
|
|||
udpecho_launch() {
|
||||
host=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.Host)
|
||||
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)
|
||||
dsize=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.DataBlockSize 24)
|
||||
dscp=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.DSCP 0)
|
||||
interface=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.interface)
|
||||
protocol=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.ProtocolVersion Any)
|
||||
inter_time=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.InterTransmissionTime 1000)
|
||||
[ -n "$interface" ] && device=$(ifstatus "$interface" | jsonfilter -e @.device) && device="-e $device" || device=""
|
||||
if [ "$protocol" = "IPv4" ]; then proto="-4"; elif [ "$protocol" = "IPv6" ]; then proto="-6"; else proto=""; fi
|
||||
[ -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="4"; fi
|
||||
tos=$((dscp<<2))
|
||||
inter_time=$((inter_time/1000))
|
||||
[ "$inter_time" = "0" ] && inter_time="1"
|
||||
timeout=$((timeout/1000))
|
||||
[ "$timeout" = "0" ] && timeout="1"
|
||||
[ "$host" = "" ] && return
|
||||
[[ "$host" == *"."* ]] && proto="-4" || proto="-6"
|
||||
[[ "$host" == *"."* ]] && proto="4" || proto="6"
|
||||
micros=1000
|
||||
success_count=0
|
||||
avg_time_sum=0
|
||||
|
|
@ -29,7 +32,7 @@ udpecho_launch() {
|
|||
|
||||
while [ $i -lt "$cnt" ]; do
|
||||
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")
|
||||
[ -z "$ba" ] && { $UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.DiagnosticState=Error_CannotResolveHostName; $UCI_COMMIT_BBF_DMMAP; return; }
|
||||
times=$(echo "$res" | grep "rtt")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue