qcacld-3.0: Update frequency for Data packets for packet capture

Update frequency in pdev for data packets for packet capture mode

Change-Id: I4d766cc6dca90529f00e90fb1c197ead208b1174
CRs-Fixed: 2643541
This commit is contained in:
Vulupala Shashank Reddy
2020-04-01 18:04:19 +05:30
committed by nshrivas
szülő 23c0830279
commit 87881bd647
6 fájl változott, egészen pontosan 37 új sor hozzáadva és 14 régi sor törölve

Fájl megtekintése

@@ -190,10 +190,12 @@ void pkt_capture_record_channel(struct wlan_objmgr_vdev *vdev);
* pkt_capture_mon() - Wrapper function to invoke mon cb
* @cb_ctx: packet capture callback context
* @msdu: packet
* @vdev: pointer to vdev
* @ch_freq: channel frequency
*
* Return: None
*/
void pkt_capture_mon(struct pkt_capture_cb_context *cb_ctx,
qdf_nbuf_t msdu);
void pkt_capture_mon(struct pkt_capture_cb_context *cb_ctx, qdf_nbuf_t msdu,
struct wlan_objmgr_vdev *vdev, uint16_t ch_freq);
#endif /* end of _WLAN_PKT_CAPTURE_MAIN_H_ */

Fájl megtekintése

