blob: 4f247ee30263d6ecfe6cbd3c830de941151bbc18 [file] [log] [blame]
/*
* Copyright (c) 2016 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
* 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.
*/
/**
* DOC: nan_datapath.h
*
* MAC NAN Data path API specification
*/
#ifndef __MAC_NAN_DATAPATH_H
#define __MAC_NAN_DATAPATH_H
#include "sirCommon.h"
#include "aniGlobal.h"
#include "sirParams.h"
#ifdef WLAN_FEATURE_NAN_DATAPATH
/**
* struct ndp_peer_node - structure for holding per-peer context
* @next: pointer to the next peer
* @peer_mac_addr: peer mac address
* @ext_rates_present: extended rates supported
* @edca_present: edca supported
* @wme_edca_present: WME EDCA supported
* @wme_info_present: WME info supported
* @ht_capable: HT capable
* @vht_capable: VHT capabale
* @ht_sec_chan_offset: HT secondary channel offset
* @capability_info: Generic capability info
* @supported_rates: Supported rates
* @extended_rates: Supported extended rates
* @supported_mcs_rate: Supported MCS rates
* @edca_params: EDCA parameters
* @erp_ie_present: ERP IE supported
* @ht_green_field: HT green field supported
* @ht_shortGI_40Mhz; 40 MHZ short GI support
* @ht_shortGI_20Mhz; 20 MHZ short GI support
* @ht_mimo_ps_state: MIMO power state
* @ht_ampdu_density: AMPDU density
* @ht_max_rxampdu_factor: receieve AMPDU factor
* @ht_max_amsdu_len: Max AMSDU lengh supported
* @ht_supp_chan_widthset: Supported channel widthset
* @ht_ldpc_capable: LDPC capable
* @heartbeat_failure: heart beat failure indication flag
* @vht_caps: VHT capability
* @vht_supp_chanwidth_set: VHT supported channel width
* @vht_beamformer_capable: Beam former capable
*/
struct ndp_peer_node {
struct ndp_peer_node *next;
v_MACADDR_t peer_mac_addr;
uint8_t ext_rates_present;
uint8_t edca_present;
uint8_t wme_edca_present;
uint8_t wme_info_present;
uint8_t ht_capable;
uint8_t vht_capable;
uint8_t ht_sec_chan_offset;
tSirMacCapabilityInfo capability_info;
tSirMacRateSet supported_rates;
tSirMacRateSet extended_rates;
uint8_t supported_mcs_rate[SIZE_OF_SUPPORTED_MCS_SET];
tSirMacEdcaParamSetIE edca_params;
uint8_t erp_ie_present;
uint8_t ht_green_field;
uint8_t ht_shortGI_40Mhz;
uint8_t ht_shortGI_20Mhz;
/* MIMO Power Save */
tSirMacHTMIMOPowerSaveState ht_mimo_ps_state;
uint8_t ht_ampdu_density;
/* Maximum Rx A-MPDU factor */
uint8_t ht_max_rxampdu_factor;
uint8_t ht_max_amsdu_len;
uint8_t ht_supp_chan_widthset;
uint8_t ht_ldpc_capable;
uint8_t heartbeat_failure;
#ifdef WLAN_FEATURE_11AC
tDot11fIEVHTCaps vht_caps;
uint8_t vht_supp_chanwidth_set;
uint8_t vht_beamformer_capable;
#endif
};
/* Function to process NDP requests */
VOS_STATUS lim_handle_ndp_request_message(tpAniSirGlobal mac_ctx,
tpSirMsgQ msg);
/* Function to process NDP events */
VOS_STATUS lim_handle_ndp_event_message(tpAniSirGlobal mac_ctx,
tpSirMsgQ msg);
void lim_process_ndi_mlm_add_bss_rsp(tpAniSirGlobal mac_ctx,
tpSirMsgQ lim_msg_q,
tpPESession session_entry);
/* Handler DEL BSS resp for NDI interface */
void lim_ndi_del_bss_rsp(tpAniSirGlobal mac_ctx,
void *msg, tpPESession session_entry);
void lim_ndp_add_sta_rsp(tpAniSirGlobal mac_ctx, tpPESession session_entry,
tAddStaParams *add_sta_rsp);
void lim_process_ndi_del_sta_rsp(tpAniSirGlobal mac_ctx, tpSirMsgQ lim_msg,
tpPESession pe_session);
#else
/* Function to process NDP requests */
static inline VOS_STATUS lim_handle_ndp_request_message(tpAniSirGlobal mac_ctx,
tpSirMsgQ msg)
{
return VOS_STATUS_SUCCESS;
}
/* Function to process NDP events */
static inline VOS_STATUS lim_handle_ndp_event_message(tpAniSirGlobal mac_ctx,
tpSirMsgQ msg)
{
return VOS_STATUS_SUCCESS;
}
/* Function to process NDP events */
static inline void lim_process_ndi_mlm_add_bss_rsp(tpAniSirGlobal mac_ctx,
tpSirMsgQ lim_msg_q,
tpPESession session_entry)
{
}
static inline void lim_ndi_del_bss_rsp(tpAniSirGlobal mac_ctx,
void *msg, tpPESession session_entry)
{
}
static inline void lim_process_ndi_del_sta_rsp(tpAniSirGlobal mac_ctx,
tpSirMsgQ lim_msg, tpPESession pe_session)
{
}
static inline void lim_ndp_add_sta_rsp(tpAniSirGlobal mac_ctx,
tpPESession session_entry,
tAddStaParams *add_sta_rsp)
{
}
#endif /* WLAN_FEATURE_NAN_DATAPATH */
#endif /* __MAC_NAN_DATAPATH_H */