improvements in diagnostics

This commit is contained in:
Suvendhu Hansa 2024-03-20 11:53:26 +05:30 committed by Vivek Kumar Dutta
parent e36b827c96
commit de0c8c93b0
10 changed files with 438 additions and 56 deletions

View file

@ -29,6 +29,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
**************************************************************/
@ -39,7 +47,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 = diagnostics_get_option_fallback_def("ipping", "DiagnosticState", "None");
char *val = diagnostics_get_option_fallback_def("ipping", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -51,8 +64,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) {
diagnostics_set_option("ipping", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
diagnostics_set_option("ipping", "DiagnosticState", "None");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
}
return 0;
}
return 0;
@ -83,6 +100,7 @@ static int set_ip_ping_interface(char *refparam, struct dmctx *ctx, void *data,
return 0;
case VALUESET:
diagnostics_reset_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("ipping", "interface", reference.value);
return 0;
}
@ -106,6 +124,7 @@ static int set_ip_ping_protocolversion(char *refparam, struct dmctx *ctx, void *
return 0;
case VALUESET:
diagnostics_reset_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("ipping", "ProtocolVersion", value);
return 0;
}
@ -127,6 +146,7 @@ static int set_ip_ping_host(char *refparam, struct dmctx *ctx, void *data, char
return 0;
case VALUESET:
diagnostics_reset_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("ipping", "Host", value);
return 0;
}
@ -148,6 +168,7 @@ static int set_ip_ping_repetition_number(char *refparam, struct dmctx *ctx, void
return 0;
case VALUESET:
diagnostics_reset_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("ipping", "NumberOfRepetitions", value);
return 0;
}
@ -169,6 +190,7 @@ static int set_ip_ping_timeout(char *refparam, struct dmctx *ctx, void *data, ch
return 0;
case VALUESET:
diagnostics_reset_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("ipping", "Timeout", value);
return 0;
}
@ -190,6 +212,7 @@ static int set_ip_ping_block_size(char *refparam, struct dmctx *ctx, void *data,
return 0;
case VALUESET:
diagnostics_reset_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("ipping", "DataBlockSize", value);
return 0;
}
@ -211,6 +234,7 @@ static int set_ip_ping_DSCP(char *refparam, struct dmctx *ctx, void *data, char
return 0;
case VALUESET:
diagnostics_reset_state("ipping");
dmubus_call_set("bbf.diag", "ipping", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("ipping", "DSCP", value);
return 0;
}
@ -277,7 +301,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 = diagnostics_get_option_fallback_def("traceroute", "DiagnosticState", "None");
char *val = diagnostics_get_option_fallback_def("traceroute", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -289,8 +318,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) {
diagnostics_set_option("traceroute", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
diagnostics_set_option("traceroute", "DiagnosticState", "None");
stop_traceroute_diagnostics();
}
return 0;
}
return 0;
@ -321,6 +354,7 @@ static int set_IPDiagnosticsTraceRoute_Interface(char *refparam, struct dmctx *c
return 0;
case VALUESET:
diagnostics_reset_state("traceroute");
stop_traceroute_diagnostics();
diagnostics_set_option("traceroute", "interface", reference.value);
return 0;
}
@ -344,6 +378,7 @@ static int set_IPDiagnosticsTraceRoute_ProtocolVersion(char *refparam, struct dm
return 0;
case VALUESET:
diagnostics_reset_state("traceroute");
stop_traceroute_diagnostics();
diagnostics_set_option("traceroute", "ProtocolVersion", value);
return 0;
}
@ -365,6 +400,7 @@ static int set_IPDiagnosticsTraceRoute_Host(char *refparam, struct dmctx *ctx, v
return 0;
case VALUESET:
diagnostics_reset_state("traceroute");
stop_traceroute_diagnostics();
diagnostics_set_option("traceroute", "Host", value);
return 0;
}
@ -386,6 +422,7 @@ static int set_IPDiagnosticsTraceRoute_NumberOfTries(char *refparam, struct dmct
return 0;
case VALUESET:
diagnostics_reset_state("traceroute");
stop_traceroute_diagnostics();
diagnostics_set_option("traceroute", "NumberOfTries", value);
return 0;
}
@ -407,6 +444,7 @@ static int set_IPDiagnosticsTraceRoute_Timeout(char *refparam, struct dmctx *ctx
return 0;
case VALUESET:
diagnostics_reset_state("traceroute");
stop_traceroute_diagnostics();
diagnostics_set_option("traceroute", "Timeout", value);
return 0;
}
@ -428,6 +466,7 @@ static int set_IPDiagnosticsTraceRoute_DataBlockSize(char *refparam, struct dmct
return 0;
case VALUESET:
diagnostics_reset_state("traceroute");
stop_traceroute_diagnostics();
diagnostics_set_option("traceroute", "DataBlockSize", value);
return 0;
}
@ -449,6 +488,7 @@ static int set_IPDiagnosticsTraceRoute_DSCP(char *refparam, struct dmctx *ctx, v
return 0;
case VALUESET:
diagnostics_reset_state("traceroute");
stop_traceroute_diagnostics();
diagnostics_set_option("traceroute", "DSCP", value);
return 0;
}
@ -470,6 +510,7 @@ static int set_IPDiagnosticsTraceRoute_MaxHopCount(char *refparam, struct dmctx
return 0;
case VALUESET:
diagnostics_reset_state("traceroute");
stop_traceroute_diagnostics();
diagnostics_set_option("traceroute", "MaxHops", value);
return 0;
}
@ -569,7 +610,6 @@ static int set_IPDiagnosticsDownloadDiagnostics_Interface(char *refparam, struct
case VALUESET:
diagnostics_reset_state("download");
diagnostics_set_option("download", "interface", reference.value);
return 0;
}
return 0;
}
@ -1202,7 +1242,12 @@ static int get_IPDiagnosticsUploadDiagnosticsPerConnectionResult_TCPOpenResponse
static int get_IPDiagnosticsUDPEchoDiagnostics_DiagnosticsState(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
{
*value = diagnostics_get_option_fallback_def("udpechodiag", "DiagnosticState", "None");
char *val = diagnostics_get_option_fallback_def("udpechodiag", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -1214,8 +1259,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) {
diagnostics_set_option("udpechodiag", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
diagnostics_set_option("udpechodiag", "DiagnosticState", "None");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
}
return 0;
}
return 0;
@ -1246,6 +1295,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_Interface(char *refparam, struct
return 0;
case VALUESET:
diagnostics_reset_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("udpechodiag", "interface", reference.value);
return 0;
}
@ -1267,6 +1317,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_Host(char *refparam, struct dmctx
return 0;
case VALUESET:
diagnostics_reset_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("udpechodiag", "Host", value);
return 0;
}
@ -1288,6 +1339,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_Port(char *refparam, struct dmctx
return 0;
case VALUESET:
diagnostics_reset_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("udpechodiag", "port", value);
return 0;
}
@ -1309,6 +1361,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_NumberOfRepetitions(char *refpara
return 0;
case VALUESET:
diagnostics_reset_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("udpechodiag", "NumberOfRepetitions", value);
return 0;
}
@ -1330,6 +1383,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_Timeout(char *refparam, struct dm
return 0;
case VALUESET:
diagnostics_reset_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("udpechodiag", "Timeout", value);
return 0;
}
@ -1351,6 +1405,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_DataBlockSize(char *refparam, str
return 0;
case VALUESET:
diagnostics_reset_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("udpechodiag", "DataBlockSize", value);
return 0;
}
@ -1372,6 +1427,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_DSCP(char *refparam, struct dmctx
return 0;
case VALUESET:
diagnostics_reset_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("udpechodiag", "DSCP", value);
return 0;
}
@ -1393,6 +1449,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_InterTransmissionTime(char *refpa
return 0;
case VALUESET:
diagnostics_reset_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("udpechodiag", "InterTransmissionTime", value);
return 0;
}
@ -1416,6 +1473,7 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_ProtocolVersion(char *refparam, s
return 0;
case VALUESET:
diagnostics_reset_state("udpechodiag");
dmubus_call_set("bbf.diag", "udpecho", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("udpechodiag", "ProtocolVersion", value);
return 0;
}
@ -1464,7 +1522,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 = diagnostics_get_option_fallback_def("serverselection", "DiagnosticState", "None");
char *val = diagnostics_get_option_fallback_def("serverselection", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -1476,8 +1539,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) {
diagnostics_set_option("serverselection", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
diagnostics_set_option("serverselection", "DiagnosticState", "None");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
}
return 0;
}
return 0;
@ -1508,6 +1575,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_Interface(char *refparam,
return 0;
case VALUESET:
diagnostics_reset_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("serverselection", "interface", reference.value);
return 0;
}
@ -1531,6 +1599,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_ProtocolVersion(char *ref
return 0;
case VALUESET:
diagnostics_reset_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("serverselection", "ProtocolVersion", value);
return 0;
}
@ -1554,6 +1623,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_Protocol(char *refparam,
return 0;
case VALUESET:
diagnostics_reset_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("serverselection", "Protocol", value);
return 0;
}
@ -1575,6 +1645,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_HostList(char *refparam,
return 0;
case VALUESET:
diagnostics_reset_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("serverselection", "HostList", value);
return 0;
}
@ -1596,6 +1667,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_NumberOfRepetitions(char
return 0;
case VALUESET:
diagnostics_reset_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("serverselection", "NumberOfRepetitions", value);
return 0;
}
@ -1617,6 +1689,7 @@ static int set_IPDiagnosticsServerSelectionDiagnostics_Timeout(char *refparam, s
return 0;
case VALUESET:
diagnostics_reset_state("serverselection");
dmubus_call_set("bbf.diag", "serverselection", UBUS_ARGS{{"cancel", "1", String},{"proto", "both_proto", String}}, 2);
diagnostics_set_option("serverselection", "Timeout", value);
return 0;
}

View file

@ -30,6 +30,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
**************************************************************/
@ -156,7 +164,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 = diagnostics_get_option_fallback_def("packetcapture", "DiagnosticState", "None");
char *val = diagnostics_get_option_fallback_def("packetcapture", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -168,8 +181,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) {
diagnostics_set_option("packetcapture", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
diagnostics_set_option("packetcapture", "DiagnosticState", "None");
stop_packetcapture_diagnostics();
}
}
return 0;
}
@ -199,6 +216,7 @@ static int set_PacketCapture_Interface(char *refparam, struct dmctx *ctx, void *
break;
case VALUESET:
diagnostics_reset_state("packetcapture");
stop_packetcapture_diagnostics();
diagnostics_set_option("packetcapture", "Interface", reference.value);
}
return 0;
@ -222,6 +240,7 @@ static int set_PacketCapture_Format(char *refparam, struct dmctx *ctx, void *dat
break;
case VALUESET:
diagnostics_reset_state("packetcapture");
stop_packetcapture_diagnostics();
diagnostics_set_option("packetcapture", "Format", value);
}
return 0;
@ -242,6 +261,7 @@ static int set_PacketCapture_Duration(char *refparam, struct dmctx *ctx, void *d
break;
case VALUESET:
diagnostics_reset_state("packetcapture");
stop_packetcapture_diagnostics();
diagnostics_set_option("packetcapture", "Duration", value);
}
return 0;
@ -262,6 +282,7 @@ static int set_PacketCapture_PacketCount(char *refparam, struct dmctx *ctx, void
break;
case VALUESET:
diagnostics_reset_state("packetcapture");
stop_packetcapture_diagnostics();
diagnostics_set_option("packetcapture", "PacketCount", value);
}
return 0;
@ -282,6 +303,7 @@ static int set_PacketCapture_FileTarget(char *refparam, struct dmctx *ctx, void
break;
case VALUESET:
diagnostics_reset_state("packetcapture");
stop_packetcapture_diagnostics();
diagnostics_set_option("packetcapture", "FileTarget", value);
}
return 0;
@ -302,6 +324,7 @@ static int set_PacketCapture_FilterExpression(char *refparam, struct dmctx *ctx,
break;
case VALUESET:
diagnostics_reset_state("packetcapture");
stop_packetcapture_diagnostics();
diagnostics_set_option("packetcapture", "FilterExpression", value);
}
return 0;
@ -322,6 +345,7 @@ static int set_PacketCapture_Username(char *refparam, struct dmctx *ctx, void *d
break;
case VALUESET:
diagnostics_reset_state("packetcapture");
stop_packetcapture_diagnostics();
diagnostics_set_option("packetcapture", "Username", value);
}
return 0;
@ -342,6 +366,7 @@ static int set_PacketCapture_Password(char *refparam, struct dmctx *ctx, void *d
break;
case VALUESET:
diagnostics_reset_state("packetcapture");
stop_packetcapture_diagnostics();
diagnostics_set_option("packetcapture", "Password", value);
}
return 0;

View file

@ -19,6 +19,14 @@ static char *UDP_Payload_Content[] = {"zeroes", "random", NULL};
static char *IPLayerCapacity_TestType[] = {"Search", "Fixed", NULL};
static char *RateAdj_Algorithm[] = {"B", "C", NULL};
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. ***
*/
@ -51,7 +59,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 = diagnostics_get_option_fallback_def("iplayercapacity", "DiagnosticState", "None");
char *val = diagnostics_get_option_fallback_def("iplayercapacity", "DiagnosticState", "None");
if (DM_STRSTR(val, "Requested") != NULL)
*value = dmstrdup("Requested");
else
*value = dmstrdup(val);
return 0;
}
@ -63,8 +76,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) {
diagnostics_set_option("iplayercapacity", "DiagnosticState", value);
} else if (DM_LSTRCMP(value, "Canceled") == 0) {
diagnostics_set_option("iplayercapacity", "DiagnosticState", "None");
stop_iplayercap_diagnostics();
}
return 0;
}
return 0;
@ -125,6 +142,7 @@ static int set_IPDiagnosticsIPLayerCapacity_Interface(char *refparam, struct dmc
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "interface", reference.value);
return 0;
}
@ -147,6 +165,7 @@ static int set_IPDiagnosticsIPLayerCapacity_Role(char *refparam, struct dmctx *c
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "Role", value);
return 0;
}
@ -168,6 +187,7 @@ static int set_IPDiagnosticsIPLayerCapacity_Host(char *refparam, struct dmctx *c
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "Host", value);
return 0;
}
@ -189,6 +209,7 @@ static int set_IPDiagnosticsIPLayerCapacity_Port(char *refparam, struct dmctx *c
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "Port", value);
return 0;
}
@ -212,6 +233,7 @@ static int set_IPDiagnosticsIPLayerCapacity_JumboFramesPermitted(char *refparam,
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
string_to_bool(value, &b);
diagnostics_set_option("iplayercapacity", "JumboFramesPermitted", b ? "1" : "0");
return 0;
@ -234,6 +256,7 @@ static int set_IPDiagnosticsIPLayerCapacity_DSCP(char *refparam, struct dmctx *c
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "DSCP", value);
return 0;
}
@ -255,6 +278,7 @@ static int set_IPDiagnosticsIPLayerCapacity_ProtocolVersion(char *refparam, stru
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "ProtocolVersion", value);
return 0;
}
@ -276,6 +300,7 @@ static int set_IPDiagnosticsIPLayerCapacity_UDPPayloadContent(char *refparam, st
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "UDPPayloadContent", value);
return 0;
}
@ -297,6 +322,7 @@ static int set_IPDiagnosticsIPLayerCapacity_TestType(char *refparam, struct dmct
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "TestType", value);
return 0;
}
@ -320,6 +346,7 @@ static int set_IPDiagnosticsIPLayerCapacity_IPDVEnable(char *refparam, struct dm
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
string_to_bool(value, &b);
diagnostics_set_option("iplayercapacity", "IPDVEnable", b ? "1" : "0");
return 0;
@ -343,6 +370,7 @@ static int set_IPDiagnosticsIPLayerCapacity_StartSendingRateIndex(char *refparam
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "StartSendingRateIndex", value);
return 0;
}
@ -364,6 +392,7 @@ static int set_IPDiagnosticsIPLayerCapacity_NumberFirstModeTestSubIntervals(char
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "NumberFirstModeTestSubIntervals", value);
return 0;
}
@ -389,6 +418,7 @@ static int set_IPDiagnosticsIPLayerCapacity_NumberTestSubIntervals(char *refpara
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "NumberTestSubIntervals", value);
return 0;
}
@ -411,6 +441,7 @@ static int set_IPDiagnosticsIPLayerCapacity_TestSubInterval(char *refparam, stru
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "TestSubInterval", value);
return 0;
}
@ -432,6 +463,7 @@ static int set_IPDiagnosticsIPLayerCapacity_StatusFeedbackInterval(char *refpara
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "StatusFeedbackInterval", value);
return 0;
}
@ -453,6 +485,7 @@ static int set_IPDiagnosticsIPLayerCapacity_SeqErrThresh(char *refparam, struct
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "SeqErrThresh", value);
return 0;
}
@ -476,6 +509,7 @@ static int set_IPDiagnosticsIPLayerCapacity_ReordDupIgnoreEnable(char *refparam,
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
string_to_bool(value, &b);
diagnostics_set_option("iplayercapacity", "ReordDupIgnoreEnable", b ? "1" : "0");
return 0;
@ -498,6 +532,7 @@ static int set_IPDiagnosticsIPLayerCapacity_LowerThresh(char *refparam, struct d
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "LowerThresh", value);
return 0;
}
@ -519,6 +554,7 @@ static int set_IPDiagnosticsIPLayerCapacity_UpperThresh(char *refparam, struct d
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "UpperThresh", value);
return 0;
}
@ -540,6 +576,7 @@ static int set_IPDiagnosticsIPLayerCapacity_HighSpeedDelta(char *refparam, struc
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "HighSpeedDelta", value);
return 0;
}
@ -561,6 +598,7 @@ static int set_IPDiagnosticsIPLayerCapacity_RateAdjAlgorithm(char *refparam, str
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "RateAdjAlgorithm", value);
return 0;
}
@ -576,6 +614,7 @@ static int set_IPDiagnosticsIPLayerCapacity_SlowAdjThresh(char *refparam, struct
return 0;
case VALUESET:
diagnostics_reset_state("iplayercapacity");
stop_iplayercap_diagnostics();
diagnostics_set_option("iplayercapacity", "SlowAdjThresh", value);
return 0;
}

View file

@ -16,6 +16,7 @@ ipping_list() {
json_add_string "data_size" "str"
json_add_string "dscp" "str"
json_add_string "proto" "str"
json_add_string "cancel" "str"
json_close_object
}
@ -62,6 +63,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

@ -25,6 +25,7 @@ nslookup_list() {
json_add_string "nbr_of_rep" "str"
json_add_string "timeout" "str"
json_add_string "proto" "str"
json_add_string "cancel" "str"
json_close_object
}
@ -52,6 +53,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)
@ -60,11 +62,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

@ -15,6 +15,7 @@ serverselection_list() {
json_add_string "timeout" "str"
json_add_string "protocol_used" "str"
json_add_string "proto" "str"
json_add_string "cancel" "str"
json_close_object
}
@ -35,6 +36,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
}
}
@ -52,6 +54,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

@ -17,6 +17,7 @@ udpecho_list() {
json_add_string "dscp" "str"
json_add_string "inter_trans_time" "str"
json_add_string "proto" "str"
json_add_string "cancel" "str"
json_close_object
}
@ -58,6 +59,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

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

@ -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

@ -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