/* * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. 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. */ #if !defined(__NAN_CFG_H__) #define __NAN_CFG_H__ /** * DOC: nan_cfg.h * * NAN feature INI configuration parameter definitions */ #include "cfg_define.h" #include "cfg_converged.h" #include "qdf_types.h" /* * * gEnableNanSupport - NAN feature support configuration * @Min: 0 * @Max: 1 * @Default: 1 * * When set to 1 NAN feature will be enabled. * * Related: None * * Supported Feature: NAN * * Usage: External * * */ #define CFG_NAN_ENABLE CFG_INI_BOOL("gEnableNanSupport", \ 1, \ "Enable NAN Support") /* * * nan_separate_iface_support: Separate iface creation for NAN * @Min: 0 * @Max: 1 * @Default: 1 * * Value is 1 when Host HDD supports separate iface creation * for NAN. * * Related: None * * Supported Feature: NAN * * Usage: External * * */ #define CFG_NAN_SEPARATE_IFACE_SUPP CFG_INI_BOOL("nan_separate_iface_support", \ 1, \ "Separate iface for NAN") /* * * genable_nan_datapath - Enable NaN data path feature. NaN data path * enables NAN supported devices to exchange * data over TCP/UDP network stack. * @Min: 0 * @Max: 1 * @Default: 1 * * When set to 1 NAN Datapath feature will be enabled. * * Related: gEnableNanSupport * * Supported Feature: NAN * * Usage: External * * */ #define CFG_NAN_DATAPATH_ENABLE CFG_INI_BOOL("genable_nan_datapath", \ 1, \ "Enable NAN Datapath support") /* * * gEnableNDIMacRandomization - When enabled this will randomize NDI Mac * @Min: 0 * @Max: 1 * @Default: 1 * * When enabled this will randomize NDI Mac * * Related: gEnableNanSupport * * Supported Feature: NAN * * Usage: External * * */ #define CFG_NAN_RANDOMIZE_NDI_MAC CFG_INI_BOOL("gEnableNDIMacRandomization", \ 1, \ "Enable NAN MAC Randomization") /* * * ndp_inactivity_timeout - To configure duration of how many seconds * without TX/RX data traffic, NDI vdev can kickout the connected * peer(i.e. NDP Termination). * * @Min: 0 * @Max: 1800 * @Default: 60 * * Related: None * * Supported Feature: NAN * * Usage: External * * */ #define CFG_NAN_NDP_INACTIVITY_TIMEOUT CFG_INI_UINT("ndp_inactivity_timeout", \ 0, \ 1800, \ 60, \ CFG_VALUE_OR_DEFAULT, \ "NDP Auto Terminate time") /* * * gNdpKeepAlivePeriod - To configure duration of how many seconds * to wait to kickout peer if peer is not reachable. * * @Min: 10 * @Max: 30 * @Default: 14 * * Related: None * * Supported Feature: NAN * * Usage: External * * */ #define CFG_NDP_KEEP_ALIVE_PERIOD CFG_INI_UINT( \ "gNdpKeepAlivePeriod", \ 10, \ 30, \ 14, \ CFG_VALUE_OR_DEFAULT, \ "Keep alive timeout of a peer") /* MAX NDP sessions supported */ #define MAX_NDP_SESSIONS 8 /* * * ndp_max_sessions - To configure max ndp sessions * supported by host. * * @Min: 1 * @Max: 8 * @Default: 8 * * Related: None * * Supported Feature: NAN * * Usage: Internal * * */ #define CFG_NDP_MAX_SESSIONS CFG_INI_UINT( \ "ndp_max_sessions", \ 1, \ MAX_NDP_SESSIONS, \ 8, \ CFG_VALUE_OR_DEFAULT, \ "max ndp sessions host supports") /* * * gSupportMp0Discovery - To support discovery of NAN cluster with * Master Preference (MP) as 0 when a new device is enabling NAN. * * @Min: 0 * @Max: 1 * @Default: 0 * * Related: None * * Supported Feature: NAN * * Usage: External * * */ #define CFG_SUPPORT_MP0_DISCOVERY CFG_INI_BOOL( \ "gSupportMp0Discovery", \ 1, \ "Enable/Disable discovery of NAN cluster with Master Preference (MP) as 0") /* * * ndi_max_support - To configure max number of ndi host supports * * @Min: 1 * @Max: 2 * @Default: 1 * * Related: None * * Supported Feature: NAN * * Usage: Internal * * */ #define CFG_NDI_MAX_SUPPORT CFG_INI_UINT( \ "ndi_max_support", \ 1, \ 2, \ 1, \ CFG_VALUE_OR_DEFAULT, \ "Max number of NDI host supports") /* * * nan_feature_config - Bitmap to enable/disable a particular NAN/NDP feature * * @Min: 0 * @Max: 0xFFFF * @Default: 0 * * This parameter helps to enable/disable a particular feature config by setting * corresponding bit and send to firmware through the VDEV param * wmi_vdev_param_enable_disable_nan_config_features * Acceptable values for this: * BIT(0): Allow DW configuration from framework in sync role. * If this is not set, firmware shall follow the spec/default behavior. * BIT(1) to BIT(31): Reserved * * Related: None * * Supported Feature: NAN * * Usage: External * * */ #define CFG_NAN_FEATURE_CONFIG CFG_INI_UINT( \ "nan_feature_config", \ 0, \ 0xFFFF, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Enable the specified NAN features in firmware") /* * * disable_6g_nan - Disable NAN feature support in 6GHz * @Min: 0 * @Max: 1 * @Default: 0 * * When set to 1 NAN feature will be disabled in 6GHz. * * Related: None * * Supported Feature: NAN * * Usage: External * * */ #define CFG_DISABLE_6G_NAN CFG_INI_BOOL("disable_6g_nan", \ 0, \ "Disable NAN Support in 6GHz") /* * * g_nan_enable_eht_cap- enable/disable NAN EHT CAP * @Min: 0 * @Max: 1 * @Default: 0 * * This ini is used to enable/disable NAN EHT capability * * Related: None * * Supported Feature: NAN * * Usage: Internal/External * * */ #define CFG_NAN_ENABLE_EHT_CAP CFG_INI_BOOL("g_nan_enable_eht_cap", \ 0, \ "Enable NAN EHT CAP") #ifdef WLAN_FEATURE_NAN #define CFG_NAN_DISC CFG(CFG_NAN_ENABLE) \ CFG(CFG_DISABLE_6G_NAN) \ CFG(CFG_NDP_KEEP_ALIVE_PERIOD) \ CFG(CFG_SUPPORT_MP0_DISCOVERY) #define CFG_NAN_DP CFG(CFG_NAN_DATAPATH_ENABLE) \ CFG(CFG_NAN_RANDOMIZE_NDI_MAC) \ CFG(CFG_NAN_NDP_INACTIVITY_TIMEOUT) \ CFG(CFG_NAN_SEPARATE_IFACE_SUPP) #else #define CFG_NAN_DISC #define CFG_NAN_DP #endif #define CFG_NAN_ALL CFG_NAN_DISC \ CFG_NAN_DP \ CFG(CFG_NDP_MAX_SESSIONS) \ CFG(CFG_NDI_MAX_SUPPORT) \ CFG(CFG_NAN_FEATURE_CONFIG) \ CFG(CFG_NAN_ENABLE_EHT_CAP) #endif