qcacld-3.0: Send beacon miss disconnection logging event
Add support to send beacon miss disconnection logging event. Fix the diag attribute end marker in the event table. Change-Id: I11fc8859af383b69bcba42654fb3a2bc597fef83 CRs-Fixed: 3056266
Este cometimento está contido em:

cometido por
Madan Koyyalamudi

ascendente
f891260630
cometimento
ac1c7266fd
@@ -4837,10 +4837,15 @@ void cm_roam_candidate_info_event(struct wmi_roam_candidate_info *ap,
|
||||
qdf_mem_free(log_record);
|
||||
}
|
||||
|
||||
void cm_roam_result_info_event(struct wmi_roam_result *res, uint8_t vdev_id,
|
||||
bool roam_abort)
|
||||
#define TYPE_ROAMED_AP 2
|
||||
void cm_roam_result_info_event(struct wmi_roam_result *res,
|
||||
struct wmi_roam_scan_data *scan_data,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
struct wlan_log_record *log_record = NULL;
|
||||
uint8_t i;
|
||||
bool roam_abort = (res->fail_reason == ROAM_FAIL_REASON_SYNC ||
|
||||
res->fail_reason == ROAM_FAIL_REASON_INTERNAL_ABORT);
|
||||
|
||||
log_record = qdf_mem_malloc(sizeof(*log_record));
|
||||
if (!log_record)
|
||||
@@ -4856,7 +4861,16 @@ void cm_roam_result_info_event(struct wmi_roam_result *res, uint8_t vdev_id,
|
||||
log_record->log_subtype = WLAN_ROAM_RESULT;
|
||||
log_record->fw_timestamp_us = res->timestamp * 1000;
|
||||
log_record->roam_result.roam_fail_reason = res->fail_reason;
|
||||
log_record->roam_result.is_roam_successful = res->status;
|
||||
log_record->roam_result.is_roam_successful = (res->status == 0);
|
||||
for (i = 0; i < scan_data->num_ap; i++) {
|
||||
if (i >= MAX_ROAM_CANDIDATE_AP)
|
||||
break;
|
||||
|
||||
if (scan_data->ap[i].type == TYPE_ROAMED_AP) {
|
||||
log_record->bssid = scan_data->ap[i].bssid;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wlan_connectivity_log_enqueue(log_record);
|
||||
@@ -5267,5 +5281,28 @@ cm_roam_mgmt_frame_event(struct roam_frame_info *frame_data, uint8_t vdev_id)
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
cm_roam_beacon_loss_disconnect_event(struct qdf_mac_addr bssid, int32_t rssi,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
struct wlan_log_record *log_record = NULL;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
log_record = qdf_mem_malloc(sizeof(*log_record));
|
||||
if (!log_record)
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
|
||||
log_record->timestamp_us = qdf_get_time_of_the_day_us();
|
||||
log_record->vdev_id = vdev_id;
|
||||
log_record->bssid = bssid;
|
||||
log_record->log_subtype = WLAN_DISCONN_BMISS;
|
||||
log_record->pkt_info.rssi = rssi;
|
||||
|
||||
status = wlan_connectivity_log_enqueue(log_record);
|
||||
qdf_mem_free(log_record);
|
||||
|
||||
return status;
|
||||
}
|
||||
#endif /* WLAN_FEATURE_CONNECTIVITY_LOGGING */
|
||||
#endif /* WLAN_FEATURE_ROAM_OFFLOAD */
|
||||
|
@@ -62,13 +62,14 @@ void cm_roam_candidate_info_event(struct wmi_roam_candidate_info *ap,
|
||||
/**
|
||||
* cm_roam_result_info_event() - send scan results info to userspace
|
||||
* @res: roam result data
|
||||
* @scan_data: Roam scan info
|
||||
* @vdev_id: vdev id
|
||||
* @roam_abort: Is roam abort
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void cm_roam_result_info_event(struct wmi_roam_result *res, uint8_t vdev_id,
|
||||
bool roam_abort);
|
||||
void cm_roam_result_info_event(struct wmi_roam_result *res,
|
||||
struct wmi_roam_scan_data *scan_data,
|
||||
uint8_t vdev_id);
|
||||
#else
|
||||
static inline void
|
||||
cm_roam_scan_info_event(struct wmi_roam_scan_data *scan, uint8_t vdev_id)
|
||||
@@ -87,9 +88,10 @@ cm_roam_candidate_info_event(struct wmi_roam_candidate_info *ap,
|
||||
{
|
||||
}
|
||||
|
||||
static inline void
|
||||
cm_roam_result_info_event(struct wmi_roam_result *res, uint8_t vdev_id,
|
||||
bool roam_abort)
|
||||
static inline
|
||||
void cm_roam_result_info_event(struct wmi_roam_result *res,
|
||||
struct wmi_roam_scan_data *scan_data,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
}
|
||||
#endif /* WLAN_FEATURE_CONNECTIVITY_LOGGING */
|
||||
@@ -369,6 +371,18 @@ QDF_STATUS
|
||||
cm_roam_btm_query_event(struct wmi_neighbor_report_data *btm_data,
|
||||
uint8_t vdev_id);
|
||||
|
||||
/**
|
||||
* cm_roam_beacon_loss_disconnect_event() - Send BMISS disconnection logging
|
||||
* event
|
||||
* @bssid: BSSID
|
||||
* @rssi: RSSI
|
||||
* @vdev_id: Vdev id
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
cm_roam_beacon_loss_disconnect_event(struct qdf_mac_addr bssid, int32_t rssi,
|
||||
uint8_t vdev_id);
|
||||
#else
|
||||
static inline QDF_STATUS
|
||||
cm_roam_mgmt_frame_event(struct roam_frame_info *frame_data, uint8_t vdev_id)
|
||||
@@ -397,5 +411,12 @@ cm_roam_btm_query_event(struct wmi_neighbor_report_data *btm_data,
|
||||
{
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
cm_roam_beacon_loss_disconnect_event(struct qdf_mac_addr bssid, int32_t rssi,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
#endif /* FEATURE_CONNECTIVITY_LOGGING */
|
||||
#endif /* _WLAN_CM_ROAM_OFFLOAD_H_ */
|
||||
|
@@ -2884,13 +2884,14 @@ cm_roam_stats_print_scan_info(struct wmi_roam_scan_data *scan, uint8_t vdev_id,
|
||||
*/
|
||||
static void
|
||||
cm_roam_stats_print_roam_result(struct wmi_roam_result *res,
|
||||
struct wmi_roam_scan_data *scan_data,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
char *buf;
|
||||
char time[TIME_STRING_LEN];
|
||||
|
||||
/* Update roam result info to userspace */
|
||||
cm_roam_result_info_event(res, vdev_id, 0);
|
||||
cm_roam_result_info_event(res, scan_data, vdev_id);
|
||||
|
||||
buf = qdf_mem_malloc(ROAM_FAILURE_BUF_SIZE);
|
||||
if (!buf)
|
||||
@@ -3006,6 +3007,7 @@ cm_roam_stats_event_handler(struct wlan_objmgr_psoc *psoc,
|
||||
|
||||
if (stats_info->result[i].present) {
|
||||
cm_roam_stats_print_roam_result(&stats_info->result[i],
|
||||
&stats_info->scan[i],
|
||||
stats_info->vdev_id);
|
||||
status = wlan_cm_update_roam_states(psoc,
|
||||
stats_info->vdev_id,
|
||||
|
@@ -15232,8 +15232,9 @@ void hdd_bt_activity_cb(hdd_handle_t hdd_handle, uint32_t bt_activity)
|
||||
return;
|
||||
|
||||
ucfg_scan_set_bt_activity(hdd_ctx->psoc, hdd_ctx->bt_a2dp_active);
|
||||
hdd_debug("a2dp_active: %d vo_active: %d", hdd_ctx->bt_a2dp_active,
|
||||
hdd_ctx->bt_vo_active);
|
||||
hdd_debug("a2dp_active: %d vo_active: %d connected:%d",
|
||||
hdd_ctx->bt_a2dp_active,
|
||||
hdd_ctx->bt_vo_active, hdd_ctx->bt_profile_con);
|
||||
}
|
||||
|
||||
struct chain_rssi_priv {
|
||||
|
@@ -87,9 +87,11 @@ hdd_connectivity_log_attr_table[WLAN_TAG_MAX] = {
|
||||
[WLAN_EAP_FAILURE] = QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_FAILURE,
|
||||
};
|
||||
|
||||
#define WLAN_CONNECTIVITY_ATTR_END (QCA_WLAN_VENDOR_ATTR_DIAG_MAX + 1)
|
||||
|
||||
static const struct connectivity_log_attr
|
||||
connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
[QCA_WLAN_VENDOR_ATTR_DIAG_MAX] = {
|
||||
[WLAN_CONNECTIVITY_ATTR_END] = {
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_CONNECTING] = {
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE, NLA_U32, sizeof(uint32_t),
|
||||
GET_ATTR_OFFSET(log_subtype)},
|
||||
@@ -119,7 +121,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(conn_info.auth_type)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_BT_COEX_ACTIVE, NLA_FLAG, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(conn_info.is_bt_coex_active)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_CONNECTING_FAIL] = {
|
||||
@@ -135,7 +137,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(conn_info.freq)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(conn_info.conn_status)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_AUTH_REQ] = {
|
||||
@@ -163,7 +165,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.is_retry_frame)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_AUTH_RESP] = {
|
||||
@@ -185,7 +187,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ASSOC_REQ] = {
|
||||
@@ -207,7 +209,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.is_retry_frame)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ASSOC_RESP] = {
|
||||
@@ -223,7 +225,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.seq_num)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DEAUTH_RX] = {
|
||||
@@ -241,7 +243,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.seq_num)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DEAUTH_TX] = {
|
||||
@@ -259,7 +261,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.seq_num)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DISASSOC_RX] = {
|
||||
@@ -277,7 +279,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.seq_num)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DISASSOC_TX] = {
|
||||
@@ -295,7 +297,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.seq_num)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BEACON_LOSS_DISCONN] = {
|
||||
@@ -311,7 +313,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.rssi)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(pkt_info.frame_status_code)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCAN_START] = {
|
||||
@@ -335,7 +337,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
sizeof(uint8_t), GET_ATTR_OFFSET(roam_trig.rssi_threshold)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCAN_DONE] = {
|
||||
@@ -351,7 +353,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_FREQ_LIST, NLA_NESTED, sizeof(uint16_t),
|
||||
GET_ATTR_OFFSET(roam_scan.scan_freq)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCORE_CURR_AP] = {
|
||||
@@ -373,7 +375,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(ap.total_score)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCORE_CAND_AP] = {
|
||||
@@ -399,7 +401,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(ap.etp)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_RESULT] = {
|
||||
@@ -414,8 +416,8 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_SUCCESSFUL, NLA_FLAG,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(roam_result.is_roam_successful)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
sizeof(uint8_t), GET_ATTR_OFFSET(roam_result.is_roam_successful)},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_CANCEL] = {
|
||||
@@ -429,7 +431,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(roam_result.roam_fail_reason)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BTM_QUERY] = {
|
||||
@@ -445,7 +447,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(btm_info.reason)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BTM_REQ] = {
|
||||
@@ -467,7 +469,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
sizeof(uint8_t), GET_ATTR_OFFSET(btm_info.candidate_list_count)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BTM_WTC] = {
|
||||
@@ -485,7 +487,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(btm_info.wtc_duration)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BTM_REQ_CANDI] = {
|
||||
@@ -501,7 +503,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(btm_cand.preference)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_BTM_RESP] = {
|
||||
@@ -521,7 +523,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(btm_info.target_bssid)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DHCP_DISCOVER] = {
|
||||
@@ -533,7 +535,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(vdev_id)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(pkt_info.tx_status)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DHCP_OFFER] = {
|
||||
@@ -543,7 +545,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_IFINDEX, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(vdev_id)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DHCP_REQUEST] = {
|
||||
@@ -555,7 +557,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(vdev_id)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(pkt_info.tx_status)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DHCP_ACK] = {
|
||||
@@ -565,7 +567,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_IFINDEX, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(vdev_id)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DHCP_NACK] = {
|
||||
@@ -575,7 +577,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_IFINDEX, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(vdev_id)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAPOL_M1] = {
|
||||
@@ -587,7 +589,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(vdev_id)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAPOL_M2] = {
|
||||
@@ -601,7 +603,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.tx_status)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAPOL_M3] = {
|
||||
@@ -613,7 +615,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(vdev_id)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAPOL_M4] = {
|
||||
@@ -627,7 +629,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.tx_status)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_GTK_M1] = {
|
||||
@@ -639,7 +641,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(vdev_id)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_GTK_M2] = {
|
||||
@@ -653,7 +655,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.tx_status)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FIRMWARE_TIMESTAMP, NLA_U64,
|
||||
sizeof(uint64_t), GET_ATTR_OFFSET(fw_timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_REQUEST] = {
|
||||
@@ -667,7 +669,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.eap_type)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_EAP_LEN, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(pkt_info.eap_len)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_RESPONSE] = {
|
||||
@@ -683,7 +685,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(pkt_info.eap_len)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_FRAME_TX_STATUS, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(pkt_info.tx_status)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_SUCCESS] = {
|
||||
@@ -693,7 +695,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_IFINDEX, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(vdev_id)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_FAILURE] = {
|
||||
@@ -703,7 +705,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
|
||||
GET_ATTR_OFFSET(timestamp_us)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_IFINDEX, NLA_U8, sizeof(uint8_t),
|
||||
GET_ATTR_OFFSET(vdev_id)},
|
||||
{QCA_WLAN_VENDOR_ATTR_DIAG_MAX, 0, 0, 0},
|
||||
{WLAN_CONNECTIVITY_ATTR_END, 0, 0, 0},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -746,6 +748,15 @@ wlan_hdd_convert_roam_reason(enum roam_trigger_reason roam_reason)
|
||||
return QCA_ROAM_REASON_UNKNOWN;
|
||||
}
|
||||
|
||||
static enum qca_roam_scan_scheme
|
||||
wlan_hdd_convert_roam_scan_type(uint8_t roam_scan_type)
|
||||
{
|
||||
if (roam_scan_type)
|
||||
return QCA_ROAM_SCAN_SCHEME_FULL_SCAN;
|
||||
|
||||
return QCA_ROAM_SCAN_SCHEME_PARTIAL_SCAN;
|
||||
}
|
||||
|
||||
static enum qca_roam_sub_reason
|
||||
wlan_hdd_get_converted_roam_sub_reason(enum roam_trigger_sub_reason sub_reason)
|
||||
{
|
||||
@@ -813,10 +824,10 @@ wlan_hdd_get_connectivity_log_tlv_len(struct wlan_log_record *rec)
|
||||
if (log_evt_type >= (QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1))
|
||||
return 0;
|
||||
|
||||
for (j = 0; j < QCA_WLAN_VENDOR_ATTR_DIAG_MAX; j++) {
|
||||
for (j = 0; j < WLAN_CONNECTIVITY_ATTR_END; j++) {
|
||||
attr_id =
|
||||
connectivity_attr_table[log_evt_type][j].attribute_id;
|
||||
if (attr_id == QCA_WLAN_VENDOR_ATTR_DIAG_MAX)
|
||||
if (attr_id == WLAN_CONNECTIVITY_ATTR_END)
|
||||
break;
|
||||
|
||||
if (log_evt_type ==
|
||||
@@ -970,10 +981,10 @@ wlan_hdd_fill_connectivity_logging_data(struct sk_buff *skb,
|
||||
* QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE. So
|
||||
* start the loop from first index.
|
||||
*/
|
||||
for (i = 1; i < QCA_WLAN_VENDOR_ATTR_DIAG_MAX; i++) {
|
||||
for (i = 1; i < WLAN_CONNECTIVITY_ATTR_END; i++) {
|
||||
attr = connectivity_attr_table[evt_type][i];
|
||||
attr_id = attr.attribute_id;
|
||||
if (attr_id == QCA_WLAN_VENDOR_ATTR_DIAG_MAX)
|
||||
if (attr_id == WLAN_CONNECTIVITY_ATTR_END)
|
||||
break;
|
||||
|
||||
if (evt_type == QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_CONNECTING &&
|
||||
@@ -1011,6 +1022,9 @@ wlan_hdd_fill_connectivity_logging_data(struct sk_buff *skb,
|
||||
else if (attr.attribute_id ==
|
||||
QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_TRIGGER_REASON)
|
||||
attr_val8 = wlan_hdd_convert_roam_reason(val8);
|
||||
else if (attr.attribute_id ==
|
||||
QCA_WLAN_VENDOR_ATTR_DIAG_ROAM_SCAN_TYPE)
|
||||
attr_val8 = wlan_hdd_convert_roam_scan_type(val8);
|
||||
|
||||
errno = nla_put_u8(skb, attr.attribute_id, attr_val8);
|
||||
if (errno)
|
||||
|
@@ -2537,6 +2537,7 @@ void wma_set_keepalive_req(tp_wma_handle wma,
|
||||
void wma_beacon_miss_handler(tp_wma_handle wma, uint32_t vdev_id, int32_t rssi)
|
||||
{
|
||||
struct missed_beacon_ind *beacon_miss_ind;
|
||||
struct qdf_mac_addr connected_bssid;
|
||||
struct mac_context *mac = cds_get_context(QDF_MODULE_ID_PE);
|
||||
|
||||
beacon_miss_ind = qdf_mem_malloc(sizeof(*beacon_miss_ind));
|
||||
@@ -2556,6 +2557,11 @@ void wma_beacon_miss_handler(tp_wma_handle wma, uint32_t vdev_id, int32_t rssi)
|
||||
wmi_service_hw_db2dbm_support))
|
||||
rssi += WMA_TGT_NOISE_FLOOR_DBM;
|
||||
wma_lost_link_info_handler(wma, vdev_id, rssi);
|
||||
|
||||
/* Send BMISS Logging event */
|
||||
wlan_vdev_get_bss_peer_mac(wma->interfaces[vdev_id].vdev,
|
||||
&connected_bssid);
|
||||
cm_roam_beacon_loss_disconnect_event(connected_bssid, rssi, vdev_id);
|
||||
}
|
||||
|
||||
void wlan_cm_send_beacon_miss(uint8_t vdev_id, int32_t rssi)
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador