Browse Source

qcacld-3.0: Add correct attribute for reason codes in logging event

For deauth/disassassociation RX/TX, the connectivity logging event
is sent. In this event the QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE,
is used to send the frame reason code. But userspace expects
QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE attribute.

Fill QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE instead of
QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE.

Change-Id: I90d58f251f0e2d4647cbde3c76d4a22779c97290
CRs-Fixed: 3054797
Pragaspathi Thilagaraj 3 years ago
parent
commit
4c4778a509

+ 1 - 0
components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c

@@ -4851,6 +4851,7 @@ void cm_roam_result_info_event(struct wmi_roam_result *res, uint8_t vdev_id,
 	if (roam_abort) {
 		log_record->log_subtype = WLAN_ROAM_CANCEL;
 		log_record->fw_timestamp_us = log_record->timestamp_us;
+		log_record->roam_result.roam_fail_reason = res->fail_reason;
 	} else {
 		log_record->log_subtype = WLAN_ROAM_RESULT;
 		log_record->fw_timestamp_us = res->timestamp * 1000;

+ 14 - 10
core/hdd/src/wlan_hdd_connectivity_logging.c

@@ -133,6 +133,8 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
 	 GET_ATTR_OFFSET(bssid)},
 	{QCA_WLAN_VENDOR_ATTR_DIAG_FREQ,       NLA_U16, sizeof(uint16_t),
 	 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},
 	},
 
@@ -237,7 +239,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
 	 GET_ATTR_OFFSET(pkt_info.rssi)},
 	{QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER,   NLA_U16, sizeof(uint16_t),
 	 GET_ATTR_OFFSET(pkt_info.seq_num)},
-	{QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8,  sizeof(uint8_t),
+	{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},
 	},
@@ -245,17 +247,17 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
 	[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_DEAUTH_TX] = {
 	{QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE,  NLA_U32,  sizeof(uint32_t),
 	 GET_ATTR_OFFSET(log_subtype)},
-	{QCA_WLAN_VENDOR_ATTR_DIAG_HOST_TIMESTAMP,   NLA_U64,  sizeof(uint64_t),
+	{QCA_WLAN_VENDOR_ATTR_DIAG_HOST_TIMESTAMP, NLA_U64,  sizeof(uint64_t),
 	 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_BSSID,       NLA_BINARY, QDF_MAC_ADDR_SIZE,
 	 GET_ATTR_OFFSET(bssid)},
-	{QCA_WLAN_VENDOR_ATTR_DIAG_RSSI,              NLA_S32, sizeof(int32_t),
+	{QCA_WLAN_VENDOR_ATTR_DIAG_RSSI,        NLA_S32, sizeof(int32_t),
 	 GET_ATTR_OFFSET(pkt_info.rssi)},
 	{QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER,   NLA_U16, sizeof(uint16_t),
 	 GET_ATTR_OFFSET(pkt_info.seq_num)},
-	{QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8,  sizeof(uint8_t),
+	{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},
 	},
@@ -273,7 +275,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
 	 GET_ATTR_OFFSET(pkt_info.rssi)},
 	{QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER,   NLA_U16, sizeof(uint16_t),
 	 GET_ATTR_OFFSET(pkt_info.seq_num)},
-	{QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8,  sizeof(uint8_t),
+	{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},
 	},
@@ -291,7 +293,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
 	 GET_ATTR_OFFSET(pkt_info.rssi)},
 	{QCA_WLAN_VENDOR_ATTR_DIAG_SEQUENCE_NUMBER,   NLA_U16, sizeof(uint16_t),
 	 GET_ATTR_OFFSET(pkt_info.seq_num)},
-	{QCA_WLAN_VENDOR_ATTR_DIAG_STATUS_CODE, NLA_U8,  sizeof(uint8_t),
+	{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},
 	},
@@ -308,7 +310,7 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
 	{QCA_WLAN_VENDOR_ATTR_DIAG_RSSI,        NLA_S32, sizeof(int32_t),
 	 GET_ATTR_OFFSET(pkt_info.rssi)},
 	{QCA_WLAN_VENDOR_ATTR_DIAG_REASON_CODE, NLA_U8,  sizeof(uint8_t),
-	 GET_ATTR_OFFSET(conn_info.conn_status)},
+	 GET_ATTR_OFFSET(pkt_info.frame_status_code)},
 	{QCA_WLAN_VENDOR_ATTR_DIAG_MAX,   0, 0, 0},
 	},
 
@@ -417,14 +419,16 @@ connectivity_attr_table[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_MAX + 1]
 	},
 
 	[QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_CANCEL] = {
-	{QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE,  NLA_U32,  sizeof(uint32_t),
+	{QCA_WLAN_VENDOR_ATTR_DIAG_EVENT_TYPE,  NLA_U32, sizeof(uint32_t),
 	 GET_ATTR_OFFSET(log_subtype)},
-	{QCA_WLAN_VENDOR_ATTR_DIAG_HOST_TIMESTAMP,   NLA_U64,  sizeof(uint64_t),
+	{QCA_WLAN_VENDOR_ATTR_DIAG_HOST_TIMESTAMP, NLA_U64, sizeof(uint64_t),
 	 GET_ATTR_OFFSET(timestamp_us)},
-	{QCA_WLAN_VENDOR_ATTR_DIAG_IFINDEX,     NLA_U8,   sizeof(uint8_t),
+	{QCA_WLAN_VENDOR_ATTR_DIAG_IFINDEX, NLA_U8, sizeof(uint8_t),
 	 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_REASON_CODE, NLA_U8, sizeof(uint8_t),
+	 GET_ATTR_OFFSET(roam_result.roam_fail_reason)},
 	{QCA_WLAN_VENDOR_ATTR_DIAG_MAX,   0, 0, 0},
 	},