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

#################################################
#################################################

#################################################
# CONTROL_SLAVE
#################################################

cACTION_CONTROL_SLAVE_HANDSHAKE_REQUEST:
  _type: class

cACTION_CONTROL_SLAVE_HANDSHAKE_RESPONSE:
  _type: class

cACTION_CONTROL_SLAVE_JOINED_NOTIFICATION:
  _type: class
  slave_version:
    _type: char
    _length: ["beerocks::message::VERSION_LENGTH"]
  platform_settings: sPlatformSettings
  wlan_settings: sWlanSettings
  backhaul_params: sBackhaulParams
  hostap: sNodeHostapVendorSpec
  cs_params: sApChannelSwitch
  low_pass_filter_on: uint8_t # configuration
  enable_repeater_mode: uint8_t

cACTION_CONTROL_SLAVE_JOINED_RESPONSE:
  _type: class
  master_version:
    _type: char
    _length: ["beerocks::message::VERSION_LENGTH"]
  err_code: uint8_t #beerocks::eSlaveJoinResponseErrCode
  config: sSonConfig

cACTION_CONTROL_ARP_QUERY_REQUEST:
  _type: class
  params: sArpQuery

cACTION_CONTROL_ARP_QUERY_RESPONSE:
  _type: class
  params: sArpMonitorData

cACTION_CONTROL_CHANGE_MODULE_LOGGING_LEVEL:
  _type: class
  params: sLoggingLevelChange

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

cACTION_CONTROL_HOSTAP_CSA_ERROR_NOTIFICATION:
  _type: class
  cs_params: sApChannelSwitch

cACTION_CONTROL_HOSTAP_CSA_NOTIFICATION:
  _type: class
  cs_params: sApChannelSwitch

cACTION_CONTROL_HOSTAP_ACS_NOTIFICATION:
  _type: class
  cs_params: sApChannelSwitch

cACTION_CONTROL_HOSTAP_DFS_CAC_COMPLETED_NOTIFICATION:
  _type: class
  params: sDfsCacCompleted

cACTION_CONTROL_HOSTAP_DFS_CHANNEL_AVAILABLE_NOTIFICATION:
  _type: class
  params: sDfsChannelAvailable

cACTION_CONTROL_HOSTAP_SET_RESTRICTED_FAILSAFE_CHANNEL_REQUEST:
  _type: class
  params: sApSetRestrictedFailsafe

cACTION_CONTROL_HOSTAP_SET_RESTRICTED_FAILSAFE_CHANNEL_RESPONSE:
  _type: class
  success: uint8_t

cACTION_CONTROL_HOSTAP_CHANNEL_SWITCH_ACS_START:
  _type: class
  cs_params: sApChannelSwitch

cACTION_CONTROL_HOSTAP_UPDATE_STOP_ON_FAILURE_ATTEMPTS_REQUEST:
  _type: class
  attempts: uint32_t

cACTION_CONTROL_HOSTAP_STATS_MEASUREMENT_REQUEST:
  _type: class
  sync: uint8_t

cACTION_CONTROL_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_CONTROL_HOSTAP_LOAD_MEASUREMENT_NOTIFICATION:
  _type: class
  params: sApLoadNotificationParams

cACTION_CONTROL_HOSTAP_SET_NEIGHBOR_11K_REQUEST:
  _type: class
  params: sNeighborSetParams11k

cACTION_CONTROL_HOSTAP_REMOVE_NEIGHBOR_11K_REQUEST:
  _type: class
  params: sNeighborRemoveParams11k

cACTION_CONTROL_HOSTAP_ACTIVITY_NOTIFICATION:
  _type: class
  params: sApActivityNotificationParams

cACTION_CONTROL_HOSTAP_VAPS_LIST_UPDATE_NOTIFICATION:
  _type: class
  params: sVapsList

cACTION_CONTROL_HOSTAP_AP_DISABLED_NOTIFICATION:
  _type: class
  vap_id: int8_t

cACTION_CONTROL_HOSTAP_AP_ENABLED_NOTIFICATION:
  _type: class
  vap_id: int8_t
  vap_info: sVapInfo

#################################################
# CLIENT
#################################################
cACTION_CONTROL_CLIENT_START_MONITORING_REQUEST:
  _type: class
  params: sClientMonitoringParams

cACTION_CONTROL_CLIENT_START_MONITORING_RESPONSE:
  _type: class
  success: uint8_t

cACTION_CONTROL_CLIENT_RX_RSSI_MEASUREMENT_REQUEST:
  _type: class
  params: sNodeRssiMeasurementRequest

