Jelajahi Sumber

qcacld-3.0: Refine csr_dump_connection_stats() with more info

Add following changes to refine csr_dump_connection_stats:
1. Remove unused argument and rename the function to reduce the
number of characters used.
2. Add self mac address information.
3. Rename Auth type to AKM. Print the AKM string instead of
existing diag auth type enum as it doesn't include new WPA3 and
FILS related AKM.
4. Print channel and channel bandwidth on the same line.

New format of log:
csr_connect_info: 3692: +---------CONNECTION INFO START------------+
csr_connect_info: 3692: VDEV-ID: 0 self_mac:18:23:73:36:23:0f
csr_connect_info: 3692: ssid: FILS_AP
csr_connect_info: 3692: bssid: c8:b3:73:36:a3:0f
csr_connect_info: 3692: rssi: -25 dBm
csr_connect_info: 3693: channel: 6 channel_bw: BW_20MHZ
csr_connect_info: 3695: dot11Mode: DOT11_MODE_11N
csr_connect_info: 3700: AKM: FILS-SHA384
csr_connect_info: 3701: Encry-type: ENC_MODE_OPEN
csr_connect_info: 3702: channel frequency: 5745
csr_connect_info: 3703: Qos enable: 1 | Associated: yes
csr_connect_info: 3704: +---------CONNECTION INFO END------------+

Change-Id: Ia87357dd607bfa0d9256c8129bf8e4448ae93104
CRs-Fixed: 2614465
Pragaspathi Thilagaraj 5 tahun lalu
induk
melakukan
f088933247
1 mengubah file dengan 106 tambahan dan 19 penghapusan
  1. 106 19
      core/sme/src/csr/csr_api_roam.c

+ 106 - 19
core/sme/src/csr/csr_api_roam.c

@@ -3646,10 +3646,97 @@ static const char *csr_get_encr_type_str(uint8_t encr_type)
 	}
 }
 
