# Copyright (c) 2021 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default

name: 3.3.2. [TC-IDM-3.2] Write Response Action from DUT to TH. [{DUT_Server}]

PICS:
    - MCORE.IDM.S

config:
    nodeId: 0x12344321
    cluster: "Basic Information"
    endpoint: 0

tests:
    - label:
          "TH sends the WriteRequestMessage to the DUT to write one attribute on
          a given cluster and endpoint. On receipt of this message, DUT should
          send a write response action."
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.

          ./chip-tool levelcontrol write on-level 2 1 1

          On TH(Reference app), verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified.

          [1653026683.396666][6229:6234] CHIP:DMG: WriteResponseMessage =
          [1653026683.396685][6229:6234] CHIP:DMG: {
          [1653026683.396703][6229:6234] CHIP:DMG: AttributeStatusIBs =
          [1653026683.396732][6229:6234] CHIP:DMG: [
          [1653026683.396749][6229:6234] CHIP:DMG: AttributeStatusIB =
          [1653026683.396773][6229:6234] CHIP:DMG: {
          [1653026683.396790][6229:6234] CHIP:DMG: AttributePathIB =
          [1653026683.396813][6229:6234] CHIP:DMG: {
          [1653026683.396835][6229:6234] CHIP:DMG: Endpoint = 0x1,
          [1653026683.396858][6229:6234] CHIP:DMG: Cluster = 0x8,
          [1653026683.396881][6229:6234] CHIP:DMG: Attribute = 0x0000_0011,
          [1653026683.396900][6229:6234] CHIP:DMG: }
          [1653026683.396929][6229:6234] CHIP:DMG:
          [1653026683.396947][6229:6234] CHIP:DMG: StatusIB =
          [1653026683.396970][6229:6234] CHIP:DMG: {
          [1653026683.396991][6229:6234] CHIP:DMG: status = 0x00 (SUCCESS),
          [1653026683.397011][6229:6234] CHIP:DMG: },
          [1653026683.397034][6229:6234] CHIP:DMG:
          [1653026683.397052][6229:6234] CHIP:DMG: },
          [1653026683.397078][6229:6234] CHIP:DMG:
          [1653026683.397093][6229:6234] CHIP:DMG: ],
          [1653026683.397121][6229:6234] CHIP:DMG:
          [1653026683.397138][6229:6234] CHIP:DMG: InteractionModelRevision = 1
          [1653026683.397155][6229:6234] CHIP:DMG: }


          ./chip-tool levelcontrol read on-level 1 1

          On TH, verify the attribute value that was modified in above step

          [1655200943.824948][3523:3528] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3958539601
          [1655200943.825056][3523:3528] CHIP:TOO: on level: 2
          [1655200943.825157][3523:3528] CHIP:EM: Sending Standalone Ack for MessageCounter:244110098 on exchange 12829i
      disabled: true

    - label:
          "TH sends a WriteRequestMessage to the DUT to write to an attribute on
          all endpoints. On receipt of this message, DUT should send a Write
          Response action"
      verification: |
          Out of Scope for V1.0
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an attribute of
          data type bool. +"
      PICS: MCORE.IDM.S.Attribute_W.DataType_Bool
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.

           ./chip-tool  basicinformation write local-config-disabled 1 1 0


          On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified.


          [1655201045.952849][3550:3555] CHIP:DMG: WriteResponseMessage =
          [1655201045.952886][3550:3555] CHIP:DMG: {
          [1655201045.952916][3550:3555] CHIP:DMG: AttributeStatusIBs =
          [1655201045.952960][3550:3555] CHIP:DMG: [
          [1655201045.952996][3550:3555] CHIP:DMG: AttributeStatusIB =
          [1655201045.953036][3550:3555] CHIP:DMG: {
          [1655201045.953076][3550:3555] CHIP:DMG: AttributePathIB =
          [1655201045.953122][3550:3555] CHIP:DMG: {
          [1655201045.953170][3550:3555] CHIP:DMG: Endpoint = 0x0,
          [1655201045.953217][3550:3555] CHIP:DMG: Cluster = 0x28,
          [1655201045.953270][3550:3555] CHIP:DMG: Attribute = 0x0000_0010,
          [1655201045.953315][3550:3555] CHIP:DMG: }
          [1655201045.953365][3550:3555] CHIP:DMG:
          [1655201045.953408][3550:3555] CHIP:DMG: StatusIB =
          [1655201045.953458][3550:3555] CHIP:DMG: {
          [1655201045.953503][3550:3555] CHIP:DMG: status = 0x00 (SUCCESS),
          [1655201045.953553][3550:3555] CHIP:DMG: },
          [1655201045.953601][3550:3555] CHIP:DMG:
          [1655201045.953663][3550:3555] CHIP:DMG: },
          [1655201045.953711][3550:3555] CHIP:DMG:
          [1655201045.953745][3550:3555] CHIP:DMG: ],
          [1655201045.953786][3550:3555] CHIP:DMG:
          [1655201045.953821][3550:3555] CHIP:DMG: InteractionModelRevision = 1
          [1655201045.953857][3550:3555] CHIP:DMG: }
          [1655201045.953951][3550:3555] CHIP:DMG: WriteClient moving to [AwaitingDe]


          ./chip-tool  basicinformation read local-config-disabled 1 0

          On TH, verify the attribute value that was modified in above step

          [1655201064.564646][3556:3561] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0010 DataVersion: 1458477847
          [1655201064.564696][3556:3561] CHIP:TOO: LocalConfigDisabled: TRUE
          [1655201064.564812][3556:3561] CHIP:EM: Sending Standalone Ack for MessageCounter:57487809 on exchange 1016i
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an attribute of
          data type string. +"
      PICS: MCORE.IDM.S.Attribute_W.DataType_String
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.


          ./chip-tool  basicinformation write node-label new 1 0

          On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and veriffy by sending a ReadRequestMessage to read the value that was modified.

          [1655806131.663097][7241:7246] CHIP:DMG: WriteClient moving to [ResponseRe]
          [1655806131.663177][7241:7246] CHIP:DMG: WriteResponseMessage =
          [1655806131.663215][7241:7246] CHIP:DMG: {
          [1655806131.663259][7241:7246] CHIP:DMG: AttributeStatusIBs =
          [1655806131.663305][7241:7246] CHIP:DMG: [
          [1655806131.663353][7241:7246] CHIP:DMG: AttributeStatusIB =
          [1655806131.663402][7241:7246] CHIP:DMG: {
          [1655806131.663453][7241:7246] CHIP:DMG: AttributePathIB =
          [1655806131.663511][7241:7246] CHIP:DMG: {
          [1655806131.663561][7241:7246] CHIP:DMG: Endpoint = 0x0,
          [1655806131.663621][7241:7246] CHIP:DMG: Cluster = 0x28,
          [1655806131.663672][7241:7246] CHIP:DMG: Attribute = 0x0000_0005,
          [1655806131.663735][7241:7246] CHIP:DMG: }
          [1655806131.663791][7241:7246] CHIP:DMG:
          [1655806131.663839][7241:7246] CHIP:DMG: StatusIB =
          [1655806131.663889][7241:7246] CHIP:DMG: {
          [1655806131.663935][7241:7246] CHIP:DMG: status = 0x00 (SUCCESS),
          [1655806131.663980][7241:7246] CHIP:DMG: },
          [1655806131.664024][7241:7246] CHIP:DMG:
          [1655806131.664063][7241:7246] CHIP:DMG: },
          [1655806131.664106][7241:7246] CHIP:DMG:
          [1655806131.664141][7241:7246] CHIP:DMG: ],
          [1655806131.664208][7241:7246] CHIP:DMG:
          [1655806131.664243][7241:7246] CHIP:DMG: InteractionModelRevision = 1
          [1655806131.664278][7241:7246] CHIP:DMG: }
          [1655806131.664372][7241:7246] CHIP:DMG: WriteClient moving to [AwaitingDe]

          ./chip-tool  basicinformation read node-label 1 0

          On TH, verify the attribute value that was modified in above step
          [1655806189.835517][7250:7255] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_0005 DataVersion: 1238808428
          [1655806189.835566][7250:7255] CHIP:TOO: NodeLabel: new
          [1655806189.835689][7250:7255] CHIP:EM: Sending Standalone Ack for MessageCounter:194887570 on exchange 10216i
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an attribute of
          data type unsigned integer. +"
      PICS: MCORE.IDM.S.Attribute_W.DataType_UnsignedInteger
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.


          ./chip-tool any write-by-id 0x0008 0x0010 1 1 1

          On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified.

          [1649152567.635323][16212:16217] CHIP:DMG: WriteResponseMessage =
          [1649152567.635361][16212:16217] CHIP:DMG: {
          [1649152567.635394][16212:16217] CHIP:DMG: AttributeStatusIBs =
          [1649152567.635441][16212:16217] CHIP:DMG: [
          [1649152567.635479][16212:16217] CHIP:DMG: AttributeStatusIB =
          [1649152567.635524][16212:16217] CHIP:DMG: {
          [1649152567.635565][16212:16217] CHIP:DMG: AttributePathIB =
          [1649152567.635612][16212:16217] CHIP:DMG: {
          [1649152567.635659][16212:16217] CHIP:DMG: Endpoint = 0x1,
          [1649152567.635710][16212:16217] CHIP:DMG: Cluster = 0x8,
          [1649152567.635761][16212:16217] CHIP:DMG: Attribute = 0x0000_0010,
          [1649152567.635812][16212:16217] CHIP:DMG: }
          [1649152567.635868][16212:16217] CHIP:DMG:
          [1649152567.635911][16212:16217] CHIP:DMG: StatusIB =
          [1649152567.635963][16212:16217] CHIP:DMG: {
          [1649152567.636009][16212:16217] CHIP:DMG: status = 0x00 (SUCCESS),
          [1649152567.636056][16212:16217] CHIP:DMG: },
          [1649152567.636103][16212:16217] CHIP:DMG:
          [1649152567.636145][16212:16217] CHIP:DMG: },
          [1649152567.636193][16212:16217] CHIP:DMG:
          [1649152567.636229][16212:16217] CHIP:DMG: ],
          [1649152567.636274][16212:16217] CHIP:DMG:
          [1649152567.636309][16212:16217] CHIP:DMG: InteractionModelRevision = 1
          [1649152567.636344][16212:16217] CHIP:DMG: }


          ./chip-tool any read-by-id 0x0008 0x0010 1 1

          On TH, verify the attribute value that was modified in above step

          [1655201286.054743][3608:3613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0010 DataVersion: 3958539602
          [1655201286.054836][3608:3613] CHIP:TOO: on off transition time: 1
          [1655201286.054941][3608:3613] CHIP:EM: Sending Standalone Ack for MessageCounter:21225916 on exchange 58998i
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an attribute of
          data type signed integer. +"
      PICS: MCORE.IDM.S.Attribute_W.DataType_SignedInteger
      verification: |
          DUT implementation required to verify write an attribute of data type signed integer.

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an attribute of
          data type floating point. +"
      PICS: MCORE.IDM.S.Attribute_W.DataType_FloatingPoint
      verification: |
          DUT implementation required to verify write an attribute of data type float

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an attribute of
          data type Octet String. +"
      PICS: MCORE.IDM.S.Attribute_W.DataType_OctetString
      verification: |
          DUT implementation required to verify write an attribute of data type Octet String

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an attribute of
          data type Struct. +"
      PICS: MCORE.IDM.S.Attribute_W.DataType_Struct
      verification: |
          DUT implementation required to verify write an attribute ofdata type Struct

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an attribute of
          data type List. +"
      PICS: MCORE.IDM.S.Attribute_W.DataType_List
      verification: |
          DUT implementation required to verify write an attribute of  data type List

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an attribute of
          data type enum. +"
      PICS: MCORE.IDM.S.Attribute_W.DataType_Enum
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.
           ./chip-tool any write-by-id 0x0204 0 1 1 1

          On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified.

          [1649152707.514290][16226:16231] CHIP:DMG: WriteResponseMessage =
          [1649152707.514324][16226:16231] CHIP:DMG: {
          [1649152707.514354][16226:16231] CHIP:DMG: AttributeStatusIBs =
          [1649152707.514396][16226:16231] CHIP:DMG: [
          [1649152707.514429][16226:16231] CHIP:DMG: AttributeStatusIB =
          [1649152707.514476][16226:16231] CHIP:DMG: {
          [1649152707.514511][16226:16231] CHIP:DMG: AttributePathIB =
          [1649152707.514553][16226:16231] CHIP:DMG: {
          [1649152707.514600][16226:16231] CHIP:DMG: Endpoint = 0x1,
          [1649152707.514646][16226:16231] CHIP:DMG: Cluster = 0x204,
          [1649152707.514691][16226:16231] CHIP:DMG: Attribute = 0x0000_0000,
          [1649152707.514734][16226:16231] CHIP:DMG: }
          [1649152707.514781][16226:16231] CHIP:DMG:
          [1649152707.514820][16226:16231] CHIP:DMG: StatusIB =
          [1649152707.514867][16226:16231] CHIP:DMG: {
          [1649152707.514908][16226:16231] CHIP:DMG: status = 0x00 (SUCCESS),
          [1649152707.514995][16226:16231] CHIP:DMG: },
          [1649152707.515038][16226:16231] CHIP:DMG:
          [1649152707.515072][16226:16231] CHIP:DMG: },
          [1649152707.515113][16226:16231] CHIP:DMG:
          [1649152707.515145][16226:16231] CHIP:DMG: ],
          [1649152707.515186][16226:16231] CHIP:DMG:
          [1649152707.515218][16226:16231] CHIP:DMG: InteractionModelRevision = 1
          [1649152707.515250][16226:16231] CHIP:DMG: }
          [1649152707.515374][16226:16231] CHIP:DMG: WriteClient moving to [AwaitingDe]

          ./chip-tool any read-by-id 0x0204 0 1 1

          [1655201353.941835][3634:3639] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0204 Attribute 0x0000_0000 DataVersion: 263686993
          [1655201353.941926][3634:3639] CHIP:TOO: temperature display mode: 1
          [1655201353.942030][3634:3639] CHIP:EM: Sending Standalone Ack for MessageCounter:58103180 on exchange 16578i
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an attribute of
          data type bitmap. +"
      PICS: MCORE.IDM.S.Attribute_W.DataType_Bitmap
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.

           ./chip-tool colorcontrol write-by-id 0x000f 1 1 1

          On TH, verify that DUT sends a WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified.

          [1649152768.817940][16237:16242] CHIP:DMG: WriteResponseMessage =
          [1649152768.817971][16237:16242] CHIP:DMG: {
          [1649152768.817999][16237:16242] CHIP:DMG: AttributeStatusIBs =
          [1649152768.818038][16237:16242] CHIP:DMG: [
          [1649152768.818068][16237:16242] CHIP:DMG: AttributeStatusIB =
          [1649152768.818111][16237:16242] CHIP:DMG: {
          [1649152768.818146][16237:16242] CHIP:DMG: AttributePathIB =
          [1649152768.818188][16237:16242] CHIP:DMG: {
          [1649152768.818230][16237:16242] CHIP:DMG: Endpoint = 0x1,
          [1649152768.818275][16237:16242] CHIP:DMG: Cluster = 0x300,
          [1649152768.818317][16237:16242] CHIP:DMG: Attribute = 0x0000_000F,
          [1649152768.818358][16237:16242] CHIP:DMG: }
          [1649152768.818405][16237:16242] CHIP:DMG:
          [1649152768.818443][16237:16242] CHIP:DMG: StatusIB =
          [1649152768.818485][16237:16242] CHIP:DMG: {
          [1649152768.818521][16237:16242] CHIP:DMG: status = 0x00 (SUCCESS),
          [1649152768.818559][16237:16242] CHIP:DMG: },
          [1649152768.818602][16237:16242] CHIP:DMG:
          [1649152768.818640][16237:16242] CHIP:DMG: },
          [1649152768.818681][16237:16242] CHIP:DMG:
          [1649152768.818710][16237:16242] CHIP:DMG: ],
          [1649152768.818747][16237:16242] CHIP:DMG:
          [1649152768.818777][16237:16242] CHIP:DMG: InteractionModelRevision = 1
          [1649152768.818806][16237:16242] CHIP:DMG: }
          [1649152768.818890][16237:16242] CHIP:DMG: WriteClient moving to [AwaitingDe]


           ./chip-tool colorcontrol read-by-id 0x000f 1 1

          On TH, verify the attribute value that was modified in above step

          [1655201495.606584][3665:3670] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0300 Attribute 0x0000_000F DataVersion: 1452005257
          [1655201495.606671][3665:3670] CHIP:TOO: Options: 1
          [1655201495.606772][3665:3670] CHIP:EM: Sending Standalone Ack for MessageCounter:247256099 on exchange 33946i
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write any attribute on
          an unsupported node. DUT responds with the Write Response action"
      verification: |
          Out of Scope for V1.0
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write any attribute on
          an unsupported Endpoint. DUT responds with the Write Response action"
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.

           ./chip-tool levelcontrol write on-level 2 1 20

          On TH, Verify  that the DUT sends the status code UNSUPPORTED_ENDPOINT for the data sent in the above command

          1649153009.582466][16268:16273] CHIP:DMG: WriteResponseMessage =
          [1649153009.582507][16268:16273] CHIP:DMG: {
          [1649153009.582557][16268:16273] CHIP:DMG: AttributeStatusIBs =
          [1649153009.582610][16268:16273] CHIP:DMG: [
          [1649153009.582667][16268:16273] CHIP:DMG: AttributeStatusIB =
          [1649153009.582723][16268:16273] CHIP:DMG: {
          [1649153009.582779][16268:16273] CHIP:DMG: AttributePathIB =
          [1649153009.582831][16268:16273] CHIP:DMG: {
          [1649153009.582899][16268:16273] CHIP:DMG: Endpoint = 0x14,
          [1649153009.582970][16268:16273] CHIP:DMG: Cluster = 0x8,
          [1649153009.583031][16268:16273] CHIP:DMG: Attribute = 0x0000_0011,
          [1649153009.583087][16268:16273] CHIP:DMG: }
          [1649153009.583166][16268:16273] CHIP:DMG:
          [1649153009.583221][16268:16273] CHIP:DMG: StatusIB =
          [1649153009.583291][16268:16273] CHIP:DMG: {
          [1649153009.583362][16268:16273] CHIP:DMG: status = 0x7f (UNSUPPORTED_ENDPOINT),
          [1649153009.583415][16268:16273] CHIP:DMG: },
          [1649153009.583481][16268:16273] CHIP:DMG:
          [1649153009.583527][16268:16273] CHIP:DMG: },
          [1649153009.583594][16268:16273] CHIP:DMG:
          [1649153009.583634][16268:16273] CHIP:DMG: ],
          [1649153009.583697][16268:16273] CHIP:DMG:
          [1649153009.583751][16268:16273] CHIP:DMG: InteractionModelRevision = 1
          [1649153009.583790][16268:16273] CHIP:DMG: }
          [1649153009.583903][16268:16273] CHIP:TOO: Response Failure: IM Error 0x0000057F: General error: 0x7f (UNSUPPORTED_ENDPOINT)
          [1649152811.554055][16246:16251] CHIP:DMG: },
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write any attribute on
          an unsupported cluster. DUT responds with the Write Response action"
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.

           ./chip-tool thermostat write unoccupied-heating-setpoint 1200 1 0

          On TH, Verify  that the DUT sends the status code UNSUPPORTED_CLUSTER for the data sent in the above command

          [1650618880.286103][2741:2746] CHIP:DMG: WriteResponseMessage =
          [1650618880.286161][2741:2746] CHIP:DMG: {
          [1650618880.286210][2741:2746] CHIP:DMG: AttributeStatusIBs =
          [1650618880.286280][2741:2746] CHIP:DMG: [
          [1650618880.286334][2741:2746] CHIP:DMG: AttributeStatusIB =
          [1650618880.286399][2741:2746] CHIP:DMG: {
          [1650618880.286456][2741:2746] CHIP:DMG: AttributePathIB =
          [1650618880.286540][2741:2746] CHIP:DMG: {
          [1650618880.286598][2741:2746] CHIP:DMG: Endpoint = 0x0,
          [1650618880.286670][2741:2746] CHIP:DMG: Cluster = 0x201,
          [1650618880.286736][2741:2746] CHIP:DMG: Attribute = 0x0000_0014,
          [1650618880.286809][2741:2746] CHIP:DMG: }
          [1650618880.286892][2741:2746] CHIP:DMG:
          [1650618880.286955][2741:2746] CHIP:DMG: StatusIB =
          [1650618880.287015][2741:2746] CHIP:DMG: {
          [1650618880.287080][2741:2746] CHIP:DMG: status = 0xc3 (UNSUPPORTED_CLUSTER),
          [1650618880.287144][2741:2746] CHIP:DMG: },
          [1650618880.287208][2741:2746] CHIP:DMG:
          [1650618880.287267][2741:2746] CHIP:DMG: },
          [1650618880.287328][2741:2746] CHIP:DMG:
          [1650618880.287377][2741:2746] CHIP:DMG: ],
          [1650618880.287440][2741:2746] CHIP:DMG:
          [1650618880.287489][2741:2746] CHIP:DMG: InteractionModelRevision = 1
          [1650618880.287538][2741:2746] CHIP:DMG: }
          [1650618880.287657][2741:2746] CHIP:TOO: Response Failure: IM Error 0x000005C3: General error: 0xc3 (UNSUPPORTED_CLUSTER)
          [1650618880.287735][2741:2746] CHIP:DMG: WriteClient moving to [AwaitingDe]
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an unsupported
          attribute DUT responds with the Write Response action"
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.

           ./chip-tool thermostat write unoccupied-heating-setpoint 1200 1 1

          On TH, Verify  that the DUT sends the status code  UNSUPPORTED_ATTRIBUTE for the data sent in the above command

          [1650618819.921180][2730:2735] CHIP:DMG: WriteResponseMessage =
          [1650618819.921212][2730:2735] CHIP:DMG: {
          [1650618819.921237][2730:2735] CHIP:DMG: AttributeStatusIBs =
          [1650618819.921273][2730:2735] CHIP:DMG: [
          [1650618819.921303][2730:2735] CHIP:DMG: AttributeStatusIB =
          [1650618819.921334][2730:2735] CHIP:DMG: {
          [1650618819.921364][2730:2735] CHIP:DMG: AttributePathIB =
          [1650618819.921400][2730:2735] CHIP:DMG: {
          [1650618819.921436][2730:2735] CHIP:DMG: Endpoint = 0x1,
          [1650618819.921473][2730:2735] CHIP:DMG: Cluster = 0x201,
          [1650618819.921508][2730:2735] CHIP:DMG: Attribute = 0x0000_0014,
          [1650618819.921543][2730:2735] CHIP:DMG: }
          [1650618819.921586][2730:2735] CHIP:DMG:
          [1650618819.921619][2730:2735] CHIP:DMG: StatusIB =
          [1650618819.921654][2730:2735] CHIP:DMG: {
          [1650618819.921692][2730:2735] CHIP:DMG: status = 0x86 (UNSUPPORTED_ATTRIBUTE),
          [1650618819.921733][2730:2735] CHIP:DMG: },
          [1650618819.921773][2730:2735] CHIP:DMG:
          [1650618819.921806][2730:2735] CHIP:DMG: },
          [1650618819.921843][2730:2735] CHIP:DMG:
          [1650618819.921870][2730:2735] CHIP:DMG: ],
          [1650618819.921905][2730:2735] CHIP:DMG:
          [1650618819.921932][2730:2735] CHIP:DMG: InteractionModelRevision = 1
          [1650618819.921961][2730:2735] CHIP:DMG: }
          [1650618819.922034][2730:2735] CHIP:TOO: Response Failure: IM Error 0x00000586: General error: 0x86 (UNSUPPORTED_ATTRIBUTE)
          [1650618819.922076][2730:2735] CHIP:DMG: WriteClient moving to [AwaitingDe]
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write an attribute
          which is not writable. DUT responds with the Write Response action"
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.

           ./chip-tool  basicinformation write-by-id 0x7 2 1 0

          On TH, Verify  that the DUT sends the status code  UNSUPPORTED_WRITE for the data sent in the above command

          [1655201693.989436][3767:3772] CHIP:DMG: WriteResponseMessage =
          [1655201693.989472][3767:3772] CHIP:DMG: {
          [1655201693.989504][3767:3772] CHIP:DMG: AttributeStatusIBs =
          [1655201693.989548][3767:3772] CHIP:DMG: [
          [1655201693.989584][3767:3772] CHIP:DMG: AttributeStatusIB =
          [1655201693.989673][3767:3772] CHIP:DMG: {
          [1655201693.989715][3767:3772] CHIP:DMG: AttributePathIB =
          [1655201693.989762][3767:3772] CHIP:DMG: {
          [1655201693.989810][3767:3772] CHIP:DMG: Endpoint = 0x0,
          [1655201693.989859][3767:3772] CHIP:DMG: Cluster = 0x28,
          [1655201693.989912][3767:3772] CHIP:DMG: Attribute = 0x0000_0007,
          [1655201693.989962][3767:3772] CHIP:DMG: }
          [1655201693.990012][3767:3772] CHIP:DMG:
          [1655201693.990058][3767:3772] CHIP:DMG: StatusIB =
          [1655201693.990105][3767:3772] CHIP:DMG: {
          [1655201693.990149][3767:3772] CHIP:DMG: status = 0x88 (UNSUPPORTED_WRITE),
          [1655201693.990196][3767:3772] CHIP:DMG: },
          [1655201693.990240][3767:3772] CHIP:DMG:
          [1655201693.990277][3767:3772] CHIP:DMG: },
          [1655201693.990320][3767:3772] CHIP:DMG:
          [1655201693.990355][3767:3772] CHIP:DMG: ],
          [1655201693.990398][3767:3772] CHIP:DMG:
          [1655201693.990433][3767:3772] CHIP:DMG: InteractionModelRevision = 1
          [1655201693.990467][3767:3772] CHIP:DMG: }
          [1655201693.990561][3767:3772] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1655201693.990608][3767:3772] CHIP:TOO: Response Failure: IM Error 0x00000588: General error: 0x88 (UNSUPPORTED_WRITE)
          [1655201693.990677][3767:3772] CHIP:EM: Sending Standalone Ack for MessageCounter:106116162 on exchange 12372i
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write to an attribute
          in the path that requires a privilege that is not granted for the
          cluster in the path. DUT responds with the Write Response action"
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.


          To Setup the TH such that it should not have the privilege for the cluster in the path. , 1st we need to send below mentioned ACL command
          Here by sending below mentioned ACL command giving only access for ACL cluster(31), So except identify cluster command if try to send any other command will get status as unsupported access.

          ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects":[1,112233], "targets": [{ "cluster":31, "endpoint":0, "deviceType":null }]}]' 1 0

          [1659419722.669629][1915:1920] CHIP:DMG: WriteResponseMessage =
          [1659419722.669657][1915:1920] CHIP:DMG: {
          [1659419722.669687][1915:1920] CHIP:DMG: AttributeStatusIBs =
          [1659419722.669727][1915:1920] CHIP:DMG: [
          [1659419722.669758][1915:1920] CHIP:DMG: AttributeStatusIB =
          [1659419722.669796][1915:1920] CHIP:DMG: {
          [1659419722.669833][1915:1920] CHIP:DMG: AttributePathIB =
          [1659419722.669871][1915:1920] CHIP:DMG: {
          [1659419722.669912][1915:1920] CHIP:DMG: Endpoint = 0x0,
          [1659419722.669953][1915:1920] CHIP:DMG: Cluster = 0x1f,
          [1659419722.669993][1915:1920] CHIP:DMG: Attribute = 0x0000_0000,
          [1659419722.670034][1915:1920] CHIP:DMG: }
          [1659419722.670077][1915:1920] CHIP:DMG:
          [1659419722.670114][1915:1920] CHIP:DMG: StatusIB =
          [1659419722.670153][1915:1920] CHIP:DMG: {
          [1659419722.670191][1915:1920] CHIP:DMG: status = 0x00 (SUCCESS),
          [1659419722.670229][1915:1920] CHIP:DMG: },
          [1659419722.670266][1915:1920] CHIP:DMG:
          [1659419722.670300][1915:1920] CHIP:DMG: },
          [1659419722.670343][1915:1920] CHIP:DMG:
          [1659419722.670373][1915:1920] CHIP:DMG: AttributeStatusIB =
          [1659419722.670405][1915:1920] CHIP:DMG: {
          [1659419722.670436][1915:1920] CHIP:DMG: AttributePathIB =
          [1659419722.670471][1915:1920] CHIP:DMG: {
          [1659419722.670510][1915:1920] CHIP:DMG: Endpoint = 0x0,
          [1659419722.670550][1915:1920] CHIP:DMG: Cluster = 0x1f,
          [1659419722.670590][1915:1920] CHIP:DMG: Attribute = 0x0000_0000,
          [1659419722.670661][1915:1920] CHIP:DMG: ListIndex = Null,
          [1659419722.670700][1915:1920] CHIP:DMG: }
          [1659419722.670740][1915:1920] CHIP:DMG:
          [1659419722.670776][1915:1920] CHIP:DMG: StatusIB =
          [1659419722.670813][1915:1920] CHIP:DMG: {
          [1659419722.670851][1915:1920] CHIP:DMG: status = 0x00 (SUCCESS),
          [1659419722.670888][1915:1920] CHIP:DMG: },
          [1659419722.670925][1915:1920] CHIP:DMG:
          [1659419722.670958][1915:1920] CHIP:DMG: },
          [1659419722.670994][1915:1920] CHIP:DMG:
          [1659419722.671022][1915:1920] CHIP:DMG: ],
          [1659419722.671062][1915:1920] CHIP:DMG:
          [1659419722.671092][1915:1920] CHIP:DMG: InteractionModelRevision = 1
          [1659419722.671120][1915:1920] CHIP:DMG: }
          [1659419722.671244][1915:1920] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1659419722.671314][1915:1920] CHIP:EM: Sending Standalone Ack for MessageCounter:153124628 on



          ./chip-tool thermostatuserinterfaceconfiguration write temperature-display-mode 2 1 1

          On TH, verify DUT responds as UNSUPPORTED_ACCESS for the data sent in the above command

          [1659422521.638063][2076:2081] CHIP:DMG: }
          [1659422521.638147][2076:2081] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1659422521.638185][2076:2081] CHIP:TOO: Response Failure: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS)
          [1659422521.638246][2076:2081] CHIP:EM: Sending Standalone Ack for MessageCounter:223304501 on exchange 20701i


          With the above command, we are overwriting the default privilege that chip-tool has as an admin. After this test step you need to send below mentioned command to Grant access to all clusters again.

          ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode":2, "subjects":[112233], "targets":null}]' 1 0
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to write one attribute on
          a given cluster and endpoint. Repeat the above steps 3 times."
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.

           ./chip-tool levelcontrol write on-level 2 1 1


          Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified.


          [1653028376.099679][6518:6523] CHIP:DMG: WriteResponseMessage =
          [1653028376.099696][6518:6523] CHIP:DMG: {
          [1653028376.099710][6518:6523] CHIP:DMG: AttributeStatusIBs =
          [1653028376.099814][6518:6523] CHIP:DMG: [
          [1653028376.099831][6518:6523] CHIP:DMG: AttributeStatusIB =
          [1653028376.099849][6518:6523] CHIP:DMG: {
          [1653028376.099864][6518:6523] CHIP:DMG: AttributePathIB =
          [1653028376.099882][6518:6523] CHIP:DMG: {
          [1653028376.099900][6518:6523] CHIP:DMG: Endpoint = 0x1,
          [1653028376.099917][6518:6523] CHIP:DMG: Cluster = 0x8,
          [1653028376.099935][6518:6523] CHIP:DMG: Attribute = 0x0000_0011,
          [1653028376.099952][6518:6523] CHIP:DMG: }
          [1653028376.099983][6518:6523] CHIP:DMG:
          [1653028376.099999][6518:6523] CHIP:DMG: StatusIB =
          [1653028376.100014][6518:6523] CHIP:DMG: {
          [1653028376.100031][6518:6523] CHIP:DMG: status = 0x00 (SUCCESS),
          [1653028376.100047][6518:6523] CHIP:DMG: },
          [1653028376.100065][6518:6523] CHIP:DMG:
          [1653028376.100080][6518:6523] CHIP:DMG: },
          [1653028376.100101][6518:6523] CHIP:DMG:
          [1653028376.100115][6518:6523] CHIP:DMG: ],
          [1653028376.100137][6518:6523] CHIP:DMG:
          [1653028376.100152][6518:6523] CHIP:DMG: InteractionModelRevision = 1
          [1653028376.100167][6518:6523] CHIP:DMG: }

           ./chip-tool levelcontrol read on-level 1 1

          On TH, verify the attribute value that was modified in above step

          [1666869501.888524][36718:36723] CHIP:DMG:         InteractionModelRevision = 1
          [1666869501.888527][36718:36723] CHIP:DMG: }
          [1666869501.888551][36718:36723] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 675908054
          [1666869501.888558][36718:36723] CHIP:TOO:   OnLevel: 2
          [1666869501.888582][36718:36723] CHIP:EM: <<< [E:18650i M:29255186 (Ack:60838531)] (S) Msg TX to 1:0000000000000001 [D8F1] --- Type 0000:10 (SecureChannel:StandaloneAck)
          [1666869501.888587][36718:36723] CHIP:IN: (S) Sending msg 29255186 on secure session with LSID: 21445





           ./chip-tool levelcontrol write on-level 3 1 1

          Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified.

          [1666869547.034233][36726:36731] CHIP:DMG: WriteResponseMessage =
          [1666869547.034242][36726:36731] CHIP:DMG: {
          [1666869547.034249][36726:36731] CHIP:DMG:         AttributeStatusIBs =
          [1666869547.034268][36726:36731] CHIP:DMG:         [
          [1666869547.034275][36726:36731] CHIP:DMG:                 AttributeStatusIB =
          [1666869547.034291][36726:36731] CHIP:DMG:                 {
          [1666869547.034299][36726:36731] CHIP:DMG:                         AttributePathIB =
          [1666869547.034312][36726:36731] CHIP:DMG:                         {
          [1666869547.034324][36726:36731] CHIP:DMG:                                 Endpoint = 0x1,
          [1666869547.034341][36726:36731] CHIP:DMG:                                 Cluster = 0x8,
          [1666869547.034356][36726:36731] CHIP:DMG:                                 Attribute = 0x0000_0011,
          [1666869547.034369][36726:36731] CHIP:DMG:                         }
          [1666869547.034388][36726:36731] CHIP:DMG:
          [1666869547.034401][36726:36731] CHIP:DMG:                         StatusIB =
          [1666869547.034413][36726:36731] CHIP:DMG:                         {
          [1666869547.034425][36726:36731] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1666869547.034437][36726:36731] CHIP:DMG:                         },
          [1666869547.034449][36726:36731] CHIP:DMG:
          [1666869547.034461][36726:36731] CHIP:DMG:                 },
          [1666869547.034477][36726:36731] CHIP:DMG:
          [1666869547.034485][36726:36731] CHIP:DMG:         ],
          [1666869547.034501][36726:36731] CHIP:DMG:
          [1666869547.034512][36726:36731] CHIP:DMG:         InteractionModelRevision = 1
          [1666869547.034520][36726:36731] CHIP:DMG: }
          [1666869547.034566][36726:36731] CHIP:DMG: WriteClient moving to [AwaitingDe]

           ./chip-tool levelcontrol read on-level 1 1

          On TH, verify the attribute value that was modified in above step

          [1666869620.770718][36742:36747] CHIP:DMG:         InteractionModelRevision = 1
          [1666869620.770726][36742:36747] CHIP:DMG: }
          [1666869620.770797][36742:36747] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 675908055
          [1666869620.770823][36742:36747] CHIP:TOO:   OnLevel: 3
          [1666869620.770891][36742:36747] CHIP:EM: <<< [E:14699i M:79319456 (Ack:188579584)] (S) Msg TX to 1:0000000000000001 [D8F1] --- Type 0000:10 (SecureChannel:StandaloneAck)



           ./chip-tool levelcontrol write on-level 1 1 1

          Verify on TH receives WriteResponseMessage with the status set to Success for the data sent in the above command and verify by sending a ReadRequestMessage to read the value that was modified.

          [1666869670.727210][36753:36758] CHIP:DMG: WriteClient moving to [ResponseRe]
          [1666869670.727233][36753:36758] CHIP:DMG: WriteResponseMessage =
          [1666869670.727241][36753:36758] CHIP:DMG: {
          [1666869670.727250][36753:36758] CHIP:DMG:         AttributeStatusIBs =
          [1666869670.727267][36753:36758] CHIP:DMG:         [
          [1666869670.727277][36753:36758] CHIP:DMG:                 AttributeStatusIB =
          [1666869670.727288][36753:36758] CHIP:DMG:                 {
          [1666869670.727298][36753:36758] CHIP:DMG:                         AttributePathIB =
          [1666869670.727309][36753:36758] CHIP:DMG:                         {
          [1666869670.727318][36753:36758] CHIP:DMG:                                 Endpoint = 0x1,
          [1666869670.727330][36753:36758] CHIP:DMG:                                 Cluster = 0x8,
          [1666869670.727343][36753:36758] CHIP:DMG:                                 Attribute = 0x0000_0011,
          [1666869670.727352][36753:36758] CHIP:DMG:                         }
          [1666869670.727369][36753:36758] CHIP:DMG:
          [1666869670.727378][36753:36758] CHIP:DMG:                         StatusIB =
          [1666869670.727390][36753:36758] CHIP:DMG:                         {
          [1666869670.727417][36753:36758] CHIP:DMG:                                 status = 0x00 (SUCCESS),
          [1666869670.727427][36753:36758] CHIP:DMG:                         },
          [1666869670.727438][36753:36758] CHIP:DMG:
          [1666869670.727449][36753:36758] CHIP:DMG:                 },
          [1666869670.727463][36753:36758] CHIP:DMG:
          [1666869670.727471][36753:36758] CHIP:DMG:         ],
          [1666869670.727486][36753:36758] CHIP:DMG:
          [1666869670.727496][36753:36758] CHIP:DMG:         InteractionModelRevision = 1
          [1666869670.727504][36753:36758] CHIP:DMG: }
          [1666869670.727549][36753:36758] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1666869670.727595][36753:36758] CHIP:EM: <<< [E:47112i M:145295717 (Ack:122146940)] (S) Msg TX to 1:0000000000000001 [D8F1] --- Type 0000:10 (SecureChannel:StandaloneAck)



           ./chip-tool levelcontrol read on-level 1 1

          On TH, verify the attribute value that was modified in above step

          [1666869679.964919][36761:36766] CHIP:DMG: }
          [1666869679.964987][36761:36766] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 675908056
          [1666869679.965005][36761:36766] CHIP:TOO:   OnLevel: 1
          [1666869679.965070][36761:36766] CHIP:EM: <<< [E:38092i M:162624724 (Ack:53739985)] (S) Msg TX to 1:0000000000000001 [D8F1] --- Type 0000:10 (SecureChannel:StandaloneAck)
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to modify the value of
          one attribute on a given cluster and endpoint to null. +"
      verification: |
          Out of Scope for V1.0
          https://github.com/project-chip/connectedhomeip/issues/8043
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to append an attribute
          value +"
      verification: |
          Out of Scope for V1.0
          https://github.com/project-chip/connectedhomeip/issues/8043
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to delete an attribute
          value +"
      verification: |
          Out of Scope for V1.0
          https://github.com/project-chip/connectedhomeip/issues/8043
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to modify the value of
          one attribute and Set SuppressResponse to True. +"
      verification: |
          Out of Scope for V1.0
          https://github.com/project-chip/connectedhomeip/issues/8043
      disabled: true

    - label:
          "TH sends a ReadRequest message to the DUT to read any attribute on
          any cluster. DUT returns with a report data action with the attribute
          values and the dataversion of the cluster. TH sends a
          WriteRequestMessage to the DUT to modify the value of one attribute
          with the DataVersion field set to the one received in the prior step.
          +"
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.


          ./chip-tool levelcontrol read on-level 1 1

          On TH, Verify the attribute value which is received from DUT

          [1653028897.525838][6605:6611] CHIP:DMG: ReportDataMessage =
          [1653028897.525863][6605:6611] CHIP:DMG: {
          [1653028897.525885][6605:6611] CHIP:DMG: AttributeReportIBs =
          [1653028897.525919][6605:6611] CHIP:DMG: [
          [1653028897.525940][6605:6611] CHIP:DMG: AttributeReportIB =
          [1653028897.525975][6605:6611] CHIP:DMG: {
          [1653028897.525997][6605:6611] CHIP:DMG: AttributeDataIB =
          [1653028897.526025][6605:6611] CHIP:DMG: {
          [1653028897.526051][6605:6611] CHIP:DMG: DataVersion = 0xc4c9d7ae,
          [1653028897.526075][6605:6611] CHIP:DMG: AttributePathIB =
          [1653028897.526102][6605:6611] CHIP:DMG: {
          [1653028897.526128][6605:6611] CHIP:DMG: Endpoint = 0x1,
          [1653028897.526153][6605:6611] CHIP:DMG: Cluster = 0x8,
          [1653028897.526181][6605:6611] CHIP:DMG: Attribute = 0x0000_0011,
          [1653028897.526211][6605:6611] CHIP:DMG: }
          [1653028897.526239][6605:6611] CHIP:DMG:
          [1653028897.526268][6605:6611] CHIP:DMG: Data = 2,
          [1653028897.526295][6605:6611] CHIP:DMG: },
          [1653028897.526326][6605:6611] CHIP:DMG:
          [1653028897.526347][6605:6611] CHIP:DMG: },
          [1653028897.526378][6605:6611] CHIP:DMG:
          [1653028897.526397][6605:6611] CHIP:DMG: ],
          [1653028897.526432][6605:6611] CHIP:DMG:
          [1653028897.526459][6605:6611] CHIP:DMG: SuppressResponse = true,
          [1653028897.526483][6605:6611] CHIP:DMG: InteractionModelRevision = 1
          [1653028897.526503][6605:6611] CHIP:DMG: }
          [1653028897.526687][6605:6611] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3301562286
          [1653028897.526763][6605:6611] CHIP:TOO: on level: 2

           TH sends below mentioned WriteRequestMessage to the DUT to modify the value of one attribute with the DataVersion field set to the one received in the prior step.

          ./chip-tool levelcontrol write on-level 3 1 1 --data-version 0xc4c9d7ae

           On TH, verify that DUT sends a Write Response message with a success

          [1653028938.426783][6617:6622] CHIP:DMG: WriteResponseMessage =
          [1653028938.426797][6617:6622] CHIP:DMG: {
          [1653028938.426806][6617:6622] CHIP:DMG: AttributeStatusIBs =
          [1653028938.426821][6617:6622] CHIP:DMG: [
          [1653028938.426829][6617:6622] CHIP:DMG: AttributeStatusIB =
          [1653028938.426840][6617:6622] CHIP:DMG: {
          [1653028938.426849][6617:6622] CHIP:DMG: AttributePathIB =
          [1653028938.426860][6617:6622] CHIP:DMG: {
          [1653028938.426871][6617:6622] CHIP:DMG: Endpoint = 0x1,
          [1653028938.426881][6617:6622] CHIP:DMG: Cluster = 0x8,
          [1653028938.426893][6617:6622] CHIP:DMG: Attribute = 0x0000_0011,
          [1653028938.426903][6617:6622] CHIP:DMG: }
          [1653028938.426917][6617:6622] CHIP:DMG:
          [1653028938.426925][6617:6622] CHIP:DMG: StatusIB =
          [1653028938.426936][6617:6622] CHIP:DMG: {
          [1653028938.426944][6617:6622] CHIP:DMG: status = 0x00 (SUCCESS),
          [1653028938.426952][6617:6622] CHIP:DMG: },
          [1653028938.426961][6617:6622] CHIP:DMG:
          [1653028938.426968][6617:6622] CHIP:DMG: },
          [1653028938.426978][6617:6622] CHIP:DMG:
          [1653028938.426996][6617:6622] CHIP:DMG: ],
          [1653028938.427009][6617:6622] CHIP:DMG:
          [1653028938.427017][6617:6622] CHIP:DMG: InteractionModelRevision = 1
          [1653028938.427024][6617:6622] CHIP:DMG: }

           ./chip-tool levelcontrol read on-level 1 1

          on TH verify that TH receives the WriteResponseMessage with the status set to Success for the data sent in the above command and veriy by sending a ReadRequestMessage to read the value that was modified.

          [1655201977.366318][3837:3842] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3958539604
          [1655201977.366411][3837:3842] CHIP:TOO: on level: 3
          [1655201977.366511][3837:3842] CHIP:EM: Sending Standalone Ack for MessageCounter:237652616 on exchange 15939i
      disabled: true

    - label:
          "TH sends a ReadRequest message to the DUT to read any attribute on
          any cluster. DUT returns with a report data action with the attribute
          values and the dataversion of the cluster. TH sends a
          WriteRequestMessage to the DUT to modify the value of one attribute no
          DataVersion indicated. TH sends a second WriteRequestMessage to the
          DUT to modify the value of an attribute with the dataversion field set
          to the value received earlier."
      verification: |
          The cluster used in the below command is an example, User can use any supported chip cluster/attribute/command.



          ./chip-tool levelcontrol read on-level 1 1

          On TH, Verify that DUT is responds with attribute value

          [1653029048.535610][6634:6639] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_0011 DataVersion: 3301562287
          [1653029048.535653][6634:6639] CHIP:TOO: on level: 3


          ./chip-tool levelcontrol write on-level 4 1 1

          On TH, DUT send a Write Response message with status code as success

          [1653029055.885156][6643:6648] CHIP:DMG: }
          [1653029055.885169][6643:6648] CHIP:DMG:
          [1653029055.885178][6643:6648] CHIP:DMG: StatusIB =
          [1653029055.885189][6643:6648] CHIP:DMG: {
          [1653029055.885199][6643:6648] CHIP:DMG: status = 0x00 (SUCCESS),
          [1653029055.885209][6643:6648] CHIP:DMG: },
          [1653029055.885219][6643:6648] CHIP:DMG:

          TH sends below mentioned  second WriteRequestMessage to the DUT to modify the value of an attribute with the dataversion field set to the value received earlier.

           ./chip-tool levelcontrol write on-level 4 1 1 --data-version 0xc4c9d7af

           on TH, verify that  DUT responds as DATA_VERSION_MISMATCH for the second Write request.

          [1653029088.401601][6655:6660] CHIP:DMG: WriteResponseMessage =
          [1653029088.401614][6655:6660] CHIP:DMG: {
          [1653029088.401623][6655:6660] CHIP:DMG: AttributeStatusIBs =
          [1653029088.401638][6655:6660] CHIP:DMG: [
          [1653029088.401647][6655:6660] CHIP:DMG: AttributeStatusIB =
          [1653029088.401657][6655:6660] CHIP:DMG: {
          [1653029088.401668][6655:6660] CHIP:DMG: AttributePathIB =
          [1653029088.401682][6655:6660] CHIP:DMG: {
          [1653029088.401694][6655:6660] CHIP:DMG: Endpoint = 0x1,
          [1653029088.401712][6655:6660] CHIP:DMG: Cluster = 0x8,
          [1653029088.401823][6655:6660] CHIP:DMG: Attribute = 0x0000_0011,
          [1653029088.401836][6655:6660] CHIP:DMG: }
          [1653029088.401855][6655:6660] CHIP:DMG:
          [1653029088.401869][6655:6660] CHIP:DMG: StatusIB =
          [1653029088.401884][6655:6660] CHIP:DMG: {
          [1653029088.401899][6655:6660] CHIP:DMG: status = 0x92 (DATA_VERSION_MISMATCH),
          [1653029088.401912][6655:6660] CHIP:DMG: },
          [1653029088.401928][6655:6660] CHIP:DMG:
          [1653029088.401940][6655:6660] CHIP:DMG: },
          [1653029088.401956][6655:6660] CHIP:DMG:
          [1653029088.401967][6655:6660] CHIP:DMG: ],
          [1653029088.401984][6655:6660] CHIP:DMG:
          [1653029088.401997][6655:6660] CHIP:DMG: InteractionModelRevision = 1
          [1653029088.402009][6655:6660] CHIP:DMG: }
          [1653029088.402059][6655:6660] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1653029088.402079][6655:6660] CHIP:TOO: Response Failure: IM Error 0x00000592: General error: 0x92 (DATA_VERSION_MISMATCH)
      disabled: true

    - label:
          "TH sends the WriteRequestMessage to the DUT to modify the value of a
          specific attribute data that needs Timed Write transaction to write
          and this action is not part of a Timed Write transaction."
      verification: |
          DUT implementation required to verify write an attribute which need NEEDS_TIMED_INTERACTION.

          If the Vendor DUT doesn't implement/supported this attribute, Please mark the test step as "Not Applicable"
      disabled: true
