qcacld-3.0: Add ini support to configure max ndp sessions in fw

Introduce INI "ndp_max_sessions" to configure max number of ndp
sessions host supports. Firmware advertises max number of ndp
sessions supported in wmi_service_ready_ext2 event. If the firmware
advertises non-zero value of max ndp sessions then host configures
max ndp sessions support in firmware using WMI_INIT_CMD.

Host uses a minimum of "ndp_max_sessions" value and firmware
advertised max ndp session value to configure max number of ndp
sessions in firmware.

Change-Id: I613815f384f9b0a61711324c85ecfa095d133360
CRs-Fixed: 2673120
This commit is contained in:
Abhishek Ambure
2020-05-15 19:14:24 +05:30
committed by nshrivas
parent 17f0046990
commit a6afc073d0
6 changed files with 69 additions and 1 deletions

View File

@@ -83,6 +83,7 @@ enum nan_disc_state {
* wait to kickout peer if peer is not reachable
* @support_mp0_discovery: To support discovery of NAN cluster with Master
* Preference (MP) as 0 when a new device is enabling NAN
* @max_ndp_sessions: max ndp sessions host supports
*/
struct nan_cfg_params {
bool enable;
@@ -92,6 +93,7 @@ struct nan_cfg_params {
bool nan_separate_iface_support;
uint16_t ndp_keep_alive_period;
bool support_mp0_discovery;
uint32_t max_ndp_sessions;
};
/**

View File

@@ -168,6 +168,32 @@
CFG_VALUE_OR_DEFAULT, \
"Keep alive timeout of a peer")
/*
* <ini>
* ndp_max_sessions - To configure max ndp sessions
* supported by host.
*
* @Min: 1
* @Max: 8
* @Default: 8
*
* Related: None
*
* Supported Feature: NAN
*
* Usage: Internal
*
* </ini>
*/
#define CFG_NDP_MAX_SESSIONS CFG_INI_UINT( \
"ndp_max_sessions", \
1, \
8, \
8, \
CFG_VALUE_OR_DEFAULT, \
"max ndp sessions host supports")
/*
* <ini>
* gSupportMp0Discovery - To support discovery of NAN cluster with
@@ -204,6 +230,7 @@
#endif
#define CFG_NAN_ALL CFG_NAN_DISC \
CFG_NAN_DP
CFG_NAN_DP \
CFG(CFG_NDP_MAX_SESSIONS)
#endif

View File

@@ -74,6 +74,16 @@ QDF_STATUS cfg_nan_get_ndp_inactivity_timeout(struct wlan_objmgr_psoc *psoc,
QDF_STATUS cfg_nan_get_ndp_keepalive_period(struct wlan_objmgr_psoc *psoc,
uint16_t *val);
/**
* cfg_nan_get_ndp_max_sessions() - get NDP max sessions host supports
* @psoc: pointer to psoc object
* @val: pointer to hold max ndp sessions
*
* Return: QDF_STATUS
*/
QDF_STATUS cfg_nan_get_ndp_max_sessions(struct wlan_objmgr_psoc *psoc,
uint32_t *val);
/**
* cfg_nan_get_support_mp0_discovery() - get value of config support mp0
* discovery
@@ -127,6 +137,13 @@ QDF_STATUS cfg_nan_get_ndp_keepalive_period(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
static inline
QDF_STATUS cfg_nan_get_ndp_max_sessions(struct wlan_objmgr_psoc *psoc,
uint32_t *val)
{
return QDF_STATUS_SUCCESS;
}
static inline bool cfg_nan_get_support_mp0_discovery(
struct wlan_objmgr_psoc *psoc)
{

View File

@@ -24,6 +24,8 @@
#include "cfg_nan_api.h"
#include "../../core/src/nan_main_i.h"
#include "wlan_mlme_ucfg_api.h"
#include "cfg_ucfg_api.h"
#include "cfg_nan.h"
static inline struct nan_psoc_priv_obj
*cfg_nan_get_priv_obj(struct wlan_objmgr_psoc *psoc)
@@ -96,6 +98,21 @@ QDF_STATUS cfg_nan_get_ndp_keepalive_period(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
QDF_STATUS cfg_nan_get_ndp_max_sessions(struct wlan_objmgr_psoc *psoc,
uint32_t *val)
{
struct nan_psoc_priv_obj *nan_obj = cfg_nan_get_priv_obj(psoc);
if (!nan_obj) {
nan_err("NAN obj null");
*val = cfg_default(CFG_NDP_MAX_SESSIONS);
return QDF_STATUS_E_INVAL;
}
*val = nan_obj->cfg_param.max_ndp_sessions;
return QDF_STATUS_SUCCESS;
}
bool cfg_nan_get_support_mp0_discovery(struct wlan_objmgr_psoc *psoc)
{
struct nan_psoc_priv_obj *nan_obj = cfg_nan_get_priv_obj(psoc);

View File

@@ -54,6 +54,8 @@ static void nan_cfg_init(struct wlan_objmgr_psoc *psoc,
nan_obj->cfg_param.ndp_keep_alive_period =
cfg_get(psoc,
CFG_NDP_KEEP_ALIVE_PERIOD);
nan_obj->cfg_param.max_ndp_sessions = cfg_get(psoc,
CFG_NDP_MAX_SESSIONS);
}
/**