blob: 4e278198bd571701d81ae510a4fecd4a5c1fbb4d [file] [log] [blame]
/*
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/*
* This file lim_send_sme_rsp_messages.h contains the definitions for
* sending SME response/notification messages to applications above
* MAC software.
* Author: Chandra Modumudi
* Date: 02/11/02
* History:-
* Date Modified by Modification Information
* --------------------------------------------------------------------
*
*/
#ifndef __LIM_SEND_SME_RSP_H
#define __LIM_SEND_SME_RSP_H
#include "sir_common.h"
#include "sir_api.h"
#include "sir_mac_prot_def.h"
/* Functions for sending responses to Host */
void lim_send_sme_rsp(struct mac_context *, uint16_t, tSirResultCodes, uint8_t,
uint16_t);
void lim_send_sme_roc_rsp(struct mac_context *mac_ctx, uint16_t msg_type,
tSirResultCodes result_code, uint8_t sme_session_id,
uint32_t scan_id);
void lim_send_sme_start_bss_rsp(struct mac_context *, uint16_t, tSirResultCodes,
struct pe_session *, uint8_t, uint16_t);
void lim_send_sme_join_reassoc_rsp(struct mac_context *, uint16_t, tSirResultCodes,
uint16_t, struct pe_session *, uint8_t, uint16_t);
/*
* lim_prepare_disconnect_done_ind() - Prepares the disconnect done ind message
* @mac_ctx: Global mac_ctx
* @session_id: PE session id
* @reason_code: Disconnect indication reason code
* @peer_mac_addr: MAC address of the peer
*
* Prepares the disconnect done indication message to be sent to the upper layer
*
* Return: QDF Status
*/
QDF_STATUS lim_prepare_disconnect_done_ind(struct mac_context *mac_ctx,
uint32_t **msg,
uint8_t session_id,
tSirResultCodes reason_code,
uint8_t *peer_mac_addr);
void lim_send_sme_disassoc_ntf(struct mac_context *, tSirMacAddr, tSirResultCodes,
uint16_t, uint16_t, uint8_t, uint16_t, struct pe_session *);
void lim_send_sme_deauth_ntf(struct mac_context *, tSirMacAddr, tSirResultCodes, uint16_t,
uint16_t, uint8_t, uint16_t);
void lim_send_sme_disassoc_ind(struct mac_context *, tpDphHashNode, struct pe_session *);
void lim_send_sme_deauth_ind(struct mac_context *, tpDphHashNode,
struct pe_session *pe_session);
void lim_send_sme_wm_status_change_ntf(struct mac_context *, tSirSmeStatusChangeCode,
uint32_t *, uint16_t, uint8_t);
void lim_send_sme_set_context_rsp(struct mac_context *, struct qdf_mac_addr, uint16_t,
tSirResultCodes, struct pe_session *, uint8_t, uint16_t);
void lim_handle_delete_bss_rsp(struct mac_context *mac, struct scheduler_msg *MsgQ);
void lim_handle_csa_offload_msg(struct mac_context *mac_ctx,
struct scheduler_msg *msg);
void
lim_send_sme_aggr_qos_rsp(struct mac_context *mac, tpSirAggrQosRsp aggrQosRsp,
uint8_t smesessionId);
void lim_send_sme_addts_rsp(struct mac_context *mac, uint8_t rspReqd, uint32_t status,
struct pe_session *pe_session, tSirMacTspecIE tspec,
uint8_t smesessionId, uint16_t smetransactionId);
void lim_send_sme_delts_rsp(struct mac_context *mac, tpSirDeltsReq delts,
uint32_t status, struct pe_session *pe_session,
uint8_t smessionId, uint16_t smetransactionId);
void lim_send_sme_delts_ind(struct mac_context *mac, tpSirDeltsReqInfo delts,
uint16_t aid, struct pe_session *);
void lim_send_sme_stats_rsp(struct mac_context *mac, uint16_t msgtype, void *stats);
#ifdef QCA_SUPPORT_CP_STATS
static inline void lim_send_sme_pe_statistics_rsp(struct mac_context *mac,
uint16_t msgtype, void *stats) {}
#else
void lim_send_sme_pe_statistics_rsp(struct mac_context *mac, uint16_t msgtype,
void *stats);
#endif /* QCA_SUPPORT_CP_STATS */
#ifdef FEATURE_WLAN_ESE
void lim_send_sme_pe_ese_tsm_rsp(struct mac_context *mac, tAniGetTsmStatsRsp *pStats);
#endif
void lim_send_sme_ibss_peer_ind(struct mac_context *mac, tSirMacAddr peerMacAddr,
uint16_t staIndex, uint8_t *beacon,
uint16_t beaconLen, uint16_t msgType,
uint8_t sessionId);
void lim_send_sme_max_assoc_exceeded_ntf(struct mac_context *mac, tSirMacAddr peerMacAddr,
uint8_t smesessionId);
void lim_send_sme_ap_channel_switch_resp(struct mac_context *mac,
struct pe_session *pe_session,
tpSwitchChannelParams pChnlParams);
/*
* lim_process_beacon_tx_success_ind() - handle successful beacon transmission
* indication from the FW This is a generic event generated by the FW afer the
* first beacon is sent out after the beacon template update by the host.
*
* @mac_ctx: Global mac_ctx
* @msg_type: msg_type
*/
void
lim_process_beacon_tx_success_ind(struct mac_context *mac, uint16_t msgType,
void *event);
typedef enum {
lim_csa_ie_present = 0x00000001,
lim_xcsa_ie_present = 0x00000002,
lim_wbw_ie_present = 0x00000004,
lim_cswarp_ie_present = 0x00000008,
} lim_csa_event_ies_present_flag;
#endif /* __LIM_SEND_SME_RSP_H */