#
---
_include: beerocks/tlvf/beerocks_message_common.h
_namespace: beerocks_message
_multi_class: True
_multi_class_auto_insert:
  action_op:
    _type: eActionOp_MONITOR
    _value_const: [_auto_value_by_name, 1]
    _class_const: True

#################################################
#################################################
cACTION_MONITOR_HOSTAP_AP_DISABLED_NOTIFICATION:
  _type: class
  vap_id: int8_t

cACTION_MONITOR_JOINED_NOTIFICATION:
  _type: class
  iface_name_length:
    _type: uint8_t
    _length_var: True
  iface_name:
    _type: char
    _length: [iface_name_length]

cACTION_MONITOR_SON_CONFIG_UPDATE:
  _type: class
  config: sSonConfig

cACTION_MONITOR_CHANGE_MODULE_LOGGING_LEVEL:
  _type: class
  params: sLoggingLevelChange

cACTION_MONITOR_HEARTBEAT_NOTIFICATION:
  _type: class

#################################################
# CLIENT
#################################################

cACTION_MONITOR_CLIENT_START_MONITORING_REQUEST:
  _type: class
  params: sClientMonitoringParams

cACTION_MONITOR_CLIENT_START_MONITORING_RESPONSE:
  _type: class
  success: uint8_t

cACTION_MONITOR_CLIENT_RX_RSSI_MEASUREMENT_REQUEST:
  _type: class
  params: sNodeRssiMeasurementRequest

cACTION_MONITOR_CLIENT_RX_RSSI_MEASUREMENT_NOTIFICATION:
  _type: class
  params: sNodeRssiMeasurement

cACTION_MONITOR_CLIENT_RX_RSSI_MEASUREMENT_RESPONSE:
  _type: class
  params: sNodeRssiMeasurement

cACTION_MONITOR_CLIENT_NO_RESPONSE_NOTIFICATION:
  _type: class
  mac: sMacAddr

cACTION_MONITOR_CLIENT_RX_RSSI_MEASUREMENT_START_NOTIFICATION:
  _type: class
  mac: sMacAddr

cACTION_MONITOR_CLIENT_RX_RSSI_MEASUREMENT_CMD_RESPONSE:
  _type: class
  mac: sMacAddr

cACTION_MONITOR_CLIENT_NO_ACTIVITY_NOTIFICATION:
  _type: class
  mac: sMacAddr

cACTION_MONITOR_HOSTAP_ACTIVITY_NOTIFICATION:
  _type: class
  params: sApActivityNotificationParams

cACTION_MONITOR_CLIENT_ASSOCIATED_STA_LINK_METRIC_REQUEST:
  _type: class
  sta_mac: sMacAddr

cACTION_MONITOR_CLIENT_ASSOCIATED_STA_LINK_METRIC_RESPONSE:
  _type: class
  _is_tlv_class: True
  length: uint16_t
  sta_mac: sMacAddr
  bssid_info_list_length:
    _type: uint8_t
    _length_var: True
  bssid_info_list:
    _type: sBssidInfo
    _length: [bssid_info_list_length]

cACTION_MONITOR_CLIENT_UNASSOCIATED_STA_LINK_METRIC_REQUEST:
  _type: class
  _is_tlv_class: True
  length: uint16_t
  stations_list_length:
    _type: uint8_t
    _length_var: True
  stations_list:
    _type: sUnassociatedStationInfo
    _length: [stations_list_length]

cACTION_MONITOR_CLIENT_UNASSOCIATED_STA_LINK_METRIC_RESPONSE:
  _type: class
  _is_tlv_class: True
  length: uint16_t
  stations_list_length:
    _type: uint8_t
    _length_var: True
  stations_list:
    _type: sUnassociatedStationStats
    _length: [stations_list_length]


#################################################
# HOSTAP
#################################################

cACTION_MONITOR_HOSTAP_STATS_MEASUREMENT_REQUEST:
  _type: class
  sync: uint8_t

