Преглед изворни кода

qcacld-3.0: Add disconnect_ies in deauth/disassoc frame

disconnect_ies sent from userspace are cached in vdev mgr object.
Send the same in deauth/disassoc frames initiated from the driver.
Free the IEs once the frame is sent out successfully.

Change-Id: Ib223a9da7f5795bc10d717efe23c6106391070bb
CRs-Fixed: 2481909
Srinivas Dasari пре 6 година
родитељ
комит
03e2f53c6a
2 измењених фајлова са 24 додато и 0 уклоњено
  1. 8 0
      mlme/core/inc/wlan_mlme_main.h
  2. 16 0
      mlme/core/src/wlan_mlme_main.c

+ 8 - 0
mlme/core/inc/wlan_mlme_main.h

@@ -300,4 +300,12 @@ void mlme_set_self_disconnect_ies(struct wlan_objmgr_vdev *vdev,
  * Return: None
  */
 void mlme_free_self_disconnect_ies(struct wlan_objmgr_vdev *vdev);
+
+/**
+ * mlme_get_self_disconnect_ies() - Get diconnect IEs from vdev object
+ * @vdev: vdev pointer
+ *
+ * Return: Returns a pointer to the self disconnect IEs present in vdev object
+ */
+struct wlan_ies *mlme_get_self_disconnect_ies(struct wlan_objmgr_vdev *vdev);
 #endif

+ 16 - 0
mlme/core/src/wlan_mlme_main.c

@@ -2419,3 +2419,19 @@ void mlme_free_self_disconnect_ies(struct wlan_objmgr_vdev *vdev)
 		mlme_priv->self_disconnect_ies.len = 0;
 	}
 }
+
+struct wlan_ies *mlme_get_self_disconnect_ies(struct wlan_objmgr_vdev *vdev)
+{
+	struct vdev_mlme_obj *vdev_mlme;
+	struct mlme_legacy_priv *mlme_priv;
+
+	vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
+	if (!vdev_mlme) {
+		mlme_legacy_err("vdev component object is NULL");
+		return NULL;
+	}
+
+	mlme_priv = vdev_mlme->ext_vdev_ptr;
+
+	return &mlme_priv->self_disconnect_ies;
+}