# 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: 28.1.2. [TC-BDX-1.2] Receiver Initiated BDX Transfer session

PICS:
    - MCORE.BDX.Receiver
    - MCORE.BDX.Initiator

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

tests:
    - label: "Preconditions"
      verification: |
          This test can be verified using TC-SU-2.3 from the OTA Software Update section. Pls refer to OTA section for steps.
      disabled: true

    - label: "Step 1: DUT sends a ReceiveInit message to TH."
      verification: |
          On OTA Reference Provider App logs, Verify that the ReceiveInit message has the following mandatory fields.
          -  Proposed Transfer Control - At least one of the PTC[RECEIVER_DRIVE] or PTC[SENDER_DRIVE] field bits shall be set.
           - Range Control.
           - Proposed Max Block Size.
           - Start Offset - Optional.
           - Proposed Max Length - Optional.
           - File Designator Length.
           - File Designator.
           - Metadata - Optional.

          [1687335217.824270][14728:14728] CHIP:ATM: ReceiveInit
          [1687335217.824272][14728:14728] CHIP:ATM:   Proposed Transfer Control: 0x20
          [1687335217.824275][14728:14728] CHIP:ATM:   Range Control: 0x0
          [1687335217.824279][14728:14728] CHIP:ATM:   Proposed Max Block Size: 1024
          [1687335217.824282][14728:14728] CHIP:ATM:   Start Offset: 0x0000000000000000
          [1687335217.824285][14728:14728] CHIP:ATM:   Proposed Max Length: 0x0000000000000000
          [1687335217.824288][14728:14728] CHIP:ATM:   File Designator Length: 21
          [1687335217.824292][14728:14728] CHIP:ATM:   File Designator: ota-requestor-app.ota
      disabled: true
