cherry-pick de0c8c93 diagnostics improvement

This commit is contained in:
Suvendhu Hansa 2024-03-26 14:28:14 +05:30
parent fc99617d4c
commit 393b206805
12 changed files with 455 additions and 61 deletions

View file

@ -30,6 +30,14 @@ static int get_diag_enable_true(char *refparam, struct dmctx *ctx, void *data, c
return 0;
}
static void stop_traceroute_diagnostics(void)
{
char cmd[256] = {0};
snprintf(cmd, sizeof(cmd), "sh %s '{\"proto\":\"both_proto\",\"cancel\":\"1\"}'", TRACEROUTE_DIAGNOSTIC_PATH);
system(cmd);
}
/*************************************************************
* GET & SET PARAM
**************************************************************/
@ -40,7 +48,12 @@ static int get_diag_enable_true(char *refparam, struct dmctx *ctx, void *data, c
static int get_ip_ping_diagnostics_state(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
{
*value = get_diagnostics_option_fallback_def("ipping", "DiagnosticState", "None");
char *val = get_diagnostics_option_fallback_def("ipping", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -52,8 +65,12 @@ static int set_ip_ping_diagnostics_state(char *refparam, struct dmctx *ctx, void
return FAULT_9007;
return 0;
case VALUESET:
if (DM_LSTRCMP(value, "Requested") == 0)
if (DM_LSTRCMP(value, "Requested") == 0) {
set_diagnostics_option("ipping", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
set_diagnostics_option("ipping", "DiagnosticState", "None");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
}
return 0;
}
return 0;
@ -84,6 +101,7 @@ static int set_ip_ping_interface(char *refparam, struct dmctx *ctx, void *data,
return 0;
case VALUESET:
reset_diagnostic_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("ipping", "interface", reference.value);
return 0;
}
@ -105,6 +123,7 @@ static int set_ip_ping_protocolversion(char *refparam, struct dmctx *ctx, void *
return 0;
case VALUESET:
reset_diagnostic_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("ipping", "ProtocolVersion", value);
return 0;
}
@ -126,6 +145,7 @@ static int set_ip_ping_host(char *refparam, struct dmctx *ctx, void *data, char
return 0;
case VALUESET:
reset_diagnostic_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("ipping", "Host", value);
return 0;
}
@ -147,6 +167,7 @@ static int set_ip_ping_repetition_number(char *refparam, struct dmctx *ctx, void
return 0;
case VALUESET:
reset_diagnostic_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("ipping", "NumberOfRepetitions", value);
return 0;
}
@ -168,6 +189,7 @@ static int set_ip_ping_timeout(char *refparam, struct dmctx *ctx, void *data, ch
return 0;
case VALUESET:
reset_diagnostic_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("ipping", "Timeout", value);
return 0;
}
@ -189,6 +211,7 @@ static int set_ip_ping_block_size(char *refparam, struct dmctx *ctx, void *data,
return 0;
case VALUESET:
reset_diagnostic_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("ipping", "DataBlockSize", value);
return 0;
}
@ -210,6 +233,7 @@ static int set_ip_ping_DSCP(char *refparam, struct dmctx *ctx, void *data, char
return 0;
case VALUESET:
reset_diagnostic_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("ipping", "DSCP", value);
return 0;
}
@ -276,7 +300,12 @@ static int get_ip_ping_MaximumResponseTimeDetailed(char *refparam, struct dmctx
static int get_IPDiagnosticsTraceRoute_DiagnosticsState(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
{
*value = get_diagnostics_option_fallback_def("traceroute", "DiagnosticState", "None");
char *val = get_diagnostics_option_fallback_def("traceroute", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -288,8 +317,12 @@ static int set_IPDiagnosticsTraceRoute_DiagnosticsState(char *refparam, struct d
return FAULT_9007;
return 0;
case VALUESET:
if (DM_LSTRCMP(value, "Requested") == 0)
if (DM_LSTRCMP(value, "Requested") == 0) {
set_diagnostics_option("traceroute", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
set_diagnostics_option("traceroute", "DiagnosticState", "None");
stop_traceroute_diagnostics();
}
return 0;
}
return 0;
@ -320,6 +353,7 @@ static int set_IPDiagnosticsTraceRoute_Interface(char *refparam, struct dmctx *c
return 0;
case VALUESET:
reset_diagnostic_state("traceroute");
stop_traceroute_diagnostics();
set_diagnostics_option("traceroute", "interface", reference.value);
return 0;
}
@ -341,6 +375,7 @@ static int set_IPDiagnosticsTraceRoute_ProtocolVersion(char *refparam, struct dm
return 0;
case VALUESET:
reset_diagnostic_state("traceroute");
stop_traceroute_diagnostics();
set_diagnostics_option("traceroute", "ProtocolVersion", value);
return 0;
}
@ -362,6 +397,7 @@ static int set_IPDiagnosticsTraceRoute_Host(char *refparam, struct dmctx *ctx, v
return 0;
case VALUESET:
reset_diagnostic_state("traceroute");
stop_traceroute_diagnostics();
set_diagnostics_option("traceroute", "Host", value);
return 0;
}
@ -383,6 +419,7 @@ static int set_IPDiagnosticsTraceRoute_NumberOfTries(char *refparam, struct dmct
return 0;
case VALUESET:
reset_diagnostic_state("traceroute");
stop_traceroute_diagnostics();
set_diagnostics_option("traceroute", "NumberOfTries", value);
return 0;
}
@ -404,6 +441,7 @@ static int set_IPDiagnosticsTraceRoute_Timeout(char *refparam, struct dmctx *ctx
return 0;
case VALUESET:
reset_diagnostic_state("traceroute");
stop_traceroute_diagnostics();
set_diagnostics_option("traceroute", "Timeout", value);
return 0;
}
@ -425,6 +463,7 @@ static int set_IPDiagnosticsTraceRoute_DataBlockSize(char *refparam, struct dmct
return 0;
case VALUESET:
reset_diagnostic_state("traceroute");
stop_traceroute_diagnostics();
set_diagnostics_option("traceroute", "DataBlockSize", value);
return 0;
}
@ -446,6 +485,7 @@ static int set_IPDiagnosticsTraceRoute_DSCP(char *refparam, struct dmctx *ctx, v
return 0;
case VALUESET:
reset_diagnostic_state("traceroute");
stop_traceroute_diagnostics();
set_diagnostics_option("traceroute", "DSCP", value);
return 0;
}
@ -467,6 +507,7 @@ static int set_IPDiagnosticsTraceRoute_MaxHopCount(char *refparam, struct dmctx
return 0;
case VALUESET:
reset_diagnostic_state("traceroute");
stop_traceroute_diagnostics();
set_diagnostics_option("traceroute", "MaxHops", value);
return 0;
}
@ -1195,7 +1236,12 @@ static int get_IPDiagnosticsUploadDiagnosticsPerConnectionResult_TCPOpenResponse
static int get_IPDiagnosticsUDPEchoDiagnostics_DiagnosticsState(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
{
*value = get_diagnostics_option_fallback_def("udpechodiag", "DiagnosticState", "None");
char *val = get_diagnostics_option_fallback_def("udpechodiag", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -1207,8 +1253,12 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_DiagnosticsState(char *refparam,
return FAULT_9007;
return 0;
case VALUESET:
if (DM_LSTRCMP(value, "Requested") == 0)
if (DM_LSTRCMP(value, "Requested") == 0) {
set_diagnostics_option("udpechodiag", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
set_diagnostics_option("udpechodiag", "DiagnosticState", "None");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
}
return 0;
}
return 0;
@ -1239,6 +1289,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_Interface(char *refparam, struct
return 0;
case VALUESET:
reset_diagnostic_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("udpechodiag", "interface", reference.value);
return 0;
}
@ -1260,6 +1311,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_Host(char *refparam, struct dmctx
return 0;
case VALUESET:
reset_diagnostic_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("udpechodiag", "Host", value);
return 0;
}
@ -1281,6 +1333,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_Port(char *refparam, struct dmctx
return 0;
case VALUESET:
reset_diagnostic_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("udpechodiag", "port", value);
return 0;
}
@ -1302,6 +1355,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_NumberOfRepetitions(char *refpara
return 0;
case VALUESET:
reset_diagnostic_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("udpechodiag", "NumberOfRepetitions", value);
return 0;
}
@ -1323,6 +1377,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_Timeout(char *refparam, struct dm
return 0;
case VALUESET:
reset_diagnostic_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("udpechodiag", "Timeout", value);
return 0;
}
@ -1344,6 +1399,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_DataBlockSize(char *refparam, str
return 0;
case VALUESET:
reset_diagnostic_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("udpechodiag", "DataBlockSize", value);
return 0;
}
@ -1365,6 +1421,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_DSCP(char *refparam, struct dmctx
return 0;
case VALUESET:
reset_diagnostic_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("udpechodiag", "DSCP", value);
return 0;
}
@ -1386,6 +1443,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_InterTransmissionTime(char *refpa
return 0;
case VALUESET:
reset_diagnostic_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("udpechodiag", "InterTransmissionTime", value);
return 0;
}
@ -1407,6 +1465,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_ProtocolVersion(char *refparam, s
return 0;
case VALUESET:
reset_diagnostic_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("udpechodiag", "ProtocolVersion", value);
return 0;
}
@ -1455,7 +1514,12 @@ static int get_IPDiagnosticsUDPEchoDiagnostics_MaximumResponseTime(char *refpara
static int get_IPDiagnosticsServerSelectionDiagnostics_DiagnosticsState(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
{
*value = get_diagnostics_option_fallback_def("serverselection", "DiagnosticState", "None");
char *val = get_diagnostics_option_fallback_def("serverselection", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -1467,8 +1531,12 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_DiagnosticsState(char *re
return FAULT_9007;
return 0;
case VALUESET:
if (DM_LSTRCMP(value, "Requested") == 0)
if (DM_LSTRCMP(value, "Requested") == 0) {
set_diagnostics_option("serverselection", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
set_diagnostics_option("serverselection", "DiagnosticState", "None");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
}
return 0;
}
return 0;
@ -1499,6 +1567,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_Interface(char *refparam,
return 0;
case VALUESET:
reset_diagnostic_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("serverselection", "interface", reference.value);
return 0;
}
@ -1520,6 +1589,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_ProtocolVersion(char *ref
return 0;
case VALUESET:
reset_diagnostic_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("serverselection", "ProtocolVersion", value);
return 0;
}
@ -1541,6 +1611,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_Protocol(char *refparam,
return 0;
case VALUESET:
reset_diagnostic_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("serverselection", "Protocol", value);
return 0;
}
@ -1562,6 +1633,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_HostList(char *refparam,
return 0;
case VALUESET:
reset_diagnostic_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("serverselection", "HostList", value);
return 0;
}
@ -1583,6 +1655,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_NumberOfRepetitions(char
return 0;
case VALUESET:
reset_diagnostic_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("serverselection", "NumberOfRepetitions", value);
return 0;
}
@ -1604,6 +1677,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_Timeout(char *refparam, s
return 0;
case VALUESET:
reset_diagnostic_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("serverselection", "Timeout", value);
return 0;
}

View file

@ -421,7 +421,12 @@ static int get_forwarding_dns_server(char *refparam, struct dmctx *ctx, void *da
static int get_nslookupdiagnostics_diagnostics_state(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
{
*value = get_diagnostics_option_fallback_def("nslookup", "DiagnosticState", "None");
char *val = get_diagnostics_option_fallback_def("nslookup", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -692,8 +697,12 @@ static int set_nslookupdiagnostics_diagnostics_state(char *refparam, struct dmct
return FAULT_9007;
return 0;
case VALUESET:
if (DM_LSTRCMP(value, "Requested") == 0)
if (DM_LSTRCMP(value, "Requested") == 0) {
set_diagnostics_option("nslookup", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
set_diagnostics_option("nslookup", "DiagnosticState", "None");
dmubus_call_set("bbf.diag", "nslookup", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
}
return 0;
}
return 0;
@ -717,6 +726,7 @@ static int set_nslookupdiagnostics_interface(char *refparam, struct dmctx *ctx,
return 0;
case VALUESET:
reset_diagnostic_state("nslookup");
dmubus_call_set("bbf.diag", "nslookup", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("nslookup", "interface", reference.value);
return 0;
}
@ -732,6 +742,7 @@ static int set_nslookupdiagnostics_host_name(char *refparam, struct dmctx *ctx,
return 0;
case VALUESET:
reset_diagnostic_state("nslookup");
dmubus_call_set("bbf.diag", "nslookup", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("nslookup", "HostName", value);
return 0;
}
@ -747,6 +758,7 @@ static int set_nslookupdiagnostics_d_n_s_server(char *refparam, struct dmctx *ct
return 0;
case VALUESET:
reset_diagnostic_state("nslookup");
dmubus_call_set("bbf.diag", "nslookup", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("nslookup", "DNSServer", value);
return 0;
}
@ -762,6 +774,7 @@ static int set_nslookupdiagnostics_timeout(char *refparam, struct dmctx *ctx, vo
return 0;
case VALUESET:
reset_diagnostic_state("nslookup");
dmubus_call_set("bbf.diag", "nslookup", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("nslookup", "Timeout", value);
return 0;
}
@ -777,6 +790,7 @@ static int set_nslookupdiagnostics_number_of_repetitions(char *refparam, struct
return 0;
case VALUESET:
reset_diagnostic_state("nslookup");
dmubus_call_set("bbf.diag", "nslookup", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
set_diagnostics_option("nslookup", "NumberOfRepetitions", value);
return 0;
}

View file

@ -31,6 +31,14 @@ static int browsePacketCaptureResultInst(struct dmctx *dmctx, DMNODE *parent_nod
return 0;
}
static void stop_packetcapture_diagnostics(void)
{
char cmd[256] = {0};
snprintf(cmd, sizeof(cmd), "sh %s '{\"proto\":\"both_proto\",\"cancel\":\"1\"}'", PACKET_CAPTURE_DIAGNOSTIC_PATH);
system(cmd);
}
/*************************************************************
* GET & SET PARAM
**************************************************************/
@ -157,7 +165,12 @@ int operate_Device_packetCapture(char *refparam, struct dmctx *ctx, void *data,
**************************************************************/
static int get_PacketCapture_DiagnosticsState(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
{
*value = get_diagnostics_option_fallback_def("packetcapture", "DiagnosticState", "None");
char *val = get_diagnostics_option_fallback_def("packetcapture", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -169,8 +182,12 @@ static int set_PacketCapture_DiagnosticsState(char *refparam, struct dmctx *ctx,
return FAULT_9007;
break;
case VALUESET:
if (DM_LSTRCMP(value, "Requested") == 0)
if (DM_LSTRCMP(value, "Requested") == 0) {
set_diagnostics_option("packetcapture", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
set_diagnostics_option("packetcapture", "DiagnosticState", "None");
stop_packetcapture_diagnostics();
}
}
return 0;
}
@ -200,6 +217,7 @@ static int set_PacketCapture_Interface(char *refparam, struct dmctx *ctx, void *
break;
case VALUESET:
reset_diagnostic_state("packetcapture");
stop_packetcapture_diagnostics();
set_diagnostics_option("packetcapture", "Interface", reference.value);
}
return 0;
@ -223,6 +241,7 @@ static int set_PacketCapture_Format(char *refparam, struct dmctx *ctx, void *dat
break;
case VALUESET:
reset_diagnostic_state("packetcapture");
stop_packetcapture_diagnostics();
set_diagnostics_option("packetcapture", "Format", value);
}
return 0;
@ -243,6 +262,7 @@ static int set_PacketCapture_Duration(char *refparam, struct dmctx *ctx, void *d
break;
case VALUESET:
reset_diagnostic_state("packetcapture");
stop_packetcapture_diagnostics();
set_diagnostics_option("packetcapture", "Duration", value);
}
return 0;
@ -263,6 +283,7 @@ static int set_PacketCapture_PacketCount(char *refparam, struct dmctx *ctx, void
break;
case VALUESET:
reset_diagnostic_state("packetcapture");
stop_packetcapture_diagnostics();
set_diagnostics_option("packetcapture", "PacketCount", value);
}
return 0;
@ -283,6 +304,7 @@ static int set_PacketCapture_FileTarget(char *refparam, struct dmctx *ctx, void
break;
case VALUESET:
reset_diagnostic_state("packetcapture");
stop_packetcapture_diagnostics();
set_diagnostics_option("packetcapture", "FileTarget", value);
}
return 0;
@ -303,6 +325,7 @@ static int set_PacketCapture_FilterExpression(char *refparam, struct dmctx *ctx,
break;
case VALUESET:
reset_diagnostic_state("packetcapture");
stop_packetcapture_diagnostics();
set_diagnostics_option("packetcapture", "FilterExpression", value);
}
return 0;
@ -323,6 +346,7 @@ static int set_PacketCapture_Username(char *refparam, struct dmctx *ctx, void *d
break;
case VALUESET:
reset_diagnostic_state("packetcapture");
stop_packetcapture_diagnostics();
set_diagnostics_option("packetcapture", "Username", value);
}
return 0;
@ -343,6 +367,7 @@ static int set_PacketCapture_Password(char *refparam, struct dmctx *ctx, void *d
break;
case VALUESET:
reset_diagnostic_state("packetcapture");
stop_packetcapture_diagnostics();
set_diagnostics_option("packetcapture", "Password", value);
}
return 0;

View file

@ -14,6 +14,15 @@
#define IPLAYER_CAP_DIAGNOSTIC_PATH "/usr/share/bbfdm/iplayercap"
static void stop_iplayercap_diagnostics()
{
char cmd[256] = {0};
snprintf(cmd, sizeof(cmd), "sh %s '{\"proto\":\"both_proto\",\"cancel\":\"1\"}'", IPLAYER_CAP_DIAGNOSTIC_PATH);
system(cmd);
}
/*
* *** Device.IP.Diagnostics.IPLayerCapacityMetrics. ***
*/
@ -46,7 +55,12 @@ static int browseIPLayerCapacityIncrementalResultInst(struct dmctx *dmctx, DMNOD
static int get_IPDiagnosticsIPLayerCapacity_DiagnosticsState(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
{
*value = get_diagnostics_option_fallback_def("iplayercapacity", "DiagnosticState", "None");
char *val = get_diagnostics_option_fallback_def("iplayercapacity", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -58,8 +72,12 @@ static int set_IPDiagnosticsIPLayerCapacity_DiagnosticsState(char *refparam, str
return FAULT_9007;
return 0;
case VALUESET:
if (DM_LSTRCMP(value, "Requested") == 0)
if (DM_LSTRCMP(value, "Requested") == 0) {
set_diagnostics_option("iplayercapacity", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
set_diagnostics_option("iplayercapacity", "DiagnosticState", "None");
stop_iplayercap_diagnostics();
}
return 0;
}
return 0;
@ -120,6 +138,7 @@ static int set_IPDiagnosticsIPLayerCapacity_Interface(char *refparam, struct dmc
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "interface", reference.value);
return 0;
}
@ -142,6 +161,7 @@ static int set_IPDiagnosticsIPLayerCapacity_Role(char *refparam, struct dmctx *c
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "Role", value);
return 0;
}
@ -163,6 +183,7 @@ static int set_IPDiagnosticsIPLayerCapacity_Host(char *refparam, struct dmctx *c
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "Host", value);
return 0;
}
@ -184,6 +205,7 @@ static int set_IPDiagnosticsIPLayerCapacity_Port(char *refparam, struct dmctx *c
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "Port", value);
return 0;
}
@ -207,6 +229,7 @@ static int set_IPDiagnosticsIPLayerCapacity_JumboFramesPermitted(char *refparam,
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
string_to_bool(value, &b);
set_diagnostics_option("iplayercapacity", "JumboFramesPermitted", b ? "1" : "0");
return 0;
@ -229,6 +252,7 @@ static int set_IPDiagnosticsIPLayerCapacity_DSCP(char *refparam, struct dmctx *c
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "DSCP", value);
return 0;
}
@ -250,6 +274,7 @@ static int set_IPDiagnosticsIPLayerCapacity_ProtocolVersion(char *refparam, stru
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "ProtocolVersion", value);
return 0;
}
@ -271,6 +296,7 @@ static int set_IPDiagnosticsIPLayerCapacity_UDPPayloadContent(char *refparam, st
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "UDPPayloadContent", value);
return 0;
}
@ -292,6 +318,7 @@ static int set_IPDiagnosticsIPLayerCapacity_TestType(char *refparam, struct dmct
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "TestType", value);
return 0;
}
@ -315,6 +342,7 @@ static int set_IPDiagnosticsIPLayerCapacity_IPDVEnable(char *refparam, struct dm
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
string_to_bool(value, &b);
set_diagnostics_option("iplayercapacity", "IPDVEnable", b ? "1" : "0");
return 0;
@ -338,6 +366,7 @@ static int set_IPDiagnosticsIPLayerCapacity_StartSendingRateIndex(char *refparam
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "StartSendingRateIndex", value);
return 0;
}
@ -359,6 +388,7 @@ static int set_IPDiagnosticsIPLayerCapacity_NumberFirstModeTestSubIntervals(char
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "NumberFirstModeTestSubIntervals", value);
return 0;
}
@ -384,6 +414,7 @@ static int set_IPDiagnosticsIPLayerCapacity_NumberTestSubIntervals(char *refpara
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "NumberTestSubIntervals", value);
return 0;
}
@ -406,6 +437,7 @@ static int set_IPDiagnosticsIPLayerCapacity_TestSubInterval(char *refparam, stru
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "TestSubInterval", value);
return 0;
}
@ -427,6 +459,7 @@ static int set_IPDiagnosticsIPLayerCapacity_StatusFeedbackInterval(char *refpara
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "StatusFeedbackInterval", value);
return 0;
}
@ -448,6 +481,7 @@ static int set_IPDiagnosticsIPLayerCapacity_SeqErrThresh(char *refparam, struct
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "SeqErrThresh", value);
return 0;
}
@ -471,6 +505,7 @@ static int set_IPDiagnosticsIPLayerCapacity_ReordDupIgnoreEnable(char *refparam,
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
string_to_bool(value, &b);
set_diagnostics_option("iplayercapacity", "ReordDupIgnoreEnable", b ? "1" : "0");
return 0;
@ -493,6 +528,7 @@ static int set_IPDiagnosticsIPLayerCapacity_LowerThresh(char *refparam, struct d
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "LowerThresh", value);
return 0;
}
@ -514,6 +550,7 @@ static int set_IPDiagnosticsIPLayerCapacity_UpperThresh(char *refparam, struct d
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "UpperThresh", value);
return 0;
}
@ -535,6 +572,7 @@ static int set_IPDiagnosticsIPLayerCapacity_HighSpeedDelta(char *refparam, struc
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "HighSpeedDelta", value);
return 0;
}
@ -556,6 +594,7 @@ static int set_IPDiagnosticsIPLayerCapacity_RateAdjAlgorithm(char *refparam, str
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "RateAdjAlgorithm", value);
return 0;
}
@ -571,6 +610,7 @@ static int set_IPDiagnosticsIPLayerCapacity_SlowAdjThresh(char *refparam, struct
return 0;
case VALUESET:
reset_diagnostic_state("iplayercapacity");
stop_iplayercap_diagnostics();
set_diagnostics_option("iplayercapacity", "SlowAdjThresh", value);
return 0;
}

View file

@ -5,10 +5,10 @@ BBF_SCRIPTS="/usr/share/bbfdm"
case "$1" in
list)
echo '{ "ipping" : { "host": "str", "iface": "str", "ip_proto": "str", "nbr_of_rep": "str", "timeout": "str", "data_size": "str", "dscp": "str", "proto": "str" },
"nslookup" : { "host": "str", "dns_serevr": "str", "iface": "str", "nbr_of_rep": "str", "timeout": "str", "proto": "str" },
"udpecho" : { "host": "str", "port":"str", "iface": "str", "ip_proto": "str", "nbr_of_rep": "str", "timeout": "str", "data_size": "str", "dscp": "str", "inter_trans_time":"str", "proto": "str" },
"serverselection" : { "hostlist": "str", "port":"str", "iface": "str", "ip_proto": "str", "nbr_of_rep": "str", "timeout": "str", "protocol_used": "str", "proto": "str" },
echo '{ "ipping" : { "host": "str", "iface": "str", "ip_proto": "str", "nbr_of_rep": "str", "timeout": "str", "data_size": "str", "dscp": "str", "proto": "str", "cancel": "str" },
"nslookup" : { "host": "str", "dns_serevr": "str", "iface": "str", "nbr_of_rep": "str", "timeout": "str", "proto": "str", "cancel": "str" },
"udpecho" : { "host": "str", "port":"str", "iface": "str", "ip_proto": "str", "nbr_of_rep": "str", "timeout": "str", "data_size": "str", "dscp": "str", "inter_trans_time":"str", "proto": "str", "cancel": "str" },
"serverselection" : { "hostlist": "str", "port":"str", "iface": "str", "ip_proto": "str", "nbr_of_rep": "str", "timeout": "str", "protocol_used": "str", "proto": "str", "cancel": "str" },
}'
;;
call)

View file

@ -7,6 +7,38 @@
ROOT="$(dirname "${0}")"
. "${ROOT}"/bbf_api
clear_iplayercapacity_output() {
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.DiagnosticState="${1}"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.SoftwareVersion=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.BOMTime=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.EOMTime=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.TmaxUsed=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.TestInterval=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.TmaxRTTUsed=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.TimestampResolutionUsed=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MaxIPLayerCapacity=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.TimeOfMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MaxETHCapacityNoFCS=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MaxETHCapacityWithFCS=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MaxETHCapacityWithFCSVLAN=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.LossRatioAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.RTTRangeAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.PDVRangeAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MinOnewayDelayAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.ReorderedRatioAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.ReplicatedRatioAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.InterfaceEthMbpsAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.IPLayerCapacitySummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.LossRatioSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.RTTRangeSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.PDVRangeSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MinOnewayDelaySummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MinRTTSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.ReorderedRatioSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.ReplicatedRatioSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.InterfaceEthMbpsSummary=""
}
iplayercap_error() {
json_init
json_add_string "Status" "$1"
@ -14,35 +46,7 @@ iplayercap_error() {
# Store data in dmmap
[ "$2" = "both_proto" ] && {
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.DiagnosticState="${1}"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.SoftwareVersion=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.BOMTime=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.EOMTime=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.TmaxUsed=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.TestInterval=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.TmaxRTTUsed=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.TimestampResolutionUsed=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MaxIPLayerCapacity=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.TimeOfMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MaxETHCapacityNoFCS=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MaxETHCapacityWithFCS=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MaxETHCapacityWithFCSVLAN=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.LossRatioAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.RTTRangeAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.PDVRangeAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MinOnewayDelayAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.ReorderedRatioAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.ReplicatedRatioAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.InterfaceEthMbpsAtMax=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.IPLayerCapacitySummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.LossRatioSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.RTTRangeSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.PDVRangeSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MinOnewayDelaySummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.MinRTTSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.ReorderedRatioSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.ReplicatedRatioSummary=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.InterfaceEthMbpsSummary=""
clear_iplayercapacity_output "$1"
# Clear all incremental & modal result instances
res=$($UCI_SHOW_BBF_DMMAP dmmap_diagnostics | grep -E "=modalresult$" | cut -d= -f 1)
@ -89,6 +93,40 @@ iplayercap_launch() {
json_get_var slow_adj_thresh slow_adj_thresh
json_get_var proto proto
[ "${proto}" = "both_proto" ] && {
old_pid=$(cat /tmp/iplayercap_pid)
[ -n "${old_pid}" ] && {
cmd=$(cat /proc/$old_pid/cmdline)
}
if [[ "${cmd}" = *iplayercap* ]]; then
kill -9 $old_pid
fi
# Clear all incremental & modal result instances
res=$($UCI_SHOW_BBF_DMMAP dmmap_diagnostics | grep -E "=modalresult$" | cut -d= -f 1)
for i in $res; do
$UCI_DELETE_BBF_DMMAP "${i}"
done
res=$($UCI_SHOW_BBF_DMMAP dmmap_diagnostics | grep -E "=incrementalresult$" | cut -d= -f 1)
for i in $res; do
$UCI_DELETE_BBF_DMMAP "${i}"
done
if [ "${cancel}" -eq "1" ]; then
clear_iplayercapacity_output "None"
$UCI_COMMIT_BBF_DMMAP
return
else
echo $$ > /tmp/iplayercap_pid
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.DiagnosticState="Requested_running"
$UCI_COMMIT_BBF_DMMAP
fi
}
# Fail if host is empty
[ -z "${host}" ] && {
iplayercap_error "Error_Internal" "${proto}"
@ -307,17 +345,6 @@ iplayercap_launch() {
$UCI_SET_BBF_DMMAP dmmap_diagnostics.iplayercapacity.InterfaceEthMbpsSummary="${InterfaceEthMbps}"
json_select ..
# Clear all existing incremental & modal result instances
res=$($UCI_SHOW_BBF_DMMAP dmmap_diagnostics | grep -E "=modalresult$" | cut -d= -f 1)
for i in $res; do
$UCI_DELETE_BBF_DMMAP "${i}"
done
res=$($UCI_SHOW_BBF_DMMAP dmmap_diagnostics | grep -E "=incrementalresult$" | cut -d= -f 1)
for i in $res; do
$UCI_DELETE_BBF_DMMAP "${i}"
done
failed=0
if json_is_a ModalResult array; then
json_select ModalResult

View file

@ -51,6 +51,51 @@ ipping_launch() {
json_get_var dsize data_size
json_get_var dscp dscp
json_get_var proto proto
json_get_var cancel cancel
if [ "${proto}" = "both_proto" ]; then
old_pid=$(cat /tmp/ipping_pid)
[ -n "${old_pid}" ] && {
cmd=$(cat /proc/$old_pid/cmdline)
}
if [[ "${cmd}" = *ipping* ]]; then
kill -9 $old_pid
fi
if [ "${cancel}" -eq "1" ]; then
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.DiagnosticState="None"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.IPAddressUsed=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.SuccessCount=0
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.FailureCount="0"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.AverageResponseTime=0
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.MinimumResponseTime=9999
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.MaximumResponseTime=0
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.AverageResponseTimeDetailed=0
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.MinimumResponseTimeDetailed=999999999
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.MaximumResponseTimeDetailed=0
$UCI_COMMIT_BBF_DMMAP
json_init
json_add_string "Status" "None"
json_add_string "IPAddressUsed" ""
json_add_int "MinimumResponseTime" "9999"
json_add_int "AverageResponseTime" "0"
json_add_int "MaximumResponseTime" "0"
json_add_int "MinimumResponseTimeDetailed" "999999999"
json_add_int "AverageResponseTimeDetailed" "0"
json_add_int "MaximumResponseTimeDetailed" "0"
json_add_int "SuccessCount" "0"
json_add_int "FailureCount" "0"
json_dump
return
else
echo $$ > /tmp/ipping_pid
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.DiagnosticState="Requested_running"
$UCI_COMMIT_BBF_DMMAP
fi
fi
# Assign default value
[ -z "${nbr_of_rep}" ] && nbr_of_rep=3

View file

@ -43,6 +43,7 @@ nslookup_launch() {
json_get_var iface iface
json_get_var cnt nbr_of_rep
json_get_var proto proto
json_get_var cancel cancel
LOG_FILE=$(get_nslookup_log_file)
@ -51,11 +52,34 @@ nslookup_launch() {
# Clear all nslookup result instances
[ "$proto" = "both_proto" ] && {
old_pid=$(cat /tmp/nslookup_pid)
[ -n "${old_pid}" ] && {
cmd=$(cat /proc/$old_pid/cmdline)
}
if [[ "${cmd}" = *nslookup* ]]; then
kill -9 $old_pid
fi
res=$($UCI_SHOW_BBF_DMMAP dmmap_diagnostics | grep -E "=NSLookupResult$" | cut -d= -f 1)
for i in $res; do
$UCI_DELETE_BBF_DMMAP "${i}"
done
$UCI_COMMIT_BBF_DMMAP
if [ "${cancel}" -eq "1" ]; then
json_init
json_add_string "Status" "None"
json_add_int "SuccessCount" "0"
json_dump
$UCI_SET_BBF_DMMAP dmmap_diagnostics.nslookup.DiagnosticState="None"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.nslookup.SuccessCount=0
$UCI_COMMIT_BBF_DMMAP
else
echo $$ > /tmp/nslookup_pid
$UCI_SET_BBF_DMMAP dmmap_diagnostics.nslookup.DiagnosticState="Requested_running"
$UCI_COMMIT_BBF_DMMAP
fi
}
# Fail if hostname is empty

View file

@ -47,6 +47,42 @@ packet_capture_launch() {
json_get_var username username
json_get_var password password
json_get_var proto proto
json_get_var cancel cancel
[ "$proto" = "both_proto" ] && {
old_pid=$(cat /tmp/packetcapture_pid)
[ -n "${old_pid}" ] && {
cmd=$(cat /proc/$old_pid/cmdline)
}
if [[ "${cmd}" = *packetcapture* ]]; then
kill -9 ${old_pid}
fi
if [ "${cancel}" -eq "1" ]; then
json_init
json_add_string "Status" "None"
json_add_string "FileLocation" ""
json_add_string "StartTime" "0"
json_add_string "EndTime" "0"
json_add_string "Count" "0"
json_dump
$UCI_SET_BBF_DMMAP dmmap_diagnostics.packetcapture.DiagnosticState="None"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.packetcapture.FileLocation=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.packetcapture.StartTime=0
$UCI_SET_BBF_DMMAP dmmap_diagnostics.packetcapture.EndTime=0
$UCI_SET_BBF_DMMAP dmmap_diagnostics.packetcapture.Count=0
$UCI_COMMIT_BBF_DMMAP
return
else
echo $$ > /tmp/packetcapture_pid
$UCI_SET_BBF_DMMAP dmmap_diagnostics.packetcapture.DiagnosticState="Requested_running"
$UCI_COMMIT_BBF_DMMAP
fi
}
if [ -n "${format}" ] && [ "${format}" != "libpcap" ]; then
# Error

View file

@ -24,6 +24,7 @@ serverselection_error() {
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.MinimumResponseTime=9999
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.AverageResponseTime=0
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.MaximumResponseTime=0
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.IPAddressUsed=""
$UCI_COMMIT_BBF_DMMAP
}
}
@ -41,6 +42,44 @@ serverselection_launch() {
json_get_var timeout timeout
json_get_var protocol_used protocol_used
json_get_var proto proto
json_get_var cancel cancel
if [ "${proto}" = "both_proto" ]; then
old_pid=$(cat /tmp/serverselection_pid)
[ -n "${old_pid}" ] && {
cmd=$(cat /proc/$old_pid/cmdline)
}
if [[ "${cmd}" = *serverselection* ]]; then
kill -9 $old_pid
fi
if [ "${cancel}" -eq "1" ]; then
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.DiagnosticState="None"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.FastestHost=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.MinimumResponseTime=9999
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.AverageResponseTime=0
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.MaximumResponseTime=0
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.IPAddressUsed=""
$UCI_COMMIT_BBF_DMMAP
json_init
json_add_string "Status" "None"
json_add_string "FastestHost" ""
json_add_string "IPAddressUsed" ""
json_add_int "MinimumResponseTime" "9999"
json_add_int "AverageResponseTime" "0"
json_add_int "MaximumResponseTime" "0"
json_dump
return
else
echo $$ > /tmp/serverselection_pid
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.DiagnosticState="Requested_running"
$UCI_COMMIT_BBF_DMMAP
fi
fi
# Assign default value
[ -z "${nbr_of_rep}" ] && nbr_of_rep=3

View file

@ -51,7 +51,8 @@ traceroute_launch() {
json_get_var dscp dscp
json_get_var maxhop max_hop_cnt
json_get_var proto proto
json_get_var cancel cancel
LOG_FILE=$(get_traceroute_log_file)
# Assign default value
@ -64,11 +65,40 @@ traceroute_launch() {
# Clear all route hops instances
[ "$proto" = "both_proto" ] && {
old_pid=$(cat /tmp/traceroute_pid)
[ -n "${old_pid}" ] && {
cmd=$(cat /proc/$old_pid/cmdline)
}
if [[ "${cmd}" = *traceroute* ]]; then
kill -9 ${old_pid}
fi
res=$($UCI_SHOW_BBF_DMMAP dmmap_diagnostics | grep -E "=RouteHops$" | cut -d= -f 1)
for i in $res; do
$UCI_DELETE_BBF_DMMAP "${i}"
done
$UCI_COMMIT_BBF_DMMAP
if [ "${cancel}" -eq "1" ]; then
$UCI_SET_BBF_DMMAP dmmap_diagnostics.traceroute.DiagnosticState="None"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.traceroute.IPAddressUsed=""
$UCI_SET_BBF_DMMAP dmmap_diagnostics.traceroute.NumberOfHops="0"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.traceroute.ResponseTime="0"
$UCI_COMMIT_BBF_DMMAP
json_init
json_add_string "Status" "None"
json_add_string "IPAddressUsed" ""
json_add_int "ResponseTime" "0"
json_dump
return
else
echo $$ > /tmp/traceroute_pid
$UCI_SET_BBF_DMMAP dmmap_diagnostics.traceroute.DiagnosticState="Requested_running"
$UCI_COMMIT_BBF_DMMAP
fi
}
# Fail if host is empty

View file

@ -46,6 +46,46 @@ udpecho_launch() {
json_get_var dscp dscp
json_get_var inter_time inter_trans_time
json_get_var proto proto
json_get_var cancel cancel
[ "${proto}" = "both_proto" ] && {
old_pid=$(cat /tmp/udpecho_pid)
[ -n "${old_pid}" ] && {
cmd=$(cat /proc/$old_pid/cmdline)
}
if [[ "${cmd}" = *udpecho* ]]; then
kill -9 $old_pid
fi
if [ "${cancel}" -eq "1" ]; then
$UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.DiagnosticState="None"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.SuccessCount="0"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.FailureCount="0"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.MinimumResponseTime="9999"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.AverageResponseTime="0"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.MaximumResponseTime="0"
$UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.IPAddressUsed=""
$UCI_COMMIT_BBF_DMMAP
json_init
json_add_string "Status" "None"
json_add_string "IPAddressUsed" ""
json_add_int "SuccessCount" "0"
json_add_int "FailureCount" "0"
json_add_int "MinimumResponseTime" "9999"
json_add_int "AverageResponseTime" "0"
json_add_int "MaximumResponseTime" "0"
json_dump
return
else
echo $$ > /tmp/udpecho_pid
$UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.DiagnosticState="Requested_running"
$UCI_COMMIT_BBF_DMMAP
fi
}
# Assign default value
[ -z "${nbr_of_rep}" ] && nbr_of_rep=1