@@ -41,7 +41,7 @@
typedef void (*pkt_capture_mon_thread_cb)(
void *context, void *ppdev, void *monpkt,
uint8_t vdev_id, uint8_t tid,
uint8_t status, bool pkt_format,
uint16_t status, bool pkt_format,
uint8_t *bssid,
uint8_t tx_retry_cnt);
@@ -66,7 +66,7 @@ struct pkt_capture_mon_pkt {
void *monpkt;
uint8_t vdev_id;
uint8_t tid;
uint8_t status;
uint16_t status;
bool pkt_format;
uint8_t bssid[QDF_MAC_ADDR_SIZE];
uint8_t tx_retry_cnt;

Fájl megtekintése

@@ -434,7 +434,7 @@ static void
pkt_capture_rx_data_cb(
void *context, void *ppdev, void *nbuf_list,
uint8_t vdev_id, uint8_t tid,
uint8_t status, bool pkt_format,
uint16_t status, bool pkt_format,
uint8_t *bssid, uint8_t tx_retry_cnt)
{
struct pkt_capture_vdev_priv *vdev_priv;
@@ -528,7 +528,7 @@ pkt_capture_rx_data_cb(
*/
headroom = qdf_nbuf_headroom(msdu);
qdf_nbuf_update_radiotap(&rx_status, msdu, headroom);
pkt_capture_mon(cb_ctx, msdu);
pkt_capture_mon(cb_ctx, msdu, vdev, 0);
msdu = next_buf;
}
@@ -556,7 +556,7 @@ free_buf:
static void
pkt_capture_tx_data_cb(
void *context, void *ppdev, void *nbuf_list, uint8_t vdev_id,
uint8_t tid, uint8_t status, bool pkt_format,
uint8_t tid, uint16_t status, bool pkt_format,
uint8_t *bssid, uint8_t tx_retry_cnt)
{
qdf_nbuf_t msdu, next_buf;
@@ -701,7 +701,7 @@ pkt_capture_tx_data_cb(
*/
headroom = qdf_nbuf_headroom(msdu);
qdf_nbuf_update_radiotap(&tx_status, msdu, headroom);
pkt_capture_mon(cb_ctx, msdu);
pkt_capture_mon(cb_ctx, msdu, vdev, 0);
msdu = next_buf;
}
return;

Fájl megtekintése

@@ -83,6 +83,7 @@ pkt_capture_register_callbacks(struct wlan_objmgr_vdev *vdev,
target_if_pkt_capture_register_tx_ops(&vdev_priv->tx_ops);
target_if_pkt_capture_register_rx_ops(&vdev_priv->rx_ops);
pkt_capture_record_channel(vdev);
return QDF_STATUS_SUCCESS;
}

Fájl megtekintése

@@ -58,7 +58,7 @@ pkt_capture_mgmt_status_map(uint8_t status)
* @nbuf_list: netbuf list
* @vdev_id: vdev id for which packet is captured
* @tid: tid number
* @status: Tx status
* @ch_freq: channel frequency
* @pkt_format: Frame format
* @tx_retry_cnt: tx retry count
*
@@ -66,7 +66,7 @@ pkt_capture_mgmt_status_map(uint8_t status)
*/
static void
pkt_capture_mgmtpkt_cb(void *context, void *ppdev, void *nbuf_list,
uint8_t vdev_id, uint8_t tid, uint8_t status,
uint8_t vdev_id, uint8_t tid, uint16_t ch_freq,
bool pkt_format, uint8_t *bssid, uint8_t tx_retry_cnt)
{
struct pkt_capture_vdev_priv *vdev_priv;
@@ -100,7 +100,7 @@ pkt_capture_mgmtpkt_cb(void *context, void *ppdev, void *nbuf_list,
while (msdu) {
next_buf = qdf_nbuf_queue_next(msdu);
qdf_nbuf_set_next(msdu, NULL); /* Add NULL terminator */
pkt_capture_mon(cb_ctx, msdu);
pkt_capture_mon(cb_ctx, msdu, vdev, ch_freq);
msdu = next_buf;
}
@@ -158,7 +158,7 @@ pkt_capture_mgmtpkt_process(struct wlan_objmgr_psoc *psoc,
pkt->monpkt = nbuf;
pkt->vdev_id = WLAN_INVALID_VDEV_ID;
pkt->tid = WLAN_INVALID_TID;
pkt->status = status;
pkt->status = txrx_status->chan_freq;
pkt->pkt_format = PKTCAPTURE_PKT_FORMAT_80211;
pkt_capture_indicate_monpkt(vdev, pkt);

Fájl megtekintése

@@ -23,13 +23,19 @@
#include "wlan_pkt_capture_mon_thread.h"
#include <linux/kthread.h>
#include "cds_ieee80211_common.h"
#include "wlan_mgmt_txrx_utils_api.h"
#include "cdp_txrx_ctrl.h"
#include "cfg_ucfg_api.h"
void pkt_capture_mon(struct pkt_capture_cb_context *cb_ctx,
qdf_nbuf_t msdu)
void pkt_capture_mon(struct pkt_capture_cb_context *cb_ctx, qdf_nbuf_t msdu,
struct wlan_objmgr_vdev *vdev, uint16_t ch_freq)
{
struct radiotap_header *rthdr;
uint8_t rtlen, type, sub_type;
struct ieee80211_frame *wh;
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
struct wlan_objmgr_pdev *pdev = wlan_vdev_get_pdev(vdev);
cdp_config_param_type val;
rthdr = (struct radiotap_header *)qdf_nbuf_data(msdu);
rtlen = rthdr->it_len;
@@ -42,6 +48,20 @@ void pkt_capture_mon(struct pkt_capture_cb_context *cb_ctx,
qdf_nbuf_free(msdu);
return;
}
if ((type == IEEE80211_FC0_TYPE_MGT) &&
(sub_type == MGMT_SUBTYPE_AUTH)) {
uint8_t chan = wlan_freq_to_chan(ch_freq);
val.cdp_pdev_param_monitor_chan = chan;
cdp_txrx_set_pdev_param(soc, wlan_objmgr_pdev_get_pdev_id(pdev),
CDP_MONITOR_CHANNEL, val);
val.cdp_pdev_param_mon_freq = ch_freq;
cdp_txrx_set_pdev_param(soc, wlan_objmgr_pdev_get_pdev_id(pdev),
CDP_MONITOR_FREQUENCY, val);
}
if (cb_ctx->mon_cb(cb_ctx->mon_ctx, msdu) != QDF_STATUS_SUCCESS) {
pkt_capture_err("Frame Rx to HDD failed");
qdf_nbuf_free(msdu);