-static void csr_dump_connection_stats(struct mac_context *mac_ctx,
-		struct csr_roam_session *session,
-		struct csr_roam_info *roam_info,
-		eRoamCmdStatus u1, eCsrRoamResult u2)
+static const uint8_t *csr_get_akm_str(uint8_t akm)
+{
+	switch (akm) {
+	case eCSR_AUTH_TYPE_OPEN_SYSTEM:
+		return "Open";
+	case eCSR_AUTH_TYPE_SHARED_KEY:
+		return "Shared Key";
+	case eCSR_AUTH_TYPE_SAE:
+		return "SAE";
+	case eCSR_AUTH_TYPE_WPA:
+		return "WPA";
+	case eCSR_AUTH_TYPE_WPA_PSK:
+		return "WPA-PSK";
+	case eCSR_AUTH_TYPE_WPA_NONE:
+		return "WPA-NONE";
+	case eCSR_AUTH_TYPE_RSN:
+		return "EAP 802.1x";
+	case eCSR_AUTH_TYPE_RSN_PSK:
+		return "WPA2-PSK";
+	case eCSR_AUTH_TYPE_FT_RSN:
+		return "FT-802.1x";
+	case eCSR_AUTH_TYPE_FT_RSN_PSK:
+		return "FT-PSK";
+	case eCSR_AUTH_TYPE_CCKM_WPA:
+		return "WPA-CCKM";
+	case eCSR_AUTH_TYPE_CCKM_RSN:
+		return "RSN-CCKM";
+	case eCSR_AUTH_TYPE_RSN_PSK_SHA256:
+		return "PSK-SHA256";
+	case eCSR_AUTH_TYPE_RSN_8021X_SHA256:
+		return "EAP 802.1x-SHA256";
+	case eCSR_AUTH_TYPE_FILS_SHA256:
+		return "FILS-SHA256";
+	case eCSR_AUTH_TYPE_FILS_SHA384:
+		return "FILS-SHA384";
+	case eCSR_AUTH_TYPE_FT_FILS_SHA256:
+		return "FILS-SHA256";
+	case eCSR_AUTH_TYPE_FT_FILS_SHA384:
+		return "FILS-SHA384";
+	case eCSR_AUTH_TYPE_DPP_RSN:
+		return "DPP";
+	case eCSR_AUTH_TYPE_OWE:
+		return "OWE";
+	case eCSR_AUTH_TYPE_SUITEB_EAP_SHA256:
+		return "EAP Suite-B SHA256";
+	case eCSR_AUTH_TYPE_SUITEB_EAP_SHA384:
+		return "EAP Suite-B SHA384";
+	case eCSR_AUTH_TYPE_OSEN:
+		return "OSEN";
+	case eCSR_AUTH_TYPE_FT_SAE:
+		return "FT-SAE";
+	case eCSR_AUTH_TYPE_FT_SUITEB_EAP_SHA384:
+		return "FT-Suite-B SHA384";
+	default:
+		return "NONE";
+	}
+}
+
+/**
+ * csr_get_sta_ap_intersected_nss  - Get the intersected NSS capability between
+ * sta and connected AP.
+ * @mac_ctx: Pointer to mac context
+ * @vdev_id: Vdev id
+ *
+ * Return: NSS value
+ */
+static uint8_t
+csr_get_sta_ap_intersected_nss(struct mac_context *mac_ctx, uint8_t vdev_id)
+{
+	struct wlan_objmgr_vdev *vdev;
+	uint8_t intrsct_nss;
+
+	vdev = wlan_objmgr_get_vdev_by_id_from_psoc(mac_ctx->psoc, vdev_id,
+						    WLAN_LEGACY_MAC_ID);
+	if (!vdev) {
+		pe_warn("vdev not found for id: %d", vdev_id);
+		return 0;
+	}
+	wlan_vdev_obj_lock(vdev);
+	intrsct_nss = wlan_vdev_mlme_get_nss(vdev);
+	wlan_vdev_obj_unlock(vdev);
+	wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_MAC_ID);
+
+	return intrsct_nss;
+}
+
+static void
+csr_connect_info(struct mac_context *mac_ctx,
+		 struct csr_roam_session *session,
+		 struct csr_roam_info *roam_info,
+		 eCsrRoamResult u2)
 {
 	struct tagCsrRoamConnectedProfile *conn_profile;
 	struct csr_roam_profile *profile;
@@ -3694,23 +3781,23 @@ static void csr_dump_connection_stats(struct mac_context *mac_ctx,
 	conn_stats.reason_code = 0;
 	conn_stats.op_freq = conn_profile->op_freq;
 	sme_debug("+---------CONNECTION INFO START------------+");
-	sme_debug("connection stats for session-id: %d", session->sessionId);
+	sme_debug("VDEV-ID: %d self_mac:%pM", session->vdev_id,
+		  session->self_mac_addr.bytes);
 	sme_debug("ssid: %.*s", conn_stats.ssid_len, conn_stats.ssid);
 	sme_debug("bssid: %pM", conn_stats.bssid);
-	sme_debug("rssi: %d dBm", conn_stats.rssi);
-	sme_debug("channel: %d", conn_stats.operating_channel);
+	sme_debug("RSSI: %d dBm", conn_stats.rssi);
+	sme_debug("Channel Freq: %d channel_bw: %s", conn_stats.op_freq,
+		  csr_get_ch_width_str(conn_stats.chnl_bw));
 	sme_debug("dot11Mode: %s",
 		  csr_get_dot11_mode_str(conn_stats.dot11mode));
-	sme_debug("channel bw: %s",
-		  csr_get_ch_width_str(conn_stats.chnl_bw));
-	sme_debug("Qos enable: %d", conn_stats.qos_capability);
-	sme_debug("Auth-type: %s",
-		  csr_get_auth_type_str(conn_stats.auth_type));
+	sme_debug("AKM: %s", csr_get_akm_str(conn_profile->AuthType));
+	sme_debug("DUT_NSS: %d | Intersected NSS:%d", session->vdev_nss,
+		  csr_get_sta_ap_intersected_nss(mac_ctx, session->vdev_id));
 	sme_debug("Encry-type: %s",
 		  csr_get_encr_type_str(conn_stats.encryption_type));
-	sme_debug("is associated?: %s",
+	sme_debug("Qos enable: %d | Associated: %s",
+		  conn_stats.qos_capability,
 		  (conn_stats.result_code ? "yes" : "no"));
-	sme_debug("channel frequency: %d", conn_stats.op_freq);
 	sme_debug("+---------CONNECTION INFO END------------+");
 
 	WLAN_HOST_DIAG_EVENT_REPORT(&conn_stats, EVENT_WLAN_CONN_STATS_V2);
@@ -3792,10 +3879,10 @@ void csr_get_sta_cxn_info(struct mac_context *mac_ctx,
 			     ((hw_mode != 0) ? "yes" : "no"));
 }
 #else
-static void csr_dump_connection_stats(struct mac_context *mac_ctx,
-		struct csr_roam_session *session,
-		struct csr_roam_info *roam_info,
-		eRoamCmdStatus u1, eCsrRoamResult u2)
+static void csr_connect_info(struct mac_context *mac_ctx,
+			     struct csr_roam_session *session,
+			     struct csr_roam_info *roam_info,
+			     eCsrRoamResult u2)
 {}
 
 #endif
@@ -3881,7 +3968,7 @@ QDF_STATUS csr_roam_call_callback(struct mac_context *mac, uint32_t sessionId,
 	}
 
 	if (eCSR_ROAM_ASSOCIATION_COMPLETION == u1)
-		csr_dump_connection_stats(mac, pSession, roam_info, u1, u2);
+		csr_connect_info(mac, pSession, roam_info, u2);
 
 	if (mac->session_roam_complete_cb) {
 		if (roam_info) {