The purpose of this test is to validate that the EUT properly handles an
Add message when the allow_partial
element is set to false, and all
required parameters to be set upon Object Creation succeed.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
If the EUT has a limit on the number of instances of the Subscription object, ensure that the number of existing Subscription object instances is less than the maximum supported.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'add1' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' required: true } } } } }
-
Allow the EUT to send an AddResp.
-
Record the instance identifier of the created object as reported by the EUT.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<instance identifier>.' } } }
-
Allow the EUT to send a GetResp.
-
Clean-up: Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.<instance identifier>.' } } }
-
Allow the EUT to send a DeleteResp.
-
The EUT sends an AddResp.
-
The AddResp contains a single CreatedObjectResult that has an OperationStatus that is an element of type OperationSuccess. The OperationSuccess contains no parameter errors and 3 elements in the unique key map: Alias, Recipient, and ID. Alternatively, the OperationSuccess contains 2 elements in the unique key map if the Alias parameter is not supported: Recipient, and ID.
-
The EUT creates the Subscription object.
-
The Subscription object's values match the values set in the
param_settings
element.
The purpose of this test is to validate that the EUT properly handles an
Add message when the allow_partial
element is set to true, and all
required parameters to be set upon Object Creation succeed.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
If the EUT has a limit on the number of instances of the Subscription object, ensure that the number of existing Subscription object instances is less than the maximum supported.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: true create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'add2' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' required: true } } } } }
-
Allow the EUT to send an AddResp.
-
Record the instance identifier of the created object as reported by the EUT.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<instance identifier>.' } } }
-
Allow the EUT to send a GetResp.
-
Clean-up: Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.<instance identifier>.' } } }
-
Allow the EUT to send a DeleteResp.
-
The EUT AddResp is valid.
-
The AddResp contains a single CreatedObjectResult that has an OperationStatus of OperationSuccess. The OperationSuccess contains no parameter errors and 3 elements in the unique key map: Alias, Recipient, and ID. Alternatively, the OperationSuccess contains 2 elements in the unique key map if the Alias parameter is not supported: Recipient, and ID.
-
The EUT creates the Subscription object.
-
The Subscription object's values match the values set in the
param_settings
element.
The purpose of this test is to validate that the EUT properly handles an
Add message when the allow_partial
element is set to false, and at
least one required parameter fails, and only a single object is set.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'InvalidValue' required: true } param_settings { param: 'ID' value: 'add3' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' } } } } }
-
Allow the EUT to send an Error message.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends an Error message.
-
The Error message contains an appropriate error code with the
param_errs
element containing a single error with aparam_path
that indicates the Enable parameter, and an appropriate error code. -
The EUT did not create a new Subscription object.
The purpose of this test is to validate that the EUT properly handles an
Add message when the allow_partial
element is set to false, and a
single invalid object is set.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.InvalidObject.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'add4' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' } } } } }
-
Allow the EUT to send an Error message.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends an Error message.
-
The Error message contains an appropriate error code with the
param_errs
element containing a single error with aparam_path
of 'Device.LocalAgent.InvalidObject.', and an appropriate error code. -
The EUT did not create a new Subscription object.
The purpose of this test is to validate that the EUT properly handles an
Add message when the allow_partial
element is set to false, multiple
objects are attempted, and all required parameters to be set upon Object
Creation succeed.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
If the EUT has a limit on the number of instances of the Subscription object, ensure that the number of existing Subscription object instances is less than the maximum supported.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'add51' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' required: true } } create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'add52' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.EndpointID' required: true } } } } }
-
Allow the EUT to send an AddResp.
-
Record the instance identifiers of the created objects as reported by the EUT.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<instance identifier 1>.' param_paths: 'Device.LocalAgent.Subscription.<instance identifier 2>.' } } }
-
Allow the EUT to send a GetResp.
-
Clean-up: Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.<instance identifier 1>.' obj_paths: 'Device.LocalAgent.Subscription.<instance identifier 2>.' } } }
-
Allow the EUT to send a DeleteResp.
-
The EUT AddResp is valid.
-
The AddResp contains two CreatedObjectResults that each have an OperationStatus of OperationSuccess. The OperationSuccess elements contains no parameter errors and 3 elements in the unique key map: Alias, Recipient, and ID. Alternatively, the OperationSuccess contains 2 elements in the unique key map if the Alias parameter is not supported: Recipient, and ID.
-
The EUT creates the Subscription objects.
-
The first Subscription object's values match the values set in the
param_settings
element. -
The second Subscription object's values match the values set in the
param_settings
element.
The purpose of this test is to validate that the EUT properly handles an
Add message when the allow_partial
element is set to false, multiple
objects are attempted, and one of the objects is invalid.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
If the EUT has a limit on the number of instances of the Subscription object, ensure that the number of existing Subscription object instances is less than the maximum supported.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'add61' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' required: true } } create_objs { obj_path: 'Device.LocalAgent.InvalidObject.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'add62' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.EndpointID' required: true } } } } }
-
Allow the EUT to send an Error.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends an Error message.
-
The Error message contains an appropriate error code with the
param_errs
element containing a single error with aparam_path
of 'Device.LocalAgent.InvalidObject.', and an appropriate error code. -
The EUT did not create a new Subscription object.
1.7 Add message with allow partial false, multiple objects, required parameters fail in single object
The purpose of this test is to validate that the EUT properly handles an
Add message when the allow_partial
element is set to false, and at
least one required parameter fails in one of multiple objects.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
If the EUT has a limit on the number of instances of the Subscription object, ensure that the number of existing Subscription object instances is less than the maximum supported.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'InvalidValue' required: true } param_settings { param: 'ID' value: 'add71' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' required: true } } create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'add72' } param_settings { param: 'NotifType' value: 'ValueChange' } } } } }
-
Allow the EUT to send an Error.
-
Send a Get message to the EUT with the request path of
Device.LocalAgent.Subscription.
.
-
The EUT sends an Error message.
-
The Error message contains an appropriate error code with the
param_errs
element containing a single error with aparam_path
that indicates the Enable parameter, and an appropriate error code. -
The GetResp from the EUT does not contain a Subscription instance with ID 'add71' or 'add72'.
The purpose of this test is to validate that the EUT properly handles an
Add message when the allow_partial
element is set to true, and at least
one required parameter fails (with an invalid value) in a single object.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: true create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'InvalidValue' required: true } param_settings { param: 'ID' value: 'add8' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' required: true } } } } }
-
Allow the EUT to send an AddResp.
-
Send a Get message to the EUT with the request path of 'Device.LocalAgent.Subscription.'.
-
The EUT sends an AddResp message.
-
The AddResp contains a single CreatedObjectResult that has an OperationStatus that is an element of type OperationFailure. The OperationFailure element contains an appropriate error code.
-
The GetResp from the EUT does not contain a Subscription instance with ID 'add8'.
The purpose of this test is to validate that the EUT properly handles an
Add message when the allow_partial
element is set to true, and at least
one required parameter fails in one of multiple objects.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
If the EUT has a limit on the number of instances of the Subscription object, ensure that the number of existing Subscription object instances is less than the maximum supported.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: true create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'add91' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' } } create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'add91' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' } param_settings { param: 'InvalidParameter' value: 'IrrelevantValue' required: true } } } } }
-
Allow the EUT to send an AddResp.
-
Record the instance identifier of the created object as reported by the EUT.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.' } } }
-
Allow the EUT to send a GetResp.
-
Clean-up: Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.<instance identifier>.' } } }
-
Allow the EUT to send a DeleteResp.
-
The EUT sends an AddResp message.
-
The AddResp contains two CreatedObjectResults.
a. One CreateObjectResult is an element of type OperationSuccess. The OperationSuccess element contains no parameter errors and 3 elements in the unique key map: Alias, Recipient, and ID. Alternatively, the OperationSuccess contains 2 elements in the unique key map if the Alias parameter is not supported: Recipient, and ID.
b. The other CreateObjectResult is an element of type OperationFailure. The OperationFailure element contains an appropriate error code.
-
The EUT creates the first Subscription object, and does not create the second Subscription object.
-
The Subscription object's values match the values set in the
param_settings
element.
The purpose of this test is to validate that the EUT properly handles an Add message when the Controller uses unique key addressing.
Conditional Mandatory (Product supports at least one nested multi-instance object)
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
If the EUT has a limit on the number of instances of the Subscription object, ensure that the number of existing Subscription object instances is less than the maximum supported.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Controller.[EndpointID=="< EndpointID>"&&Alias=="<Alias if supported>"].BootParameter.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ParameterName' value: 'Device.LocalAgent.SoftwareVersion' } } } } }
-
Allow the EUT to send an AddResp.
-
Record the instance identifier of the created object as reported by the EUT.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Controller.<instance identifier of Controller>.BootParameter.<instance identifier>.' } } }
-
Allow the EUT to send a GetResp.
-
Clean-up: Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Controller.<instance identifier of Controller>.BootParameter.<instance identifier>.' } } }
-
Allow the EUT to send a DeleteResp.
-
The EUT sends an AddResp.
-
The AddResp contains a single CreatedObjectResult that has an OperationStatus that is an element of type OperationSuccess. The OperationSuccess contains no parameter errors and 2 elements in the unique key map: Alias and ParameterName. Alternatively, the OperationSuccess contains one element in the unique key map if the Alias parameter is not supported: ParameterName.
-
The EUT creates the BootParameter object.
-
The BootParameter object's values match the values set in the
param_settings
element.
The purpose of this test is to validate that the EUT properly handles a
Set message when the allow_partial
element is set to false, and all
required parameters to be updated succeed.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and the instance identifier is known by the traffic generator.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Subscription.<instance identifier from test setup>.' param_settings { param: 'NotifRetry' value: '<Valid Value>' required: true } } } } }
-
Allow the EUT to send a SetResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<instance identifier from test setup>.NotifRetry' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a SetResp.
-
The SetResp contains a single UpdatedObjectResult that has an OperationStatus that is an element of type OperationSuccess. The OperationSuccess contains a single UpdateInstanceResult, with the
affected_path
equal to 'Device.LocalAgent.Subscription..', and a single entry in theupdated_params
map containing 'NotifRetry' as the key. -
The retrieved value matches the value set in the
param_settings
element.
The purpose of this test is to validate that the EUT properly handles a
Set message when the allow_partial
element is set to true, and all
required parameters to be updated succeed.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and the instance identifier is known by the traffic generator.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: true update_objs { obj_path: 'Device.LocalAgent.Subscription.<instance identifier from test setup>.' param_settings { param: 'NotifRetry' value: '<Valid Value>' required: true } } } } }
-
Allow the EUT to send a SetResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<instance identifier from test setup>.NotifRetry' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a SetResp.
-
The SetResp contains a single UpdatedObjectResult that has an OperationStatus that is an element of type OperationSuccess. The OperationSuccess contains a single UpdateInstanceResult, with the
affected_path
equal to 'Device.LocalAgent.Subscription..', and a single entry in theupdated_params
map containing 'NotifRetry' as the key. -
The retrieved value matches the value set in the
param_settings
element.
The purpose of this test is to validate that the EUT properly handles a
Set message when the allow_partial
element is set to false, and all
required parameters to be updated succeed.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT, and the instance identifiers are known by the traffic generator.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Subscription.<first instance identifier from test setup>.' param_settings { param: 'NotifRetry' value: '<Valid Value>' required: true } } update_objs { obj_path: 'Device.LocalAgent.Subscription.<second instance identifier from test setup>.' param_settings { param: 'NotifRetry' value: '<Valid Value>' required: true } } } } }
-
Allow the EUT to send a SetResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<first instance identifier from test setup>.NotifRetry' param_paths: 'Device.LocalAgent.Subscription.<second instance identifier from test setup>.NotifRetry' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a SetResp.
-
The SetResp contains two UpdatedObjectResults that each have an OperationStatus that is an element of type OperationSuccess. The OperationSuccess contains a single UpdateInstanceResult, with the affected_path equal to 'Device.LocalAgent.Subscription..', and a single entry in the
updated_params
map containing 'NotifRetry' as the key. -
The retrieved value matches the value set in the
param_settings
element for each object.
The purpose of this test is to validate that the EUT properly handles a
Set message when the allow_partial
element is set to false, and a
required parameter fails.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and the instance identifier is known by the traffic generator.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Subscription.<instance identifier from test setup>.' param_settings { param: 'InvalidParameter' value: 'IrrelevantValue' required: true } } } } }
-
Allow the EUT to send an Error.
-
Send a Get message to the EUT with a request path of 'Device.LocalAgent.Subscription..'.
-
The EUT sends an Error.
-
The Error contains an appropriate error code and a single ParamError element. The ParamError element contains a
param_path
of 'Device.LocalAgent.Subscription..InvalidParameter' and an appropriate error code. -
The GetResp contains a single Subscription instance that does not include a 'InvalidParameter' parameter.
1.15 Set message with allow partial false, multiple objects, required parameters fail in single object
The purpose of this test is to validate that the EUT properly handles a
Set message when the allow_partial
element is set to false, and
required parameters in one of multiple objects fail.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT, and the instance identifiers are known by the traffic generator.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Subscription.<first instance identifier from test setup>.' param_settings { param: 'NotifRetry' value: '<Valid Value>' required: true } } update_objs { obj_path: 'Device.LocalAgent.Subscription.<second instance identifier from test setup>.' param_settings { param: 'InvalidParameter' value: 'IrrelevantValue' required: true } } } } }
-
Allow the EUT to send an Error.
-
Send a Get message to the EUT with a requested path of
Device.LocalAgent.Subscription.
.
-
The EUT sends an Error.
-
The Error contains an appropriate error code and a single ParamError element. The ParamError element contains a
param_path
of 'Device.LocalAgent.Subscription..InvalidParameter' and an appropriate error code. -
The GetResp contains at least two Subscription instances, neither of which contain a
InvalidParameter
parameter and the first instance from the test setup does not have an updatedNotifRetry
value.
The purpose of this test is to validate that the EUT properly handles a
Set message when the allow_partial
element is set to true, and a
required parameter on one of multiple objects fails.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT, and the instance identifiers are known by the traffic generator.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: true update_objs { obj_path: 'Device.LocalAgent.Subscription.<first instance identifier from test setup>.' param_settings { param: 'NotifRetry' value: '<Valid Value>' required: true } } update_objs { obj_path: 'Device.LocalAgent.Subscription.<second instance identifier from test setup>.' param_settings { param: 'InvalidParameter' value: 'IrrelevantValue' required: true } } } } }
-
Allow the EUT to send a SetResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<first instance identifier from test setup>.NotifRetry' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a SetResp.
-
The SetResp contains two UpdatedObjectResults.
a. The first UpdatedObjectResult has an OperationStatus that is an element of type OperationSuccess. The OperationSuccess contains a single UpdatedInstanceResult, with the
affected_path
equal to 'Device.LocalAgent.Subscription..', and a single entry in theupdated_params
map containing 'NotifRetry' as the key.b. The second UpdatedObjectResult has an OperationStatus that is an element of type OperationFailure. The OperationFailure contains an appropriate error code and a single UpdatedInstanceFailure element. The UpdatedInstanceFailure has an
affected_path
with a value of 'Device.LocalAgent.Subscription..', and a single ParameterError element.c. The ParameterError has a
param
element with a value of 'InvalidParameter' and an appropriate error code. -
The retrieved value matches the value set in the
param_settings
element for the first object.
The purpose of this test is to validate that the EUT properly handles a
Set message when the allow_partial
element is set to true, and one of
multiple non-required parameters fail.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and the instance identifier is known by the traffic generator.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: true update_objs { obj_path: 'Device.LocalAgent.Subscription.<first instance identifier from test setup>.' param_settings { param: 'NotifRetry' value: '<Valid Value>' } param_settings { param: 'InvalidParameter' value: 'IrrelevantValue' } } } } }
-
Allow the EUT to send a SetResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<first instance identifier from test setup>.NotifRetry' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a SetResp.
-
The SetResp contains a single UpdatedObjectResult with an OperationStatus that is an element of type OperationSuccess. The OperationSuccess contains a single UpdatedInstanceResult element.
a. The UpdatedInstanceResult
affected_path
is equal to 'Device.LocalAgent.Subscription..'.b. The UpdatedInstanceResult has a single entry in the
updated_params
map containing 'NotifRetry' as the key.c. The UpdatedInstanceResult has a single ParameterError element, with the 'param' field set to 'InvalidParameter', and an appropriate error code.
-
The retrieved value of NotifRetry matches the value set in the
param_settings
element.
The purpose of this test is to validate that the EUT properly handles a Set message when the Controller uses unique key addressing.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and the unique keys and their values are known by the traffic generator.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Subscription.<unique key instance identifier from test setup>.' param_settings { param: 'NotifRetry' value: '<Valid Value>' required: true } } } } }
-
Allow the EUT to send a SetResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<instance identifier from test setup>.NotifRetry' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a SetResp.
-
The SetResp contains a single UpdatedObjectResult that has an OperationStatus that is an element of type OperationSuccess. The OperationSuccess contains a single UpdateInstanceResult, with the
affected_path
equal to 'Device.LocalAgent.Subscription..', and a single entry in theupdated_params
map containing 'NotifRetry' as the key. -
The retrieved value matches the value set in the
param_settings
element.
The purpose of this test is to validate that the EUT properly handles a Set message when the Controller uses a wildcard search path and the requested updates succeed.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Subscription.*.' param_settings { param: 'NotifRetry' value: '<Valid Value>' required: true } } } } }
-
Allow the EUT to send a SetResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<first instance identifier from test setup>.NotifRetry' param_paths: 'Device.LocalAgent.Subscription.<second instance identifier from test setup>.NotifRetry' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a SetResp.
-
The SetResp contains an UpdatedObjectResults element that has an OperationStatus that is an element of type OperationSuccess. The OperationSuccess contains at least two UpdateInstanceResults, each with the
affected_path
equal to 'Device.LocalAgent.Subscription..' of the respective instance, and a single entry in theupdated_params
map containing 'NotifRetry' as the key. -
The retrieved value matches the value set in the
param_settings
element for each object.
The purpose of this test is to validate that the EUT properly handles a
Set message when the Controller uses a wildcard search path,
allow_partial
element is set to false, and required parameters in multiple
objects fail.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Subscription.*.' param_settings { param: 'InvalidParameter' value: 'IrrelevantValue' required: true } } } } }
-
Allow the EUT to send a SetResp.
-
Send a Get message to the EUT with a requested path of
Device.LocalAgent.Subscription.
.
-
The EUT sends a SetResp.
-
The SetResp contains an UpdatedObjectResults element.
-
The UpdatedObjectResults has an OperationStatus that is an element of type OperationFailure. The OperationFailure contains an appropriate error code and at least one UpdatedInstanceFailure element. The UpdatedInstanceFailure has an affected_path with a value of ‘Device.LocalAgent.Subscription..’ for the respective failed instance, and a single ParameterError element. The ParameterError has a param element that indicates the InvalidParameter parameter, and an appropriate error code.
-
In the GetResp there are no Subscription instances with an 'InvalidParameter' parameter.
The purpose of this test is to validate that the EUT properly handles a
Set message when the Controller uses a wildcard search path, the
allow_partial
element is set to true, and a required parameter on
multiple objects fails.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: true update_objs { obj_path: 'Device.LocalAgent.Subscription.*.' param_settings { param: 'Enable' value: 'InvalidValue' required: true } } } } }
-
Allow the EUT to send a SetResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a SetResp.
-
The SetResp contains an UpdatedObjectResults element.
-
The UpdatedObjectResults has an OperationStatus that is an element of type OperationFailure. The OperationFailure contains an appropriate error code and at least one UpdatedInstanceFailure elements. The UpdatedInstanceFailure has an
affected_path
with a value of 'Device.LocalAgent.Subscription..' for the respective failed instance, and a single ParameterError element. The ParameterError has aparam
element that indicates the Enable parameter, and an appropriate error code. -
The EUT has no Subscription objects that have an Enable parameter set to 'InvalidValue'.
The purpose of this test is to validate that the EUT properly handles a Set message when the Controller uses a search path.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT with a value for the NotifExpiration that is greater than 0.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Subscription.[NotifExpiration>0].' param_settings { param: 'NotifRetry' value: '<Valid Value>' required: true } } } } }
-
Allow the EUT to send a SetResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<instance identifier from test setup>.NotifRetry' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a SetResp.
-
The SetResp contains at least one UpdatedObjectResult that has an OperationStatus that is an element of type OperationSuccess. The OperationSuccess contains a single UpdateInstanceResult, with the
affected_path
equal to 'Device.LocalAgent.Subscription..', and a single entry in theupdated_params
map containing 'NotifRetry' as the key. -
The retrieved value matches the value set in the
param_settings
element.
The purpose of this test is to validate that the EUT properly handles a
Set message when the requested path is a search path that does not match any objects, returning an empty oper_success
element.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: true update_objs { obj_path: 'Device.LocalAgent.Subscription.[Recipient=="InvalidValue"].' param_settings { param: 'NotifRetry' value: '<Valid Value>' required: true } } } } }
-
Allow the EUT to send a SetResp.
-
The EUT sends a SetResp.
-
The SetResp contains one UpdatedObjectResult with an empty
oper_success
element (i.e.oper_success {}
).
The purpose of this test is to validate that the EUT properly handles a
Delete message when the allow_partial
element is set to false, and the
object to be deleted is valid.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that a Subscription object exists on the EUT, and the instance identifier is known by the traffic generator.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.<instance identifier>.' } } }
-
Allow the EUT to send a DeleteResp.
-
Send a Get message to the EUT with a requested path of
Device.LocalAgent.Subscription.
.
-
The EUT sends a DeleteResp.
-
The DeleteResp contains a single
deleted_obj_response
with arequested_path
equal to 'Device.LocalAgent.Subscription..' and anoper_success
element, with oneaffected_path
element equal to the path name of the Deleted object. -
The GetResp does not contain the Subscription instance that was deleted.
The purpose of this test is to validate that the EUT properly handles a
Delete message when the allow_partial
element is set to false, and the
object instance to be deleted does not exist.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that the traffic generator has learned any existing Subscription objects and their instance identifiers.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.<non-existent instance identifier>.' } } }
-
Allow the EUT to send an DeleteResp.
- The EUT sends a DeleteResp containing an empty
oper_success
element.
The purpose of this test is to validate that the EUT properly handles a
Delete message when the allow_partial
element is set to false, and the
object to be deleted is invalid.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.InvalidObject.' } } }
-
Allow the EUT to send an Error message.
-
The EUT sends an Error message.
-
The Error contains an appropriate error code with the
param_errs
element containing a single error with aparam_path
of 'Device.LocalAgent.InvalidObject.', and an appropriate error code.
The purpose of this test is to validate that the EUT properly handles a
Delete message when the allow_partial
element is set to false, with
multiple valid objects.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT, and the instance identifiers are known by the traffic generator.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.<first instance identifier>.' obj_paths: 'Device.LocalAgent.Subscription.<second instance identifier>.' } } }
-
Allow the EUT to send a DeleteResp.
-
Send a Get message to the EUT with a requested path of
Device.LocalAgent.Subscription.
.
-
The EUT sends a DeleteResp.
-
The DeleteResp contains two
deleted_obj_results
, each with arequested_path
equal to theobj_paths
of the Delete message, and anoper_success
element containing anaffected_path
element equal to the path name of the deleted object. -
The GetResp does not contain the deleted Subscription objects.
The purpose of this test is to validate that the EUT properly handles a
Delete message when the allow_partial
element is set to false, and one
of the objects to be deleted is invalid.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and the instance identifier is known by the traffic generator.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.<instance identifier.>' obj_paths: 'Device.LocalAgent.InvalidObject.' } } }
-
Allow the EUT to send an Error message.
-
Send a Get message to the EUT with a request path of
Device.LocalAgent.Subscription.
.
-
The EUT sends an Error message.
-
The Error contains an appropriate error code with the
param_errs
element containing a single error with aparam_path
of 'Device.LocalAgent.InvalidObject.', and an appropriate error code. -
The GetResp contains the Subscription that was not deleted by step 1.
The purpose of this test is to validate that the EUT properly handles a
Delete message when the allow_partial
element is set to true, and the
object instance to be deleted does not exist.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: true obj_paths: 'Device.LocalAgent.Subscription.<invalid instance identifier>.' } } }
-
Allow the EUT to send a DeleteResp.
- The EUT sends a DeleteResp containing an empty
oper_success
element (i.e.,oper_success{}
).
The purpose of this test is to validate that the EUT properly handles a
Delete message when the allow_partial
element is set to true, and the
object is not valid in the Agent's supported data model.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: true obj_paths: 'Device.LocalAgent.InvalidObject.' } } }
-
Allow the EUT to send a DeleteResp.
-
The EUT sends a DeleteResp.
-
The DeleteResp contains a single
deleted_obj_result
message with arequested_path
of 'Device.LocalAgent.InvalidObject.' and anoper_failure
element, with an appropriate error code.
The purpose of this test is to validate that the EUT properly handles a
Delete message when the allow_partial
element is set to true, and one
of multiple objects is invalid.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and the instance identifier is known by the traffic generator.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: true obj_paths: 'Device.LocalAgent.Subscription.<instance identifier>.' obj_paths: 'Device.LocalAgent.InvalidObject.' } } }
-
Allow the EUT to send a DeleteResp.
-
Send a Get message to the EUT with a requested path of
Device.LocalAgent.Subscription.
.
-
The EUT sends a DeleteResp.
-
The DeleteResp contains two
deleted_obj_results
elements, one with anoper_success
element, containing anaffected_path
element with the value 'Device.LocalAgent.Subscription..', and the other with anoper_failure
element containing an appropriate error code. -
The GetResp does not contain the Subscription instance deleted in step 1.
The purpose of this test is to validate that the EUT properly handles a
Delete message when the allow_partial
element is set to true, and one
of multiple objects does not exist in the Agent's instantiated data
model.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and the instance identifier is known by the traffic generator.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: true obj_paths: 'Device.LocalAgent.Subscription.<instance identifier>.' obj_paths: 'Device.LocalAgent.Subscription.<invalid instance identifier>.' } } }
-
Allow the EUT to send a DeleteResp.
-
Send a Get message to the EUT with a requested path of
Device.LocalAgent.Subscription.
.
-
The EUT sends a DeleteResp.
-
The DeleteResp contains two deleted_obj_results elements. One contains an
oper_success
element with anaffected_path
element listing 'Device.LocalAgent.Subscription..'. The second contains an emptyoper_success
element (i.e.,oper_success{}
). -
The GetResp does not contain the Subscription instance deleted in step 1.
The purpose of this test is to validate that the EUT properly handles a Delete message when the Controller uses unique key addressing.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Obtain the unique key values of the Device.LocalAgent. object that correlates with the source of the test USP messages.
-
Ensure that at least one Device.LocalAgent.Controller.{i}.BootParameter. object exists on the EUT, and the instance identifier of the object is known by the traffic generator.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Controller.[EndpointID=="< EndpointID>"&&Alias=="<Alias if supported>"].BootParameter.<instance identifier>.' } } }
-
Allow the EUT to send a DeleteResp.
-
Send a Get message to the EUT with a requested path of
Device.LocalAgent.Controller.<instance ID>.BootParameter.
-
The EUT sends a DeleteResp.
-
The DeleteResp contains a single
deleted_obj_result
with a requested path equal to the path specified in theobj_path
of the Delete message, containing anoper_success
element, with oneaffected_path
element equal to the path name of the Deleted object. -
The
affected_path
element uses instance number addressing. -
The GetResp does not contain the BootParameter deleted in step 1.
The purpose of this test is to validate that the EUT properly handles a Delete message when the Controller uses a wildcard search to delete multiple valid objects.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.*.' } } }
-
Allow the EUT to send a DeleteResp.
-
Send a Get message to the EUT with a requested path of
Device.LocalAgent.Subscription.
-
The EUT sends a DeleteResp.
-
The DeleteResp contains a single
deleted_obj_result
with a requested path equal to 'Device.LocalAgent.Subscription.*.' and anoper_success
element with one or moreaffected_path
elements equal to the path names of the Deleted objects. -
The GetResp does not contain any of the Subscription instances deleted in step 1.
The purpose of this test is to validate that the EUT properly handles a Delete message when the Controller uses a search expression to delete one or more valid objects.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that the instance identifier of the Controller object that represents the traffic generator is known by the traffic generator.
-
Ensure that at least two Device.LocalAgent.Controller..BootParameter. objects exist on the EUT. At least one of these BootParameter objects has a value of 'false' for its 'Enable' parameter, and at least one of these BootParameter objects has a value of 'true' for its 'Enable' parameter.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Controller.<instance identifier>.BootParameter.[Enable==true].' } } }
-
Allow the EUT to send a DeleteResp.
-
Send a Get message to the EUT with a requested path of
Device.LocalAgent.Controller.<instance ID>.BootParameter.
.
-
The EUT sends a DeleteResp.
-
The DeleteResp contains a single
deleted_obj_results
element, with arequested_path
equal to 'Device.LocalAgent.Controller..BootParameter.[Enable==true]' and anoper_success
element with theaffected_path
elements equal to the path names of the successfully Deleted objects. -
The BootParameter whose Enable parameter was equal to 'false' was not deleted.
-
The GetResp does not contain any BootParameter instances where
Enable==true
.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when a single full parameter path is specified.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.EndpointID' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Thereq_path_results
has no errors, arequested_path
equal to 'Device.LocalAgent.EndpointID', and contains a singleresolved_path_results
element. Theresolved_path_results
element contains aresolved_path
equal to 'Device.LocalAgent.' and a singleresult_params
element with a key of 'EndpointID' and a value equal to the EUT's EndpointID.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when multiple full parameter paths are specified within the same object.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.EndpointID' param_paths: 'Device.LocalAgent.SoftwareVersion' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains two
req_path_results
elements. Therequested_path_results
have no errors. Each contains a singleresolved_path_results
element. Oneresolved_path_result
element contains arequested_path
equal to 'Device.LocalAgent.EndpointID', a singleresolved_path
equal to 'Device.LocalAgent.', and a singleresult_params
element with a key of 'EndpointID' and a value equal to the EUT EndpointID. The otherresolved_path_result
element contains arequested_path
equal to 'Device.LocalAgent.SoftwareVersion', a singleresolved_path
equal to 'Device.LocalAgent.', and a singleresult_params
element with a key of 'SoftwareVersion' with a valid value.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when multiple full parameter paths are specified within multiple objects.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and its instance identifier is known by the traffic generator.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.EndpointID' param_paths: 'Device.LocalAgent.Subscription.<instance identifier>.Enable' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains two
req_path_results
elements. Therequested_path_results
have no errors. Each contains a singleresolved_path_results
element. Oneresolved_path_result
element contains arequested_path
equal to 'Device.LocalAgent.EndpointID', a singleresolved_path
equal to 'Device.LocalAgent.', and a singleresult_params
element with a key of 'EndpointID' and a value equal to the EUT EndpointID. The otherresolved_path_result
element contains arequested_path
equal to 'Device.LocalAgent.Subscription..Enable', a singleresolved_path
equal to 'Device.LocalAgent.Subscription..', and a singleresult_params
element with a key of 'Enable' with a valid value.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when an object path is specified.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.', and a set ofresolved_path_results
elements. One contains aresolved_path
of 'Device.LocalAgent.', and a number ofresult_params
elements contain keys and values of the parameters of 'Device.LocalAgent.'. Additionalresolved_path_results
exist for each of the sub-objects of Device.LocalAgent., withresult_params
containing the keys and values of each sub-object's parameters. -
The keys of all
result_params
elements are relative paths.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when a path to an object instance is specified.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and its instance identifier is known by the traffic generator.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<instance identifier>.' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.Subscription..', and a singleresolved_path_results
element, with aresolved_path
of 'Device.LocalAgent.Subscription..', and a series ofresult_params
elements containing the keys and values of the parameters of the instance. -
The keys of all
result_params
elements are relative paths.
The purpose of this test is to ensure the Agent can properly handle a Get message when a single invalid parameter is requested.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.InvalidParameter' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
has arequested_path
equal to 'Device.LocalAgent.InvalidParameter', and an appropriate error code.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when both a valid and invalid parameter are requested.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.EndpointID' param_paths: 'Device.LocalAgent.InvalidParameter' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains two
req_path_results
elements. Onerequested_path_results
has no errors, and contains a singleresolved_path_results
element. Theresolved_path_results
element contains arequested_path
equal to 'Device.LocalAgent.EndpointID', a singleresolved_path
equal to 'Device.LocalAgent.', and a singleresult_params
element with a key of 'EndpointID' and a value equal to the EUT EndpointID. The otherrequested_path_results
has arequested_path
equal to 'Device.LocalAgent.InvalidParameter', and an appropriate error code.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when the requested path uses unique key addressing.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and the unique keys and their values are known by the traffic generator.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.<unique key identifier>.Enable' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.Subscription..Enable', and a singleresolved_path_results
element, with aresolved_path
of 'Device.LocalAgent.Subscription..', and a result_params element containing a key of 'Enable' and a valid value.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when the requested path uses a wildcard to retrieve a single parameter from multiple objects.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.*.Enable' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.Subscription.*.Enable', and at least tworesolved_path_results
elements, each with aresolved_path
of 'Device.LocalAgent.Subscription..', and aresult_params
element containing a key of 'Enable' and a valid value.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when the requested path uses a wildcard to retrieve all parameters from multiple object instances.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.*.' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.Subscription.*.', and a set ofresolved_path_results
elements. Each contains aresolved_path
of 'Device.LocalAgent.Subscription..', and a number ofresult_params
elements containing keys and values of the parameters of each Subscription object. -
The keys of all
result_params
elements are relative paths.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when the requested path uses a search path to retrieve objects that that parameters that match a particular value.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT. At least one of these Subscription objects should have a value of 'true' for its Enable parameter, and at least one should have a value of 'false' for its Enable parameter.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.[Enable==true].' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.Subscription.[Enable==true].', and a set ofresolved_path_results
elements. Each contains aresolved_path
of 'Device.LocalAgent.Subscription..', and a number ofresult_params
elements containing keys and values of the parameters of each Subscription object where the Enable parameter is 'true'. -
The keys of all
result_params
elements are relative paths. -
The EUT does not return any parameters from Subscription objects whose Enable parameter is 'false'.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when the requested path uses a search path that does not match a particular value.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT. At least one of these Subscription objects should have a value of 'true' for its Enable parameter, and at least one should have a value of 'false' for its Enable parameter.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.[Enable!=true].' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.Subscription.[Enable!=true].', and a set ofresolved_path_results
elements. Each contains aresolved_path
of 'Device.LocalAgent.Subscription..', and a number ofresult_params
elements containing keys and values of the parameters of each subscription object where the Enable parameter is 'false'. -
The keys of all
result_params
elements are relative paths. -
The EUT does not return any parameters from Subscription objects whose Enable parameter is 'true'.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when the requested path uses a search path to retrieve objects that that parameters that are greater than a particular value.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT. At least one of these Subscription objects should have a value of '10' for its NotifExpiration parameter, and at least one with a value of '20' for its NotifExpiration parameter.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.[NotifExpiration>10].' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.Subscription.[NotifExpiration>10].', and a set ofresolved_path_results
elements. Each contains aresolved_path
of 'Device.LocalAgent.Subscription..', and a number ofresult_params
elements containing keys and values of the parameters of each Subscription object where the NotifExpiration parameter is greater than 10. -
The keys of all
result_params
elements are relative paths. -
The EUT does not return any parameters from Subscription objects whose NotifExpiration parameter is equal to or less than 10.
The purpose of this test is to ensure the Controller can retrieve the values of parameters in the Agent's Instantiated Data Model when the requested path uses a search path to retrieve objects that that parameters that are less than a particular value.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least two Subscription objects exist on the EUT. At least one of these Subscription objects should have a value of '10' for its NotifExpiration parameter, and at least one with a value of '5' for its NotifExpiration parameter.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.[NotifExpiration<10].' } } }
2. Allow the EUT to send a GetResp.
### Test Metrics
1. The EUT sends a GetResp.
2. The GetResp contains a single `req_path_results` element. The `requested_path_results` has no errors, has a `requested_path` equal to 'Device.LocalAgent.Subscription.[NotifExpiration<10].', and a set of `resolved_path_results` elements. Each contains a `resolved_path` of 'Device.LocalAgent.Subscription.<instance identifier>.', and a number of `result_params` elements contain keys and values of the parameters of each Subscription object where the NotifExpiration parameter is less than 10.
3. The keys of all `result_params` elements are relative paths.
4. The EUT does not return any parameters from Subscription
objects whose NotifExpiration parameter is equal to or greater than 10.
## 1.50 Get message using search expression search path (inclusive greater comparison)
### Purpose
The purpose of this test is to ensure the Controller can retrieve the
values of parameters in the Agent's Instantiated Data Model when the
requested path uses a search path to retrieve objects that that
parameters that are greater than or equal to a particular value.
### Functionality Tag
Mandatory
### Test Setup
1. Ensure that the EUT and test equipment have the necessary
information to send and receive USP Records to each other.
2. Ensure that at least three Subscription objects exist on the
EUT. At least one of these Subscription objects should have a value of
'10' for its NotifExpiration parameter, at least one with a value of
'20' for its NotifExpiration parameter, and at least one with a value of '5'
for its NotifExpiration parameter.
### Test Procedure
1. Send a Get message to the EUT with the following structure:
```{filter=pbv type=Msg}
header {
msg_id: '<msg_id>'
msg_type: GET
}
body {
request {
get {
param_paths: 'Device.LocalAgent.Subscription.[NotifExpiration>=10].'
}
}
}
```
2. Allow the EUT to send a GetResp.
### Test Metrics
1. The EUT sends a GetResp.
2. The GetResp contains a single `req_path_results` element.
The `requested_path_results` has no errors, has a `requested_path` equal
to 'Device.LocalAgent.Subscription.[NotifExpiration>=10].', and a
set of `resolved_path_results` elements. Each contains a
`resolved_path` of 'Device.LocalAgent.Subscription.<instance identifier>.',
and a number of `result_params` elements containing keys and values of the
parameters of each Subscription object where the NotifExpiration parameter is
greater than or equal to 10.
3. The keys of all `result_params` elements are relative paths.
4. The EUT does not return any parameters from Subscription
objects whose NotifExpiration parameter is less than 10.
## 1.51 Get message using search expression search path (inclusive lesser comparison)
### Purpose
The purpose of this test is to ensure the Controller can retrieve the
values of parameters in the Agent's Instantiated Data Model when the
requested path uses a search path to retrieve objects that that
parameters that are less than or equal to a particular value.
### Functionality Tag
Mandatory
### Test Setup
1. Ensure that the EUT and test equipment have the necessary
information to send and receive USP Records to each other.
2. Ensure that at least three Subscription objects exist on the
EUT. At least one of these Subscription objects should have a value of
'10' for its NotifExpiration parameter, at least one with a value of
'20' for its NotifExpiration parameter, and at least one with a value of '5'
for its NotifExpiration parameter.
### Test Procedure
1. Send a Get message to the EUT with the following structure:
```{filter=pbv type=Msg}
header {
msg_id: '<msg_id>'
msg_type: GET
}
body {
request {
get {
param_paths: 'Device.LocalAgent.Subscription.[NotifExpiration<=10].'
}
}
}
- Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.Subscription.[NotifExpiration<=10].', and a set ofresolved_path_results
elements. Each contains aresolved_path
of 'Device.LocalAgent.Subscription..', and a number ofresult_params
elements containing keys and values of the parameters of each Subscription object where the NotifExpiration parameter is less than or equal to 10. -
The keys of all
result_params
elements are relative paths. -
The EUT does not return any parameters from Subscription objects whose NotifExpiration parameter is greater than 10.
The purpose of this test is to ensure that the Agent will create Subscriptions requested by the Controller, and notifies the Controller when the conditions of the subscription are triggered. This test uses the ValueChange event to exercise these functions, validating the behavior of ValueChange in the process.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that the traffic generator has learned the instance identifier of the Device.LocalAgent.Controller. object that represents the Controller simulated by the traffic generator.
-
Set the Device.LocalAgent.Controller..ProvisioningCode to an arbitrary value that is not 'TestValue52'.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'notify52' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.Controller.<instance identifier>.ProvisioningCode' required: true } param_settings { param: 'NotifRetry' value: 'true' } } } } }
-
Allow the EUT to send an AddResp
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Controller.<instance identifier>.' param_settings { param: 'ProvisioningCode' value: 'TestValue52' required: true } } } } }
-
Allow the EUT to send a Notify message.
-
Send a NotifyResp to the EUT.
-
The EUT sends a successful AddResp.
-
The EUT sends a Notify message with a
subscription_id
field equal to 'Notify52', and an event element ofvalue_change
with aparam_path
of 'Device.LocalAgent.Controller..ProvisioningCode' and aparam_value
of 'TestValue52'.
The purpose of this test is to ensure that the Agent will remove and terminate a Subscription when the Controller uses the Delete message.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that the traffic generator has learned the instance identifier of the Device.LocalAgent.Controller. object that represents the Controller simulated by the traffic generator.
-
Set the Device.LocalAgent.Controller..ProvisioningCode to an arbitrary value that is not 'TestValue53'.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'notify53' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.Controller.<instance identifier>.ProvisioningCode' required: true } param_settings { param: 'NotifRetry' value: 'true' } } } } }
-
Allow the EUT to send an AddResp, and store the instance identifier of the Subscription object.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Controller.<instance identifier>.' param_settings { param: 'ProvisioningCode' value: 'TestValue53' required: true } } } } }
-
Allow the EUT to send a Notify message.
-
Send a NotifyResp to the EUT.
-
Send a Delete message with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.<instance identifier>.' } } }
-
Allow the EUT to send a DeleteResp.
-
Repeat step 3, changing the value of ProvisioningCode to 'notify53-2'.
-
Wait 20 seconds.
-
The EUT sends a successful DeleteResp.
-
The EUT does not send a Notify message based on the activity in the ProvisioningCode parameter.
The purpose of this test is to ensure that the Agent will attempt to resend Notify messages when the NotifRetry parameter in a Subscription object is set to true and the Controller does not send a NotifyResp.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that the traffic generator has learned the instance identifier of the Device.LocalAgent.Controller. object that represents the Controller simulated by the traffic generator.
-
Set the Device.LocalAgent.Controller..ProvisioningCode to an arbitrary value that is not 'TestValue54'.
-
Ensure that the Device.LocalAgent.Controller..USPNotifRetryMinimumWaitInterval is set to its default value (5).
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'notify54' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.Controller.<instance identifier>.ProvisioningCode' required: true } param_settings { param: 'NotifRetry' value: 'true' } } } } }
-
Allow the EUT to send an AddResp
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Controller.<instance identifier>.' param_settings { param: 'ProvisioningCode' value: 'TestValue54' required: true } } } } }
-
Allow the EUT to send a Notify message.
-
Do not send a NotifyResp to the EUT.
-
Wait 10 seconds to allow the EUT to send a Notify message.
-
Do not send a NotifyResp to the EUT.
-
Wait 20 seconds to allow the EUT to send a Notify message.
-
Send a NotifyResp to the EUT.
-
The EUT retries the Notify message.
-
The first retry occurs within 5-10 seconds. The second retry occurs within 10-20 seconds.
The purpose of this test is to ensure that the Agent removes a Subscription from the Subscription table after its TimeToLive has expired.
Conditionally Mandatory (Supports TimeToLive in Device.LocalAgent.Subscription.)
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that the traffic generator has learned the instance identifier of the Device.LocalAgent.Controller. object that represents the Controller simulated by the traffic generator.
-
Set the Device.LocalAgent.Controller..ProvisioningCode to an arbitrary value that is not 'TestValue55'.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'notify55' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.Controller.<instance identifier>.ProvisioningCode' required: true } param_settings { param: 'NotifRetry' value: 'true' } param_settings { param: 'TimeToLive' value: '20' } } } } }
-
Allow the EUT to send an AddResp
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Controller.<instance identifier>.' param_settings { param: 'ProvisioningCode' value: 'TestValue55' required: true } } } } }
-
Allow the EUT to send a Notify message.
-
Send a NotifyResp to the EUT.
-
Wait 20 seconds.
-
Send a GetInstances message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET_INSTANCES } body { request { get_instances { obj_paths: 'Device.LocalAgent.Subscription.' } } }
-
Allow the EUT to send a GetInstancesResponse.
-
Repeat step 3 with a value of 'TestValue55-2'.
-
Wait 10 seconds.
-
The EUT sends a Notify message after step 3.
-
The GetInstancesResponse does not list the instance of the Subscription object created in step 1.
-
The EUT does not send a Notify message after step 9.
The purpose of this test is to ensure that the Agent will cease attempts to retry Notify messages after an amount of time specified in value of the NotifExpiration parameter in the Subscription object has passed.
Conditional Mandatory (supports Subscription.{i}.NotifExpiration parameter).
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that the traffic generator has learned the instance identifier of the Device.LocalAgent.Controller. object that represents the Controller simulated by the traffic generator.
-
Set the Device.LocalAgent.Controller..ProvisioningCode to an arbitrary value that is not 'TestValue56'.
-
Ensure that the Device.LocalAgent.Controller..USPNotifRetryMinimumWaitInterval is set to its default value (5).
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'notify56' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.Controller.<instance identifier>.ProvisioningCode' required: true } param_settings { param: 'NotifRetry' value: 'true' } param_settings { param: 'NotifExpiration' value: '20' } } } } }
-
Allow the EUT to send an AddResp
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Controller.<instance identifier>.' param_settings { param: 'ProvisioningCode' value: 'TestValue56' required: true } } } } }
-
Allow the EUT to send a Notify message.
-
Do not send a NotifyResp to the EUT.
-
Wait 10 seconds to allow the EUT to send a Notify message.
-
Do not send a NotifyResp to the EUT.
-
Wait 20 seconds to allow the EUT to send a Notify message.
-
Do not send a Notify Response to the EUT.
-
Wait 30 seconds.
-
The EUT retries the Notify message within 20 seconds.
-
The EUT does not retry the Notify message after 20 seconds.
The purpose of this test is to ensure that the Agent will send a Notify message to the Controller when the Controller is Subscribed to the ObjectCreation event.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'notify57' } param_settings { param: 'NotifType' value: 'ObjectCreation' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.Subscription.' required: true } param_settings { param: 'NotifRetry' value: 'true' } } } } }
-
Allow the EUT to send an AddResp
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'notify57-2' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.Controller.<instance identifier>.ProvisioningCode' required: true } param_settings { param: 'NotifRetry' value: 'true' } } } } }
-
Allow the EUT to send an AddResp
-
Allow the EUT to send a Notify message.
-
Send a NotifyResp to the EUT.
-
The EUT sends a successful AddResp.
-
The EUT sends a Notify message with a
subscription_id
field equal to 'Notify57', and an event element ofobj_creation
with aobj_path
of 'Device.LocalAgent.Subscription..' and a map element ofunique_keys
with values of 'ID, 'Notify57-2' and 'Recipient, Device.LocalAgent.Controller..'.
The purpose of this test is to ensure that the Agent will send a Notify message to the Controller when the Controller is Subscribed to the ObjectDeletion event.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that at least one Subscription object exists on the EUT, and the unique keys and their values are known by the traffic generator.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'notify58' } param_settings { param: 'NotifType' value: 'ObjectDeletion' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.Subscription.' required: true } param_settings { param: 'NotifRetry' value: 'true' } } } } }
-
Allow the EUT to send an AddResp
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.<instance identifier from test setup 2>.' } } }
-
Allow the EUT to send a DeleteResp
-
Allow the EUT to send a Notify message.
-
Send a NotifyResp to the EUT.
-
The EUT sends a successful AddResp.
-
The EUT sends a Notify message with a
subscription_id
field equal to 'Notify58', and an event element ofobj_deletion
with aobj_path
of 'Device.LocalAgent.Subscription..'
The purpose of this test is to ensure that the Agent will send a Notify message to the Controller when the Controller is Subscribed to an Event notification that correlates with an event defined in its supported data model.
Conditional Mandatory (supports Controller:1 profile and Device.LocalAgent.Controller.{i}.PeriodicNotifTime parameter)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a Set message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: 'Device.LocalAgent.Controller.<Controller ID>.' param_settings { param: 'PeriodicNotifInterval' value: '60' } param_settings { param: 'PeriodicNotifTime' value: '2019-01-01T00:00:00Z' } } } } }
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'ID' value: 'sub-103' } param_settings { param: 'NotifType' value: 'Event' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.Periodic!' } } } } }
-
Wait for a Notification from the EUT.
-
Wait for a Notification from the EUT.
- The EUT sends a SetResponse with an
oper_success
after step 1. - The EUT sends an AddResponse with an
oper_success
after step 2. - The EUT sends a Notification with an Periodic! event element.
- A second Periodic event is sent by the EUT 60 (+/- 4) seconds after the first.
The purpose of this test is to ensure that the Agent will send a Notify message to the Controller when the Controller initiates a SendOnBoardRequest() operation.
Conditional Mandatory (supports Device.LocalAgent.Controller.{i}.SendOnBoardRequest() command)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send an Operate message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: OPERATE } body { request { operate { command: 'Device.LocalAgent.Controller.<instance identifier of traffic generator>.SendOnBoardRequest()' command_key: 'test60' send_resp: false } } }
-
Allow the EUT to send a Notify message.
-
Send a NotifyResp to the EUT.
- The EUT sends a Notify message with (at minimum) a
subscription_id
field set to an empty string, and an event element ofon_board_req
with appropriate values for theoui
,product_class
,serial_number
, andagent_supported_protocol_versions
fields.
The purpose of this test is to ensure that the Agent will correctly
process an Operate message using the Reboot() operation as a trigger
when send_resp
is true.
Conditional Mandatory (supports Reboot:1 or any other command)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
- Send an Operate message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: OPERATE
}
body {
request {
operate {
command: 'Device.Reboot()'
command_key: 'test61'
send_resp: true
}
}
}
-
Allow the EUT to send an OperateResp
-
Allow the EUT to reboot.
-
The EUT sends an OperateResp message with a single
operation_results
element containing anexecuted_command
of 'Device.Reboot()' and areq_output_args
element containing an emptyoutput_args
element. -
The EUT reboots and resumes connectivity with the test system.
The purpose of this test is to ensure that the Agent will correctly
process an Operate message using the Reboot() operation as a trigger
when send_resp
is false.
Conditional Mandatory (supports Reboot:1 or any other command)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send an Operate message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: OPERATE } body { request { operate { command: 'Device.Reboot()' command_key: 'test62' send_resp: false } } }
-
Allow the EUT to reboot.
- The EUT reboots and resumes connectivity with the test system.
The purpose of this test is to ensure that the Agent will correctly process an Operate message with input arguments.
Note: as of TP-469 Amendment 1, this test has been deprecated to sync with the deprecation of Device.LocalAgent.Controller.{i}.ScheduleTimer() in Device:2.14. The command was replaced with Device.ScheduleTimer() and is covered by test 1.79
Conditional Mandatory (supports Device.LocalAgent.Controller.{i}.ScheduleTimer() command or at least one operation that contains input arguments)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
- Ensure that a Subscription object exists on the EUT, subscribed to the Timer! event.
-
Send an Operate message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: OPERATE } body { request { operate { command: 'Device.LocalAgent.Controller.<Controller instance>.ScheduleTimer()' command_key: 'test63' send_resp: true input_args { key: 'DelaySeconds' value: '30' } } } }
-
Allow the EUT to send a Timer! event.
- The EUT sends an OperateResp message with a single
operation_results
element containing an executed_command of 'Device.LocalAgent.Controller..ScheduleTimer()' and areq_output_args
element containing an emptyoutput_args
element. - The EUT sends a Notify message containing a Event message with
obj_path
of 'Device.LocalAgent.Controller..ScheduleTimer()'.
The purpose of this test is to ensure that the Agent will correctly process an
Operate message where the operation is asynchronous and send_resp
is set to true.
Conditional Mandatory (supports the TraceRoute:1 profile or at least one other asynchronous operation)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
- Ensure that a Subscription object exists on the EUT that is subscribed to the OperationComplete notification for the supported asynchronous operation.
-
Send an Operate message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: OPERATE } body { request { operate { command: '<supported async operation>' command_key: 'test64' send_resp: true input_args { key: '<required input argument>' value: '<value>' } } } }
-
Allow the EUT to send an OperateResp message with an
executed_command
which matches the command sent in the Operate message. -
Allow the EUT to send a Notify message with an inner OperationComplete message with a
obj_path
element matching the command sent in the Operate Message.
- The EUT sends an OperateResp message with a single
operation_results
element containing anexecuted_command
matching the command sent in the Operate message and areq_obj_path
field containing a path name to the Request object created by the EUT. - The EUT sends a Notify message with
obj_path
andcommand_name
forming the command sent in the Operate message, and acommand_key
of 'test64'.
The purpose of this test is to ensure that the Agent will correctly process an
Operate message where the operation is asynchronous and send_resp
is set to false.
Conditional Mandatory (supports the TraceRoute:1 profile or at least one other asynchronous operation)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
- Ensure that a Subscription object exists on the EUT that is subscribed to the OperationComplete notification for the supported asynchronous operation.
-
Send an Operate message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: OPERATE } body { request { operate { command: '<supported async operation>' command_key: 'test65' send_resp: false input_args { key: '<required input argument>' value: '<value>' } } } }
-
Allow the EUT to send a Notify message containing an OperationComplete message with
obj_path
andcommand_name
forming the command sent in the Operate message.
- The EUT does not send an OperateResp message.
- The EUT sends a Notify message containing an OperationComplete message with
obj_path
andcommand_name
forming the command in the Operate message, and acommand_key
of 'test65'.
The purpose of this test is to ensure that the Agent will correctly process a GetInstances message on a single object when first_level_only is true.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
- Ensure that the Agent has at least one entry in the Device.LocalAgent.Controller.{i}. table and supports at least one multi-instance sub-object (e.g., .MTP.{i}., etc.)
- Send a GetInstances message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: GET_INSTANCES
}
body {
request {
get_instances {
obj_paths: 'Device.LocalAgent.Controller.'
first_level_only: true
}
}
}
- The EUT sends a GetInstancesResp with one
req_path_results
elements containing arequested_path
of 'Device.LocalAgent.Controller.' and at least onecur_insts
element. - All
instantiated_obj_path
elements in the GetInstancesResp only contain 'Device.LocalAgent.Controller.' instances.
The purpose of this test is to ensure that the Agent will correctly process
a GetInstances message on a single object when first_level_only
is false.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
- Ensure that the Agent has at least one entry in the Device.LocalAgent.Controller.{i}. table and supports at least one multi-instance sub-object (e.g., .MTP.{i}., etc.)
- Send a GetInstances message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: GET_INSTANCES
}
body {
request {
get_instances {
obj_paths: 'Device.LocalAgent.Controller.'
first_level_only: false
}
}
}
- The EUT sends a GetInstancesResp with one
req_path_results
elements containing arequested_path
of 'Device.LocalAgent.Controller.', and lists all instances of the Controller object, plus any instances of all sub-objects.
The purpose of this test is to ensure that the Agent will correctly process a GetInstances message on multiple objects.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
- Send a GetInstances message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: GET_INSTANCES
}
body {
request {
get_instances {
obj_paths: 'Device.LocalAgent.Controller.'
obj_paths: 'Device.LocalAgent.MTP.'
first_level_only: true
}
}
}
- The EUT sends a GetInstancesResp with two
req_path_results
elements containing arequested_path
of 'Device.LocalAgent.Controller.' and 'Device.LocalAgent.MTP.' - Both
req_path_results
and each having at least onecur_insts
element.
Note: This test was formerly named "GetInstances with root object" and was invalid. It has been removed from this version of the test plan and exists only as a placeholder for numeric consistency.
The purpose of this test is to ensure that the Agent will correctly process a GetInstances message when a wildcard search path is used.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a GetInstances message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET_INSTANCES } body { request { get_instances { obj_paths: 'Device.LocalAgent.Controller.*.MTP.' first_level_only: true } } }
### Test Metrics
1. The EUT sends a GetInstancesResp with at least one
`req_path_results` element containing a
'Device.LocalAgent.Controller.{i}.MTP.' instance.
## 1.71 GetInstances with search expression search path
### Purpose
The purpose of this test is to ensure that the Agent will correctly process
a GetInstances message when a search expression search path is used.
### Functionality Tag
Conditional Mandatory (Supports least one nested multi-instance object)
### Test Setup
1. Ensure that the EUT and test equipment have the necessary information to
send and receive USP Records to each other.
2. Ensure there is at least one BootParameter for the Controller instance
used for testing.
3. Ensure the Alias of the Controller used for testing is known.
### Test Procedure
1. Send a GetInstances message to the EUT with the following structure:
```{filter=pbv type=Msg}
header {
msg_id: '<msg_id>'
msg_type: GET_INSTANCES
}
body {
request {
get_instances {
obj_paths: 'Device.LocalAgent.Controller.[Alias=="<Controller alias>"].BootParameter.'
first_level_only: false
}
}
}
```
### Test Metrics
1. The EUT sends a GetInstancesResp with at least one
`req_path_results` element containing a
'Device.LocalAgent.Controller.<Controller instance>.BootParameter.' instance.
## 1.72 GetSupportedDM using a single object, first_level_only false, all options
### Purpose
The purpose of this test is to ensure that the Agent will correctly process
a GetSupportedDM message using a single object, when `first_level_only` is false
and all options are true.
### Functionality Tag
Mandatory
### Test Setup
1. Ensure that the EUT and test equipment have the necessary information to
send and receive USP Records to each other.
### Test Procedure
1. Send a GetSupportedDM to the EUT with the following structure:
```{filter=pbv type=Msg}
header {
msg_id: '<msg id>'
msg_type: GET_SUPPORTED_DM
}
body {
request {
get_supported_dm {
obj_paths: 'Device.LocalAgent.'
first_level_only: false
return_commands: true
return_events: true
return_params: true
}
}
}
```
### Test Metrics
1. The EUT sends a GetSupportedDMResp.
2. Every `req_obj_results` element contains all
parameters, events, and commands below the
specified partial path, plus the supported data model information of all
sub-objects.
3. Each SupportedParamResult field contains the `param_name`, `access`, `value_type`, and `value_change` fields with valid information, if the element is a parameter.
4. Each SupportedCommandResult field contains the `command_name` field, `command_type` field, and a set of `input_arg_names` and `output_arg_names` fields with valid information, if the element is a command.
5. Each SupportedEventResult field contains the `event_name` field and a set of `arg_names` fields with valid information, if the element is an event.
## 1.73 GetSupportedDM using a single object, first_level_only true, all options
### Purpose
The purpose of this test is to ensure that the Agent will correctly process
a GetSupportedDM message using a single object, when `first_level_only` is true
and all options are true.
### Functionality Tag
Mandatory
### Test Setup
1. Ensure that the EUT and test equipment have the necessary information to
send and receive USP Records to each other.
### Test Procedure
1. Send a GetSupportedDM to the EUT with the following structure:
```
header {
msg_id: '<msg id>'
msg_type: GET_SUPPORTED_DM
}
body {
request {
get_supported_dm {
obj_paths: 'Device.LocalAgent.'
first_level_only: true
return_commands: true
return_events: true
return_params: true
}
}
}
```
### Test Metrics
1. The EUT sends a GetSupportedDMResp containing `req_object_results` elements
for the specified object and each immediate child object.
2. Only the `req_obj_results` element of the object specified in `obj_paths` contains parameters, events, and commands.
3. Each SupportedParamResult field contains the `param_name`, `access`, `value_type`, and `value_change` fields with valid information, if applicable.
4. Each SupportedCommandResult field contains the `command_name` field, `command_type` field, and a set of `input_arg_names` and `output_arg_names` fields with valid information, if applicable.
5. Each SupportedEventResult field contains the `event_name` field and a set of `arg_names` fields with valid information, if applicable.
## 1.74 GetSupportedDM using a single object, first_level_only true, no options
### Purpose
The purpose of this test is to ensure that the Agent will correctly process
a GetSupportedDM message using a single object, when `first_level_only` is true
and all options are false.
### Functionality Tag
Mandatory
### Test Setup
1. Ensure that the EUT and test equipment have the necessary information to
send and receive USP Records to each other.
### Test Procedure
1. Send a GetSupportedDM to the EUT with the following structure:
```{filter=pbv type=Msg}
header {
msg_id: '<msg id>'
msg_type: GET_SUPPORTED_DM
}
body {
request {
get_supported_dm {
obj_paths: 'Device.LocalAgent.'
first_level_only: true
return_commands: false
return_events: false
return_params: false
}
}
}
```
### Test Metrics
1. The EUT sends a GetSupportedDMResp containing `req_object_results` elements
for the specified object and each immediate child object.
2. None of the `req_obj_results` elements contain
any commands, events, or params.
## 1.75 GetSupportedDM using multiple objects, first_level_only true, all options
### Purpose
The purpose of this test is to ensure that the Agent will correctly process
a GetSupportedDM message using multiple objects, when `first_level_only` is true
and all options are true.
### Functionality Tag
Mandatory
### Test Setup
1. Ensure that the EUT and test equipment have the necessary information to
send and receive USP Records to each other.
### Test Procedure
1. Send a GetSupportedDM to the EUT with the following structure:
```{filter=pbv type=Msg}
header {
msg_id: '<msg id>'
msg_type: GET_SUPPORTED_DM
}
body {
request {
get_supported_dm {
obj_paths: 'Device.LocalAgent.Controller.'
obj_paths: 'Device.LocalAgent.MTP.'
first_level_only: true
return_commands: true
return_events: true
return_params: true
}
}
}
```
### Test Metrics
1. The EUT sends a GetSupportedDMResp containing `req_object_results` elements
for the specified objects and each immediate child object.
2. Only the `req_obj_results` element of the object specified in `obj_paths`
contains parameters, events, and commands.
3. Each SupportedParamResult field contains the `param_name`, `access`, `value_type`, and `value_change` fields with valid information, if applicable.
4. Each SupportedCommandResult field contains the `command_name` field, `command_type` field, and a set of `input_arg_names` and `output_arg_names` fields with valid information, if applicable.
5. Each SupportedEventResult field contains the `event_name` field and a set of `arg_names` fields with valid information, if applicable.
## 1.76 GetSupportedDM on root object, all options
### Purpose
The purpose of this test is to ensure the Agent will correctly process
a GetSupportedDM message when the requested path is the root of the data model.
### Functionality Tag
Mandatory
### Test Setup
1. Ensure that the EUT and test equipment have the necessary information to
send and receive USP Records to each other.
### Test Procedure
1. Send a GetSupportedDM to the EUT with the following structure:
```{filter=pbv type=Msg}
header {
msg_id: '<msg id>'
msg_type: GET_SUPPORTED_DM
}
body {
request {
get_supported_dm {
obj_paths:'Device.'
first_level_only: false
return_commands: true
return_events: true
return_params: true
}
}
}
```
### Test Metrics
1. The EUT sends a GetSupportedDMResp message with one or more `req_obj_results` specifying its entire supported data model, listing commands, parameters, and events.
2. Each SupportedParamResult field contains the `param_name`, `access`, `value_type`, and `value_change` fields with valid information, if applicable.
3. Each SupportedCommandResult field contains the `command_name` field, `command_type` field, and a set of `input_arg_names` and `output_arg_names` fields with valid information, if applicable.
4. Each SupportedEventResult field contains the `event_name` field and a set of `arg_names` fields with valid information, if applicable.
## 1.77 GetSupportedDM on unsupported object
### Procedure
The purpose of this test is to ensure the Agent will correctly process
a GetSupportedDM message when the requested path is an unsupported object.
### Functionality Tag
Mandatory
### Test Setup
1. Ensure that the EUT and test equipment have the necessary information to
send and receive USP Records to each other.
### Test Procedure
1. Send a GetSupportedDM to the EUT with the following structure:
```{filter=pbv type=Msg}
header {
msg_id: '<msg_id>'
msg_type: GET_SUPPORTED_DM
}
body {
request {
get_supported_dm {
obj_paths:'Device.LocalAgent.UnsupportedObject.'
first_level_only: false
return_commands: true
return_events: true
return_params: true
}
}
}
- The EUT returns a GetSupportedDMResp with a single
req_obj_results
with an appropriate error code.
According to the Device.LocalAgent.Subscription.{i}.Recipient parameter:
The value MUST be the Path Name of the Controller instance that will receive the Notification associated with this Subscription. If the referenced object is deleted, this instance MUST also be deleted (so the parameter value will never be an empty string).
This test validates that if a Controller is removed from the Agent's Device.LocalAgent.Controller.{i}. table, any associated Subscription objects are also removed.
Conditional Mandatory (supports Controller:1 profile with the ability to create instances of the Device.LocalAgent.Controller. object)
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that the EUT has two Controller instances in its Device.LocalAgent. Controller.{i}. table, and that both Controllers can be simulated by the test equipment. Consider one to be the primary Controller, and the other to be the secondary Controller. Record the secondary Controller's instance identifier.
-
Ensure that there is at least one Subscription object in the EUT Device.LocalAgent.Subscription.{i}. table created by the secondary Controller.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Controller.<instance identifier of secondary Controller>.' } } }
-
Allow the EUT to send an DeleteResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.' } } }
-
Allow the EUT to send a GetResp.
- The Subscription table does not contain the Subscription object outlined in test setup step 3.
The purpose of this test is to ensure that the Agent will correctly process an Operate message with input arguments.
Conditional Mandatory (supports Device.ScheduleTimer() command or at least one operation that contains input arguments)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
- Ensure that a Subscription object exists on the EUT with NotifType OperationComplete on Device.ScheduleTimer().
-
Send an Operate message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: OPERATE } body { request { operate { command: 'Device.ScheduleTimer()' command_key: 'test79' send_resp: true input_args { key: 'DelaySeconds' value: '30' } } } }
-
Wait at least 30 seconds.
-
Allow the EUT to send a Notify message.
- The EUT sends an OperateResp message with the
req_obj_path
field, containing an Object Instance Path to the Request Object created as a result of this asynchronous operation. - The EUT sends a Notify message containing a valid OperationComplete event,
with a
command_name
of 'ScheduleTimer()', anobj_path
of 'Device.', and acommand_key
of 'test79'.
The purpose of this test is to ensure the Controller can learn the supported USP protocol version(s) of the EUT.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a GetSupportedProtocol message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET_SUPPORTED_PROTO } body { request { get_supported_protocol { controller_supported_protocol_versions: '<comma-separated list of USP specification versions>' } } }
-
Allow the EUT to send a GetSupportedProtocolResponse.
-
The EUT sends a GetSupportedProtocolResponse.
-
The
agent_supported_protocol_versions
element contains a comma-separated list of supported USP specification versions.
The purpose of this test is to validate that the EUT assigns unique keys which are not supplied in the Add message.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
If the EUT has a limit on the number of instances of the Subscription object, ensure that the number of existing Subscription object instances is less than the maximum supported.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' } } create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'true' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.EndpointID' } } } } }
-
Allow the EUT to send an AddResp.
-
Record the instance identifiers of the created objects as reported by the EUT.
-
Clean-up: Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.<instance identifier 1>.' obj_paths: 'Device.LocalAgent.Subscription.<instance identifier 2>.' } } }
-
Allow the EUT to send a DeleteResp.
-
The EUT AddResp is valid.
-
The AddResp contains two CreatedObjectResults that each have an OperationStatus of OperationSuccess. The OperationSuccess elements contains no parameter errors and 3 elements in the unique key map: Alias, Recipient, and ID. The values of Alias and ID must differ between the two CreatedObjectResults, and the values of Recipient must be identical. Alternatively, the OperationSuccess contains 2 elements in the unique key map if the Alias parameter is not supported: 'Recipient', and 'ID'. In this case the values of ID must differ between the two CreatedObjectResults, and the values of Recipient must be identical.
The purpose of this test is to verify that the EUT sends a successful empty response when a Get request using a search expression returns no objects.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that no Subscription objects exist on the EUT.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.[Enable==true].' } } }
-
Allow the EUT to send a GetResp.
-
The EUT sends a GetResp.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.Subscription.[Enable==true].', and an emptyresolved_path_results
element (i.e.,resolved_path_results{}
).
The purpose of this test is to verify that the EUT sends a successful empty response when a GetInstances request using a search expression returns no objects.
Conditional Mandatory (supports least one nested multi-instance object)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a GetInstances message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET_INSTANCES } body { request { get_instances { obj_paths: 'Device.LocalAgent.Controller.[Alias=="<non-existent alias>"].BootParameter.' } } }
-
Allow the EUT to send a GetInstancesResp.
-
The EUT sends a GetInstancesResp.
-
The GetInstancesResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.Controller.[Alias==""].BootParameter.', and an emptycurr_insts
element (i.e.,curr_insts{}
).
The purpose of this test is to ensure that the Agent will create and acknowledge Subscriptions containing a search path, and notifies the Controller when the conditions of the subscription are triggered.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure there are at least 2 enabled BootParameter instances under the Controller used for testing.
-
Send an Add message to the EUT with the following structure:
header { msg_id: "<msg_id>" msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: "Device.LocalAgent.Subscription." param_settings: { param: "Enable" value: "true" } param_settings: { param: "ID" value: "notify84" } param_settings: { param: "NotifType" value: "ValueChange" } param_settings: { param: "ReferenceList" value: "Device.LocalAgent.Controller.<instance identifier of Controller>.BootParameter.*.Enable" required: true } } } } }
-
Allow the EUT to send an AddResp
-
Send a Set message to the EUT with the following structure:
header { msg_id: "<msg_id>" msg_type: SET } body { request { set { allow_partial: false update_objs { obj_path: "Device.LocalAgent.Controller.<instance identifier of Controller>.BootParameter.<valid BootParameter instance>" param_settings: { param: "Enable" value: "false" required: true } } } } }
-
The EUT sends an AddResp.
-
The EUT sends a notification for the created subscription containing the BootParameter modified in step 3.
This test was left out of version 1.2 of this document. There is some ambiguity in TR-369 Amendment 2 (USP 1.2) with regards to how paths that use instance number addressing should be treated when they address non-existant objects. This will be clarified in a future release.
The purpose of this test is to ensure that the Agent successfully responds to a Get request when the requested Instantiated Object Path is valid but does not resolve to an existing object when using a search path.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that no enabled Subscription objects exist on the EUT.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.[Enable==true].' } } }
-
Allow the EUT to send a GetResp.
-
The EUT's sends a GetResp.
-
The GetResp contains no errors.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
element is empty (i.e.requested_path_results{}
).
The purpose of this test is to ensure that the Agent successfully responds to a Get request when the requested Instantiated Object Path is valid but does not resolve to an existing object when using an Object Path.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that no Subscription objects exist on the EUT.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.Subscription.' } } }
-
Allow the EUT to send a GetResp.
-
The EUT's sends a GetResp.
-
The GetResp contains no errors.
-
The GetResp contains a single
req_path_results
element. Therequested_path_results
element is empty (i.e.requested_path_results{}
).
The purpose of this test is to validate that the EUT will deliver an error after it receives an Add message that includes a unique key parameter that is not required but is set to an invalid value.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send an Add message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: ADD } body { request { add { allow_partial: false create_objs { obj_path: 'Device.LocalAgent.Subscription.' param_settings { param: 'Enable' value: 'True' } param_settings { param: 'Alias' value: '88InvalidAlias' } param_settings { param: 'NotifType' value: 'ValueChange' } param_settings { param: 'ReferenceList' value: 'Device.LocalAgent.SoftwareVersion' } } } } }
-
Allow the EUT to send an Error message.
-
The EUT sends an Error message containing an appropriate error code.
-
The EUT does not create the new Subscription object.
The purpose of this test is to ensure the Controller can retrieve the
values of parameters in the Agent's Instantiated Data Model using the max_depth
field to limit the tree depth of result_params
.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.' max_depth: 1 } } }
-
Allow the EUT to send a GetResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.' max_depth: 2 } } }
-
Allow the EUT to send a GetResp.
-
Send a Get message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: GET } body { request { get { param_paths: 'Device.LocalAgent.' max_depth: 0 } } }
-
Allow the EUT to send a GetResp.
-
The first GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.', and a set ofresolved_path_results
elements. One contains aresolved_path
of 'Device.LocalAgent.', and a number ofresult_params
elements ONLY containing keys and values of the parameters of 'Device.LocalAgent.'. No additionalresolved_path_results
elements are included. -
The second GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.', and a set ofresolved_path_results
elements. One contains aresolved_path
of 'Device.LocalAgent.', and a number ofresult_params
elements contain keys and values of the parameters of 'Device.LocalAgent.'. Additionalresolved_path_results
exist for each of the immediate-child sub-objects of Device.LocalAgent., withresult_params
containing the keys and values of each sub-object's parameters. -
The third GetResp contains a single
req_path_results
element. Therequested_path_results
has no errors, has arequested_path
equal to 'Device.LocalAgent.', and a set ofresolved_path_results
elements. One contains aresolved_path
of 'Device.LocalAgent.', and a number ofresult_params
elements contain keys and values of the parameters of 'Device.LocalAgent.'. Additionalresolved_path_results
exist for each of the sub-objects of Device.LocalAgent., and their sub-objects, withresult_params
containing the keys and values of each sub-object's parameters. -
The keys of all
result_params
elements are Relative Paths.
The purpose of this test is to validate that the EUT properly handles a Delete message using a search path that matches no objects.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that no Subscription objects exist in the Agent's Instantiated Data Model with the Enable parameter set to 'false'.
-
Send a Delete message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: DELETE } body { request { delete { allow_partial: false obj_paths: 'Device.LocalAgent.Subscription.[Enable==false].' } } }
-
Allow the EUT to send an DeleteResp.
- The EUT sends a DeleteResp containing an empty
oper_success
element.
The purpose of this test is to ensure the Agent ignores unknown arguments that are included in an operate message, using Device.ScheduleTimer() as an example.
Conditional Mandatory (supports Device.ScheduleTimer() command)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send an Operate message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: OPERATE } body { request { operate { command: 'Device.ScheduleTimer()' send_resp: true input_args { key: 'DelaySeconds' value: '10' } input_args { key: 'InvalidArgument' value: '2' } } } }
-
Wait for the EUT to send an OperateResp.
- The EUT sends a successful OperateResponse with 'ScheduleTimer()' in the
executed_command
element.
The purpose of this test is to ensure that the Agent will correctly use default values for non-mandatory command arguments that include defaults defined in the data model.
Conditional Mandatory (supports the TraceRoute:1 profile)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send an Operate message to the EUT with the following structure:
header { msg_id: '<msg_id>' msg_type: OPERATE } body { request { operate { command: 'Device.IP.Diagnostics.TraceRoute()' command_key: 'test92' send_resp: true input_args { key: 'Host' value: '<remote host IP>' } input_args { key: 'ProtocolVersion' value: 'Any' } } } }
-
Allow the EUT to send an Operate Response message with an
executed_command
which matches the command sent in the Operate message. -
Do not reply to the TraceRoute ICMP requests.
-
The EUT sends an OperateResp message with a single
operation_results
element containing anexecuted_command
of 'Device.IP.Diagnostics.TraceRoute()' and areq_obj_path
field containing a path name to the Request object created by the EUT. -
The EUT attempts a TraceRoute diagnostic against the supplied host name. It retries 3 times within a 1% range of a 5000 millisecond delay between each retry, which are the default values.
The purpose of this test is to ensure that the Agent will update its configuration when the conditions of a subscription are fulfilled.
Conditional Mandatory (supports the Device.LocalAgent.Subscription.{i}.TriggerAction and Device.LocalAgent.Subscription.{i}.TriggerConfigSettings parameters)
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that the traffic generator has learned the instance identifier of the Device.LocalAgent.Controller. object that represents the Controller simulated by the traffic generator.
-
Set the Device.LocalAgent.Controller..ProvisioningCode to an arbitrary value that is not ‘TestValue93’.
- Send an Add message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: ADD
}
body {
request {
add {
allow_partial: false
create_objs {
obj_path: 'Device.LocalAgent.Subscription.'
param_settings {
param: 'Enable'
value: 'true'
}
param_settings {
param: 'TriggerAction'
value: 'Config'
}
param_settings {
param: 'ID'
value: 'notify93'
}
param_settings {
param: 'NotifType'
value: 'ValueChange'
}
param_settings {
param: 'ReferenceList'
value: 'Device.LocalAgent.Controller.<instance identifier>.ProvisioningCode'
required: true
}
param_settings {
param: 'NotifRetry'
value: 'true'
}
}
}
}
}
-
Allow the EUT to send an AddResp
-
Send a Set message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: SET
}
body {
request {
set {
allow_partial: false
update_objs {
obj_path: 'Device.LocalAgent.Subscription.<instance identifier from step 2>.'
param_settings {
param: 'TriggerConfigSettings'
value: 'Device.LocalAgent.Subscription.<instance identifier from step 2>.Enable=false'
required: true
}
}
}
}
}
- Send a Set message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: SET
}
body {
request {
set {
allow_partial: false
update_objs {
obj_path: 'Device.LocalAgent.Controller.<instance identifier>.'
param_settings {
param: 'ProvisioningCode'
value: 'TestValue93'
required: true
}
}
}
}
}
- Send a Get message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: GET
}
body {
request {
get {
param_paths: 'Device.LocalAgent.Subscription.<instance identifier from step 2>.Enable'
}
}
}
- Allow the EUT to send a GetResp.
-
The EUT sends a successful AddResp.
-
The EUT sends a GetResp that contains a result_params element with a key of ‘Enable’ and a value set to ‘false’.
The purpose of this test is to ensure that the Agent will update its configuration and notify the Controller when the conditions of a subscription are fulfilled.
Conditional Mandatory (supports the Device.LocalAgent.Subscription.{i}.TriggerAction and Device.LocalAgent.Subscription.{i}.TriggerConfigSettings parameters)
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that the traffic generator has learned the instance identifier of the Device.LocalAgent.Controller. object that represents the Controller simulated by the traffic generator.
-
Set the Device.LocalAgent.Controller..ProvisioningCode to an arbitrary value that is not ‘TestValue94’.
- Send an Add message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: ADD
}
body {
request {
add {
allow_partial: false
create_objs {
obj_path: 'Device.LocalAgent.Subscription.'
param_settings {
param: 'Enable'
value: 'true'
}
param_settings {
param: 'TriggerAction'
value: 'NotifyAndConfig'
}
param_settings {
param: 'ID'
value: 'notify94'
}
param_settings {
param: 'NotifType'
value: 'ValueChange'
}
param_settings {
param: 'ReferenceList'
value: 'Device.LocalAgent.Controller.<instance identifier>.ProvisioningCode'
required: true
}
param_settings {
param: 'NotifRetry'
value: 'true'
}
}
}
}
}
-
Allow the EUT to send an AddResp
-
Send a Set message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: SET
}
body {
request {
set {
allow_partial: false
update_objs {
obj_path: 'Device.LocalAgent.Subscription.<instance identifier from step 2>.'
param_settings {
param: 'TriggerConfigSettings'
value: 'Device.LocalAgent.Subscription.<instance identifier from step 2>.Enable=false'
required: true
}
}
}
}
}
- Send a Set message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: SET
}
body {
request {
set {
allow_partial: false
update_objs {
obj_path: 'Device.LocalAgent.Controller.<instance identifier>.'
param_settings {
param: 'ProvisioningCode'
value: 'TestValue94'
required: true
}
}
}
}
}
-
Allow the EUT to send a Notify message.
-
Send a NotifyResp to the EUT.
-
Send a Get message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: GET
}
body {
request {
get {
param_paths: 'Device.LocalAgent.Subscription.<instance identifier from step 2>.Enable'
}
}
}
- Allow the EUT to send a GetResp.
-
The EUT sends a successful AddResp.
-
The EUT sends a Notify message with a subscription_id field equal to ‘Notify94’, and an event element of value_change with a param_path of ‘Device.LocalAgent.Controller..ProvisioningCode’ and a param_value of ‘TestValue94’.
-
The EUT sends a GetResp that contains a result_params element with a key of ‘Enable’ and a value set to ‘false’.
The purpose of this test is to ensure the EUT properly handles an Add message that contains a search expression.
Mandatory
-
Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Ensure that the EUT has at least two Controller instances in its Device.LocalAgent.Controller.{i}. table.
- Send an Add message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: ADD
}
body {
request {
add {
allow_partial: false
create_objs {
obj_path: 'Device.LocalAgent.Controller.[Enable==true].BootParameter.'
param_settings {
param: 'Enable'
value: 'true'
}
param_settings {
param: 'ParameterName'
value: 'Device.LocalAgent.SoftwareVersion'
}
}
}
}
}
-
Allow the EUT to send an AddResp.
-
Send a Get message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: GET
}
body {
request {
get {
param_paths: 'Device.LocalAgent.Controller.*.BootParameter.'
}
}
}
- Allow the EUT to send a GetResp.
-
The AddResp contains at least one CreatedObjectResult object that has an OperationStatus that has an element of type OperationSuccess.
-
The EUT sends a GetResp that contains the new BootParameter object.
The purpose of this test is to ensure the EUT does not allow a non-functional unique key to be changed.
Mandatory
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
- Send an Add message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: ADD
}
body {
request {
add {
allow_partial: false
create_objs {
obj_path: 'Device.LocalAgent.Subscription.'
param_settings {
param: 'ID'
value: 'add96'
}
}
}
}
}
- Send a Get message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: GET
}
body {
request {
get {
param_paths: 'Device.LocalAgent.Subscription.<instance identifier>.'
}
}
}
- Send a Set message to the EUT with the following structure:
header {
msg_id: '<msg_id>'
msg_type: SET
}
body {
request {
set {
allow_partial: false
update_objs {
obj_path: 'Device.LocalAgent.Subscription.<instance identifier from step 1>.'
param_settings {
param: 'ID'
value: 'add96-NEW'
required: true
}
}
}
}
}
- Allow the EUT to send an Error.
- The EUT sends an Error indicating it did not allow a non-functional unique key to be changed.
The purpose of this test is to ensure the EUT provides correctly formatted input arguments for commands returned in GetSupportedDM Resp.
Conditionally Mandatory (Supports a command that includes one or more input arguments)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a GetSupportedDM to the EUT with the following structure:
header { msg_id: '<msg id>' msg_type: GET_SUPPORTED_DM } body { request { get_supported_dm { obj_paths:'Device.' first_level_only: false return_commands: true return_events: false return_params: false } } }
- The EUT sends a GetSupportedDMResp message with one or more
req_obj_results
specifying its entire supported data model, listing only commands. - Each SupportedCommandResult field contains a
command_name
field, aninput_arg_names
field, anoutput_arg_names
field, and acommand_type
field. - The
command_type
field indicates if the command is asynchronous or synchronous. - At least one
input_arg_fields
contains a list of one or more input arguments. The input arguments are relative paths.
The purpose of this test is to ensure the EUT provides correctly formatted fields for events returned in GetSupportedDM Resp.
Conditionally Mandatory (Supports an event that includes one or more arguments)
- Ensure that the EUT and test equipment have the necessary information to send and receive USP Records to each other.
-
Send a GetSupportedDM to the EUT with the following structure:
header { msg_id: '<msg id>' msg_type: GET_SUPPORTED_DM } body { request { get_supported_dm { obj_paths:'Device.' first_level_only: false return_commands: false return_events: true return_params: false } } }
- The EUT sends a GetSupportedDMResp message with one or more
req_obj_results
specifying its entire supported data model, listing only events. - Each SupportedEventResult field contains the
event_name
field and anarg_names
field. - At least one
arg_names
field contains a list of one or more arguments. The arguments are relative paths.