# 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.2.1. [TC-IDM-2.1] Read Request Action from DUT to TH. [{DUT_Client}]

PICS:
    - MCORE.IDM.C.ReadRequest

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

tests:
    - label: "Note"
      verification: |
          Chip-tool command used below are an example to verify the  DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read one attribute on
          a given cluster and endpoint. AttributePath = [[Endpoint = Specific
          Endpoint, Cluster = Specific ClusterID, Attribute = Specific
          Attribute]] On receipt of this message, TH should send a report data
          action with the attribute value to the DUT."
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool identify read identify-time 1 1

          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655720917.720293][10909:10909] CHIP:IM: Received Read request
          [1655720917.720414][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655720917.720461][10909:10909] CHIP:DMG: {
          [1655720917.720501][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655720917.720548][10909:10909] CHIP:DMG:         [
          [1655720917.720592][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655720917.720642][10909:10909] CHIP:DMG:                 {
          [1655720917.720694][10909:10909] CHIP:DMG:                         Endpoint = 0x1,
          [1655720917.720752][10909:10909] CHIP:DMG:                         Cluster = 0x3,
          [1655720917.720805][10909:10909] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1655720917.720858][10909:10909] CHIP:DMG:                 }
          [1655720917.720909][10909:10909] CHIP:DMG:
          [1655720917.720956][10909:10909] CHIP:DMG:         ],
          [1655720917.721006][10909:10909] CHIP:DMG:
          [1655720917.721055][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655720917.721101][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655720917.721144][10909:10909] CHIP:DMG: },
          [1655720917.721267][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]

          If the DUT has to provision to verify the logs,  verify that TH all-clusters-app sent success response

          [1657881522.001890][2575:2580] CHIP:DMG: }
          [1657881522.002053][2575:2580] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3999381333
          [1657881522.002133][2575:2580] CHIP:TOO:   identify time: 0
          [1657881522.002227][2575:2580] CHIP:EM: Sending Standalone Ack for MessageCounter:54477998 on exchange 6586i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read all attributes
          on a given cluster and Endpoint AttributePath = [[Endpoint = Specific
          Endpoint, Cluster = Specific ClusterID]] On receipt of this message,
          TH should send a report data action with the attribute value to the
          DUT."
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool any read-by-id 0x3 0xFFFFFFFF 1 0

          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          On TH
          [1655721163.411757][10909:10909] CHIP:EM: Handling via exchange: 9428r, Delegate: 0xaaaac37ce418
          [1655721163.411801][10909:10909] CHIP:IM: Received Read request
          [1655721163.411878][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655721163.411905][10909:10909] CHIP:DMG: {
          [1655721163.411927][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655721163.411950][10909:10909] CHIP:DMG:         [
          [1655721163.411970][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655721163.411994][10909:10909] CHIP:DMG:                 {
          [1655721163.412018][10909:10909] CHIP:DMG:                         Endpoint = 0x0,
          [1655721163.412051][10909:10909] CHIP:DMG:                         Cluster = 0x3,
          [1655721163.412078][10909:10909] CHIP:DMG:                 }
          [1655721163.412107][10909:10909] CHIP:DMG:
          [1655721163.412132][10909:10909] CHIP:DMG:         ],
          [1655721163.412160][10909:10909] CHIP:DMG:
          [1655721163.412187][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655721163.412212][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655721163.412236][10909:10909] CHIP:DMG: },
          [1655721163.412312][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]



          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response
          [1657881584.166241][2584:2589] CHIP:DMG: }
          [1657881584.166599][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 4079829024
          [1657881584.166672][2584:2589] CHIP:TOO:   identify time: 0
          [1657881584.166734][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024
          [1657881584.166761][2584:2589] CHIP:TOO:   identify type: 2
          [1657881584.166817][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 4079829024
          [1657881584.166844][2584:2589] CHIP:TOO:   FeatureMap: 0
          [1657881584.166900][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 4079829024
          [1657881584.166940][2584:2589] CHIP:TOO:   ClusterRevision: 4
          [1657881584.167054][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 4079829024
          [1657881584.167101][2584:2589] CHIP:TOO:   GeneratedCommandList: 0 entries
          [1657881584.167276][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFF9 DataVersion: 4079829024
          [1657881584.167309][2584:2589] CHIP:TOO:   AcceptedCommandList: 2 entries
          [1657881584.167337][2584:2589] CHIP:TOO:     [1]: 0
          [1657881584.167362][2584:2589] CHIP:TOO:     [2]: 64
          [1657881584.167690][2584:2589] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFB DataVersion: 4079829024
          [1657881584.167725][2584:2589] CHIP:TOO:   AttributeList: 7 entries
          [1657881584.167752][2584:2589] CHIP:TOO:     [1]: 0
          [1657881584.167777][2584:2589] CHIP:TOO:     [2]: 1
          [1657881584.167801][2584:2589] CHIP:TOO:     [3]: 65528
          [1657881584.167825][2584:2589] CHIP:TOO:     [4]: 65529
          [1657881584.167850][2584:2589] CHIP:TOO:     [5]: 65531
          [1657881584.167874][2584:2589] CHIP:TOO:     [6]: 65532
          [1657881584.167898][2584:2589] CHIP:TOO:     [7]: 65533
          [1657881584.168029][2584:2589] CHIP:EM: Sending Standalone Ack for MessageCounter:84499870 on exchange 45190i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read all attributes
          in all clusters and all endpoints Path = [[ ]] On receipt of this
          message, TH should send a report data action with the attribute values
          to the DUT."
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFFFFFF  1 0xFFFF

          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command and
          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read a specific
          attribute from all endpoints and all clusters. AttributePath = [[
          Attribute = Specific Attribute]] On receipt of this message, TH should
          send a report data action with the attribute value to the DUT."
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
          ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFD  1 0xFFFF

          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655721447.462511][10909:10909] CHIP:EM: Handling via exchange: 28866r, Delegate: 0xaaaac37ce418
          [1655721447.462589][10909:10909] CHIP:IM: Received Read request
          [1655721447.462717][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655721447.462770][10909:10909] CHIP:DMG: {
          [1655721447.462817][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655721447.462908][10909:10909] CHIP:DMG:         [
          [1655721447.462961][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655721447.463014][10909:10909] CHIP:DMG:                 {
          [1655721447.463066][10909:10909] CHIP:DMG:                 }
          [1655721447.463121][10909:10909] CHIP:DMG:
          [1655721447.463173][10909:10909] CHIP:DMG:         ],
          [1655721447.463228][10909:10909] CHIP:DMG:
          [1655721447.463282][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655721447.463334][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655721447.463382][10909:10909] CHIP:DMG: },
          [1655721447.463503][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]

          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read all attributes
          from a specific cluster on all endpoints AttributePath = [[ Cluster =
          Specific ClusterID]] On receipt of this message, TH should send a
          report data action with the attribute value to the DUT."
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool any read-by-id 0x03 0xFFFFFFFF  1 0xFFFF
          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655721586.587649][10909:10909] CHIP:EM: Handling via exchange: 14559r, Delegate: 0xaaaac37ce418
          [1655721586.587708][10909:10909] CHIP:IM: Received Read request
          [1655721586.587805][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655721586.587843][10909:10909] CHIP:DMG: {
          [1655721586.587876][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655721586.587914][10909:10909] CHIP:DMG:         [
          [1655721586.587949][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655721586.587998][10909:10909] CHIP:DMG:                 {
          [1655721586.588041][10909:10909] CHIP:DMG:                         Cluster = 0x3,
          [1655721586.588085][10909:10909] CHIP:DMG:                 }
          [1655721586.588125][10909:10909] CHIP:DMG:
          [1655721586.588162][10909:10909] CHIP:DMG:         ],
          [1655721586.588201][10909:10909] CHIP:DMG:
          [1655721586.588239][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655721586.588276][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655721586.588310][10909:10909] CHIP:DMG: },
          [1655721586.588403][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1655721586.588510][10909:10909] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0

          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
          [1657881729.900518][2608:2613] CHIP:DMG: }
          [1657881729.901108][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 4079829024
          [1657881729.901182][2608:2613] CHIP:TOO:   identify time: 0
          [1657881729.901245][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024
          [1657881729.901273][2608:2613] CHIP:TOO:   identify type: 2
          [1657881729.901331][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 4079829024
          [1657881729.901359][2608:2613] CHIP:TOO:   FeatureMap: 0
          [1657881729.901431][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 4079829024
          [1657881729.901472][2608:2613] CHIP:TOO:   ClusterRevision: 4
          [1657881729.901586][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 4079829024
          [1657881729.901632][2608:2613] CHIP:TOO:   GeneratedCommandList: 0 entries
          [1657881729.901806][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFF9 DataVersion: 4079829024
          [1657881729.901840][2608:2613] CHIP:TOO:   AcceptedCommandList: 2 entries
          [1657881729.901868][2608:2613] CHIP:TOO:     [1]: 0
          [1657881729.901893][2608:2613] CHIP:TOO:     [2]: 64
          [1657881729.902242][2608:2613] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFB DataVersion: 4079829024
          [1657881729.902279][2608:2613] CHIP:TOO:   AttributeList: 7 entries
          [1657881729.902305][2608:2613] CHIP:TOO:     [1]: 0
          [1657881729.902329][2608:2613] CHIP:TOO:     [2]: 1
          [1657881729.902354][2608:2613] CHIP:TOO:     [3]: 65528
          [1657881729.902378][2608:2613] CHIP:TOO:     [4]: 65529
          [1657881729.902402][2608:2613] CHIP:TOO:     [5]: 65531
          [1657881729.902426][2608:2613] CHIP:TOO:     [6]: 65532
          [1657881729.902451][2608:2613] CHIP:TOO:     [7]: 65533
          [1657881729.902474][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0000 DataVersion: 3999381333
          [1657881729.902500][2608:2613] CHIP:TOO:   identify time: 0
          [1657881729.902556][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3999381333
          [1657881729.902583][2608:2613] CHIP:TOO:   identify type: 2
          [1657881729.902640][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFC DataVersion: 3999381333
          [1657881729.902665][2608:2613] CHIP:TOO:   FeatureMap: 0
          [1657881729.902721][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 3999381333
          [1657881729.902746][2608:2613] CHIP:TOO:   ClusterRevision: 4
          [1657881729.902843][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF8 DataVersion: 3999381333
          [1657881729.902872][2608:2613] CHIP:TOO:   GeneratedCommandList: 0 entries
          [1657881729.903021][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFF9 DataVersion: 3999381333
          [1657881729.903053][2608:2613] CHIP:TOO:   AcceptedCommandList: 2 entries
          [1657881729.903079][2608:2613] CHIP:TOO:     [1]: 0
          [1657881729.903104][2608:2613] CHIP:TOO:     [2]: 64
          [1657881729.903427][2608:2613] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_FFFB DataVersion: 3999381333
          [1657881729.903462][2608:2613] CHIP:TOO:   AttributeList: 7 entries
          [1657881729.903488][2608:2613] CHIP:TOO:     [1]: 0
          [1657881729.903513][2608:2613] CHIP:TOO:     [2]: 1
          [1657881729.903537][2608:2613] CHIP:TOO:     [3]: 65528
          [1657881729.903561][2608:2613] CHIP:TOO:     [4]: 65529
          [1657881729.903586][2608:2613] CHIP:TOO:     [5]: 65531
          [1657881729.903610][2608:2613] CHIP:TOO:     [6]: 65532
          [1657881729.903634][2608:2613] CHIP:TOO:     [7]: 65533
          [1657881729.903843][2608:2613] CHIP:EM: Sending Standalone Ack for MessageCounter:174033086 on exchange 10540i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read a specific
          attribute from a given cluster on all endpoints. AttributePath = [[
          Cluster = Specific Cluster, Attribute = specific attribute]] On
          receipt of this message, TH should send a report data action with the
          attribute value to the DUT."
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool any read-by-id 0x03 0x01  1 0xFFFF
          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655721699.304979][10909:10909] CHIP:IM: Received Read request
          [1655721699.305100][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655721699.305170][10909:10909] CHIP:DMG: {
          [1655721699.305211][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655721699.305277][10909:10909] CHIP:DMG:         [
          [1655721699.305322][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655721699.305391][10909:10909] CHIP:DMG:                 {
          [1655721699.305442][10909:10909] CHIP:DMG:                         Cluster = 0x3,
          [1655721699.305516][10909:10909] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1655721699.305568][10909:10909] CHIP:DMG:                 }
          [1655721699.305635][10909:10909] CHIP:DMG:
          [1655721699.305682][10909:10909] CHIP:DMG:         ],
          [1655721699.305733][10909:10909] CHIP:DMG:
          [1655721699.305780][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655721699.305827][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655721699.305870][10909:10909] CHIP:DMG: },
          [1655721699.305990][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]


          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
          [1657881792.350417][2616:2621] CHIP:DMG: }
          [1657881792.350641][2616:2621] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024
          [1657881792.350742][2616:2621] CHIP:TOO:   identify type: 2
          [1657881792.350845][2616:2621] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 3999381333
          [1657881792.350891][2616:2621] CHIP:TOO:   identify type: 2
          [1657881792.351000][2616:2621] CHIP:EM: Sending Standalone Ack for MessageCounter:222990264 on exchange 23721i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read all attributes
          from all clusters at a given endpoint. AttributePath = [[ Endpoint =
          Specific Endpoint]] On receipt of this message, TH should send a
          report data action with the attribute value to the DUT."
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

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

          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655721846.893983][10909:10909] CHIP:EM: Handling via exchange: 50021r, Delegate: 0xaaaac37ce418
          [1655721846.894041][10909:10909] CHIP:IM: Received Read request
          [1655721846.894136][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655721846.894174][10909:10909] CHIP:DMG: {
          [1655721846.894206][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655721846.894245][10909:10909] CHIP:DMG:         [
          [1655721846.894280][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655721846.894320][10909:10909] CHIP:DMG:                 {
          [1655721846.894360][10909:10909] CHIP:DMG:                         Endpoint = 0x1,
          [1655721846.894403][10909:10909] CHIP:DMG:                 }
          [1655721846.894443][10909:10909] CHIP:DMG:
          [1655721846.894479][10909:10909] CHIP:DMG:         ],
          [1655721846.894519][10909:10909] CHIP:DMG:
          [1655721846.894557][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655721846.894594][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655721846.894628][10909:10909] CHIP:DMG: },
          [1655721846.894724][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]



          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to a specific endpoint
          to read a particular attribute from all the clusters at that endpoint
          AttributePath = [[ Endpoint = Specific Endpoint, Attribute = specific
          attribute]] On receipt of this message, TH should send a report data
          action with the attribute value to the DUT."
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFD  1 0

          verify TH(reference app) receives the right Read Request Message for the data sent in the above command

          [1655721935.483404][10909:10909] CHIP:EM: Handling via exchange: 59853r, Delegate: 0xaaaac37ce418
          [1655721935.483474][10909:10909] CHIP:IM: Received Read request
          [1655721935.483595][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655721935.483660][10909:10909] CHIP:DMG: {
          [1655721935.483701][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655721935.483767][10909:10909] CHIP:DMG:         [
          [1655721935.483813][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655721935.483881][10909:10909] CHIP:DMG:                 {
          [1655721935.483934][10909:10909] CHIP:DMG:                         Endpoint = 0x0,
          [1655721935.484022][10909:10909] CHIP:DMG:                         Attribute = 0x0000_FFFD,
          [1655721935.484095][10909:10909] CHIP:DMG:                 }
          [1655721935.484156][10909:10909] CHIP:DMG:
          [1655721935.484225][10909:10909] CHIP:DMG:         ],
          [1655721935.484279][10909:10909] CHIP:DMG:
          [1655721935.484344][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655721935.484392][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655721935.484450][10909:10909] CHIP:DMG: },
          [1655721935.484595][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]


          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
          [1657881935.225146][2631:2636] CHIP:DMG: }
          [1657881935.225620][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_FFFD DataVersion: 4079829024
          [1657881935.225700][2631:2636] CHIP:TOO:   ClusterRevision: 4
          [1657881935.225763][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0004 Attribute 0x0000_FFFD DataVersion: 130355893
          [1657881935.225790][2631:2636] CHIP:TOO:   ClusterRevision: 4
          [1657881935.225846][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001D Attribute 0x0000_FFFD DataVersion: 2043826222
          [1657881935.225872][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.225928][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001E Attribute 0x0000_FFFD DataVersion: 539126375
          [1657881935.225954][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226010][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_FFFD DataVersion: 821022762
          [1657881935.226037][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226093][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0028 Attribute 0x0000_FFFD DataVersion: 745595402
          [1657881935.226120][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226175][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002A Attribute 0x0000_FFFD DataVersion: 2914015802
          [1657881935.226201][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226258][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002B Attribute 0x0000_FFFD DataVersion: 2733214794
          [1657881935.226284][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226340][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002C Attribute 0x0000_FFFD DataVersion: 3273895737
          [1657881935.226365][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226420][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002D Attribute 0x0000_FFFD DataVersion: 2449855749
          [1657881935.226447][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226504][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002E Attribute 0x0000_FFFD DataVersion: 2597243070
          [1657881935.226530][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226586][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002F Attribute 0x0000_FFFD DataVersion: 714742425
          [1657881935.226611][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226667][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_FFFD DataVersion: 3643421834
          [1657881935.226693][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226747][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0031 Attribute 0x0000_FFFD DataVersion: 3610511831
          [1657881935.226773][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226831][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0032 Attribute 0x0000_FFFD DataVersion: 3399712075
          [1657881935.226857][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226916][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0033 Attribute 0x0000_FFFD DataVersion: 4165139953
          [1657881935.226941][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.226996][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_FFFD DataVersion: 3623073226
          [1657881935.227022][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.227077][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_FFFD DataVersion: 3137436487
          [1657881935.227103][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.227159][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0036 Attribute 0x0000_FFFD DataVersion: 1172053040
          [1657881935.227185][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.227241][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_FFFD DataVersion: 3832336232
          [1657881935.227267][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.227325][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003C Attribute 0x0000_FFFD DataVersion: 4072501061
          [1657881935.227350][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.227407][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_FFFD DataVersion: 1112172817
          [1657881935.227433][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.227488][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003F Attribute 0x0000_FFFD DataVersion: 2917149142
          [1657881935.227515][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.227572][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0040 Attribute 0x0000_FFFD DataVersion: 1676181270
          [1657881935.227611][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.227669][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0041 Attribute 0x0000_FFFD DataVersion: 4002139741
          [1657881935.227695][2631:2636] CHIP:TOO:   ClusterRevision: 1
          [1657881935.227752][2631:2636] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0405 Attribute 0x0000_FFFD DataVersion: 2945088432
          [1657881935.227778][2631:2636] CHIP:TOO:   ClusterRevision: 3
          [1657881935.227936][2631:2636] CHIP:EM: Sending Standalone Ack for MessageCounter:199380325 on exchange 6370i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read an attribute of
          data type bool."
      PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_Bool
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

           ./chip-tool onoff read on-off 1 1

          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655722298.458183][10909:10909] CHIP:EM: Handling via exchange: 9588r, Delegate: 0xaaaac37ce418
          [1655722298.458279][10909:10909] CHIP:IM: Received Read request
          [1655722298.458481][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655722298.458544][10909:10909] CHIP:DMG: {
          [1655722298.458617][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655722298.458680][10909:10909] CHIP:DMG:         [
          [1655722298.458740][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655722298.458827][10909:10909] CHIP:DMG:                 {
          [1655722298.458936][10909:10909] CHIP:DMG:                         Endpoint = 0x1,
          [1655722298.459034][10909:10909] CHIP:DMG:                         Cluster = 0x6,
          [1655722298.459114][10909:10909] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1655722298.459208][10909:10909] CHIP:DMG:                 }
          [1655722298.459283][10909:10909] CHIP:DMG:
          [1655722298.459366][10909:10909] CHIP:DMG:         ],
          [1655722298.459435][10909:10909] CHIP:DMG:
          [1655722298.459519][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655722298.459581][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655722298.459659][10909:10909] CHIP:DMG: },
          [1655722298.459820][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]


          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
          [1657881978.415828][2640:2645] CHIP:DMG: }
          [1657881978.416014][2640:2645] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0006 Attribute 0x0000_0000 DataVersion: 4019194565
          [1657881978.416091][2640:2645] CHIP:TOO:   OnOff: FALSE
          [1657881978.416245][2640:2645] CHIP:EM: Sending Standalone Ack for MessageCounter:144208215 on exchange 38107i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read an attribute of
          data type string."
      PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_String
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool modeselect read description  1 1
          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655722750.452237][10909:10909] CHIP:EM: Handling via exchange: 31886r, Delegate: 0xaaaac37ce418
          [1655722750.452324][10909:10909] CHIP:IM: Received Read request
          [1655722750.452462][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655722750.452515][10909:10909] CHIP:DMG: {
          [1655722750.452560][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655722750.452614][10909:10909] CHIP:DMG:         [
          [1655722750.452664][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655722750.452729][10909:10909] CHIP:DMG:                 {
          [1655722750.452789][10909:10909] CHIP:DMG:                         Endpoint = 0x1,
          [1655722750.452854][10909:10909] CHIP:DMG:                         Cluster = 0x50,
          [1655722750.452926][10909:10909] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1655722750.452986][10909:10909] CHIP:DMG:                 }
          [1655722750.453049][10909:10909] CHIP:DMG:
          [1655722750.453102][10909:10909] CHIP:DMG:         ],
          [1655722750.453160][10909:10909] CHIP:DMG:
          [1655722750.453215][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655722750.453268][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655722750.453316][10909:10909] CHIP:DMG: },
          [1655722750.453457][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]


          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
          [1657882077.867099][2655:2660] CHIP:DMG: }
          [1657882077.867278][2655:2660] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0000 DataVersion: 321966114
          [1657882077.867352][2655:2660] CHIP:TOO:   Description: Coffee
          [1657882077.867466][2655:2660] CHIP:EM: Sending Standalone Ack for MessageCounter:62608362 on exchange 57811i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read an attribute of
          data type unsigned integer."
      PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_UnsignedInteger
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool any read-by-id 0x3 0x1 1 0

          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655722980.956846][10909:10909] CHIP:IM: Received Read request
          [1655722980.956933][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655722980.956978][10909:10909] CHIP:DMG: {
          [1655722980.957006][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655722980.957037][10909:10909] CHIP:DMG:         [
          [1655722980.957078][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655722980.957112][10909:10909] CHIP:DMG:                 {
          [1655722980.957157][10909:10909] CHIP:DMG:                         Endpoint = 0x0,
          [1655722980.957207][10909:10909] CHIP:DMG:                         Cluster = 0x3,
          [1655722980.957245][10909:10909] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1655722980.957282][10909:10909] CHIP:DMG:                 }
          [1655722980.957328][10909:10909] CHIP:DMG:
          [1655722980.957359][10909:10909] CHIP:DMG:         ],
          [1655722980.957404][10909:10909] CHIP:DMG:
          [1655722980.957436][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655722980.957477][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655722980.957506][10909:10909] CHIP:DMG: },
          [1655722980.957605][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]



          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
          [1657882043.053353][2648:2653] CHIP:DMG: }
          [1657882043.053561][2648:2653] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0003 Attribute 0x0000_0001 DataVersion: 4079829024
          [1657882043.053662][2648:2653] CHIP:TOO:   identify type: 2
          [1657882043.053774][2648:2653] CHIP:EM: Sending Standalone Ack for MessageCounter:228608905 on exchange 11019i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read an attribute of
          data type signed integer."
      PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_SignedInteger
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool pressuremeasurement read measured-value 1 1

          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655723021.112808][10909:10909] CHIP:IM: Received Read request
          [1655723021.112912][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655723021.112942][10909:10909] CHIP:DMG: {
          [1655723021.112963][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655723021.112990][10909:10909] CHIP:DMG:         [
          [1655723021.113013][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655723021.113038][10909:10909] CHIP:DMG:                 {
          [1655723021.113068][10909:10909] CHIP:DMG:                         Endpoint = 0x1,
          [1655723021.113096][10909:10909] CHIP:DMG:                         Cluster = 0x403,
          [1655723021.113125][10909:10909] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1655723021.113166][10909:10909] CHIP:DMG:                 }
          [1655723021.113195][10909:10909] CHIP:DMG:
          [1655723021.113228][10909:10909] CHIP:DMG:         ],
          [1655723021.113257][10909:10909] CHIP:DMG:
          [1655723021.113292][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655723021.113318][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655723021.113349][10909:10909] CHIP:DMG: },
          [1655723021.113441][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]



          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
          [1657882152.821695][2665:2670] CHIP:DMG: }
          [1657882152.821886][2665:2670] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0403 Attribute 0x0000_0000 DataVersion: 1184750328
          [1657882152.821981][2665:2670] CHIP:TOO:   MeasuredValue: 0
          [1657882152.822099][2665:2670] CHIP:EM: Sending Standalone Ack for MessageCounter:178527554 on exchange 52092i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read an attribute of
          data type floating point."
      PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_FloatingPoint
      verification: |
          DUT implementation required to verify read 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:
          "DUT sends the Read Request Message to the TH to read an attribute of
          data type Octet String."
      PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_OctetString
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool operationalcredentials read trusted-root-certificates 1 0

          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655723062.690255][10909:10909] CHIP:EM: Handling via exchange: 36548r, Delegate: 0xaaaac37ce418
          [1655723062.690334][10909:10909] CHIP:IM: Received Read request
          [1655723062.690471][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655723062.690549][10909:10909] CHIP:DMG: {
          [1655723062.690596][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655723062.690667][10909:10909] CHIP:DMG:         [
          [1655723062.690719][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655723062.690792][10909:10909] CHIP:DMG:                 {
          [1655723062.690888][10909:10909] CHIP:DMG:                         Endpoint = 0x0,
          [1655723062.690980][10909:10909] CHIP:DMG:                         Cluster = 0x3e,
          [1655723062.691047][10909:10909] CHIP:DMG:                         Attribute = 0x0000_0004,
          [1655723062.691123][10909:10909] CHIP:DMG:                 }
          [1655723062.691186][10909:10909] CHIP:DMG:
          [1655723062.691257][10909:10909] CHIP:DMG:         ],
          [1655723062.691317][10909:10909] CHIP:DMG:
          [1655723062.691389][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655723062.691441][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655723062.691494][10909:10909] CHIP:DMG: },
          [1655723062.691635][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]

          If the DUT has to provision to verify the logs , verify that TH all-clusters-app sent success response with attribute values
          [1657882197.831561][2673:2678] CHIP:DMG: }
          [1657882197.831802][2673:2678] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_003E Attribute 0x0000_0004 DataVersion: 1112172817
          [1657882197.831892][2673:2678] CHIP:TOO:   TrustedRootCertificates: 1 entries
          [1657882197.831940][2673:2678] CHIP:TOO:     [1]: 1530010100240201370324140018260480228127260580254D3A37062414001824070124080130094104EC98F1D5F8E4FF3B2B1B23B154C016A02843600C0D3073EFA38123BBFC62056CA4C90C591C80D1D66206DB31F3C0FA2E2A3B11377C28D1A2D5E3ED9C79B3DD75370A3501290118240260300414D3A7631B0D05BF3D059263A09502826A7E02768F300514D3A7631B0D05BF3D059263A09502826A7E02768F18300B401A2FD4DAE286A0C0E7F2A54014D19C3AA7F8A814664B14D4EDFE6D6366746B5EF86A677807BCCE30A71A1C112FF843B88044D4212197281859CED7D21D39A42418
          [1657882197.832044][2673:2678] CHIP:EM: Sending Standalone Ack for MessageCounter:182457329 on exchange 8706i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read an attribute of
          data type Struct."
      PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_Struct
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

           sudo ./chip-tool  generalcommissioning read  basic-commissioning-info   1 0

          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655723112.901814][10909:10909] CHIP:EM: Handling via exchange: 47730r, Delegate: 0xaaaac37ce418
          [1655723112.901870][10909:10909] CHIP:IM: Received Read request
          [1655723112.901972][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655723112.902025][10909:10909] CHIP:DMG: {
          [1655723112.902057][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655723112.902106][10909:10909] CHIP:DMG:         [
          [1655723112.902136][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655723112.902187][10909:10909] CHIP:DMG:                 {
          [1655723112.902229][10909:10909] CHIP:DMG:                         Endpoint = 0x0,
          [1655723112.902291][10909:10909] CHIP:DMG:                         Cluster = 0x30,
          [1655723112.902339][10909:10909] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1655723112.902395][10909:10909] CHIP:DMG:                 }
          [1655723112.902437][10909:10909] CHIP:DMG:
          [1655723112.902487][10909:10909] CHIP:DMG:         ],
          [1655723112.902529][10909:10909] CHIP:DMG:
          [1655723112.902580][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655723112.902618][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655723112.902664][10909:10909] CHIP:DMG: },
          [1655723112.902782][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]


          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
          [1657882247.469521][2681:2686] CHIP:DMG:         InteractionModelRevision = 1
          [1657882247.469553][2681:2686] CHIP:DMG: }
          [1657882247.469732][2681:2686] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0030 Attribute 0x0000_0001 DataVersion: 3643421834
          [1657882247.469825][2681:2686] CHIP:TOO:   BasicCommissioningInfo: {
          [1657882247.469886][2681:2686] CHIP:TOO:     FailSafeExpiryLengthSeconds: 60
          [1657882247.469921][2681:2686] CHIP:TOO:     MaxCumulativeFailsafeSeconds: 900
          [1657882247.469952][2681:2686] CHIP:TOO:    }
          [1657882247.470043][2681:2686] CHIP:EM: Sending Standalone Ack for MessageCounter:52322886 on exchange 1487i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read an attribute of
          data type List."
      PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_List
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

           ./chip-tool modeselect read  supported-modes 1 1

          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655723151.159473][10909:10909] CHIP:EM: Handling via exchange: 9349r, Delegate: 0xaaaac37ce418
          [1655723151.159520][10909:10909] CHIP:IM: Received Read request
          [1655723151.159615][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655723151.159646][10909:10909] CHIP:DMG: {
          [1655723151.159670][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655723151.159697][10909:10909] CHIP:DMG:         [
          [1655723151.159731][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655723151.159764][10909:10909] CHIP:DMG:                 {
          [1655723151.159808][10909:10909] CHIP:DMG:                         Endpoint = 0x1,
          [1655723151.159847][10909:10909] CHIP:DMG:                         Cluster = 0x50,
          [1655723151.159892][10909:10909] CHIP:DMG:                         Attribute = 0x0000_0002,
          [1655723151.159934][10909:10909] CHIP:DMG:                 }
          [1655723151.159967][10909:10909] CHIP:DMG:
          [1655723151.160007][10909:10909] CHIP:DMG:         ],
          [1655723151.160039][10909:10909] CHIP:DMG:
          [1655723151.160081][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655723151.160110][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655723151.160147][10909:10909] CHIP:DMG: },
          [1655723151.160243][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]


          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values

          [1657882339.679133][2701:2706] CHIP:DMG: }
          [1657882339.679605][2701:2706] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0050 Attribute 0x0000_0002 DataVersion: 321966114
          [1657882339.679722][2701:2706] CHIP:TOO:   SupportedModes: 3 entries
          [1657882339.679786][2701:2706] CHIP:TOO:     [1]: {
          [1657882339.679813][2701:2706] CHIP:TOO:       Label: Black
          [1657882339.679852][2701:2706] CHIP:TOO:       Mode: 0
          [1657882339.679883][2701:2706] CHIP:TOO:       SemanticTags: 1 entries
          [1657882339.679918][2701:2706] CHIP:TOO:         [1]: {
          [1657882339.679943][2701:2706] CHIP:TOO:           MfgCode: 0
          [1657882339.679966][2701:2706] CHIP:TOO:           Value: 0
          [1657882339.679986][2701:2706] CHIP:TOO:          }
          [1657882339.680006][2701:2706] CHIP:TOO:      }
          [1657882339.680040][2701:2706] CHIP:TOO:     [2]: {
          [1657882339.680065][2701:2706] CHIP:TOO:       Label: Cappuccino
          [1657882339.680088][2701:2706] CHIP:TOO:       Mode: 4
          [1657882339.680131][2701:2706] CHIP:TOO:       SemanticTags: 1 entries
          [1657882339.680163][2701:2706] CHIP:TOO:         [1]: {
          [1657882339.680188][2701:2706] CHIP:TOO:           MfgCode: 0
          [1657882339.680212][2701:2706] CHIP:TOO:           Value: 0
          [1657882339.680236][2701:2706] CHIP:TOO:          }
          [1657882339.680261][2701:2706] CHIP:TOO:      }
          [1657882339.680296][2701:2706] CHIP:TOO:     [3]: {
          [1657882339.680320][2701:2706] CHIP:TOO:       Label: Espresso
          [1657882339.680344][2701:2706] CHIP:TOO:       Mode: 7
          [1657882339.680371][2701:2706] CHIP:TOO:       SemanticTags: 1 entries
          [1657882339.680402][2701:2706] CHIP:TOO:         [1]: {
          [1657882339.680427][2701:2706] CHIP:TOO:           MfgCode: 0
          [1657882339.680451][2701:2706] CHIP:TOO:           Value: 0
          [1657882339.680474][2701:2706] CHIP:TOO:          }
          [1657882339.680499][2701:2706] CHIP:TOO:      }
          [1657882339.680600][2701:2706] CHIP:EM: Sending Standalone Ack for MessageCounter:207994304 on exchange 48282i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read an attribute of
          data type enum."
      PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_Enum
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool  occupancysensing read   occupancy-sensor-type 1 1
          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command

          [1655723234.547912][10909:10909] CHIP:EM: Handling via exchange: 21800r, Delegate: 0xaaaac37ce418
          [1655723234.547981][10909:10909] CHIP:IM: Received Read request
          [1655723234.548103][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655723234.548168][10909:10909] CHIP:DMG: {
          [1655723234.548209][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655723234.548270][10909:10909] CHIP:DMG:         [
          [1655723234.548323][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655723234.548387][10909:10909] CHIP:DMG:                 {
          [1655723234.548439][10909:10909] CHIP:DMG:                         Endpoint = 0x1,
          [1655723234.548510][10909:10909] CHIP:DMG:                         Cluster = 0x406,
          [1655723234.548566][10909:10909] CHIP:DMG:                         Attribute = 0x0000_0001,
          [1655723234.548634][10909:10909] CHIP:DMG:                 }
          [1655723234.548687][10909:10909] CHIP:DMG:
          [1655723234.548749][10909:10909] CHIP:DMG:         ],
          [1655723234.548800][10909:10909] CHIP:DMG:
          [1655723234.548988][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655723234.549038][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655723234.549097][10909:10909] CHIP:DMG: },
          [1655723234.549241][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]

          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
          [1657882403.876372][2715:2720] CHIP:DMG: }
          [1657882403.876514][2715:2720] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0406 Attribute 0x0000_0001 DataVersion: 737072536
          [1657882403.876595][2715:2720] CHIP:TOO:   occupancy sensor type: 0
          [1657882403.876679][2715:2720] CHIP:EM: Sending Standalone Ack for MessageCounter:153370776 on exchange 37640i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read an attribute of
          data type bitmap."
      PICS: MCORE.IDM.C.ReadRequest.Attribute.DataType_Bitmap
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool levelcontrol read options 1 1

          verify TH receives the right Read Request Message for the data sent in the above command

          [1655723282.097665][10909:10909] CHIP:IM: Received Read request
          [1655723282.097741][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655723282.097767][10909:10909] CHIP:DMG: {
          [1655723282.097789][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655723282.097814][10909:10909] CHIP:DMG:         [
          [1655723282.097838][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655723282.097865][10909:10909] CHIP:DMG:                 {
          [1655723282.097893][10909:10909] CHIP:DMG:                         Endpoint = 0x1,
          [1655723282.097923][10909:10909] CHIP:DMG:                         Cluster = 0x8,
          [1655723282.097954][10909:10909] CHIP:DMG:                         Attribute = 0x0000_000F,
          [1655723282.097982][10909:10909] CHIP:DMG:                 }
          [1655723282.098009][10909:10909] CHIP:DMG:
          [1655723282.098034][10909:10909] CHIP:DMG:         ],
          [1655723282.098061][10909:10909] CHIP:DMG:
          [1655723282.098087][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655723282.098112][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655723282.098134][10909:10909] CHIP:DMG: },
          [1655723282.098206][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]


          If the DUT has to provision to verify the logs, verify that TH all-clusters-app sent success response with attribute values
          [1657882440.996840][2725:2730] CHIP:DMG:         InteractionModelRevision = 1
          [1657882440.996862][2725:2730] CHIP:DMG: }
          [1657882440.997003][2725:2730] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0008 Attribute 0x0000_000F DataVersion: 3900213102
          [1657882440.997084][2725:2730] CHIP:TOO:   options: 0
          [1657882440.997170][2725:2730] CHIP:EM: Sending Standalone Ack for MessageCounter:250919190 on exchange 53994i
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read an attribute
          Repeat the above steps 3 times."
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

           ./chip-tool  occupancysensing read occupancy    1 1
          verify On TH(Reference app) receives the right Read Request Message for the data sent in the above command
          [1655723372.328144][10909:10909] CHIP:EM: Handling via exchange: 10813r, Delegate: 0xaaaac37ce418
          [1655723372.328201][10909:10909] CHIP:IM: Received Read request
          [1655723372.328305][10909:10909] CHIP:DMG: ReadRequestMessage =
          [1655723372.328360][10909:10909] CHIP:DMG: {
          [1655723372.328392][10909:10909] CHIP:DMG:         AttributePathIBs =
          [1655723372.328431][10909:10909] CHIP:DMG:         [
          [1655723372.328480][10909:10909] CHIP:DMG:                 AttributePathIB =
          [1655723372.328530][10909:10909] CHIP:DMG:                 {
          [1655723372.328588][10909:10909] CHIP:DMG:                         Endpoint = 0x1,
          [1655723372.328644][10909:10909] CHIP:DMG:                         Cluster = 0x406,
          [1655723372.328707][10909:10909] CHIP:DMG:                         Attribute = 0x0000_0000,
          [1655723372.328763][10909:10909] CHIP:DMG:                 }
          [1655723372.328808][10909:10909] CHIP:DMG:
          [1655723372.328861][10909:10909] CHIP:DMG:         ],
          [1655723372.328903][10909:10909] CHIP:DMG:
          [1655723372.328954][10909:10909] CHIP:DMG:         isFabricFiltered = true,
          [1655723372.328994][10909:10909] CHIP:DMG:         InteractionModelRevision = 1
          [1655723372.329041][10909:10909] CHIP:DMG: },
          [1655723372.329162][10909:10909] CHIP:DMG: IM RH moving to [GeneratingReports]


          If the DUT has to provision to verify the logs verify that TH all-clusters-app sent success response with attribute values
          [1657883628.582877][2780:2785] CHIP:DMG:         InteractionModelRevision = 1
          [1657883628.582909][2780:2785] CHIP:DMG: }
          [1657883628.583066][2780:2785] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0406 Attribute 0x0000_0000 DataVersion: 737072536
          [1657883628.583146][2780:2785] CHIP:TOO:   occupancy: 0
          [1657883628.583225][2780:2785] CHIP:EM: Sending Standalone Ack for MessageCounter:68376422 on exchange 7437i


           ./chip-tool  occupancysensing read occupancy    1 1
          verify TH receives the right Read Request Message for the data sent in the above command

           ./chip-tool  occupancysensing read occupancy    1 1
          verify TH receives the right Read Request Message for the data sent in the above command
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH to read
          something(Attribute) which is larger than 1 MTU(1280 bytes) and per
          spec can be chunked. For every chunked data message received, except
          the last one, DUT sends a status response."
      verification: |
          DUT implementation required to verify read an attribute which is is larger than 1 MTU(1280 bytes)
          Below sample wildcard read command will read all the attributes from the all-clusters-app and generates 1 MTU size of data.
          If the dut doesn"t support generating the large chunk data, then this test step can be skipped.
          Verify the last chunked data is having Suppress response True & TH will not send the Ack message.

          ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF


          From TH(all-clusters-app) will send read request to DUT(chip-tool), Then DUT(chip-tool) will send the report data message for the request which sent from TH(All-clusters-app), this report message keep on generating  the report data until it reaches the last chuck message and for last chunk message TH(all-clusters-app) will not receive any status response.

          [1663148506.794519][39604:39604] CHIP:EM: Removed CHIP MessageCounter:119127068 from RetransTable on exchange 23857r
          [1663148506.794525][39604:39604] CHIP:DMG: StatusResponseMessage =
          [1663148506.794527][39604:39604] CHIP:DMG: {
          [1663148506.794530][39604:39604] CHIP:DMG:         Status = 0x00 (SUCCESS),
          [1663148506.794533][39604:39604] CHIP:DMG:         InteractionModelRevision = 1
          [1663148506.794535][39604:39604] CHIP:DMG: }
          [1663148506.794538][39604:39604] CHIP:IM: Received status response, status is 0x00 (SUCCESS)
          [1663148506.794542][39604:39604] CHIP:DMG: <RE> OnReportConfirm: NumReports = 0
          [1663148506.794544][39604:39604] CHIP:DMG: IM RH moving to [GeneratingReports]
          [1663148506.794550][39604:39604] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
          [1663148506.794553][39604:39604] CHIP:DMG: <RE:Run> Cluster 2f, Attribute fffb is dirty
          [1663148506.794554][39604:39604] CHIP:DMG: Reading attribute: Cluster=0x0000_002F Endpoint=2 AttributeId=0x0000_FFFB (expanded=1)
          [1663148506.794558][39604:39604] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002F e=2 p=v
          [1663148506.794561][39604:39604] CHIP:DMG: AccessControl: allowed
          [1663148506.794570][39604:39604] CHIP:DMG: <RE:Run> Cluster 406, Attribute 0 is dirty
          [1663148506.794572][39604:39604] CHIP:DMG: Reading attribute: Cluster=0x0000_0406 Endpoint=2 AttributeId=0x0000_0000 (expanded=1)
          [1663148506.794575][39604:39604] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0406 e=2 p=v
          [1663148506.794578][39604:39604] CHIP:DMG: AccessControl: allowed
          [1663148506.794583][39604:39604] CHIP:DMG: <RE:Run> Cluster 406, Attribute 1 is dirty
          [1663148506.794585][39604:39604] CHIP:DMG: Reading attribute: Cluster=0x0000_0406 Endpoint=2 AttributeId=0x0000_0001 (expanded=1)
          [1663148506.794588][39604:39604] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0406 e=2 p=v
          [1663148506.794591][39604:39604] CHIP:DMG: AccessControl: allowed
          [1663148506.794595][39604:39604] CHIP:DMG: <RE:Run> Cluster 406, Attribute 2 is dirty
          [1663148506.794597][39604:39604] CHIP:DMG: Reading attribute: Cluster=0x0000_0406 Endpoint=2 AttributeId=0x0000_0002 (expanded=1)
          [1663148506.794600][39604:39604] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0406 e=2 p=v
          [1663148506.794603][39604:39604] CHIP:DMG: AccessControl: allowed
          [1663148506.794607][39604:39604] CHIP:DMG: <RE:Run> Cluster 406, Attribute fffc is dirty
          [1663148506.794609][39604:39604] CHIP:DMG: Reading attribute: Cluster=0x0000_0406 Endpoint=2 AttributeId=0x0000_FFFC (expanded=1)
          [1663148506.794613][39604:39604] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0406 e=2 p=v
          [1663148506.794615][39604:39604] CHIP:DMG: AccessControl: allowed
          [1663148506.794620][39604:39604] CHIP:DMG: <RE:Run> Cluster 406, Attribute fffd is dirty
          [1663148506.794622][39604:39604] CHIP:DMG: Reading attribute: Cluster=0x0000_0406 Endpoint=2 AttributeId=0x0000_FFFD (expanded=1)
          [1663148506.794624][39604:39604] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0406 e=2 p=v
          [1663148506.794626][39604:39604] CHIP:DMG: AccessControl: allowed
          [1663148506.794630][39604:39604] CHIP:DMG: <RE:Run> Cluster 406, Attribute fff8 is dirty
          [1663148506.794632][39604:39604] CHIP:DMG: Reading attribute: Cluster=0x0000_0406 Endpoint=2 AttributeId=0x0000_FFF8 (expanded=1)
          [1663148506.794635][39604:39604] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0406 e=2 p=v
          [1663148506.794638][39604:39604] CHIP:DMG: AccessControl: allowed
          [1663148506.794642][39604:39604] CHIP:DMG: <RE:Run> Cluster 406, Attribute fff9 is dirty
          [1663148506.794644][39604:39604] CHIP:DMG: Reading attribute: Cluster=0x0000_0406 Endpoint=2 AttributeId=0x0000_FFF9 (expanded=1)
          [1663148506.794647][39604:39604] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0406 e=2 p=v
          [1663148506.794650][39604:39604] CHIP:DMG: AccessControl: allowed
          [1663148506.794653][39604:39604] CHIP:DMG: <RE:Run> Cluster 406, Attribute fffb is dirty
          [1663148506.794655][39604:39604] CHIP:DMG: Reading attribute: Cluster=0x0000_0406 Endpoint=2 AttributeId=0x0000_FFFB (expanded=1)
          [1663148506.794657][39604:39604] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0406 e=2 p=v
          [1663148506.794660][39604:39604] CHIP:DMG: AccessControl: allowed
          [1663148506.794671][39604:39604] CHIP:DMG: <RE> Sending report (payload has 626 bytes)...
          [1663148506.794675][39604:39604] CHIP:EM: Piggybacking Ack for MessageCounter:219862429 on exchange: 23857r
          [1663148506.794682][39604:39604] CHIP:IN: Prepared secure message 0x56076c430da8 to 0x000000000001B669 (1)  of type 0x5 and protocolId (0, 1) on exchange 23857r with MessageCounter:119127069.
          [1663148506.794686][39604:39604] CHIP:IN: Sending encrypted msg 0x56076c430da8 with MessageCounter:119127069 to 0x000000000001B669 (1) at monotonic time: 000000000279FAAD msec
          [1663148506.794700][39604:39604] CHIP:DMG: <RE> OnReportConfirm: NumReports = 0
          [1663148506.794703][39604:39604] CHIP:DMG: <RE> ReportsInFlight = 0 with readHandler 0, RE has no more messages
          [1663148506.794705][39604:39604] CHIP:DMG: IM RH moving to [AwaitingDestruction]
          [1663148506.794710][39604:39604] CHIP:DMG: All ReadHandler-s are clean, clear GlobalDirtySet
          [1663148506.796418][39604:39604] CHIP:EM: Received message of type 0x10 with protocolId (0, 0) and MessageCounter:219862430 on exchange 23857r
          [1663148506.796422][39604:39604] CHIP:EM: Found matching exchange: 23857r, Delegate: (nil)
          [1663148506.796427][39604:39604] CHIP:EM: Rxd Ack; Removing MessageCounter:119127069 from Retrans Table on exchange 23857r
          [1663148506.796429][39604:39604] CHIP:EM: Removed CHIP MessageCounter:119127069 from RetransTable on exchange 23857r
      disabled: true

    - label:
          "DUT sends the Read Request Message to the TH with Manufacturer
          specific clusters and attributes to read all attributes in all
          clusters and all endpoints Path = [[ ]]. On receipt of this message,
          TH should send a report data action with the attribute values to the
          DUT."
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          sudo ./chip-tool any read-by-id 0xFFFFFFFF 0xFFFFFFFF 1 0xFFFF --timeout 40
          On TH verify that Read Request Message received from DUT
      disabled: true
