qcacld-3.0: Process rx_mgmt_pkt based on frequency
As a part of 802.11ax amendment, 6GHz band operation is added. Since the 6 GHz channel numbers are overlapping with existing 2.4GHz and 5GHz channel numbers, use frequency to identify unique channel operation instead of channel number. Channel frequency is unique across bands. As part of above requirement add logic to process rx mgmt packets based on the frequencies instead of channel numbers. Change-Id: Ib063070738ecdb4f83379eafe50629778a490aae CRs-fixed: 2522693
此提交包含在:
@@ -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,
|
||||
|
@@ -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;
|
||||
|
@@ -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 +
|
||||
|
@@ -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) {
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
新增問題並參考
封鎖使用者