# 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, 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: TemperatureDisplayMode: 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