cACTION_MONITOR_HOSTAP_STATS_MEASUREMENT_RESPONSE:
  _type: class
  ap_stats_size:
    _type: uint8_t
    _length_var: True
  ap_stats:
    _type: sApStatsParams
    _length: [ap_stats_size]
  sta_stats_size:
    _type: uint8_t
    _length_var: True
  sta_stats:
    _type: sStaStatsParams
    _length: [sta_stats_size]

cACTION_MONITOR_HOSTAP_LOAD_MEASUREMENT_NOTIFICATION:
  _type: class
  params: sApLoadNotificationParams

cACTION_MONITOR_CLIENT_BEACON_11K_REQUEST:
  _type: class
  params: sBeaconRequest11k

cACTION_MONITOR_CLIENT_BEACON_11K_RESPONSE:
  _type: class
  params: sBeaconResponse11k

cACTION_MONITOR_CLIENT_CHANNEL_LOAD_11K_REQUEST:
  _type: class
  params: sStaChannelLoadRequest11k

cACTION_MONITOR_CLIENT_CHANNEL_LOAD_11K_RESPONSE:
  _type: class
  params: sStaChannelLoadResponse11k

cACTION_MONITOR_CLIENT_NEW_IP_ADDRESS_NOTIFICATION:
  _type: class
  mac: sMacAddr
  ipv4: beerocks::net::sIpv4Addr

#################################################
# CLIENT MONITOR PRE ASSOCIATION STEERING HAL
#################################################
cACTION_MONITOR_STEERING_CLIENT_SET_GROUP_REQUEST:
  _type: class
  params: sSteeringSetGroupRequest

cACTION_MONITOR_STEERING_CLIENT_SET_GROUP_RESPONSE:
  _type: class
  params: sSteeringSetGroupResponse

cACTION_MONITOR_STEERING_CLIENT_SET_REQUEST:
  _type: class
  params: sSteeringClientSetRequest

cACTION_MONITOR_STEERING_CLIENT_SET_RESPONSE:
  _type: class
  params: sSteeringClientSetResponse

cACTION_MONITOR_STEERING_EVENT_CLIENT_ACTIVITY_NOTIFICATION:
  _type: class
  params: sSteeringEvActivity

cACTION_MONITOR_STEERING_EVENT_SNR_XING_NOTIFICATION:
  _type: class
  params: sSteeringEvSnrXing

cACTION_MONITOR_CHANNEL_SCAN_TRIGGER_SCAN_REQUEST:
  _type: class
  cert_mode: uint8_t
  scan_params: sTriggerChannelScanParams

cACTION_MONITOR_CHANNEL_SCAN_TRIGGER_SCAN_RESPONSE:
  _type: class
  success: uint8_t

cACTION_MONITOR_CHANNEL_SCAN_DUMP_RESULTS_REQUEST:
  _type: class

cACTION_MONITOR_CHANNEL_SCAN_DUMP_RESULTS_RESPONSE:
  _type: class
  success: uint8_t

cACTION_MONITOR_CHANNEL_SCAN_TRIGGERED_NOTIFICATION:
  _type: class

cACTION_MONITOR_CHANNEL_SCAN_RESULTS_NOTIFICATION:
  _type: class
  scan_results: sChannelScanResults
  is_dump:
    _type: uint8_t
    _value: 0
    _comment: 1 - notification contains a result dump, 0 - notification that results are ready

cACTION_MONITOR_CHANNEL_SCAN_ABORT_REQUEST:
  _type: class

cACTION_MONITOR_CHANNEL_SCAN_ABORT_RESPONSE:
  _type: class
  success: uint8_t

cACTION_MONITOR_CHANNEL_SCAN_ABORTED_NOTIFICATION:
  _type: class
  reason: uint8_t

cACTION_MONITOR_CHANNEL_SCAN_FINISHED_NOTIFICATION:
  _type: class
