#
---
_namespace: wfa_map

tlvChannelScanCapabilities:
  _type: class
  _is_tlv_class: True
  type:
    _type: eTlvTypeMap
    _value_const: TLV_CHANNEL_SCAN_CAPABILITIES
  length: uint16_t
  radio_list_length:
    _type: uint8_t
    _length_var: True
  radio_list:
    _type: cRadiosWithScanCapabilities
    _length: [radio_list_length]

cRadiosWithScanCapabilities:
  _type: class
  radio_uid: sMacAddr
  capabilities:
    _type: sCapabilities
  minimum_scan_interval:
    _type: uint32_t
    _comment: |
      The minimum interval in seconds between the start of two consecutive channel scans on this radio
  operating_classes_list_length:
    _type: uint8_t
    _length_var: True
  operating_classes_list:
    _type: cOperatingClasses
    _length: [operating_classes_list_length]

sCapabilities:
  _type: struct
  _bit_field: uint8_t
  on_boot_only:
    _bit_range: [7, 7]
    _comment: |
      1: True (Agent can only perform scan on boot)
      0: False (Agent can perform Requested scans)
  scan_impact:
    _bit_range: [6, 5]
  reserved:
    _bit_range: [4, 0]

eScanImpact:
  _type: enum
  _enum_storage: uint8_t
  SCAN_IMPACT_NO_IMPACT: 0x00
  SCAN_IMPACT_REDUCED_NUMBER_OF_SPATIAL_STREAM: 0x01
  SCAN_IMPACT_TIME_SLICING_IMPAIRMENT: 0x02
  SCAN_IMPACT_RADIO_UNAVAILABLE: 0x03
  _comment: |
    0x00: No impact (independent radio is available for scanning that is not used for Fronthaul
    or backhaul)
    0x01: Reduced number of spatial streams
    0x02: Time slicing impairment (Radio may go off channel for a series of short intervals)
    0x03: Radio unavailable for >= 2 seconds)

cOperatingClasses:
  _type: class
  _comment: |
    Operating Class contains an enumerated value from Table E-4 in Annex E of [1]
  operating_class: uint8_t
  channel_list_length:
    _type: uint8_t
    _length_var: True
    _comment: |
      Number of channels specified in the Channel List. k=0 indicates that the Multi-AP Agent
      is capable of scanning on all channels in the Operating Class.
  channel_list:
    _type: uint8_t
    _length: [channel_list_length]
