diff --git a/Kbuild b/Kbuild old mode 100755 new mode 100644 index 74e828b5ce7d..cf509b13a66d --- a/Kbuild +++ b/Kbuild @@ -110,24 +110,28 @@ ifeq ($(KERNEL_BUILD), 0) endif endif - - #Flag to enable Protected Managment Frames (11w) feature - ifeq ($(CONFIG_ROME_IF),usb) - CONFIG_WLAN_FEATURE_11W := y - endif - ifeq ($(CONFIG_ROME_IF),sdio) - CONFIG_WLAN_FEATURE_11W := y - endif + #Flag to enable Protected Managment Frames (11w) feature + ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_WLAN_FEATURE_11W := y + endif + ifeq ($(CONFIG_ROME_IF),sdio) + CONFIG_WLAN_FEATURE_11W := y + endif ifneq ($(CONFIG_MOBILE_ROUTER), y) #Flag to enable NAN CONFIG_QCACLD_FEATURE_NAN := y endif - #Flag to enable Linux QCMBR feature as default feature - ifeq ($(CONFIG_ROME_IF),usb) - CONFIG_LINUX_QCMBR :=y - endif + ifneq ($(CONFIG_MOBILE_ROUTER), y) + #Flag to enable NAN Data path + CONFIG_WLAN_FEATURE_NAN_DATAPATH := y + endif + + #Flag to enable Linux QCMBR feature as default feature + ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_LINUX_QCMBR :=y + endif CONFIG_MPC_UT_FRAMEWORK := y @@ -392,6 +396,10 @@ ifeq ($(CONFIG_LFR_SUBNET_DETECTION), y) HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_subnet_detect.o endif +ifeq ($(CONFIG_WLAN_FEATURE_NAN_DATAPATH), y) +HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_nan_datapath.o +endif + ########### HOST DIAG LOG ########### HOST_DIAG_LOG_DIR := core/utils/host_diag_log @@ -426,7 +434,8 @@ MAC_INC := -I$(WLAN_ROOT)/$(MAC_INC_DIR) \ -I$(WLAN_ROOT)/$(MAC_SRC_DIR)/dph \ -I$(WLAN_ROOT)/$(MAC_SRC_DIR)/include \ -I$(WLAN_ROOT)/$(MAC_SRC_DIR)/pe/include \ - -I$(WLAN_ROOT)/$(MAC_SRC_DIR)/pe/lim + -I$(WLAN_ROOT)/$(MAC_SRC_DIR)/pe/lim \ + -I$(WLAN_ROOT)/$(MAC_SRC_DIR)/pe/nan MAC_CFG_OBJS := $(MAC_SRC_DIR)/cfg/cfg_api.o \ $(MAC_SRC_DIR)/cfg/cfg_debug.o \ @@ -478,6 +487,10 @@ ifeq ($(CONFIG_QCOM_TDLS),y) MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/lim_process_tdls.o endif +ifeq ($(CONFIG_WLAN_FEATURE_NAN_DATAPATH), y) +MAC_NDP_OBJS += $(MAC_SRC_DIR)/pe/nan/nan_datapath.o +endif + ifeq ($(CONFIG_QCACLD_WLAN_LFR2),y) MAC_LIM_OBJS += $(MAC_SRC_DIR)/pe/lim/lim_process_mlm_host_roam.o \ $(MAC_SRC_DIR)/pe/lim/lim_send_frames_host_roam.o \ @@ -498,7 +511,8 @@ MAC_OBJS := $(MAC_CFG_OBJS) \ $(MAC_DPH_OBJS) \ $(MAC_LIM_OBJS) \ $(MAC_SCH_OBJS) \ - $(MAC_RRM_OBJS) + $(MAC_RRM_OBJS) \ + $(MAC_NDP_OBJS) ############ SAP ############ SAP_DIR := core/sap @@ -576,13 +590,18 @@ ifeq ($(CONFIG_QCACLD_FEATURE_NAN),y) SME_NAN_OBJS = $(SME_SRC_DIR)/nan/nan_api.o endif +ifeq ($(CONFIG_WLAN_FEATURE_NAN_DATAPATH), y) +SME_NDP_OBJS += $(SME_SRC_DIR)/nan/nan_datapath_api.o +endif + SME_OBJS := $(SME_CMN_OBJS) \ $(SME_CSR_OBJS) \ $(SME_OEM_DATA_OBJS) \ $(SME_P2P_OBJS) \ $(SME_QOS_OBJS) \ $(SME_RRM_OBJS) \ - $(SME_NAN_OBJS) + $(SME_NAN_OBJS) \ + $(SME_NDP_OBJS) ############ NLINK ############ NLINK_DIR := core/utils/nlink @@ -831,6 +850,10 @@ WMA_SRC_DIR := $(WMA_DIR)/src WMA_INC := -I$(WLAN_ROOT)/$(WMA_INC_DIR) \ -I$(WLAN_ROOT)/$(WMA_SRC_DIR) +ifeq ($(CONFIG_WLAN_FEATURE_NAN_DATAPATH), y) +WMA_NDP_OBJS += $(WMA_SRC_DIR)/wma_nan_datapath.o +endif + WMA_OBJS := $(WMA_SRC_DIR)/wma_main.o \ $(WMA_SRC_DIR)/wma_scan_roam.o \ $(WMA_SRC_DIR)/wma_dev_if.o \ @@ -841,7 +864,8 @@ WMA_OBJS := $(WMA_SRC_DIR)/wma_main.o \ $(WMA_SRC_DIR)/wma_features.o \ $(WMA_SRC_DIR)/wma_dfs_interface.o \ $(WMA_SRC_DIR)/wma_ocb.o \ - $(WMA_SRC_DIR)/wlan_qct_wma_legacy.o + $(WMA_SRC_DIR)/wlan_qct_wma_legacy.o\ + $(WMA_NDP_OBJS) ifeq ($(CONFIG_MPC_UT_FRAMEWORK),y) WMA_OBJS += $(WMA_SRC_DIR)/wma_utils_ut.o @@ -1451,6 +1475,10 @@ ifeq ($(CONFIG_MCC_TO_SCC_SWITCH), y) CDEFINES += -DFEATURE_WLAN_MCC_TO_SCC_SWITCH endif +ifeq ($(CONFIG_WLAN_FEATURE_NAN_DATAPATH), y) +CDEFINES += -DWLAN_FEATURE_NAN_DATAPATH +endif + KBUILD_CPPFLAGS += $(CDEFINES) # Currently, for versions of gcc which support it, the kernel Makefile diff --git a/Kconfig b/Kconfig index 4ba957084bcd..bac7403f532d 100644 --- a/Kconfig +++ b/Kconfig @@ -37,6 +37,11 @@ config QCACLD_FEATURE_NAN bool "Enable NAN feature" default n +config WLAN_FEATURE_NAN_DATAPATH + bool "Enable NaN Data Path feature" + depends on QCACLD_FEATURE_NAN + default n + config QCACLD_FEATURE_GREEN_AP bool "Enable Green AP feature" default n diff --git a/core/hdd/src/wlan_hdd_nan_datapath.c b/core/hdd/src/wlan_hdd_nan_datapath.c new file mode 100644 index 000000000000..3c955f33ae3e --- /dev/null +++ b/core/hdd/src/wlan_hdd_nan_datapath.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * + * Previously licensed under the ISC license by Qualcomm Atheros, Inc. + * + * 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: wlan_hdd_nan_datapath.c + * + * WLAN Host Device Driver nan datapath API implementation + */ +#include "wlan_hdd_nan_datapath.h" diff --git a/core/hdd/src/wlan_hdd_nan_datapath.h b/core/hdd/src/wlan_hdd_nan_datapath.h new file mode 100644 index 000000000000..c9295cb2577a --- /dev/null +++ b/core/hdd/src/wlan_hdd_nan_datapath.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * + * Previously licensed under the ISC license by Qualcomm Atheros, Inc. + * + * 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: wlan_hdd_nan_datapath.h + * + * WLAN Host Device Driver nan datapath API specification + */ + +#ifndef __WLAN_HDD_NAN_DATAPATH_H +#define __WLAN_HDD_NAN_DATAPATH_H + +#endif /* __WLAN_HDD_NAN_DATAPATH_H */ + diff --git a/core/mac/src/pe/nan/nan_datapath.c b/core/mac/src/pe/nan/nan_datapath.c new file mode 100644 index 000000000000..d9f6a5f26bd2 --- /dev/null +++ b/core/mac/src/pe/nan/nan_datapath.c @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * + * Previously licensed under the ISC license by Qualcomm Atheros, Inc. + * + * 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: nan_datapath.c + * + * MAC NAN Data path API implementation + */ + +#include "nan_datapath.h" + diff --git a/core/mac/src/pe/nan/nan_datapath.h b/core/mac/src/pe/nan/nan_datapath.h new file mode 100644 index 000000000000..d4f23984c105 --- /dev/null +++ b/core/mac/src/pe/nan/nan_datapath.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * + * Previously licensed under the ISC license by Qualcomm Atheros, Inc. + * + * 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: nan_datapath.h + * + * MAC NAN Data path API specification + */ + +#ifndef __MAC_NAN_DATAPATH_H +#define __MAC_NAN_DATAPATH_H + +#endif /* __MAC_NAN_DATAPATH_H */ + diff --git a/core/sme/inc/sme_nan_datapath.h b/core/sme/inc/sme_nan_datapath.h new file mode 100644 index 000000000000..9b91f0a70f77 --- /dev/null +++ b/core/sme/inc/sme_nan_datapath.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * + * Previously licensed under the ISC license by Qualcomm Atheros, Inc. + * + * 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: sme_nan_datapath.h + * + * SME NAN Data path API specification + */ + +#ifndef __SME_NAN_DATAPATH_H +#define __SME_NAN_DATAPATH_H + +#endif /* __SME_NAN_DATAPATH_H */ + + diff --git a/core/sme/src/nan/nan_datapath_api.c b/core/sme/src/nan/nan_datapath_api.c new file mode 100644 index 000000000000..56a8a99f6ac8 --- /dev/null +++ b/core/sme/src/nan/nan_datapath_api.c @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * + * Previously licensed under the ISC license by Qualcomm Atheros, Inc. + * + * 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: nan_datapath_api.c + * + * SME NAN Data path API implementation + */ +#include "sme_nan_datapath.h" diff --git a/core/wma/src/wma_nan_datapath.c b/core/wma/src/wma_nan_datapath.c new file mode 100644 index 000000000000..6deebb293239 --- /dev/null +++ b/core/wma/src/wma_nan_datapath.c @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * + * Previously licensed under the ISC license by Qualcomm Atheros, Inc. + * + * 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: wma_nan_datapath.c + * + * WMA NAN Data path API implementation + */ + +#include "wma_nan_datapath.h" + diff --git a/core/wma/src/wma_nan_datapath.h b/core/wma/src/wma_nan_datapath.h new file mode 100644 index 000000000000..b07810b6468a --- /dev/null +++ b/core/wma/src/wma_nan_datapath.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * + * Previously licensed under the ISC license by Qualcomm Atheros, Inc. + * + * 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: wma_nan_datapath.h + * + * WMA NAN Data path API specification + */ + +#ifndef __WMA_NAN_DATAPATH_H +#define __WMA_NAN_DATAPATH_H + +#endif /* __WMA_NAN_DATAPATH_H */