Merge "qcacld-3.0: Process rx_mgmt_pkt based on frequency" into wlan-cld3.driver.lnx.2.0

This commit is contained in:
CNSS_WLAN Service 2019-10-18 09:09:14 -07:00 • committed by Gerrit - the friendly Code Review server
commit 7ff488ca01
26 changed files with 104 additions and 118 deletions

View file

@ -3015,10 +3015,10 @@ QDF_STATUS p2p_process_rx_mgmt(
return QDF_STATUS_E_INVAL;
}
p2p_debug("soc:%pK, frame_len:%d, rx_chan:%d, vdev_id:%d, frm_type:%d, rx_rssi:%d, buf:%pK",
p2p_soc_obj->soc, rx_mgmt->frame_len,
rx_mgmt->rx_chan, rx_mgmt->vdev_id, rx_mgmt->frm_type,
rx_mgmt->rx_rssi, rx_mgmt->buf);
p2p_debug("soc:%pK, frame_len:%d, rx_freq:%d, vdev_id:%d, frm_type:%d, rx_rssi:%d, buf:%pK",
p2p_soc_obj->soc, rx_mgmt->frame_len,
rx_mgmt->rx_freq, rx_mgmt->vdev_id, rx_mgmt->frm_type,
rx_mgmt->rx_rssi, rx_mgmt->buf);
if (rx_mgmt->frm_type == MGMT_ACTION_VENDOR_SPECIFIC) {
p2p_get_frame_info(rx_mgmt->buf, rx_mgmt->frame_len,

View file

@ -103,7 +103,7 @@ struct p2p_event {
/**
* struct p2p_rx_mgmt_frame - rx mgmt frame structure
* @frame_len: Frame length
* @rx_chan: RX channel
* @rx_freq: RX Frequency
* @vdev_id: Vdev id
* @frm_type: Frame type
* @rx_rssi: RX rssi
@ -111,7 +111,7 @@ struct p2p_event {
*/
struct p2p_rx_mgmt_frame {
uint32_t frame_len;
uint32_t rx_chan;
uint32_t rx_freq;
uint32_t vdev_id;
uint32_t frm_type;
uint32_t rx_rssi;

View file

@ -349,7 +349,7 @@ QDF_STATUS tgt_p2p_mgmt_frame_rx_cb(struct wlan_objmgr_psoc *psoc,
pdata = (uint8_t *)qdf_nbuf_data(buf);
rx_mgmt->frame_len = mgmt_rx_params->buf_len;
rx_mgmt->rx_chan = mgmt_rx_params->channel;
rx_mgmt->rx_freq = mgmt_rx_params->chan_freq;
rx_mgmt->vdev_id = vdev_id;
rx_mgmt->frm_type = frm_type;
rx_mgmt->rx_rssi = mgmt_rx_params->snr +

View file

@ -104,10 +104,10 @@ static QDF_STATUS tdls_process_rx_mgmt(
return QDF_STATUS_E_INVAL;
}
tdls_debug("soc:%pK, frame_len:%d, rx_chan:%d, vdev_id:%d, frm_type:%d, rx_rssi:%d, buf:%pK",
tdls_soc_obj->soc, rx_mgmt->frame_len,
rx_mgmt->rx_chan, rx_mgmt->vdev_id, rx_mgmt->frm_type,
rx_mgmt->rx_rssi, rx_mgmt->buf);
tdls_debug("soc:%pK, frame_len:%d, rx_freq:%d, vdev_id:%d, frm_type:%d, rx_rssi:%d, buf:%pK",
tdls_soc_obj->soc, rx_mgmt->frame_len,
rx_mgmt->rx_freq, rx_mgmt->vdev_id, rx_mgmt->frm_type,
rx_mgmt->rx_rssi, rx_mgmt->buf);
if (rx_mgmt->buf[TDLS_PUBLIC_ACTION_FRAME_OFFSET + 1] ==
TDLS_PUBLIC_ACTION_DISC_RESP) {

View file

@ -545,7 +545,7 @@ struct tdls_tx_cnf {
/**
* struct tdls_rx_mgmt_frame - rx mgmt frame structure
* @frame_len: frame length
* @rx_chan: rx channel
* @rx_freq: rx freq
* @vdev_id: vdev id
* @frm_type: frame type
* @rx_rssi: rx rssi
@ -553,7 +553,7 @@ struct tdls_tx_cnf {
*/
struct tdls_rx_mgmt_frame {
uint32_t frame_len;
uint32_t rx_chan;
uint32_t rx_freq;
uint32_t vdev_id;
uint32_t frm_type;
uint32_t rx_rssi;

View file

@ -293,7 +293,7 @@ QDF_STATUS tgt_tdls_mgmt_frame_process_rx_cb(
pdata = (uint8_t *)qdf_nbuf_data(buf);
rx_mgmt->frame_len = mgmt_rx_params->buf_len;
rx_mgmt->rx_chan = mgmt_rx_params->channel;
rx_mgmt->rx_freq = mgmt_rx_params->chan_freq;
rx_mgmt->vdev_id = vdev_id;
rx_mgmt->frm_type = frm_type;
rx_mgmt->rx_rssi = mgmt_rx_params->rssi;

View file

@ -37,7 +37,7 @@
* Rx Packet Struct
* Buffer for the packet received from WMA has pointers to 802.11
* frame fields and additional information based on the type of frame.
* @channel: Channel number
* @frequency: Frequency
* @snr: Signal to noise ratio
* @rssi: Received signal strength indicator, normalized to -96 dBm as
* normal noise floor by adding -96 to snr. All the configured
@ -57,7 +57,7 @@
* @rssi_raw: rssi based on actual noise floor in hardware.
*/
typedef struct {
uint8_t channel;
uint32_t frequency;
uint8_t snr;
uint32_t rssi;
uint32_t timestamp;

View file

@ -66,13 +66,13 @@ int hdd_set_p2p_noa(struct net_device *dev, uint8_t *command);
* @frm_len: frame length
* @pb_frames: frame bytes
* @frame_type: frame type
* @rx_chan: channel on which frame was received
* @rx_freq: frequency on which frame was received
* @rx_rssi: rssi
* @rx_flags: rx flags of the frame
*/
void hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter,
uint32_t frm_len, uint8_t *pb_frames,
uint8_t frame_type, uint32_t rx_chan,
uint8_t frame_type, uint32_t rx_freq,
int8_t rx_rssi,
enum rxmgmt_flags rx_flags);

View file

@ -9563,7 +9563,7 @@ void hdd_indicate_mgmt_frame(tSirSmeMgmtFrameInd *frame_ind)
frame_ind->frame_len,
frame_ind->frameBuf,
frame_ind->frameType,
frame_ind->rxChan,
frame_ind->rx_freq,
frame_ind->rxRssi,
frame_ind->rx_flags);
}
@ -9580,7 +9580,7 @@ void hdd_indicate_mgmt_frame(tSirSmeMgmtFrameInd *frame_ind)
frame_ind->frame_len,
frame_ind->frameBuf,
frame_ind->frameType,
frame_ind->rxChan,
frame_ind->rx_freq,
frame_ind->rxRssi,
frame_ind->rx_flags);
}

View file

@ -981,18 +981,17 @@ wlan_hdd_cfg80211_convert_rxmgmt_flags(enum rxmgmt_flags flag,
static void
__hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter,
uint32_t frm_len, uint8_t *pb_frames,
uint8_t frame_type, uint32_t rx_chan,
uint8_t frame_type, uint32_t rx_freq,
int8_t rx_rssi, enum rxmgmt_flags rx_flags)
{
uint16_t freq;
uint8_t type = 0;
uint8_t sub_type = 0;
struct hdd_context *hdd_ctx;
uint8_t *dest_addr;
enum nl80211_rxmgmt_flags nl80211_flag = 0;
hdd_debug("Frame Type = %d Frame Length = %d",
frame_type, frm_len);
hdd_debug("Frame Type = %d Frame Length = %d freq = %d",
frame_type, frm_len, rx_freq);
if (!adapter) {
hdd_err("adapter is NULL");
@ -1063,12 +1062,6 @@ __hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter,
/* Channel indicated may be wrong. TODO */
/* Indicate an action frame. */
if (rx_chan <= MAX_NO_OF_2_4_CHANNELS)
freq = ieee80211_channel_to_frequency(rx_chan,
NL80211_BAND_2GHZ);
else
freq = ieee80211_channel_to_frequency(rx_chan,
NL80211_BAND_5GHZ);
if (hdd_is_qos_action_frame(pb_frames, frm_len))
sme_update_dsc_pto_up_mapping(hdd_ctx->mac_handle,
@ -1085,23 +1078,23 @@ __hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter,
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0))
cfg80211_rx_mgmt(adapter->dev->ieee80211_ptr,
freq, rx_rssi * 100, pb_frames,
rx_freq, rx_rssi * 100, pb_frames,
frm_len, NL80211_RXMGMT_FLAG_ANSWERED | nl80211_flag);
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0))
cfg80211_rx_mgmt(adapter->dev->ieee80211_ptr,
freq, rx_rssi * 100, pb_frames,
rx_freq, rx_rssi * 100, pb_frames,
frm_len, NL80211_RXMGMT_FLAG_ANSWERED,
GFP_ATOMIC);
#else
cfg80211_rx_mgmt(adapter->dev->ieee80211_ptr, freq,
rx_rssi * 100,
pb_frames, frm_len, GFP_ATOMIC);
cfg80211_rx_mgmt(adapter->dev->ieee80211_ptr, rx_freq,
rx_rssi * 100,
pb_frames, frm_len, GFP_ATOMIC);
#endif /* LINUX_VERSION_CODE */
}
void hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter,
uint32_t frm_len, uint8_t *pb_frames,
uint8_t frame_type, uint32_t rx_chan,
uint8_t frame_type, uint32_t rx_freq,
int8_t rx_rssi, enum rxmgmt_flags rx_flags)
{
int errno;
@ -1112,7 +1105,7 @@ void hdd_indicate_mgmt_frame_to_user(struct hdd_adapter *adapter,
return;
__hdd_indicate_mgmt_frame_to_user(adapter, frm_len, pb_frames,
frame_type, rx_chan,
frame_type, rx_freq,
rx_rssi, rx_flags);
osif_vdev_sync_op_stop(vdev_sync);
}

View file

@ -1926,7 +1926,7 @@ enum rxmgmt_flags {
typedef struct sSirSmeMgmtFrameInd {
uint16_t frame_len;
uint32_t rxChan;
uint32_t rx_freq;
uint8_t sessionId;
uint8_t frameType;
int8_t rxRssi;

View file

@ -1895,7 +1895,7 @@ lim_roam_gen_mbssid_beacon(struct mac_context *mac,
bcn_prb_ptr = (uint8_t *)roam_ind +
roam_ind->beaconProbeRespOffset;
rx_param.channel = wlan_freq_to_chan(roam_ind->chan_freq);
rx_param.chan_freq = roam_ind->chan_freq;
rx_param.pdev_id = wlan_objmgr_pdev_get_pdev_id(mac->pdev);
rx_param.rssi = roam_ind->rssi;

View file

@ -1070,7 +1070,7 @@ static void __lim_process_qos_map_configure_frame(struct mac_context *mac_ctx,
lim_send_sme_mgmt_frame_ind(mac_ctx, mac_hdr->fc.subType,
(uint8_t *)mac_hdr,
frame_len + sizeof(tSirMacMgmtHdr), 0,
WMA_GET_RX_CH(rx_pkt_info), session,
WMA_GET_RX_FREQ(rx_pkt_info), session,
WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info),
RXMGMT_FLAG_NONE);
}
@ -1289,7 +1289,7 @@ __lim_process_radio_measure_request(struct mac_context *mac, uint8_t *pRxPacketI
mac->rrm.rrmPEContext.prev_rrm_report_seq_num = curr_seq_num;
lim_send_sme_mgmt_frame_ind(mac, pHdr->fc.subType, (uint8_t *)pHdr,
frameLen + sizeof(tSirMacMgmtHdr), 0,
WMA_GET_RX_CH(pRxPacketInfo), pe_session,
WMA_GET_RX_FREQ(pRxPacketInfo), pe_session,
WMA_GET_RX_RSSI_NORMALIZED(pRxPacketInfo),
RXMGMT_FLAG_NONE);
@ -1519,7 +1519,7 @@ static void __lim_process_sa_query_response_action_frame(struct mac_context *mac
(uint8_t *)pHdr,
frame_len + sizeof(tSirMacMgmtHdr),
0,
WMA_GET_RX_CH(pRxPacketInfo),
WMA_GET_RX_FREQ(pRxPacketInfo),
pe_session,
WMA_GET_RX_RSSI_NORMALIZED(
pRxPacketInfo), RXMGMT_FLAG_NONE);
@ -1941,7 +1941,7 @@ void lim_process_action_frame(struct mac_context *mac_ctx,
(uint8_t *) mac_hdr,
frame_len + sizeof(tSirMacMgmtHdr),
session->smeSessionId,
WMA_GET_RX_CH(rx_pkt_info),
WMA_GET_RX_FREQ(rx_pkt_info),
session, rssi, RXMGMT_FLAG_NONE);
break;
default:
@ -2029,7 +2029,7 @@ void lim_process_action_frame(struct mac_context *mac_ctx,
frame_len +
sizeof(tSirMacMgmtHdr),
session->smeSessionId,
WMA_GET_RX_CH(rx_pkt_info),
WMA_GET_RX_FREQ(rx_pkt_info),
session,
WMA_GET_RX_RSSI_NORMALIZED(
rx_pkt_info), RXMGMT_FLAG_NONE);
@ -2089,7 +2089,7 @@ void lim_process_action_frame(struct mac_context *mac_ctx,
(uint8_t *) mac_hdr,
frame_len + sizeof(tSirMacMgmtHdr),
session->smeSessionId,
WMA_GET_RX_CH(rx_pkt_info), session,
WMA_GET_RX_FREQ(rx_pkt_info), session,
WMA_GET_RX_RSSI_NORMALIZED(
rx_pkt_info), RXMGMT_FLAG_NONE);
break;
@ -2153,7 +2153,7 @@ void lim_process_action_frame(struct mac_context *mac_ctx,
(uint8_t *)hdr,
frame_len + sizeof(tSirMacMgmtHdr),
session->smeSessionId,
WMA_GET_RX_CH(rx_pkt_info),
WMA_GET_RX_FREQ(rx_pkt_info),
session,
WMA_GET_RX_RSSI_NORMALIZED(
rx_pkt_info), RXMGMT_FLAG_NONE);
@ -2173,7 +2173,7 @@ void lim_process_action_frame(struct mac_context *mac_ctx,
mac_hdr->fc.subType, (uint8_t *) mac_hdr,
frame_len + sizeof(tSirMacMgmtHdr),
session->smeSessionId,
WMA_GET_RX_CH(rx_pkt_info), session, rssi,
WMA_GET_RX_FREQ(rx_pkt_info), session, rssi,
RXMGMT_FLAG_NONE);
break;
default:
@ -2277,7 +2277,7 @@ void lim_process_action_frame_no_session(struct mac_context *mac, uint8_t *pBd)
mac_hdr->fc.subType,
(uint8_t *) mac_hdr,
frame_len + sizeof(tSirMacMgmtHdr), 0,
WMA_GET_RX_CH(pBd), NULL,
WMA_GET_RX_FREQ(pBd), NULL,
WMA_GET_RX_RSSI_NORMALIZED(pBd),
RXMGMT_FLAG_NONE);
break;

View file

@ -407,7 +407,7 @@ static void lim_process_sae_auth_frame(struct mac_context *mac_ctx,
(uint8_t *)mac_hdr,
frame_len + sizeof(tSirMacMgmtHdr),
pe_session->smeSessionId,
WMA_GET_RX_CH(rx_pkt_info), pe_session,
WMA_GET_RX_FREQ(rx_pkt_info), pe_session,
WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info),
rx_flags);
}
@ -1649,7 +1649,7 @@ bool lim_process_sae_preauth_frame(struct mac_context *mac, uint8_t *rx_pkt)
(uint8_t *)dot11_hdr,
frm_len + sizeof(tSirMacMgmtHdr),
SME_SESSION_ID_ANY,
WMA_GET_RX_CH(rx_pkt), NULL,
WMA_GET_RX_FREQ(rx_pkt), NULL,
WMA_GET_RX_RSSI_NORMALIZED(rx_pkt),
RXMGMT_FLAG_NONE);
return true;

View file

@ -631,7 +631,9 @@ __lim_pno_match_fwd_bcn_probepsp(struct mac_context *pmac, uint8_t *rx_pkt_info,
result->ap[i].beaconPeriod = frame->beaconInterval;
result->ap[i].capability =
lim_get_u16((uint8_t *) &frame->capabilityInfo);
result->ap[i].channel = WMA_GET_RX_CH(rx_pkt_info);
result->ap[i].channel = wlan_reg_freq_to_chan(
pmac->pdev,
WMA_GET_RX_FREQ(rx_pkt_info));
result->ap[i].rssi = WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info);
result->ap[i].rtt = 0;
result->ap[i].rtt_sd = 0;
@ -682,7 +684,9 @@ __lim_ext_scan_forward_bcn_probe_rsp(struct mac_context *pmac, uint8_t *rx_pkt_i
result->ap.beaconPeriod = frame->beaconInterval;
result->ap.capability =
lim_get_u16((uint8_t *) &frame->capabilityInfo);
result->ap.channel = WMA_GET_RX_CH(rx_pkt_info);
result->ap.channel = wlan_reg_freq_to_chan(
pmac->pdev,
WMA_GET_RX_FREQ(rx_pkt_info));
result->ap.rssi = WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info);
result->ap.rtt = 0;
result->ap.rtt_sd = 0;
@ -821,8 +825,8 @@ __lim_handle_beacon(struct mac_context *mac, struct scheduler_msg *pMsg,
static void lim_fill_sap_bcn_pkt_meta(struct scan_cache_entry *scan_entry,
cds_pkt_t *rx_pkt)
{
rx_pkt->pkt_meta.channel = scan_entry->channel.chan_idx;
rx_pkt->pkt_meta.frequency = scan_entry->channel.chan_freq;
pe_debug("rx pkt meta freq %d", rx_pkt->pkt_meta.frequency);
rx_pkt->pkt_meta.mpdu_hdr_len = sizeof(struct ieee80211_frame);
rx_pkt->pkt_meta.mpdu_len = scan_entry->raw_frame.len;
rx_pkt->pkt_meta.mpdu_data_len = rx_pkt->pkt_meta.mpdu_len -
@ -947,7 +951,8 @@ void lim_handle_sap_beacon(struct wlan_objmgr_pdev *pdev,
for (session_id = 0; session_id < mac_ctx->lim.maxBssId; session_id++) {
if (filter->sap_channel[session_id] &&
(filter->sap_channel[session_id] ==
scan_entry->channel.chan_idx)) {
wlan_reg_freq_to_chan(pdev,
scan_entry->channel.chan_freq))) {
if (!pkt) {
status = lim_allocate_and_get_bcn(
mac_ctx, &pkt, &rx_pkt_info,
@ -1142,7 +1147,7 @@ lim_check_mgmt_registered_frames(struct mac_context *mac_ctx, uint8_t *buff_desc
(uint8_t *) hdr,
WMA_GET_RX_PAYLOAD_LEN(buff_desc) +
sizeof(tSirMacMgmtHdr), mgmt_frame->sessionId,
WMA_GET_RX_CH(buff_desc), session_entry,
WMA_GET_RX_FREQ(buff_desc), session_entry,
WMA_GET_RX_RSSI_NORMALIZED(buff_desc),
RXMGMT_FLAG_NONE);
@ -1226,7 +1231,7 @@ lim_handle80211_frames(struct mac_context *mac, struct scheduler_msg *limMsg,
struct pe_session *pe_session = NULL;
uint8_t sessionId;
bool isFrmFt = false;
uint8_t channel;
uint32_t frequency;
bool is_hw_sbs_capable = false;
*pDeferMsg = false;
@ -1235,14 +1240,15 @@ lim_handle80211_frames(struct mac_context *mac, struct scheduler_msg *limMsg,
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
isFrmFt = WMA_GET_RX_FT_DONE(pRxPacketInfo);
channel = WMA_GET_RX_CH(pRxPacketInfo);
frequency = WMA_GET_RX_FREQ(pRxPacketInfo);
fc = pHdr->fc;
is_hw_sbs_capable =
policy_mgr_is_hw_sbs_capable(mac->psoc);
if (IS_5G_CH(channel) &&
(!is_hw_sbs_capable ||
(is_hw_sbs_capable && wlan_reg_is_dfs_ch(mac->pdev, channel))) &&
if (WLAN_REG_IS_5GHZ_CH_FREQ(frequency) &&
(!is_hw_sbs_capable ||
(is_hw_sbs_capable &&
wlan_reg_is_dfs_for_freq(mac->pdev, frequency))) &&
mac->sap.SapDfsInfo.is_dfs_cac_timer_running) {
pe_session = pe_find_session_by_bssid(mac,
pHdr->bssId, &sessionId);

View file

@ -446,7 +446,8 @@ lim_indicate_probe_req_to_hdd(struct mac_context *mac, uint8_t *pBd,
lim_send_sme_mgmt_frame_ind(mac, pHdr->fc.subType,
(uint8_t *) pHdr,
(frameLen + sizeof(tSirMacMgmtHdr)),
pe_session->smeSessionId, WMA_GET_RX_CH(pBd),
pe_session->smeSessionId,
WMA_GET_RX_FREQ(pBd),
pe_session,
WMA_GET_RX_RSSI_NORMALIZED(pBd),
RXMGMT_FLAG_NONE);

View file

@ -70,7 +70,6 @@ lim_collect_bss_description(struct mac_context *mac,
uint32_t ieLen = 0;
tpSirMacMgmtHdr pHdr;
uint8_t channel_num;
uint8_t rx_channel;
uint8_t rfBand = 0;
pHdr = WMA_GET_RX_MAC_HEADER(pRxPacketInfo);
@ -82,7 +81,6 @@ lim_collect_bss_description(struct mac_context *mac,
}
ieLen =
WMA_GET_RX_PAYLOAD_LEN(pRxPacketInfo) - SIR_MAC_B_PR_SSID_OFFSET;
rx_channel = WMA_GET_RX_CH(pRxPacketInfo);
pBody = WMA_GET_RX_MPDU_DATA(pRxPacketInfo);
rfBand = WMA_GET_RX_RFBAND(pRxPacketInfo);

View file

@ -7648,7 +7648,7 @@ enum rateid lim_get_min_session_txrate(struct pe_session *session)
void lim_send_sme_mgmt_frame_ind(struct mac_context *mac_ctx, uint8_t frame_type,
uint8_t *frame, uint32_t frame_len,
uint16_t session_id, uint32_t rx_channel,
uint16_t session_id, uint32_t rx_freq,
struct pe_session *psession_entry,
int8_t rx_rssi, enum rxmgmt_flags rx_flags)
{
@ -7672,7 +7672,7 @@ void lim_send_sme_mgmt_frame_ind(struct mac_context *mac_ctx, uint8_t frame_type
sme_mgmt_frame->sessionId = session_id;
sme_mgmt_frame->frameType = frame_type;
sme_mgmt_frame->rxRssi = rx_rssi;
sme_mgmt_frame->rxChan = rx_channel;
sme_mgmt_frame->rx_freq = rx_freq;
sme_mgmt_frame->rx_flags = rx_flags;
qdf_mem_zero(sme_mgmt_frame->frameBuf, frame_len);

View file

@ -193,7 +193,7 @@ void lim_update_short_slot_time(struct mac_context *mac, tSirMacAddr peerMacAddr
* @frame_len: Length og mgmt frame
* @session_id: session id
* @psession_entry: PE Session Entry
* @rx_channel: Channel of where packet is received
* @rx_freq: Frequency on which packet is received
* @rx_rssi: rssi value
* @rx_flags: RXMGMT flags to be set for the frame. Defined in enum rxmgmt_flags
*
@ -204,7 +204,7 @@ void lim_update_short_slot_time(struct mac_context *mac, tSirMacAddr peerMacAddr
*/
void lim_send_sme_mgmt_frame_ind(struct mac_context *mac_ctx, uint8_t frame_type,
uint8_t *frame, uint32_t frame_len,
uint16_t session_id, uint32_t rx_channel,
uint16_t session_id, uint32_t rx_freq,
struct pe_session *psession_entry,
int8_t rx_rssi, enum rxmgmt_flags rx_flags);

View file

@ -4053,12 +4053,10 @@ sir_convert_beacon_frame2_struct(struct mac_context *mac,
uint32_t status, nPayload;
uint8_t *pPayload;
tpSirMacMgmtHdr pHdr;
uint8_t mappedRXCh;
pPayload = WMA_GET_RX_MPDU_DATA(pFrame);
nPayload = WMA_GET_RX_PAYLOAD_LEN(pFrame);
pHdr = WMA_GET_RX_MAC_HEADER(pFrame);
mappedRXCh = WMA_GET_RX_CH(pFrame);
/* Zero-init our [out] parameter, */
qdf_mem_zero((uint8_t *) pBeaconStruct, sizeof(tSirProbeRespBeacon));
@ -4222,7 +4220,9 @@ sir_convert_beacon_frame2_struct(struct mac_context *mac,
} else if (pBeacon->HTInfo.present) {
pBeaconStruct->channelNumber = pBeacon->HTInfo.primaryChannel;
} else {
pBeaconStruct->channelNumber = mappedRXCh;
pBeaconStruct->channelNumber =
wlan_reg_freq_to_chan(mac->pdev,
WMA_GET_RX_FREQ(pFrame));
pe_debug_rl("In Beacon No Channel info");
}

View file

@ -1453,8 +1453,10 @@ static void sap_compute_spect_weight(tSapChSelSpectInfo *pSpectInfoParams,
for (chn_num = 0; chn_num < pSpectInfoParams->numSpectChans;
chn_num++) {
channel_id =
util_scan_entry_channel_num(cur_node->entry);
channel_id = wlan_reg_freq_to_chan(
mac->pdev,
util_scan_entry_channel_frequency(
cur_node->entry));
if (pSpectCh && (channel_id == pSpectCh->chNum)) {
if (pSpectCh->rssiAgr <

View file

@ -390,8 +390,7 @@ static void csr_scan_add_result(struct mac_context *mac_ctx,
frm_type = MGMT_PROBE_RESP;
rx_param.pdev_id = 0;
rx_param.channel = wlan_reg_freq_to_chan(mac_ctx->pdev,
bss_desc->chan_freq);
rx_param.chan_freq = bss_desc->chan_freq;
rx_param.rssi = bss_desc->rssi;
rx_param.tsf_delta = bss_desc->tsf_delta;
@ -2355,12 +2354,15 @@ static QDF_STATUS csr_fill_bss_from_scan_entry(struct mac_context *mac_ctx,
enum channel_state ap_channel_state;
ap_channel_state =
wlan_reg_get_channel_state(mac_ctx->pdev,
scan_entry->channel.chan_idx);
wlan_reg_get_channel_state(
mac_ctx->pdev,
wlan_reg_freq_to_chan(
mac_ctx->pdev,
scan_entry->channel.chan_freq));
if (ap_channel_state == CHANNEL_STATE_DISABLE ||
ap_channel_state == CHANNEL_STATE_INVALID) {
sme_err("BSS %pM channel %d invalid, not populating this BSSID",
scan_entry->bssid.bytes, scan_entry->channel.chan_idx);
scan_entry->bssid.bytes, scan_entry->channel.chan_freq);
return QDF_STATUS_E_INVAL;
}
@ -2408,7 +2410,7 @@ static QDF_STATUS csr_fill_bss_from_scan_entry(struct mac_context *mac_ctx,
bss_desc->beaconInterval = scan_entry->bcn_int;
bss_desc->capabilityInfo = scan_entry->cap_info.value;
if (WLAN_REG_IS_5GHZ_CH(scan_entry->channel.chan_idx))
if (WLAN_REG_IS_5GHZ_CH_FREQ(scan_entry->channel.chan_freq))
bss_desc->nwType = eSIR_11A_NW_TYPE;
else if (scan_entry->phy_mode == WLAN_PHYMODE_11B)
bss_desc->nwType = eSIR_11B_NW_TYPE;
@ -2419,9 +2421,7 @@ static QDF_STATUS csr_fill_bss_from_scan_entry(struct mac_context *mac_ctx,
bss_desc->rssi_raw = scan_entry->rssi_raw;
/* channel frequency what peer sent in beacon/probersp. */
bss_desc->chan_freq =
wlan_reg_chan_to_freq(mac_ctx->pdev,
scan_entry->channel.chan_idx);
bss_desc->chan_freq = scan_entry->channel.chan_freq;
bss_desc->received_time =
scan_entry->scan_entry_time;
bss_desc->startTSF[0] =
@ -2809,7 +2809,9 @@ void csr_init_occupied_channels_list(struct mac_context *mac_ctx,
while (cur_lst) {
cur_node = qdf_container_of(cur_lst, struct scan_cache_node,
node);
ch = cur_node->entry->channel.chan_idx;
ch = wlan_reg_freq_to_chan(
pdev,
cur_node->entry->channel.chan_freq);
csr_add_to_occupied_channels(
mac_ctx, ch,
sessionId,

View file

@ -57,8 +57,8 @@
#define WMA_GET_RX_UNKNOWN_UCAST(pRxMeta) 0
#define WMA_GET_RX_CH(pRxMeta) \
(((t_packetmeta *)pRxMeta)->channel)
#define WMA_GET_RX_FREQ(pRxMeta) \
(((t_packetmeta *)pRxMeta)->frequency)
#define WMA_GET_RX_FT_DONE(pRxMeta) 0

View file

@ -4303,7 +4303,7 @@ int wma_form_rx_packet(qdf_nbuf_t buf,
* Fill in meta information needed by pe/lim
* TODO: Try to maintain rx metainfo as part of skb->data.
*/
rx_pkt->pkt_meta.channel = mgmt_rx_params->channel;
rx_pkt->pkt_meta.frequency = mgmt_rx_params->chan_freq;
rx_pkt->pkt_meta.scan_src = mgmt_rx_params->flags;
/*

View file

@ -53,7 +53,6 @@ static void wlan_p2p_rx_callback(void *user_data,
struct wlan_objmgr_vdev *vdev;
struct vdev_osif_priv *osif_priv;
struct wireless_dev *wdev;
uint16_t freq;
osif_debug("user data:%pK, vdev id:%d, rssi:%d, buf:%pK, len:%d",
user_data, rx_frame->vdev_id, rx_frame->rx_rssi,
@ -84,27 +83,20 @@ static void wlan_p2p_rx_callback(void *user_data,
goto fail;
}
if (rx_frame->rx_chan <= MAX_NO_OF_2_4_CHANNELS)
freq = ieee80211_channel_to_frequency(
rx_frame->rx_chan, NL80211_BAND_2GHZ);
else
freq = ieee80211_channel_to_frequency(
rx_frame->rx_chan, NL80211_BAND_5GHZ);
osif_debug("Indicate frame over nl80211, vdev id:%d, idx:%d",
rx_frame->vdev_id, wdev->netdev->ifindex);
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0))
cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len,
NL80211_RXMGMT_FLAG_ANSWERED);
cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len,
NL80211_RXMGMT_FLAG_ANSWERED);
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0))
cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len,
NL80211_RXMGMT_FLAG_ANSWERED, GFP_ATOMIC);
cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len,
NL80211_RXMGMT_FLAG_ANSWERED, GFP_ATOMIC);
#else
cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len, GFP_ATOMIC);
cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len, GFP_ATOMIC);
#endif /* LINUX_VERSION_CODE */
fail:
wlan_objmgr_vdev_release_ref(vdev, WLAN_P2P_ID);

View file

@ -623,7 +623,6 @@ void wlan_cfg80211_tdls_rx_callback(void *user_data,
struct wlan_objmgr_vdev *vdev;
struct vdev_osif_priv *osif_priv;
struct wireless_dev *wdev;
uint16_t freq;
osif_debug("user data:%pK, vdev id:%d, rssi:%d, buf:%pK, len:%d",
user_data, rx_frame->vdev_id, rx_frame->rx_rssi,
@ -654,27 +653,20 @@ void wlan_cfg80211_tdls_rx_callback(void *user_data,
goto fail;
}
if (rx_frame->rx_chan <= TDLS_MAX_NO_OF_2_4_CHANNELS)
freq = ieee80211_channel_to_frequency(
rx_frame->rx_chan, NL80211_BAND_2GHZ);
else
freq = ieee80211_channel_to_frequency(
rx_frame->rx_chan, NL80211_BAND_5GHZ);
osif_notice("Indicate frame over nl80211, vdev id:%d, idx:%d",
rx_frame->vdev_id, wdev->netdev->ifindex);
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0))
cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len,
NL80211_RXMGMT_FLAG_ANSWERED);
cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len,
NL80211_RXMGMT_FLAG_ANSWERED);
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 0))
cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len,
NL80211_RXMGMT_FLAG_ANSWERED, GFP_ATOMIC);
cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len,
NL80211_RXMGMT_FLAG_ANSWERED, GFP_ATOMIC);
#else
cfg80211_rx_mgmt(wdev, freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len, GFP_ATOMIC);
cfg80211_rx_mgmt(wdev, rx_frame->rx_freq, rx_frame->rx_rssi * 100,
rx_frame->buf, rx_frame->frame_len, GFP_ATOMIC);
#endif /* LINUX_VERSION_CODE */
fail:
wlan_objmgr_vdev_release_ref(vdev, WLAN_TDLS_NB_ID);