Browse Source

qcacld-3.0: Add interface manager module

- Add interface manager module files
- Add start_connect event processing
- Add stubs for start_connect_complete and start_bss
event processing API's

Change-Id: I24756336c6e6c9d7f3276e4039c0b7236233d45e
CRs-Fixed: 2759275
Sandeep Puligilla 4 years ago
parent
commit
60352aed62

+ 42 - 0
components/cmn_services/interface_mgr/inc/wlan_if_mgr_roam.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * DOC: contains interface manager public api
+ */
+
+#ifndef _WLAN_IF_MGR_ROAM_H_
+#define _WLAN_IF_MGR_ROAM_H_
+
+#include "wlan_objmgr_psoc_obj.h"
+#include "wlan_objmgr_pdev_obj.h"
+#include "wlan_objmgr_vdev_obj.h"
+#include "wlan_policy_mgr_api.h"
+#include "wlan_if_mgr_roam.h"
+
+/**
+ * if_mgr_enable_roaming() - interface manager enable roaming
+ *
+ * Interface manager emable roaming
+ *
+ * @vdev: vdev object
+ * @pdev: pdev object
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS if_mgr_enable_roaming(struct wlan_objmgr_vdev *vdev,
+				 struct wlan_objmgr_pdev *pdev);
+#endif

+ 30 - 0
components/cmn_services/interface_mgr/src/wlan_if_mgr_roam.c

@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * DOC: contains interface manager roam public api
+ */
+#include "wlan_objmgr_psoc_obj.h"
+#include "wlan_objmgr_pdev_obj.h"
+#include "wlan_objmgr_vdev_obj.h"
+#include "wlan_policy_mgr_api.h"
+#include "wlan_if_mgr_roam.h"
+
+QDF_STATUS if_mgr_enable_roaming(struct wlan_objmgr_vdev *vdev,
+				struct wlan_objmgr_pdev *pdev)
+{
+	return QDF_STATUS_SUCCESS;
+}

+ 29 - 0
components/cmn_services/interface_mgr/src/wlan_if_mgr_sap.c

@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * DOC: contains interface manager public api
+ */
+#include "wlan_objmgr_psoc_obj.h"
+#include "wlan_objmgr_vdev_obj.h"
+#include "wlan_if_mgr_public_struct.h"
+#include "wlan_if_mgr_ap.h"
+
+QDF_STATUS wlan_process_ap_start_bss(struct wlan_objmgr_vdev *vdev,
+				     struct if_mgr_event_data *event_data)
+{
+	return QDF_STATUS_SUCCESS;
+}

+ 74 - 0
components/cmn_services/interface_mgr/src/wlan_if_mgr_sta.c

@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * DOC: contains interface manager public api
+ */
+#include "wlan_objmgr_psoc_obj.h"
+#include "wlan_objmgr_vdev_obj.h"
+#include "wlan_if_mgr_public_struct.h"
+#include "wlan_if_mgr_sta.h"
+#include "nan_ucfg_api.h"
+#include "wlan_policy_mgr_api.h"
+
+QDF_STATUS wlan_process_connect_start(struct wlan_objmgr_vdev *vdev,
+				      struct if_mgr_event_data *event_data)
+{
+	uint8_t sta_cnt, sap_cnt;
+	struct wlan_objmgr_psoc *psoc;
+	enum QDF_OPMODE op_mode;
+
+	psoc = wlan_vdev_get_psoc(vdev);
+	if (!psoc)
+		return QDF_STATUS_E_FAILURE;
+
+	/*
+	 * Disable NAN Discovery if incoming connection is P2P or if a STA
+	 * connection already exists and if this is a case of STA+STA
+	 * or SAP+STA concurrency
+	 */
+	sta_cnt = policy_mgr_mode_specific_connection_count(psoc,
+							    PM_STA_MODE,
+							    NULL);
+	sap_cnt = policy_mgr_mode_specific_connection_count(psoc,
+							    PM_SAP_MODE,
+							    NULL);
+	op_mode = wlan_vdev_mlme_get_opmode(vdev);
+	if (op_mode == QDF_P2P_CLIENT_MODE || sap_cnt || sta_cnt)
+		ucfg_nan_disable_concurrency(psoc);
+
+	/* STA+NDI concurrency gets preference over NDI+NDI. Disable
+	 * first NDI in case an NDI+NDI concurrency exists.
+	 */
+	ucfg_nan_check_and_disable_unsupported_ndi(psoc, false);
+
+	/*
+	 * STA+NDI concurrency gets preference over NDI+NDI. Disable
+	 * first NDI in case an NDI+NDI concurrency exists if FW does
+	 * not support 4 port concurrency of two NDI + NAN with STA.
+	 */
+	if (!ucfg_nan_is_sta_nan_ndi_4_port_allowed(psoc))
+		ucfg_nan_check_and_disable_unsupported_ndi(psoc,
+							   false);
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_process_connect_complete(struct wlan_objmgr_vdev *vdev,
+					 struct if_mgr_event_data *event_data)
+{
+	return QDF_STATUS_SUCCESS;
+}