{{docname|Network Performance Tests}}
{{appdate|1 December 2014}}
{{trname|TR-143a1}}
* Added multiple connections to DownloadDiagnostics and UploadDiagnostics
* Added time based testing to DownloadDiagnostics and UploadDiagnostics
* Added UDPEchoDiagnostics
* Added ServerSelectionDiagnostics
* Added IPv4 vs IPv6 selection to all tests.
Indicate the availability of diagnostic data. {{enum}}
If the ACS sets the value of this parameter to {{enum|Requested}}, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is {{enum|Requested}}. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the {{param}} to {{enum|Requested}}.
When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic.
When the test is completed, the value of this parameter MUST be either {{enum|Completed}} (if the test completed successfully), or one of the ''Error'' values listed above.
If the value of this parameter is anything other than {{enum|Completed}}, the values of the results parameters for this test are indeterminate.
When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code ''8 DIAGNOSTICS COMPLETE'' in the Inform message.
After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to {{enum|None}} and remove all object instances from {{object|PerConnectionResult}} and {{object|IncrementalResult}}.
Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to {{enum|None}} and remove all object instances from {{object|PerConnectionResult}} and {{object|IncrementalResult}}.
While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to {{enum|None}} and remove all object instances from {{object|PerConnectionResult}} and {{object|IncrementalResult}}.
While the test is in progress, setting this parameter to {{enum|Requested}} (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.
{{reference}} The IP-layer interface over which the test is to be performed. Example: Device.IP.Interface.1
If {{empty}} is specified, the CPE MUST use the interface as directed by its routing policy (''Forwarding'' table entries) to determine the appropriate interface.
Note: For time based tests ({{param|TimeBasedTestDuration}} > 0) the ACS MAY add a hint to duration of the test to the URL. See {{bibref|TR-143a1|Section 4.3}} for more details.
Controls time based testing {{bibref|TR-143a1|Section 4.3}}. When {{param}} > 0, {{param}} is the duration in {{units}} of a time based test. If {{param}} is 0, the test is not based on time, but on the size of the file to be downloaded. The default value SHOULD be 0.
The measurement interval duration in {{units}} for objects in {{object|IncrementalResult}} for a time based FTP/HTTP download test (when {{param|TimeBasedTestDuration}} > 0). The default value SHOULD be 0, which implies {{object|IncrementalResult}} collection is disabled.
For example if {{param|TimeBasedTestDuration}} is 90 seconds and {{param}} is 10 {{units}}, there will be 9 results in {{object|IncrementalResult}}, each with a 10 {{units}} duration.
This {{param}} works in conjunction with {{param|TimeBasedTestMeasurementInterval}} to allow the interval measurement to start a number of {{units}} after {{param|BOMTime}}. The test measurement interval in {{object|IncrementalResult}} starts at time {{param|BOMTime}} + {{param}} to allow for slow start window removal of file transfers.
This {{param}} is in {{units}}. The default value SHOULD be 0.
Indicates which IP address was used to send the request.
Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the client sends the GET command.
* For FTP this is the time at which the client sends the RTRV command.
If multiple connections are used, then {{param}} is set to the earliest {{param}} across all connections.
Begin of transmission time in UTC, which MUST be specified to microsecond precision
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the first data packet is received.
* For FTP this is the time at which the client receives the first data packet on the data connection.
If multiple connections are used, then {{param}} is set to the earliest {{param}} across all connections.
End of transmission in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the last data packet is received.
* For FTP this is the time at which the client receives the last packet on the data connection.
If multiple connections are used, then {{param}} is set to the latest {{param}} across all connections.
Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the TCP socket open (SYN) was sent for the HTTP connection.
* For FTP this is the time at which the TCP socket open (SYN) was sent for the data connection.
Note: Interval of 1 microsecond SHOULD be supported.
If multiple connections are used, then {{param}} is set to the latest {{param}} across all connections.
Response time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the TCP ACK to the socket opening the HTTP connection was received.
* For FTP this is the time at which the TCP ACK to the socket opening the data connection was received.
Note: Interval of 1 microsecond SHOULD be supported.
If multiple connections are used, then {{param}} is set to the latest {{param}} across all connections.
The number of {{units}} received during the FTP/HTTP transaction including FTP/HTTP headers, between {{param|BOMTime}} and {{param|EOMTime}} across all connections.
The total number of {{units}} (at the IP layer) received on the Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be calculated by sampling Stats.bytesReceived on the {{param|Interface}} object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
The total number of {{units}} (at the IP layer) sent on the Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be calculated by sampling Stats.bytesSent on the {{param|Interface}} object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
The number of {{units}} of the test file received between the latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest {{param|PerConnectionResult.{i}.EOMTime}} across all connections.
The total number of {{units}} (at the IP layer) received in between the latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest {{param|PerConnectionResult.{i}.EOMTime}}. This MAY be calculated by sampling Stats.bytesReceived on the {{param|Interface}} object at the latest {{param|PerConnectionResult.{i}.BOMTime}} and at the earliest {{param|PerConnectionResult.{i}.EOMTime}} and subtracting.
The total number of {{units}} (at the IP layer) sent between the latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest {{param|PerConnectionResult.{i}.EOMTime}}. This MAY be calculated by sampling Stats.bytesSent on the {{param|Interface}} object at the latest {{param|PerConnectionResult.{i}.BOMTime}} and at the earliest {{param|PerConnectionResult.{i}.EOMTime}} and subtracting.
The period of time in {{units}} between the latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest {{param|PerConnectionResult.{i}.EOMTime}} of the test.
{{numentries}}
The results must be returned in the {{object|PerConnectionResult}} table for every connection when set to {{true}}. The default value SHOULD be {{false}}.
{{numentries}}
Results for individual connections. This table is only populated when {{param|#.EnablePerConnectionResults}} is {{true}}. A new object is created for each connection specified in {{param|#.NumberOfConnections}}. Instance numbers MUST start at 1 and sequentially increment as new instances are created. All instances are removed when {{param|#.DiagnosticsState}} is set to {{enum|Requested|#.DiagnosticsState}} or {{enum|None|#.DiagnosticsState}}.
Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the client sends the GET command.
* For FTP this is the time at which the client sends the RTRV command.
Begin of transmission time in UTC, which MUST be specified to microsecond precision
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the first data packet is received.
* For FTP this is the time at which the client receives the first data packet on the data connection.
End of transmission in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the last data packet is received.
* For FTP this is the time at which the client receives the last packet on the data connection.
The number of {{units}} of the test file received during the FTP/HTTP transaction including FTP/HTTP headers, between {{param|BOMTime}} and {{param|EOMTime}}.
The total number of {{units}} (at the IP layer) received on the Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be calculated by sampling Stats.bytesReceived on the {{param|#.Interface}} object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
The total number of {{units}} (at the IP layer) sent on the Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be calculated by sampling Stats.bytesSent on the {{param|#.Interface}} object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the TCP socket open (SYN) was sent for the HTTP connection.
* For FTP this is the time at which the TCP socket open (SYN) was sent for the data connection.
Response time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the TCP ACK to the socket opening the HTTP connection was received.
* For FTP this is the time at which the TCP ACK to the socket opening the data connection was received.
Results for time segmented tests (tests where {{param|#.TimeBasedTestDuration}} > 0 and {{param|#.TimeBasedTestMeasurementInterval}} > 0). This data is totaled across all connections in the test. A new object is created every {{param|#.TimeBasedTestMeasurementInterval}} after that interval has completed. Instance numbers MUST start at 1 and sequentially increment as new instances are created. All instances are removed when {{param|#.DiagnosticsState}} is set to {{enum|Requested|#.DiagnosticsState}} or {{enum|None|#.DiagnosticsState}}.
Change in the value of {{param|#.TestBytesReceivedUnderFullLoading}} between {{param|StartTime}} and {{param|EndTime}}.
The total number of {{units}} (at the IP layer) received on the Interface between {{param|StartTime}} and {{param|EndTime}}. This MAY be calculated by sampling Stats.bytesReceived on the {{param|#.Interface}} object at {{param|StartTime}} and at {{param|EndTime}} and subtracting.
The total number of {{units}} (at the IP layer) sent on the Interface between {{param|StartTime}} and {{param|EndTime}}. This MAY be calculated by sampling Stats.bytesSent on the {{param|#.Interface}} object at {{param|StartTime}} and at {{param|EndTime}} and subtracting.
The start time of this interval which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
The end time of this interval which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
Indicates that Download Diagnostics over IPv4 is supported.
Indicates that Download Diagnostics over IPv6 is supported.
The number of connections to be used in the test. The default value SHOULD be 1. {{param}} MUST NOT be set to a value greater than {{param|DownloadDiagnosticMaxConnections}}.
Indicates the maximum number of connections that are supported by Download Diagnostics.
The maximum number of rows in {{object|IncrementalResult}} that the CPE will store.
Indicates the IP protocol version to be used. The default value SHOULD be {{enum|Any}}.
Use either IPv4 or IPv6 depending on the system preference.
Use IPv4 for the requests
Use IPv6 for the requests.
The number of connections to be used in the test. The default value SHOULD be 1. {{param}} MUST NOT be set to a value greater than {{param|.Capabilities.PerformanceDiagnostic.DownloadDiagnosticMaxConnections}}.
Indicate the availability of diagnostic data. {{enum}}
If the ACS sets the value of this parameter to {{enum|Requested}}, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is {{enum|Requested}}. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the {{param}} to {{enum|Requested}}.
When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic.
When the test is completed, the value of this parameter MUST be either {{enum|Completed}} (if the test completed successfully), or one of the ''Error'' values listed above.
If the value of this parameter is anything other than {{enum|Completed}}, the values of the results parameters for this test are indeterminate.
When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code ''8 DIAGNOSTICS COMPLETE'' in the Inform message.
After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to {{enum|None}} and remove all object instances from {{object||PerConnectionResult}} and {{object|IncrementalResult}}.
Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to {{enum|None}} and remove all object instances from {{object|PerConnectionResult}} and {{object|IncrementalResult}}.
While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to {{enum|None}} and remove all object instances from {{object|PerConnectionResult}} and {{object|IncrementalResult}}.
While the test is in progress, setting this parameter to {{enum|Requested}} (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.
{{reference}} The IP-layer interface over which the test is to be performed. Example: Device.IP.Interface.1
If {{empty}} is specified, the CPE MUST use the interface as directed by its routing policy (''Forwarding'' table entries) to determine the appropriate interface.
Controls time based testing {{bibref|TR-143a1|Section 4.3}}. When {{param}} > 0, {{param}} is the duration in {{units}} of a time based test. If {{param}} is 0, the test is not based on time, but on the size of the file to be uploaded. The default value SHOULD be 0.
The measurement interval duration in {{units}} for objects in {{object|IncrementalResult}} for a time based FTP/HTTP upload test (when {{param|TimeBasedTestDuration}} > 0). The default value SHOULD be 0, which implies {{object|IncrementalResult}} collection is disabled.
For example if {{param|TimeBasedTestDuration}} is 90 seconds and {{param}} is 10 {{units}}, there will be 9 results in {{object|IncrementalResult}}, each with a 10 {{units}} duration.
This {{param}} works in conjunction with {{param|TimeBasedTestMeasurementInterval}} and allows the interval measurement to start a number of {{units}} after {{param|BOMTime}}. The test measurement interval in {{object|IncrementalResult}} starts at time {{param|BOMTime}} + {{param}} to allow for slow start window removal of file transfers.
This {{param}} is in {{units}}. The default value SHOULD be 0.
Indicates which IP address was used to send the request.
Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the client sends the GET command.
* For FTP this is the time at which the client sends the RTRV command.
If multiple connections are used, then {{param}} is set to the earliest {{param}} across all connections.
Begin of transmission time in UTC, which MUST be specified to microsecond precision
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the first data packet is received.
* For FTP this is the time at which the client receives the first data packet on the data connection.
If multiple connections are used, then {{param}} is set to the earliest {{param}} across all connections.
End of transmission in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the last data packet is received.
* For FTP this is the time at which the client receives the last packet on the data connection.
If multiple connections are used, then {{param}} is set to the latest {{param}} across all connections.
Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the TCP socket open (SYN) was sent for the HTTP connection.
* For FTP this is the time at which the TCP socket open (SYN) was sent for the data connection.
Note: Interval of 1 microsecond SHOULD be supported.
If multiple connections are used, then {{param}} is set to the latest {{param}} across all connections.
Response time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the TCP ACK to the socket opening the HTTP connection was received.
* For FTP this is the time at which the TCP ACK to the socket opening the data connection was received.
Note: Interval of 1 microsecond SHOULD be supported.
If multiple connections are used, then {{param}} is set to the latest {{param}} across all connections.
The number of {{units}} of the test file sent during the FTP/HTTP transaction including FTP/HTTP headers, between {{param|BOMTime}} and {{param|EOMTime}} acrosss all connections.
The total number of {{units}} (at the IP layer) received on the Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be calculated by sampling Stats.bytesReceived on the {{param|Interface}} object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
The total number of {{units}} (at the IP layer) sent on the Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be calculated by sampling Stats.bytesSent on the {{param|Interface}} object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
The number of {{units}} of the test file sent between the latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest {{param|PerConnectionResult.{i}.EOMTime}} across all connections.
The total number of {{units}} (at the IP layer) received between the latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest {{param|PerConnectionResult.{i}.EOMTime}} across all connections in the test. This MAY be calculated by sampling Stats.bytesReceived on the {{param|Interface}} object at the latest {{param|PerConnectionResult.{i}.BOMTime}} and at the earliest {{param|PerConnectionResult.{i}.EOMTime}} and subtracting.
The total number of {{units}} (at the IP layer) sent between the latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest {{param|PerConnectionResult.{i}.EOMTime}} across all connections in the test. This MAY be calculated by sampling Stats.bytesSent on the {{param|Interface}} object at the latest {{param|PerConnectionResult.{i}.BOMTime}} and at the earliest {{param|PerConnectionResult.{i}.EOMTime}} and subtracting.
The period of time in {{units}} between the latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest {{param|PerConnectionResult.{i}.EOMTime}} of the test.
{{numentries}}
The results must be returned in the {{object|PerConnectionResult}} table for every connection when set to {{true}}. The default value SHOULD be {{false}}.
{{numentries}}
Results for individual connections. This table is only populated when {{param|#.EnablePerConnectionResults}} is {{true}}. A new object is created for each connection specified in {{param|#.NumberOfConnections}}. Instance numbers MUST start at 1 and sequentially increment as new instances are created. All instances are removed when {{param|#.DiagnosticsState}} is set to {{enum|Requested|#.DiagnosticsState}} or {{enum|None|#.DiagnosticsState}}.
Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the client sends the GET command.
* For FTP this is the time at which the client sends the RTRV command.
Begin of transmission time in UTC, which MUST be specified to microsecond precision
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the first data packet is received.
* For FTP this is the time at which the client receives the first data packet on the data connection.
End of transmission in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the last data packet is received.
* For FTP this is the time at which the client receives the last packet on the data connection.
The number of {{units}} of the test file sent during the FTP/HTTP transaction including FTP/HTTP headers, between {{param|BOMTime}} and {{param|EOMTime}}.
The total number of {{units}} (at the IP layer) received on the Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be calculated by sampling Stats.bytesReceived on the {{param|#.Interface}} object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
The total number of {{units}} (at the IP layer) sent on the Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be calculated by sampling Stats.bytesSent on the {{param|#.Interface}} object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
Request time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the TCP socket open (SYN) was sent for the HTTP connection.
* For FTP this is the time at which the TCP socket open (SYN) was sent for the data connection.
Response time in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
* For HTTP this is the time at which the TCP ACK to the socket opening the HTTP connection was received.
* For FTP this is the time at which the TCP ACK to the socket opening the data connection was received.
Results for time segmented tests (tests where {{param|#.TimeBasedTestDuration}} > 0 and {{param|#.TimeBasedTestMeasurementInterval}} > 0). This data is totaled across all connections in the test. A new object is created every {{param|#.TimeBasedTestMeasurementInterval}} after that interval has completed. Instance numbers MUST start at 1 and sequentially increment as new instances are created. All instances are removed when {{param|#.DiagnosticsState}} is set to {{enum|Requested|#.DiagnosticsState}} or {{enum|None|#.DiagnosticsState}}.
Change in the value of {{param|#.TestBytesSent}} between {{param|StartTime}} and {{param|EndTime}}.
The total number of {{units}} (at the IP layer) received on the Interface between {{param|StartTime}} and {{param|EndTime}}. This MAY be calculated by sampling Stats.bytesReceived on the {{param|#.Interface}} object at {{param|StartTime}} and at {{param|EndTime}} and subtracting.
The total number of {{units}} (at the IP layer) sent on the Interface between {{param|StartTime}} and {{param|EndTime}}. This MAY be calculated by sampling Stats.bytesSent on the {{param|#.Interface}} object at {{param|StartTime}} and at {{param|EndTime}} and subtracting.
The start time of this interval which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
The end time of this interval which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
Indicates that Upload Diagnostics over IPv4 is supported.
Indicates that Upload Diagnostics over IPv6 is supported.
Indicates the maximum number of connections that are supported by Upload Diagnostics.
The number of connections to be used in the test. The default value SHOULD be 1. {{param}} MUST NOT be set to a value greater than {{param|UploadDiagnosticsMaxConnections}}.
The maximum number of rows in {{object|IncrementalResult}} that the CPE will store.
Indicates the IP protocol version to be used. The default value SHOULD be {{enum|Any}}.
Use either IPv4 or IPv6 depending on the system preference.
Use IPv4 for the requests
Use IPv6 for the requests.
The number of connections to be used in the test. The default value SHOULD be 1. {{param}} MUST NOT be set to a value greater than {{param|.Capabilities.PerformanceDiagnostic.UploadDiagnosticsMaxConnections}}.
This object defines the diagnostics configuration for a UDP Echo test {{bibref|TR-143a1|Appendix A.1}} defined in {{bibref|RFC862}} or a UDP Echo Plus test defined in {{bibref|TR-143a1|Appendix A.1}}.
Indicate the availability of diagnostic data. {{enum}}
If the ACS sets the value of this parameter to {{enum|Requested}}, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is {{enum|Requested}}. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the {{param}} to {{enum|Requested}}.
When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic. When the test is completed, the value of this parameter MUST be either {{enum|Completed}} (if the test completed successfully), or one of the ''Error'' values listed above.
If the value of this parameter is anything other than {{enum|Completed}}, the values of the results parameters for this test are indeterminate.
When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code ''8 DIAGNOSTICS COMPLETE'' in the Inform message.
After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to {{enum|None}} and remove all object instances from {{object|IndividualPacketResult}}.
Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to {{enum|None}} and remove all object instances from {{object|IndividualPacketResult}}.
While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to {{enum|None}} and remove all object instances from {{object|IndividualPacketResult}}.
While the test is in progress, setting this parameter to {{enum|Requested}} (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.
{{reference|the IP-layer interface over which the test is to be performed|ignore}} Example: Device.IP.Interface.1
If {{empty}} is specified, the CPE MUST use the interface as directed by its routing policy (''Forwarding'' table entries) to determine the appropriate interface.
Host name or address of the host to perform tests to.
Port on the host to perform tests to.
Number of repetitions of the test to perform before reporting the results. The default value SHOULD be 1.
Timeout in {{units}} for the test. That is, the amount of time to wait for the return of a packet that was sent to the {{param|Host}}.
Size of the data block in {{units}} to be sent for each packet. The default value SHOULD be 24.
DiffServ codepoint to be used for the test packets. The default value SHOULD be zero.
The time in {{units}} between the {{param|NumberOfRepetitions}} of packets sent during a given test. The default value SHOULD be 1000.
Indicates which IP address was used to send the request.
Result parameter indicating the number of successful packets (those in which a successful response was received prior to the timeout) in the most recent test.
Result parameter indicating the number of failed packets (those in which a successful response was not received prior to the timeout) in the most recent test.
Result parameter indicating the average response time in {{units}} over all repetitions with successful responses of the most recent test. If there were no successful responses, this value MUST be zero.
Result parameter indicating the minimum response time in {{units}} over all repetitions with successful responses of the most recent test. If there were no successful responses, this value MUST be zero.
Result parameter indicating the maximum response time in {{units}} over all repetitions with successful responses of the most recent test. If there were no successful responses, this value MUST be zero.
The results must be returned in the {{object|IndividualPacketResult}} table for every repetition of the test when set to {{true}}. The default value SHOULD be {{false}}.
{{numentries}}
This object provides the results from individual UDPEchoPlus test packets collected during a test if {{param|#.EnableIndividualPacketResults}} is set to true. When {{param|#.DiagnosticsState}} is set to {{enum|Completed|#.DiagnosticsState}} it should contain {{param|#.NumberOfRepetitions}} objects. Instance numbers MUST start at 1 and sequentially increment as new instances are created. The instance number should match the TestIterationNumber field of the request and response packet. All instances are removed when {{param|#.DiagnosticsState}} is set to {{enum|Requested|#.DiagnosticsState}} or {{enum|None|#.DiagnosticsState}}.
Indicates that the response to this UDP Echo Plus packet sent was received by the client. When this value is {{true}}, then all the remaining parameters in this instance are valid. Otherwise only the values originally set by the CPE client (e.g. {{param|PacketSendTime}} and {{param|TestGenSN}}) MAY be set to valid values.
Time the client sent this UDP Echo Plus packet in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
Time the client receives the response packet in UTC, which MUST be specified to microsecond precision.
For example: 2008-04-09T15:01:05.123456Z
If this response is never received, {{param}} SHOULD be set to the Unknown Time value as specified in {{bibref|TR-106a7|Section 3.2.2}}.
The TestGenSN field in the UDPEcho Plus packet {{bibref|TR-143a1|Section A.1.4}} sent by the CPE client.
The TestRespSN field in the response packet {{bibref|TR-143a1|Section A.1.4}} from the UDP Echo Plus server (i.e. {{param|#.Host}}) for this Echo Plus packet sent by the CPE client. If {{param|PacketSuccess}} is {{false}}, {{param}} SHOULD be 0.
The TestRespRcvTimeStamp field in the response packet {{bibref|TR-143a1|Section A.1.4}} from the UDP Echo Plus server (i.e. {{param|#.Host}}) to record the reception time of this UDP Echo Plus packet sent from the CPE client. If {{param|PacketSuccess}} is {{false}}, {{param}} SHOULD be 0.
The TestRespReplyTimeStamp field in the response packet {{bibref|TR-143a1|Section A.1.4}} from the UDP Echo Plus server (i.e. {{param|#.Host}}) to record the server reply time of this UDP Echo Plus packet sent from the CPE client.
That is, the time that the server returned the UDP Echo Plus packet. If {{param|PacketSuccess}} is {{false}}, {{param}} SHOULD be 0.
The count value that was set by the UDP Echo Plus server (i.e. {{param|#.Host}}) to record the number of dropped echo response packets by the server. This count is incremented if a valid echo request packet is received at a UDP EchoPlus server but for some reason cannot be responded to (e.g. due to local buffer overflow, CPU utilization, etc...). If {{param|PacketSuccess}} is {{false}}, {{param}} SHOULD be 0.
Indicates that UDPEcho Diagnostics over IPv4 is supported.
Indicates that UDPEcho Diagnostics over IPv6 is supported.
The maximum number of rows in {{object|IndividualPacketResult}} that the CPE will store. If a test would create more rows than {{param}} only the first {{param}} rows are present in {{object|IndividualPacketResult}}.
Indicates the IP protocol version to be used. The default value SHOULD be {{enum|Any}}.
Use either IPv4 or IPv6 depending on the system preference.
Use IPv4 for the requests
Use IPv6 for the requests.
This object provides access to a diagnostics test that performs either an ICMP Ping or UDP Echo ping against multiple hosts determining which one has the smallest average response time. There MUST be a ping response to the transmitted ping, or timeout, before the next ping is sent out.
Indicates availability of diagnostic data. {{enum}}
If the ACS sets the value of this parameter to {{enum|Requested}}, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is {{enum|Requested}}. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the {{param}} to {{enum|Requested}}.
When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic.
When the test is completed, the value of this parameter MUST be either {{enum|Completed}} (if the test completed successfully), or one of the ''Error'' values listed above.
If the value of this parameter is anything other than {{enum|Completed}}, the values of the results parameters for this test are indeterminate.
When the diagnostic initiated by the ACS is completed (successfully or not), the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code ''8 DIAGNOSTICS COMPLETE'' in the Inform message.
After the diagnostic is complete, the value of all result parameters (all read-only parameters in this object) MUST be retained by the CPE until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to {{enum|None}}.
Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to {{enum|None}}.
While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to {{enum|None}}.
While the test is in progress, setting this parameter to {{enum|Requested}} (and possibly modifying other writable parameters in this object) MUST result in the test being terminated and then restarted using the current values of the test parameters.
{{reference|the IP-layer interface over which the test is to be performed|ignore}} Example: Device.IP.Interface.1
If {{empty}} is specified, the CPE MUST use the interface as directed by its routing policy (''Forwarding'' table entries) to determine the appropriate interface.
The protocol over which the test is to be performed.
Each entry is a Host name or address of a host to ping.
Number of repetitions of the ping test to perform for each {{param|HostList}} entry before reporting the results.
Timeout in {{units}} for each iteration of the ping test where the total number of iterations is the value of {{param|NumberOfRepetitions}} times the number of entities in the {{param|HostList}} Parameter.
Result parameter indicating the Host (one of the items within the {{param|HostList}} Parameter) with the smallest average response time.
Result parameter indicating the minimum response time in {{units}} over all repetitions with successful responses of the most recent ping test for the Host identified in {{param|FastestHost}}. Success is defined by the underlying protocol used. If there were no successful responses across all Hosts, this value MUST be zero.
Result parameter indicating the average response time in {{units}} over all repetitions with successful responses of the most recent ping test for the Host identified in {{param|FastestHost}}. Success is defined by the underlying protocol used. If there were no successful responses across all Hosts, this value MUST be zero.
Result parameter indicating the maximum response time in {{units}} over all repetitions with successful responses of the most recent ping test for the Host identified in {{param|FastestHost}}. Success is defined by the underlying protocol used. If there were no successful responses across all Hosts, this value MUST be zero.
Indicates which IP address was used to send the request to the host identified in {{param|FastestHost}}.
Indicates that ServerSelection Diagnostics over IPv4 is supported.
Indicates that ServerSelection Diagnostics over IPv6 is supported.
Indicates the IP protocol version to be used.
Use either IPv4 or IPv6 depending on the system preference.
Use IPv4 for the requests.
Use IPv6 for the requests.
Indicates the maximum number of connections that are supported by Download Diagnostics.
The maximum number of rows in {{object|.DownloadDiagnostics.IncrementalResult}} that the CPE will store.
Indicates the maximum number of connections that are supported by Upload Diagnostics.
The maximum number of rows in {{object|.UploadDiagnostics.IncrementalResult}} that the CPE will store.
The maximum number of rows in {{object|.UDPEchoDiagnostics.IndividualPacketResult}} that the CPE will store. If a test would create more rows than {{param}} only the first {{param}} rows are present in {{object|.UDPEchoDiagnostics.IndividualPacketResult}}.