Browse Source

qcacld-3.0: Added roam_reason in csr_roam_info

Currently, there is no information for roam reason
in csr

Fix,check 4 LSB of roam_synch_data for roam reason
and send roam_reason to hdd

Change-Id: I4306339eb69db3bfc05fac79b13e3693582ff05d
CRs-Fixed: 2425911
sheenam monga 6 years ago
parent
commit
8fec61d333
2 changed files with 11 additions and 0 deletions
  1. 1 0
      core/sme/inc/csr_api.h
  2. 10 0
      core/sme/src/csr/csr_api_roam.c

+ 1 - 0
core/sme/inc/csr_api.h

@@ -1181,6 +1181,7 @@ struct csr_roam_info {
 	struct sir_sae_info *sae_info;
 #endif
 	struct assoc_ind *owe_pending_assoc_ind;
+	uint8_t roam_reason;
 };
 
 typedef struct sSirSmeAssocIndToUpperLayerCnf {

+ 10 - 0
core/sme/src/csr/csr_api_roam.c

@@ -106,6 +106,11 @@
  */
 #define NEIGHBOR_REPORT_PARAM_INVALID (0xFFFFFFFFU)
 
+/*
+ * To get 4 LSB of roam reason of roam_synch_data
+ * received from firmware
+ */
+#define ROAM_REASON_MASK 0x0F
 /**
  * csr_get_ielen_from_bss_description() - to get IE length
  *             from tSirBssDescription structure
@@ -21521,9 +21526,14 @@ static QDF_STATUS csr_process_roam_sync_callback(struct mac_context *mac_ctx,
 	QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
 		FL("LFR3: Copy KCK, KEK(len %d) and Replay Ctr"),
 		roam_info->kek_len);
+	/* bit-4 and bit-5 indicate the subnet status */
 	roam_info->subnet_change_status =
 		CSR_GET_SUBNET_STATUS(roam_synch_data->roamReason);
 
+	/* fetch 4 LSB to get roam reason */
+	roam_info->roam_reason = roam_synch_data->roamReason &
+				 ROAM_REASON_MASK;
+	sme_debug("Update roam reason : %d", roam_info->roam_reason);
 	csr_copy_fils_join_rsp_roam_info(roam_info, roam_synch_data);
 
 	csr_roam_call_callback(mac_ctx, session_id, roam_info, 0,