# 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 Information"
    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.
          The Cluster and Commands should be based on the cluster implementation on the DUT.
      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

          [1684327544.654910][138835:138837] CHIP:DMG: ReportDataMessage =
          [1684327544.654915][138835:138837] CHIP:DMG: {
          [1684327544.654920][138835:138837] CHIP:DMG: 	AttributeReportIBs =
          [1684327544.654926][138835:138837] CHIP:DMG: 	[
          [1684327544.654929][138835:138837] CHIP:DMG: 		AttributeReportIB =
          [1684327544.654940][138835:138837] CHIP:DMG: 		{
          [1684327544.654949][138835:138837] CHIP:DMG: 			AttributeDataIB =
          [1684327544.654956][138835:138837] CHIP:DMG: 			{
          [1684327544.654964][138835:138837] CHIP:DMG: 				DataVersion = 0x91861588,
          [1684327544.654970][138835:138837] CHIP:DMG: 				AttributePathIB =
          [1684327544.654978][138835:138837] CHIP:DMG: 				{
          [1684327544.654995][138835:138837] CHIP:DMG: 					Attribute = 0x0000_FFFD,
          [1684327544.655002][138835:138837] CHIP:DMG: 				}


          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)

           ./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(Reference app) 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.

          ./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)

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