cACTION_CONTROL_CLIENT_RX_RSSI_MEASUREMENT_RESPONSE:
  _type: class
  params: sNodeRssiMeasurement

cACTION_CONTROL_CLIENT_RX_RSSI_MEASUREMENT_START_NOTIFICATION:
  _type: class
  mac: sMacAddr

cACTION_CONTROL_CLIENT_RX_RSSI_MEASUREMENT_CMD_RESPONSE:
  _type: class
  mac: sMacAddr

cACTION_CONTROL_CLIENT_RX_RSSI_MEASUREMENT_NOTIFICATION:
  _type: class
  params: sNodeRssiMeasurement

cACTION_CONTROL_CLIENT_NO_ACTIVITY_NOTIFICATION:
  _type: class
  mac: sMacAddr

cACTION_CONTROL_CLIENT_NO_RESPONSE_NOTIFICATION:
  _type: class
  mac: sMacAddr

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

cACTION_CONTROL_CLIENT_DISCONNECT_REQUEST:
  _type: class
  mac: sMacAddr
  vap_id: int8_t
  type: eDisconnectType
  reason: uint32_t
  src: eClientDisconnectSource

cACTION_CONTROL_CLIENT_DISCONNECT_RESPONSE:
  _type: class
  params: sClientDisconnectResponse

cACTION_CONTROL_CLIENT_DHCP_COMPLETE_NOTIFICATION:
  _type: class
  mac: sMacAddr
  ipv4: beerocks::net::sIpv4Addr
  name:
    _type: char
    _length: ["beerocks::message::NODE_NAME_LENGTH"]

cACTION_CONTROL_CLIENT_ARP_MONITOR_NOTIFICATION:
  _type: class
  params: sArpMonitorData

cACTION_CONTROL_CLIENT_BEACON_11K_REQUEST:
  _type: class
  params: sBeaconRequest11k

cACTION_CONTROL_CLIENT_BEACON_11K_RESPONSE:
  _type: class
  params: sBeaconResponse11k

#################################################
# MONITOR PRE ASSOCIATION STEERING CONFIGURATIONS
#################################################
cACTION_CONTROL_STEERING_CLIENT_SET_GROUP_REQUEST:
  _type: class
  params: sSteeringSetGroupRequest

cACTION_CONTROL_STEERING_CLIENT_SET_GROUP_RESPONSE:
  _type: class
  params: sSteeringSetGroupResponse

cACTION_CONTROL_STEERING_CLIENT_SET_REQUEST:
  _type: class
  params: sSteeringClientSetRequest

cACTION_CONTROL_STEERING_CLIENT_SET_RESPONSE:
  _type: class
  params: sSteeringClientSetResponse
################################################
# MONITOR PRE ASSOCIATION STEERING NOTIFICATIONS
#################################################
cACTION_CONTROL_STEERING_EVENT_CLIENT_ACTIVITY_NOTIFICATION:
  _type: class
  params: sSteeringEvActivity

cACTION_CONTROL_STEERING_EVENT_SNR_XING_NOTIFICATION:
  _type: class
  params: sSteeringEvSnrXing

################################################
# AP_MANAGER PRE ASSOCIATION STEERING NOTIFICATIONS(softblock)
#################################################
cACTION_CONTROL_STEERING_EVENT_PROBE_REQ_NOTIFICATION:
  _type: class
  params: sSteeringEvProbeReq

cACTION_CONTROL_STEERING_EVENT_AUTH_FAIL_NOTIFICATION:
  _type: class
  params: sSteeringEvAuthFail

################################################
# MONITOR CHANNEL SCAN REQUESTS
################################################
cACTION_CONTROL_CHANNEL_SCAN_TRIGGER_SCAN_REQUEST:
  _type: class
  scan_params: sTriggerChannelScanParams

cACTION_CONTROL_CHANNEL_SCAN_TRIGGER_SCAN_RESPONSE:
  _type: class
  success: uint8_t

cACTION_CONTROL_CHANNEL_SCAN_DUMP_RESULTS_REQUEST:
  _type: class

################################################
# MONITOR CHANNEL SCAN NOTIFICATIONS
################################################

cACTION_CONTROL_CHANNEL_SCAN_TRIGGERED_NOTIFICATION:
  _type: class
  radio_mac: sMacAddr

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

cACTION_CONTROL_CHANNEL_SCAN_ABORT_NOTIFICATION:
  _type: class
  reason: uint8_t
  radio_mac: sMacAddr

cACTION_CONTROL_CHANNEL_SCAN_FINISHED_NOTIFICATION:
  _type: class
  radio_mac: sMacAddr
