qcacld-3.0: Add frequency to peer for Connectivity Logging
Introduce support to add frequency to peer in order to enable Connectivity diag logging for datapath related events Change-Id: I634ddc0206530f1039a37fd60643877b2fdf7e87 CRs-Fixed: 3596250
This commit is contained in:

committed by
Rahul Choudhary

parent
8242158f16
commit
94f55718b5
@@ -1198,6 +1198,19 @@ void
|
|||||||
wlan_populate_vsie(struct wlan_objmgr_vdev *vdev,
|
wlan_populate_vsie(struct wlan_objmgr_vdev *vdev,
|
||||||
struct wlan_diag_packet_info *data, bool is_tx);
|
struct wlan_diag_packet_info *data, bool is_tx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_cdp_set_peer_freq() - API to set frequency to dp peer
|
||||||
|
* @psoc: psoc pointer
|
||||||
|
* @peer_mac: Bssid of peer
|
||||||
|
* @freq: frequency(in MHz)
|
||||||
|
* @vdev_id: vdev id
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
wlan_cdp_set_peer_freq(struct wlan_objmgr_psoc *psoc, uint8_t *peer_mac,
|
||||||
|
uint32_t freq, uint8_t vdev_id);
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_11BE_MLO
|
#ifdef WLAN_FEATURE_11BE_MLO
|
||||||
/**
|
/**
|
||||||
* wlan_connectivity_mlo_setup_event() - Fill and send MLO setup data
|
* wlan_connectivity_mlo_setup_event() - Fill and send MLO setup data
|
||||||
@@ -1406,6 +1419,20 @@ wlan_convert_freq_to_diag_band(uint16_t ch_freq);
|
|||||||
void
|
void
|
||||||
wlan_populate_vsie(struct wlan_objmgr_vdev *vdev,
|
wlan_populate_vsie(struct wlan_objmgr_vdev *vdev,
|
||||||
struct wlan_diag_packet_info *data, bool is_tx);
|
struct wlan_diag_packet_info *data, bool is_tx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_cdp_set_peer_freq() - API to set frequency to dp peer
|
||||||
|
* @psoc: psoc pointer
|
||||||
|
* @peer_mac: Bssid of peer
|
||||||
|
* @freq: frequency(in MHz)
|
||||||
|
* @vdev_id: vdev id
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
wlan_cdp_set_peer_freq(struct wlan_objmgr_psoc *psoc, uint8_t *peer_mac,
|
||||||
|
uint32_t freq, uint8_t vdev_id);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
static inline
|
static inline
|
||||||
void wlan_connectivity_logging_start(struct wlan_objmgr_psoc *psoc,
|
void wlan_connectivity_logging_start(struct wlan_objmgr_psoc *psoc,
|
||||||
@@ -1450,6 +1477,11 @@ wlan_convert_freq_to_diag_band(uint16_t ch_freq)
|
|||||||
return WLAN_INVALID_BAND;
|
return WLAN_INVALID_BAND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
wlan_cdp_set_peer_freq(struct wlan_objmgr_psoc *psoc, uint8_t *peer_mac,
|
||||||
|
uint32_t freq, uint8_t vdev_id)
|
||||||
|
{}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
wlan_connectivity_sta_info_event(struct wlan_objmgr_psoc *psoc,
|
wlan_connectivity_sta_info_event(struct wlan_objmgr_psoc *psoc,
|
||||||
uint8_t vdev_id)
|
uint8_t vdev_id)
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
#include "wlan_mlme_main.h"
|
#include "wlan_mlme_main.h"
|
||||||
#include "wlan_mlo_mgr_sta.h"
|
#include "wlan_mlo_mgr_sta.h"
|
||||||
#include "wlan_mlme_api.h"
|
#include "wlan_mlme_api.h"
|
||||||
|
#include "cdp_txrx_ctrl.h"
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_CONNECTIVITY_LOGGING
|
#ifdef WLAN_FEATURE_CONNECTIVITY_LOGGING
|
||||||
static struct wlan_connectivity_log_buf_data global_cl;
|
static struct wlan_connectivity_log_buf_data global_cl;
|
||||||
@@ -525,6 +526,20 @@ wlan_populate_mlo_mgmt_event_param(struct wlan_objmgr_vdev *vdev,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void
|
||||||
|
wlan_cdp_set_peer_freq(struct wlan_objmgr_psoc *psoc, uint8_t *peer_mac,
|
||||||
|
uint32_t freq, uint8_t vdev_id)
|
||||||
|
{
|
||||||
|
ol_txrx_soc_handle soc_txrx_handle;
|
||||||
|
cdp_config_param_type val = {0};
|
||||||
|
|
||||||
|
soc_txrx_handle = wlan_psoc_get_dp_handle(psoc);
|
||||||
|
|
||||||
|
val.cdp_peer_param_freq = freq;
|
||||||
|
cdp_txrx_set_peer_param(soc_txrx_handle, vdev_id, peer_mac,
|
||||||
|
CDP_CONFIG_PEER_FREQ, val);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
wlan_connectivity_sta_info_event(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
|
wlan_connectivity_sta_info_event(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
|
||||||
{
|
{
|
||||||
|
@@ -6924,6 +6924,8 @@ cm_roam_mgmt_frame_event(struct wlan_objmgr_vdev *vdev,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wlan_diag_event.supported_links = frame_data->band;
|
||||||
|
|
||||||
if (frame_data->type == ROAM_FRAME_INFO_FRAME_TYPE_EXT) {
|
if (frame_data->type == ROAM_FRAME_INFO_FRAME_TYPE_EXT) {
|
||||||
wlan_diag_event.subtype =
|
wlan_diag_event.subtype =
|
||||||
(uint8_t)cm_roam_get_eapol_tag(frame_data->subtype);
|
(uint8_t)cm_roam_get_eapol_tag(frame_data->subtype);
|
||||||
|
@@ -2222,6 +2222,8 @@ enum roam_rt_stats_type {
|
|||||||
* @retry_count: Frame retry count
|
* @retry_count: Frame retry count
|
||||||
* @assoc_id: Association id received in the association response/
|
* @assoc_id: Association id received in the association response/
|
||||||
* reassociation response frame
|
* reassociation response frame
|
||||||
|
* @band: Band on which the packet is transmitted or received. Refer
|
||||||
|
* enum wlan_diag_wifi_band
|
||||||
*/
|
*/
|
||||||
struct roam_frame_info {
|
struct roam_frame_info {
|
||||||
bool present;
|
bool present;
|
||||||
@@ -2237,6 +2239,7 @@ struct roam_frame_info {
|
|||||||
int32_t rssi;
|
int32_t rssi;
|
||||||
uint16_t retry_count;
|
uint16_t retry_count;
|
||||||
uint16_t assoc_id;
|
uint16_t assoc_id;
|
||||||
|
uint8_t band;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -2078,6 +2078,9 @@ extract_roam_frame_info_tlv(wmi_unified_t wmi_handle, void *evt_buf,
|
|||||||
dst_buf->assoc_id =
|
dst_buf->assoc_id =
|
||||||
WMI_GET_ASSOC_ID(src_data->frame_info_ext);
|
WMI_GET_ASSOC_ID(src_data->frame_info_ext);
|
||||||
|
|
||||||
|
dst_buf->band =
|
||||||
|
WMI_GET_MLO_BITMAP_BAND_INFO(src_data->frame_info_ext);
|
||||||
|
|
||||||
dst_buf++;
|
dst_buf++;
|
||||||
src_data++;
|
src_data++;
|
||||||
}
|
}
|
||||||
|
@@ -11058,6 +11058,11 @@ QDF_STATUS lim_pre_vdev_start(struct mac_context *mac,
|
|||||||
!mlme_is_chan_switch_in_progress(mlme_obj->vdev))
|
!mlme_is_chan_switch_in_progress(mlme_obj->vdev))
|
||||||
lim_apply_puncture(mac, session, ch_params.mhz_freq_seg1);
|
lim_apply_puncture(mac, session, ch_params.mhz_freq_seg1);
|
||||||
|
|
||||||
|
if (LIM_IS_STA_ROLE(session))
|
||||||
|
wlan_cdp_set_peer_freq(mac->psoc, session->bssId,
|
||||||
|
session->curr_op_freq,
|
||||||
|
wlan_vdev_get_id(session->vdev));
|
||||||
|
|
||||||
if (IS_DOT11_MODE_EHT(session->dot11mode))
|
if (IS_DOT11_MODE_EHT(session->dot11mode))
|
||||||
wlan_reg_set_create_punc_bitmap(&ch_params, true);
|
wlan_reg_set_create_punc_bitmap(&ch_params, true);
|
||||||
|
|
||||||
|
@@ -754,6 +754,12 @@ wma_roam_update_vdev(tp_wma_handle wma,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (wlan_vdev_mlme_get_opmode(wma->interfaces[vdev_id].vdev) ==
|
||||||
|
QDF_STA_MODE)
|
||||||
|
wlan_cdp_set_peer_freq(wma->psoc, bssid,
|
||||||
|
wma->interfaces[vdev_id].ch_freq,
|
||||||
|
vdev_id);
|
||||||
|
|
||||||
is_assoc_peer = wlan_vdev_mlme_get_is_mlo_vdev(wma->psoc, vdev_id);
|
is_assoc_peer = wlan_vdev_mlme_get_is_mlo_vdev(wma->psoc, vdev_id);
|
||||||
if (is_multi_link_roam(roam_synch_ind_ptr)) {
|
if (is_multi_link_roam(roam_synch_ind_ptr)) {
|
||||||
wma_create_peer(wma, mac_addr.bytes,
|
wma_create_peer(wma, mac_addr.bytes,
|
||||||
|
Reference in New Issue
Block a user