Merge "wlan: Add support for default SAP using ini param" into wlan-driver.lnx.1.0
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 0884b71..e62dbe9 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -61,6 +61,12 @@
#define WLAN_PSK_STRING_LENGTH (64)
#endif /* SAP_AUTH_OFFLOAD */
+/*
+ * Maximum length of the default SAP interface created using
+ * gEnabledefaultSAP ini param.
+ */
+#define CFG_CONCURRENT_IFACE_MAX_LEN 16
+
// Defines for all of the things we read from the configuration (registry).
#define CFG_RTS_THRESHOLD_NAME "RTSThreshold"
@@ -3248,6 +3254,23 @@
#define CFG_FORCE_RSNE_OVERRIDE_MAX (1)
#define CFG_FORCE_RSNE_OVERRIDE_DEFAULT (0)
+/*
+ * <ini>
+ * gEnabledefaultSAP - This will control the creation of default SAP
+ * interface
+ * @Default: NULL
+ *
+ * This ini is used for providing control to create a default SAP session
+ * along with the creation of wlan0 and p2p0. The name of the interface is
+ * specified as the parameter
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_ENABLE_DEFAULT_SAP "gEnabledefaultSAP"
+#define CFG_ENABLE_DEFAULT_SAP_DEFAULT ""
+
/*---------------------------------------------------------------------------
Type declarations
-------------------------------------------------------------------------*/
@@ -3864,7 +3887,7 @@
uint32_t btc_dyn_num_bt_ext;
bool indoor_channel_support;
bool force_rsne_override;
-
+ char enabledefaultSAP[CFG_CONCURRENT_IFACE_MAX_LEN];
} hdd_config_t;
/*---------------------------------------------------------------------------
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 6a2e23a..941befb 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -4035,6 +4035,11 @@
CFG_FORCE_RSNE_OVERRIDE_MIN,
CFG_FORCE_RSNE_OVERRIDE_MAX),
+ REG_VARIABLE_STRING(CFG_ENABLE_DEFAULT_SAP, WLAN_PARAM_String,
+ hdd_config_t, enabledefaultSAP,
+ VAR_FLAGS_NONE,
+ (void *)CFG_ENABLE_DEFAULT_SAP),
+
};
/*
@@ -4708,6 +4713,10 @@
"Name = [%s] Value = [%u] ",
CFG_FORCE_RSNE_OVERRIDE_NAME,
pHddCtx->cfg_ini->force_rsne_override);
+ VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH,
+ "Name = [%s] Value = [%s] ",
+ CFG_ENABLE_DEFAULT_SAP,
+ pHddCtx->cfg_ini->enabledefaultSAP);
}
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 9da590f..ca45a93 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -13380,6 +13380,7 @@
VOS_STATUS status;
hdd_adapter_t *pAdapter = NULL;
hdd_adapter_t *pP2pAdapter = NULL;
+ hdd_adapter_t *softapAdapter = NULL;
hdd_context_t *pHddCtx = NULL;
v_CONTEXT_t pVosContext= NULL;
#ifdef WLAN_BTAMP_FEATURE
@@ -13953,6 +13954,16 @@
goto err_close_adapter;
}
+ if (strlen(pHddCtx->cfg_ini->enabledefaultSAP) != 0) {
+ softapAdapter = hdd_open_adapter( pHddCtx, WLAN_HDD_SOFTAP,
+ pHddCtx->cfg_ini->enabledefaultSAP,
+ wlan_hdd_get_intf_addr(pHddCtx), FALSE);
+ if (!softapAdapter) {
+ hddLog(VOS_TRACE_LEVEL_ERROR, "%s: hdd_open_adapter failed", __func__);
+ goto err_close_adapter;
+ }
+ }
+
if (country_code)
{
eHalStatus ret;