mirror of
https://dev.iopsys.eu/bbf/bbfdm.git
synced 2026-02-21 03:42:31 +01:00
T#8530: Diagnostics: Add supports for missing parameters
This commit is contained in:
parent
5278cabfc3
commit
95a9418e04
11 changed files with 182 additions and 55 deletions
|
|
@ -214,6 +214,12 @@ static int set_ip_ping_DSCP(char *refparam, struct dmctx *ctx, void *data, char
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int get_IPDiagnosticsIPPing_IPAddressUsed(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
*value = get_diagnostics_option("ipping", "IPAddressUsed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_ip_ping_success_count(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
*value = get_diagnostics_option_fallback_def("ipping", "SuccessCount", "0");
|
||||
|
|
@ -479,6 +485,12 @@ static int get_IPDiagnosticsTraceRoute_ResponseTime(char *refparam, struct dmctx
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int get_IPDiagnosticsTraceRoute_IPAddressUsed(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
*value = get_diagnostics_option("traceroute", "IPAddressUsed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_IPDiagnosticsTraceRoute_RouteHopsNumberOfEntries(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
*value = get_diagnostics_option_fallback_def("traceroute", "NumberOfHops", "0");
|
||||
|
|
@ -688,6 +700,12 @@ static int set_IPDiagnosticsDownloadDiagnostics_NumberOfConnections(char *refpar
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int get_IPDiagnosticsDownloadDiagnostics_IPAddressUsed(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
*value = get_diagnostics_option("download", "IPAddressUsed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_IPDiagnosticsDownloadDiagnostics_ROMTime(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
*value = get_diagnostics_option_fallback_def("download", "ROMtime", "0001-01-01T00:00:00.000000Z");
|
||||
|
|
@ -1034,6 +1052,12 @@ static int set_IPDiagnosticsUploadDiagnostics_NumberOfConnections(char *refparam
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int get_IPDiagnosticsUploadDiagnostics_IPAddressUsed(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
*value = get_diagnostics_option("upload", "IPAddressUsed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_IPDiagnosticsUploadDiagnostics_ROMTime(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
*value = get_diagnostics_option_fallback_def("upload", "ROMtime", "0001-01-01T00:00:00.000000Z");
|
||||
|
|
@ -1419,6 +1443,12 @@ static int set_IPDiagnosticsUDPEchoDiagnostics_ProtocolVersion(char *refparam, s
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int get_IPDiagnosticsUDPEchoDiagnostics_IPAddressUsed(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
*value = get_diagnostics_option("udpechodiag", "IPAddressUsed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_IPDiagnosticsUDPEchoDiagnostics_SuccessCount(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
*value = get_diagnostics_option_fallback_def("udpechodiag", "SuccessCount", "0");
|
||||
|
|
@ -1640,6 +1670,12 @@ static int get_IPDiagnosticsServerSelectionDiagnostics_MaximumResponseTime(char
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int get_IPDiagnosticsServerSelectionDiagnostics_IPAddressUsed(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
*value = get_diagnostics_option("serverselection", "IPAddressUsed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*************************************************************
|
||||
* ENTRY METHOD
|
||||
**************************************************************/
|
||||
|
|
@ -1747,6 +1783,8 @@ static int operate_IPDiagnostics_IPPing(char *refparam, struct dmctx *ctx, void
|
|||
// Allocate uci_ctx_bbfdm
|
||||
dmuci_init_bbfdm();
|
||||
|
||||
char *ipping_status = get_diagnostics_option("ipping", "DiagnosticState");
|
||||
char *ipping_ip_address_used = get_diagnostics_option("ipping", "IPAddressUsed");
|
||||
char *ipping_success_count = get_diagnostics_option("ipping", "SuccessCount");
|
||||
char *ipping_failure_count = get_diagnostics_option("ipping", "FailureCount");
|
||||
char *ipping_average_response_time = get_diagnostics_option("ipping", "AverageResponseTime");
|
||||
|
|
@ -1756,6 +1794,8 @@ static int operate_IPDiagnostics_IPPing(char *refparam, struct dmctx *ctx, void
|
|||
char *ipping_minimum_response_time_detailed = get_diagnostics_option("ipping", "MinimumResponseTimeDetailed");
|
||||
char *ipping_maximum_response_time_detailed = get_diagnostics_option("ipping", "MaximumResponseTimeDetailed");
|
||||
|
||||
add_list_parameter(ctx, dmstrdup("Status"), ipping_status, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("IPAddressUsed"), ipping_ip_address_used, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("SuccessCount"), ipping_success_count, DMT_TYPE[DMT_UNINT], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("FailureCount"), ipping_failure_count, DMT_TYPE[DMT_UNINT], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("AverageResponseTime"), ipping_average_response_time, DMT_TYPE[DMT_UNINT], NULL);
|
||||
|
|
@ -1784,6 +1824,10 @@ static operation_args ip_diagnostics_trace_route_args = {
|
|||
"Status",
|
||||
"IPAddressUsed",
|
||||
"ResponseTime",
|
||||
"RouteHops.{i}.Host",
|
||||
"RouteHops.{i}.HostAddress",
|
||||
"RouteHops.{i}.ErrorCode",
|
||||
"RouteHops.{i}.RTTimes",
|
||||
NULL
|
||||
}
|
||||
};
|
||||
|
|
@ -1803,6 +1847,7 @@ static int operate_IPDiagnostics_TraceRoute(char *refparam, struct dmctx *ctx, v
|
|||
char *route_hops_errorcode = NULL;
|
||||
int i = 1;
|
||||
|
||||
init_diagnostics_operation("RouteHops", TRACEROUTE_PATH);
|
||||
init_diagnostics_operation("traceroute", TRACEROUTE_PATH);
|
||||
|
||||
char *host = dmjson_get_value((json_object *)value, 1, "Host");
|
||||
|
|
@ -1834,7 +1879,11 @@ static int operate_IPDiagnostics_TraceRoute(char *refparam, struct dmctx *ctx, v
|
|||
// Allocate uci_ctx_bbfdm
|
||||
dmuci_init_bbfdm();
|
||||
|
||||
char *status = get_diagnostics_option("traceroute", "DiagnosticState");
|
||||
char *ip_address_used = get_diagnostics_option("traceroute", "IPAddressUsed");
|
||||
char *response_time = get_diagnostics_option("traceroute", "ResponseTime");
|
||||
add_list_parameter(ctx, dmstrdup("Status"), status, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("IPAddressUsed"), ip_address_used, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("ResponseTime"), response_time, DMT_TYPE[DMT_UNINT], NULL);
|
||||
|
||||
uci_path_foreach_sections(bbfdm, DMMAP_DIAGNOSTIGS, "RouteHops", s) {
|
||||
|
|
@ -1886,6 +1935,19 @@ static operation_args ip_diagnostics_download_args = {
|
|||
"PeriodOfFullLoading",
|
||||
"TCPOpenRequestTime",
|
||||
"TCPOpenResponseTime",
|
||||
"PerConnectionResult.{i}.ROMTime",
|
||||
"PerConnectionResult.{i}.BOMTime",
|
||||
"PerConnectionResult.{i}.EOMTime",
|
||||
"PerConnectionResult.{i}.TestBytesReceived",
|
||||
"PerConnectionResult.{i}.TotalBytesReceived",
|
||||
"PerConnectionResult.{i}.TotalBytesSent",
|
||||
"PerConnectionResult.{i}.TCPOpenRequestTime",
|
||||
"PerConnectionResult.{i}.TCPOpenResponseTime",
|
||||
"IncrementalResult.{i}.TestBytesReceived",
|
||||
"IncrementalResult.{i}.TotalBytesReceived",
|
||||
"IncrementalResult.{i}.TotalBytesSent",
|
||||
"IncrementalResult.{i}.StartTime",
|
||||
"IncrementalResult.{i}.EndTime",
|
||||
NULL
|
||||
}
|
||||
};
|
||||
|
|
@ -1921,6 +1983,8 @@ static int operate_IPDiagnostics_DownloadDiagnostics(char *refparam, struct dmct
|
|||
if (start_upload_download_diagnostic(DOWNLOAD_DIAGNOSTIC) == -1)
|
||||
return CMD_FAIL;
|
||||
|
||||
char *status = get_diagnostics_option("download", "DiagnosticState");
|
||||
char *ip_address_used = get_diagnostics_option("download", "IPAddressUsed");
|
||||
char *romtime = get_diagnostics_option("download", "ROMtime");
|
||||
char *bomtime = get_diagnostics_option("download", "BOMtime");
|
||||
char *eomtime = get_diagnostics_option("download", "EOMtime");
|
||||
|
|
@ -1934,6 +1998,8 @@ static int operate_IPDiagnostics_DownloadDiagnostics(char *refparam, struct dmct
|
|||
char *tcp_open_request_time = get_diagnostics_option("download", "TCPOpenRequestTime");
|
||||
char *tcp_open_response_time = get_diagnostics_option("download", "TCPOpenResponseTime");
|
||||
|
||||
add_list_parameter(ctx, dmstrdup("Status"), status, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("IPAddressUsed"), ip_address_used, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("ROMTime"), romtime, DMT_TYPE[DMT_TIME], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("BOMTime"), bomtime, DMT_TYPE[DMT_TIME], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("EOMTime"), eomtime, DMT_TYPE[DMT_TIME], NULL);
|
||||
|
|
@ -1980,6 +2046,19 @@ static operation_args ip_diagnostics_upload_args = {
|
|||
"PeriodOfFullLoading",
|
||||
"TCPOpenRequestTime",
|
||||
"TCPOpenResponseTime",
|
||||
"PerConnectionResult.{i}.ROMTime",
|
||||
"PerConnectionResult.{i}.BOMTime",
|
||||
"PerConnectionResult.{i}.EOMTime",
|
||||
"PerConnectionResult.{i}.TestBytesSent",
|
||||
"PerConnectionResult.{i}.TotalBytesReceived",
|
||||
"PerConnectionResult.{i}.TotalBytesSent",
|
||||
"PerConnectionResult.{i}.TCPOpenRequestTime",
|
||||
"PerConnectionResult.{i}.TCPOpenResponseTime",
|
||||
"IncrementalResult.{i}.TestBytesSent",
|
||||
"IncrementalResult.{i}.TotalBytesReceived",
|
||||
"IncrementalResult.{i}.TotalBytesSent",
|
||||
"IncrementalResult.{i}.StartTime",
|
||||
"IncrementalResult.{i}.EndTime",
|
||||
NULL
|
||||
}
|
||||
};
|
||||
|
|
@ -2021,6 +2100,8 @@ static int operate_IPDiagnostics_UploadDiagnostics(char *refparam, struct dmctx
|
|||
if (start_upload_download_diagnostic(UPLOAD_DIAGNOSTIC) == -1)
|
||||
return CMD_FAIL;
|
||||
|
||||
char *upload_status = get_diagnostics_option("upload", "DiagnosticState");
|
||||
char *upload_ip_address_used = get_diagnostics_option("upload", "IPAddressUsed");
|
||||
char *upload_romtime = get_diagnostics_option("upload", "ROMtime");
|
||||
char *upload_bomtime = get_diagnostics_option("upload", "BOMtime");
|
||||
char *upload_eomtime = get_diagnostics_option("upload", "EOMtime");
|
||||
|
|
@ -2034,6 +2115,8 @@ static int operate_IPDiagnostics_UploadDiagnostics(char *refparam, struct dmctx
|
|||
char *upload_tcp_open_request_time = get_diagnostics_option("upload", "TCPOpenRequestTime");
|
||||
char *upload_tcp_open_response_time = get_diagnostics_option("upload", "TCPOpenResponseTime");
|
||||
|
||||
add_list_parameter(ctx, dmstrdup("Status"), upload_status, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("IPAddressUsed"), upload_ip_address_used, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("ROMTime"), upload_romtime, DMT_TYPE[DMT_TIME], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("BOMTime"), upload_bomtime, DMT_TYPE[DMT_TIME], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("EOMTime"), upload_eomtime, DMT_TYPE[DMT_TIME], NULL);
|
||||
|
|
@ -2053,33 +2136,33 @@ static int operate_IPDiagnostics_UploadDiagnostics(char *refparam, struct dmctx
|
|||
static operation_args ip_diagnostics_udpecho_args = {
|
||||
.in = (const char *[]) {
|
||||
"Interface",
|
||||
"UploadURL",
|
||||
"Host",
|
||||
"Port",
|
||||
"NumberOfRepetitions",
|
||||
"Timeout",
|
||||
"DataBlockSize",
|
||||
"DSCP",
|
||||
"EthernetPriority",
|
||||
"TestFileLength",
|
||||
"TimeBasedTestDuration",
|
||||
"TimeBasedTestMeasurementInterval",
|
||||
"TimeBasedTestMeasurementOffset",
|
||||
"InterTransmissionTime",
|
||||
"ProtocolVersion",
|
||||
"NumberOfConnections",
|
||||
"EnablePerConnectionResults",
|
||||
"EnableIndividualPacketResults",
|
||||
NULL
|
||||
},
|
||||
.out = (const char *[]) {
|
||||
"Status",
|
||||
"IPAddressUsed",
|
||||
"ROMTime",
|
||||
"BOMTime",
|
||||
"EOMTime",
|
||||
"TestBytesSent",
|
||||
"TotalBytesReceived",
|
||||
"TotalBytesSent",
|
||||
"TestBytesSentUnderFullLoading",
|
||||
"TotalBytesReceivedUnderFullLoading",
|
||||
"TotalBytesSentUnderFullLoading",
|
||||
"PeriodOfFullLoading",
|
||||
"TCPOpenRequestTime",
|
||||
"TCPOpenResponseTime",
|
||||
"SuccessCount",
|
||||
"FailureCount",
|
||||
"AverageResponseTime",
|
||||
"MinimumResponseTime",
|
||||
"MaximumResponseTime",
|
||||
"IndividualPacketResult.{i}.PacketSuccess",
|
||||
"IndividualPacketResult.{i}.PacketSendTime",
|
||||
"IndividualPacketResult.{i}.PacketReceiveTime",
|
||||
"IndividualPacketResult.{i}.TestGenSN",
|
||||
"IndividualPacketResult.{i}.TestRespSN",
|
||||
"IndividualPacketResult.{i}.TestRespRcvTimeStamp",
|
||||
"IndividualPacketResult.{i}.TestRespReplyTimeStamp",
|
||||
"IndividualPacketResult.{i}.TestRespReplyFailureCount",
|
||||
NULL
|
||||
}
|
||||
};
|
||||
|
|
@ -2125,12 +2208,16 @@ static int operate_IPDiagnostics_UDPEchoDiagnostics(char *refparam, struct dmctx
|
|||
// Allocate uci_ctx_bbfdm
|
||||
dmuci_init_bbfdm();
|
||||
|
||||
char *status = get_diagnostics_option("udpechodiag", "DiagnosticState");
|
||||
char *ip_address_used = get_diagnostics_option("udpechodiag", "IPAddressUsed");
|
||||
char *udpecho_success_count = get_diagnostics_option("udpechodiag", "SuccessCount");
|
||||
char *udpecho_failure_count = get_diagnostics_option("udpechodiag", "FailureCount");
|
||||
char *udpecho_average_response_time = get_diagnostics_option("udpechodiag", "AverageResponseTime");
|
||||
char *udpecho_minimum_response_time = get_diagnostics_option("udpechodiag", "MinimumResponseTime");
|
||||
char *udpecho_maximum_response_time = get_diagnostics_option("udpechodiag", "MaximumResponseTime");
|
||||
|
||||
add_list_parameter(ctx, dmstrdup("Status"), status, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("IPAddressUsed"), ip_address_used, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("SuccessCount"), udpecho_success_count, DMT_TYPE[DMT_UNINT], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("FailureCount"), udpecho_failure_count, DMT_TYPE[DMT_UNINT], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("AverageResponseTime"), udpecho_average_response_time, DMT_TYPE[DMT_UNINT], NULL);
|
||||
|
|
@ -2158,7 +2245,7 @@ static operation_args ip_diagnostics_server_selection_args = {
|
|||
"MaximumResponseTime",
|
||||
"IPAddressUsed",
|
||||
NULL
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
static int get_operate_args_IPDiagnostics_ServerSelectionDiagnostics(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
|
|
@ -2198,15 +2285,19 @@ static int operate_IPDiagnostics_ServerSelectionDiagnostics(char *refparam, stru
|
|||
// Allocate uci_ctx_bbfdm
|
||||
dmuci_init_bbfdm();
|
||||
|
||||
char *status = get_diagnostics_option("serverselection", "DiagnosticState");
|
||||
char *fasthost = get_diagnostics_option("serverselection", "FastestHost");
|
||||
char *average_response_time = get_diagnostics_option("serverselection", "AverageResponseTime");
|
||||
char *minimum_response_time = get_diagnostics_option("serverselection", "MinimumResponseTime");
|
||||
char *maximum_response_time = get_diagnostics_option("serverselection", "MaximumResponseTime");
|
||||
char *ip_address_used = get_diagnostics_option("serverselection", "IPAddressUsed");
|
||||
|
||||
add_list_parameter(ctx, dmstrdup("Status"), status, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("FastestHost"), fasthost, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("AverageResponseTime"), average_response_time, DMT_TYPE[DMT_UNINT], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("MinimumResponseTime"), minimum_response_time, DMT_TYPE[DMT_UNINT], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("MaximumResponseTime"), maximum_response_time, DMT_TYPE[DMT_UNINT], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("IPAddressUsed"), ip_address_used, DMT_TYPE[DMT_STRING], NULL);
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
|
@ -2260,6 +2351,7 @@ DMLEAF tIPDiagnosticsIPPingParams[] = {
|
|||
{"Timeout", &DMWRITE, DMT_UNINT, get_ip_ping_timeout, set_ip_ping_timeout, BBFDM_CWMP},
|
||||
{"DataBlockSize", &DMWRITE, DMT_UNINT, get_ip_ping_block_size, set_ip_ping_block_size, BBFDM_CWMP},
|
||||
{"DSCP", &DMWRITE, DMT_UNINT, get_ip_ping_DSCP, set_ip_ping_DSCP, BBFDM_CWMP},
|
||||
{"IPAddressUsed", &DMREAD, DMT_STRING, get_IPDiagnosticsIPPing_IPAddressUsed, NULL, BBFDM_CWMP},
|
||||
{"SuccessCount", &DMREAD, DMT_UNINT, get_ip_ping_success_count, NULL, BBFDM_CWMP},
|
||||
{"FailureCount", &DMREAD, DMT_UNINT, get_ip_ping_failure_count, NULL, BBFDM_CWMP},
|
||||
{"AverageResponseTime", &DMREAD, DMT_UNINT, get_ip_ping_average_response_time, NULL, BBFDM_CWMP},
|
||||
|
|
@ -2290,6 +2382,7 @@ DMLEAF tIPDiagnosticsTraceRouteParams[] = {
|
|||
{"DSCP", &DMWRITE, DMT_UNINT, get_IPDiagnosticsTraceRoute_DSCP, set_IPDiagnosticsTraceRoute_DSCP, BBFDM_CWMP},
|
||||
{"MaxHopCount", &DMWRITE, DMT_UNINT, get_IPDiagnosticsTraceRoute_MaxHopCount, set_IPDiagnosticsTraceRoute_MaxHopCount, BBFDM_CWMP},
|
||||
{"ResponseTime", &DMREAD, DMT_UNINT, get_IPDiagnosticsTraceRoute_ResponseTime, NULL, BBFDM_CWMP},
|
||||
{"IPAddressUsed", &DMREAD, DMT_STRING, get_IPDiagnosticsTraceRoute_IPAddressUsed, NULL, BBFDM_CWMP},
|
||||
{"RouteHopsNumberOfEntries", &DMREAD, DMT_UNINT, get_IPDiagnosticsTraceRoute_RouteHopsNumberOfEntries, NULL, BBFDM_CWMP},
|
||||
{0}
|
||||
};
|
||||
|
|
@ -2322,6 +2415,7 @@ DMLEAF tIPDiagnosticsDownloadDiagnosticsParams[] = {
|
|||
{"EthernetPriority", &DMWRITE, DMT_UNINT, get_IPDiagnosticsDownloadDiagnostics_EthernetPriority, set_IPDiagnosticsDownloadDiagnostics_EthernetPriority, BBFDM_CWMP},
|
||||
{"ProtocolVersion", &DMWRITE, DMT_STRING, get_IPDiagnosticsDownloadDiagnostics_ProtocolVersion, set_IPDiagnosticsDownloadDiagnostics_ProtocolVersion, BBFDM_CWMP},
|
||||
{"NumberOfConnections", &DMWRITE, DMT_UNINT, get_IPDiagnosticsDownloadDiagnostics_NumberOfConnections, set_IPDiagnosticsDownloadDiagnostics_NumberOfConnections, BBFDM_CWMP},
|
||||
{"IPAddressUsed", &DMREAD, DMT_STRING, get_IPDiagnosticsDownloadDiagnostics_IPAddressUsed, NULL, BBFDM_CWMP},
|
||||
{"ROMTime", &DMREAD, DMT_TIME, get_IPDiagnosticsDownloadDiagnostics_ROMTime, NULL, BBFDM_CWMP},
|
||||
{"BOMTime", &DMREAD, DMT_TIME, get_IPDiagnosticsDownloadDiagnostics_BOMTime, NULL, BBFDM_CWMP},
|
||||
{"EOMTime", &DMREAD, DMT_TIME, get_IPDiagnosticsDownloadDiagnostics_EOMTime, NULL, BBFDM_CWMP},
|
||||
|
|
@ -2371,6 +2465,7 @@ DMLEAF tIPDiagnosticsUploadDiagnosticsParams[] = {
|
|||
{"TestFileLength", &DMWRITE, DMT_UNINT, get_IPDiagnosticsUploadDiagnostics_TestFileLength, set_IPDiagnosticsUploadDiagnostics_TestFileLength, BBFDM_CWMP},
|
||||
{"ProtocolVersion", &DMWRITE, DMT_STRING, get_IPDiagnosticsUploadDiagnostics_ProtocolVersion, set_IPDiagnosticsUploadDiagnostics_ProtocolVersion, BBFDM_CWMP},
|
||||
{"NumberOfConnections", &DMWRITE, DMT_UNINT, get_IPDiagnosticsUploadDiagnostics_NumberOfConnections, set_IPDiagnosticsUploadDiagnostics_NumberOfConnections, BBFDM_CWMP},
|
||||
{"IPAddressUsed", &DMREAD, DMT_STRING, get_IPDiagnosticsUploadDiagnostics_IPAddressUsed, NULL, BBFDM_CWMP},
|
||||
{"ROMTime", &DMREAD, DMT_TIME, get_IPDiagnosticsUploadDiagnostics_ROMTime, NULL, BBFDM_CWMP},
|
||||
{"BOMTime", &DMREAD, DMT_TIME, get_IPDiagnosticsUploadDiagnostics_BOMTime, NULL, BBFDM_CWMP},
|
||||
{"EOMTime", &DMREAD, DMT_TIME, get_IPDiagnosticsUploadDiagnostics_EOMTime, NULL, BBFDM_CWMP},
|
||||
|
|
@ -2415,6 +2510,7 @@ DMLEAF tIPDiagnosticsUDPEchoDiagnosticsParams[] = {
|
|||
{"DSCP", &DMWRITE, DMT_UNINT, get_IPDiagnosticsUDPEchoDiagnostics_DSCP, set_IPDiagnosticsUDPEchoDiagnostics_DSCP, BBFDM_CWMP},
|
||||
{"InterTransmissionTime", &DMWRITE, DMT_UNINT, get_IPDiagnosticsUDPEchoDiagnostics_InterTransmissionTime, set_IPDiagnosticsUDPEchoDiagnostics_InterTransmissionTime, BBFDM_CWMP},
|
||||
{"ProtocolVersion", &DMWRITE, DMT_STRING, get_IPDiagnosticsUDPEchoDiagnostics_ProtocolVersion, set_IPDiagnosticsUDPEchoDiagnostics_ProtocolVersion, BBFDM_CWMP},
|
||||
{"IPAddressUsed", &DMREAD, DMT_STRING, get_IPDiagnosticsUDPEchoDiagnostics_IPAddressUsed, NULL, BBFDM_CWMP},
|
||||
{"SuccessCount", &DMREAD, DMT_UNINT, get_IPDiagnosticsUDPEchoDiagnostics_SuccessCount, NULL, BBFDM_CWMP},
|
||||
{"FailureCount", &DMREAD, DMT_UNINT, get_IPDiagnosticsUDPEchoDiagnostics_FailureCount, NULL, BBFDM_CWMP},
|
||||
{"AverageResponseTime", &DMREAD, DMT_UNINT, get_IPDiagnosticsUDPEchoDiagnostics_AverageResponseTime, NULL, BBFDM_CWMP},
|
||||
|
|
@ -2437,5 +2533,6 @@ DMLEAF tIPDiagnosticsServerSelectionDiagnosticsParams[] = {
|
|||
{"MinimumResponseTime", &DMREAD, DMT_UNINT, get_IPDiagnosticsServerSelectionDiagnostics_MinimumResponseTime, NULL, BBFDM_CWMP},
|
||||
{"AverageResponseTime", &DMREAD, DMT_UNINT, get_IPDiagnosticsServerSelectionDiagnostics_AverageResponseTime, NULL, BBFDM_CWMP},
|
||||
{"MaximumResponseTime", &DMREAD, DMT_UNINT, get_IPDiagnosticsServerSelectionDiagnostics_MaximumResponseTime, NULL, BBFDM_CWMP},
|
||||
{"IPAddressUsed", &DMREAD, DMT_STRING, get_IPDiagnosticsServerSelectionDiagnostics_IPAddressUsed, NULL, BBFDM_CWMP},
|
||||
{0}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -743,11 +743,13 @@ static operation_args dns_diagnostics_nslookup_args = {
|
|||
},
|
||||
.out = (const char *[]) {
|
||||
"Status",
|
||||
"AnswerType",
|
||||
"HostNameReturned",
|
||||
"IPAddresses",
|
||||
"DNSServerIP",
|
||||
"ResponseTime",
|
||||
"SuccessCount",
|
||||
"Result.{i}.Status",
|
||||
"Result.{i}.AnswerType",
|
||||
"Result.{i}.HostNameReturned",
|
||||
"Result.{i}.IPAddresses",
|
||||
"Result.{i}.DNSServerIP",
|
||||
"Result.{i}.ResponseTime",
|
||||
NULL
|
||||
}
|
||||
};
|
||||
|
|
@ -769,6 +771,7 @@ static int operate_DNSDiagnostics_NSLookupDiagnostics(char *refparam, struct dmc
|
|||
char *nslookup_response_time[2] = {0};
|
||||
int i = 1;
|
||||
|
||||
init_diagnostics_operation("NSLookupResult", NSLOOKUP_PATH);
|
||||
init_diagnostics_operation("nslookup", NSLOOKUP_PATH);
|
||||
|
||||
char *hostname = dmjson_get_value((json_object *)value, 1, "HostName");
|
||||
|
|
@ -793,7 +796,9 @@ static int operate_DNSDiagnostics_NSLookupDiagnostics(char *refparam, struct dmc
|
|||
// Allocate uci_ctx_bbfdm
|
||||
dmuci_init_bbfdm();
|
||||
|
||||
char *status = get_diagnostics_option("nslookup", "DiagnosticState");
|
||||
char *success_count = get_diagnostics_option("nslookup", "SuccessCount");
|
||||
add_list_parameter(ctx, dmstrdup("Status"), status, DMT_TYPE[DMT_STRING], NULL);
|
||||
add_list_parameter(ctx, dmstrdup("SuccessCount"), success_count, DMT_TYPE[DMT_UNINT], NULL);
|
||||
|
||||
uci_path_foreach_sections(bbfdm, DMMAP_DIAGNOSTIGS, "NSLookupResult", s) {
|
||||
|
|
|
|||
|
|
@ -23,3 +23,24 @@ uci_get_bbf_dmmap() {
|
|||
val=$($UCI_GET_BBF_DMMAP $1)
|
||||
echo ${val:-$2}
|
||||
}
|
||||
|
||||
get_ip_addr_used() {
|
||||
protocol=$1
|
||||
interface=$2
|
||||
|
||||
if [ "$protocol" = "IPv6" ]; then
|
||||
if [ -n "$interface" ]; then
|
||||
ip_addr_used=$(ifstatus "$interface" | jsonfilter -e '@["ipv6-address"][0].address')
|
||||
else
|
||||
ip_addr_used=$(ip -6 route | grep default | awk -F ' ' '{print $9}')
|
||||
fi
|
||||
else
|
||||
if [ -n "$interface" ]; then
|
||||
ip_addr_used=$(ifstatus "$interface" | jsonfilter -e '@["ipv4-address"][0].address')
|
||||
else
|
||||
ip_addr_used=$(ip route | grep default | awk -F ' ' '{print $9}')
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ${ip_addr_used}
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
# Author: IMEN Bhiri <imen.bhiri@pivasoftware.com>
|
||||
# Author: AMIN Ben Ramdhane <amin.benramdhane@pivasoftware.com>
|
||||
|
||||
. /usr/share/bbfdm/bbf_uci_api
|
||||
. /usr/share/bbfdm/bbf_api
|
||||
|
||||
CAPTURE_FILE="/tmp/download_dump"
|
||||
|
||||
|
|
@ -12,8 +12,11 @@ download_launch() {
|
|||
device=$2
|
||||
|
||||
[ "$url" = "" ] && { $UCI_SET_BBF_DMMAP dmmap_diagnostics.download.DiagnosticState=Error_InitConnectionFailed; $UCI_COMMIT_BBF_DMMAP; return; }
|
||||
interface=$(uci_get_bbf_dmmap dmmap_diagnostics.download.interface)
|
||||
protocol=$(uci_get_bbf_dmmap dmmap_diagnostics.download.ProtocolVersion Any)
|
||||
if [ "$protocol" = "IPv4" ]; then proto="--ipv4"; elif [ "$protocol" = "IPv6" ]; then proto="--ipv6"; else proto=""; fi
|
||||
ip_addr_used=$(get_ip_addr_used $protocol $interface)
|
||||
$UCI_SET_BBF_DMMAP dmmap_diagnostics.download.IPAddressUsed="$ip_addr_used"
|
||||
# Disable acceleration on Broadcom devices to capture all packets with tcpdump
|
||||
[ -e /usr/sbin/fcctl ] && { fcctl disable >/dev/null 2>&1; fcctl flush >/dev/null 2>&1; }
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
# Author: MOHAMED Kallel <mohamed.kallel@pivasoftware.com>
|
||||
# Author: AMIN Ben Ramdhane <amin.benramdhane@pivasoftware.com>
|
||||
|
||||
. /usr/share/bbfdm/bbf_uci_api
|
||||
. /usr/share/bbfdm/bbf_api
|
||||
|
||||
ipping_error()
|
||||
{
|
||||
|
|
@ -28,6 +28,8 @@ ipping_launch() {
|
|||
protocol=$(uci_get_bbf_dmmap dmmap_diagnostics.ipping.ProtocolVersion Any)
|
||||
[ -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
|
||||
ip_addr_used=$(get_ip_addr_used $protocol $interface)
|
||||
$UCI_SET_BBF_DMMAP dmmap_diagnostics.ipping.IPAddressUsed="$ip_addr_used"
|
||||
[ "$host" = "" ] && return
|
||||
timeout=$((timeout/1000))
|
||||
[ "$timeout" = "0" ] && timeout="1"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022 iopsys Software Solutions AB
|
||||
# Author: AMIN Ben Ramdhane <amin.benramdhane@pivasoftware.com>
|
||||
|
||||
. /usr/share/bbfdm/bbf_uci_api
|
||||
. /usr/share/bbfdm/bbf_api
|
||||
|
||||
LOG_FILE="/tmp/nslookup.log"
|
||||
|
||||
|
|
@ -16,7 +16,6 @@ nslookup_launch() {
|
|||
j=0
|
||||
success_count=0
|
||||
[ -e "${LOG_FILE}" ] && rm ${LOG_FILE}
|
||||
delete_all_results
|
||||
while [ $i -lt "$cnt" ]; do
|
||||
i=$((i+1))
|
||||
time1=$(date +%s)
|
||||
|
|
@ -46,7 +45,7 @@ nslookup_launch() {
|
|||
var=$(echo "$line" | tr -d '\t' | tr -d ' ' | grep "Name:" | awk -F':' '{print $2}')
|
||||
[ -n "$var" ] && { HostNameReturned=$var; status="Success"; AnswerType="Authoritative"; success_count=$((success_count+1)); continue; }
|
||||
|
||||
var=$(echo "$line" | grep "Address " | awk -F':' '{print substr($0, index($0,$2))}' | tr -d '\t' | tr -d ' ')
|
||||
var=$(echo "$line" | grep "Address: " | awk -F':' '{print substr($0, index($0,$2))}' | tr -d '\t' | tr -d ' ')
|
||||
[ -n "$var" ] && { [ -z "$address" ] && address="$var" || address="$address,$var"; continue; }
|
||||
|
||||
var=$(echo "$line" | tr -d '\t' | tr -d ' ' | grep "ResponseTime:" | awk -F':' '{print $2}')
|
||||
|
|
@ -74,15 +73,7 @@ nslookup_launch() {
|
|||
$UCI_COMMIT_BBF_DMMAP
|
||||
}
|
||||
|
||||
delete_all_results() {
|
||||
for j in $($UCI_SHOW_BBF_DMMAP dmmap_diagnostics | grep "dmmap_diagnostics.@NSLookupResult.*=NSLookupResult"); do
|
||||
$UCI_DELETE_BBF_DMMAP dmmap_diagnostics.@NSLookupResult[-1]
|
||||
done
|
||||
$UCI_COMMIT_BBF_DMMAP
|
||||
}
|
||||
|
||||
nslookup_stop_diagnostic() {
|
||||
delete_all_results
|
||||
pids=$(pgrep -f nslookup_launch)
|
||||
if [ -n "$pids" ]; then
|
||||
kill -9 "$pids" >/dev/null 2>&1
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022 iopsys Software Solutions AB
|
||||
# Author: AMIN Ben Ramdhane <amin.benramdhane@pivasoftware.com>
|
||||
|
||||
. /usr/share/bbfdm/bbf_uci_api
|
||||
. /usr/share/bbfdm/bbf_api
|
||||
|
||||
serverselection_launch() {
|
||||
hostlist=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.HostList)
|
||||
|
|
@ -13,6 +13,8 @@ serverselection_launch() {
|
|||
protoversion=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.ProtocolVersion Any)
|
||||
protocol=$(uci_get_bbf_dmmap dmmap_diagnostics.serverselection.Protocol ICMP)
|
||||
if [ "$protoversion" = "IPv4" ]; then proto="-4"; elif [ "$protoversion" = "IPv6" ]; then proto="-6"; else proto=""; fi
|
||||
ip_addr_used=$(get_ip_addr_used $protoversion $interface)
|
||||
$UCI_SET_BBF_DMMAP dmmap_diagnostics.serverselection.IPAddressUsed="$ip_addr_used"
|
||||
[ "$hostlist" = "" ] && return
|
||||
timeout=$((timeout/1000))
|
||||
[ "$timeout" = "0" ] && timeout="1"
|
||||
|
|
|
|||
|
|
@ -2,23 +2,24 @@
|
|||
# Copyright (C) 2022 iopsys Software Solutions AB
|
||||
# Author: AMIN Ben Ramdhane <amin.benramdhane@pivasoftware.com>
|
||||
|
||||
. /usr/share/bbfdm/bbf_uci_api
|
||||
. /usr/share/bbfdm/bbf_api
|
||||
|
||||
traceroute_launch() {
|
||||
host=$(uci_get_bbf_dmmap dmmap_diagnostics.traceroute.Host)
|
||||
cnt=$(uci_get_bbf_dmmap dmmap_diagnostics.traceroute.NumberOfTries 3)
|
||||
dsize=$(uci_get_bbf_dmmap dmmap_diagnostics.traceroute.DataBlockSize 38)
|
||||
dsize=$(uci_get_bbf_dmmap dmmap_diagnostics.traceroute.DataBlockSize 64)
|
||||
timeout=$(uci_get_bbf_dmmap dmmap_diagnostics.traceroute.Timeout 5000)
|
||||
maxhop=$(uci_get_bbf_dmmap dmmap_diagnostics.traceroute.MaxHops 30)
|
||||
interface=$(uci_get_bbf_dmmap dmmap_diagnostics.traceroute.interface)
|
||||
protocol=$(uci_get_bbf_dmmap dmmap_diagnostics.traceroute.ProtocolVersion Any)
|
||||
[ -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
|
||||
ip_addr_used=$(get_ip_addr_used $protocol $interface)
|
||||
$UCI_SET_BBF_DMMAP dmmap_diagnostics.traceroute.IPAddressUsed="$ip_addr_used"
|
||||
[ "$host" = "" ] && return
|
||||
timeout=$((timeout/1000))
|
||||
[ "$timeout" = "0" ] && timeout="1"
|
||||
i=-2
|
||||
delete_all_route_hops
|
||||
rm -f /tmp/traceres
|
||||
traceroute -m $maxhop -w $timeout -q $cnt $proto $device $host $dsize 2>&1 >/tmp/traceres
|
||||
while read _ host ip time _; do
|
||||
|
|
@ -41,15 +42,7 @@ traceroute_launch() {
|
|||
$UCI_COMMIT_BBF_DMMAP
|
||||
}
|
||||
|
||||
delete_all_route_hops() {
|
||||
for j in $($UCI_SHOW_BBF_DMMAP dmmap_diagnostics | grep "dmmap_diagnostics.@RouteHops.*=RouteHops"); do
|
||||
$UCI_DELETE_BBF_DMMAP dmmap_diagnostics.@RouteHops[-1]
|
||||
$UCI_COMMIT_BBF_DMMAP
|
||||
done
|
||||
}
|
||||
|
||||
traceroute_stop() {
|
||||
delete_all_route_hops
|
||||
pids=$(pgrep -f traceroute_launch)
|
||||
if [ -n "$pids" ]; then
|
||||
kill -9 "$pids" >/dev/null 2>&1
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022 iopsys Software Solutions AB
|
||||
# Author: AMIN Ben Ramdhane <amin.benramdhane@pivasoftware.com>
|
||||
|
||||
. /usr/share/bbfdm/bbf_uci_api
|
||||
. /usr/share/bbfdm/bbf_api
|
||||
|
||||
udpecho_error()
|
||||
{
|
||||
|
|
@ -27,6 +27,8 @@ udpecho_launch() {
|
|||
inter_time=$(uci_get_bbf_dmmap dmmap_diagnostics.udpechodiag.InterTransmissionTime 1000)
|
||||
[ -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
|
||||
ip_addr_used=$(get_ip_addr_used $protocol $interface)
|
||||
$UCI_SET_BBF_DMMAP dmmap_diagnostics.udpechodiag.IPAddressUsed="$ip_addr_used"
|
||||
tos=$((dscp<<2))
|
||||
inter_time=$((inter_time/1000))
|
||||
[ "$inter_time" = "0" ] && inter_time="1"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
# Author: IMEN Bhiri <imen.bhiri@pivasoftware.com>
|
||||
# Author: AMIN Ben Ramdhane <amin.benramdhane@pivasoftware.com>
|
||||
|
||||
. /usr/share/bbfdm/bbf_uci_api
|
||||
. /usr/share/bbfdm/bbf_api
|
||||
|
||||
CAPTURE_FILE="/tmp/upload_dump"
|
||||
|
||||
|
|
@ -13,8 +13,11 @@ upload_launch() {
|
|||
size=$3
|
||||
|
||||
[ "$url" = "" ] && { $UCI_SET_BBF_DMMAP dmmap_diagnostics.upload.DiagnosticState=Error_InitConnectionFailed; $UCI_COMMIT_BBF_DMMAP; return; }
|
||||
interface=$(uci_get_bbf_dmmap dmmap_diagnostics.upload.interface)
|
||||
protocol=$(uci_get_bbf_dmmap dmmap_diagnostics.upload.ProtocolVersion Any)
|
||||
if [ "$protocol" = "IPv4" ]; then proto="--ipv4"; elif [ "$protocol" = "IPv6" ]; then proto="--ipv6"; else proto=""; fi
|
||||
ip_addr_used=$(get_ip_addr_used $protocol $interface)
|
||||
$UCI_SET_BBF_DMMAP dmmap_diagnostics.upload.IPAddressUsed="$ip_addr_used"
|
||||
# Disable acceleration on Broadcom devices to capture all packets with tcpdump
|
||||
[ -e /usr/sbin/fcctl ] && { fcctl disable >/dev/null 2>&1; fcctl flush >/dev/null 2>&1; }
|
||||
|
||||
|
|
|
|||
|
|
@ -1176,14 +1176,22 @@ static void test_api_bbfdm_valid_standard_operate(void **state)
|
|||
assert_int_equal(fault, CMD_SUCCESS);
|
||||
|
||||
list_for_each_entry(n, &ctx->list_parameter, list) {
|
||||
if (DM_STRCMP(n->name, "SuccessCount") == 0) {
|
||||
if (DM_STRCMP(n->name, "Status") == 0) {
|
||||
assert_string_equal(n->data, "Complete");
|
||||
assert_string_equal(n->type, "xsd:string");
|
||||
} else if (DM_STRCMP(n->name, "IPAddressUsed") == 0) {
|
||||
assert_string_equal(n->data, "");
|
||||
assert_string_equal(n->type, "xsd:string");
|
||||
} else if (DM_STRCMP(n->name, "SuccessCount") == 0) {
|
||||
assert_string_equal(n->data, "1");
|
||||
assert_string_equal(n->type, "xsd:unsignedInt");
|
||||
} else if (DM_STRCMP(n->name, "FailureCount") == 0) {
|
||||
assert_string_equal(n->data, "0");
|
||||
assert_string_equal(n->type, "xsd:unsignedInt");
|
||||
} else {
|
||||
assert_string_not_equal(n->data, "0");
|
||||
assert_string_equal(n->type, "xsd:unsignedInt");
|
||||
}
|
||||
assert_string_equal(n->type, "xsd:unsignedInt");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue