qcacld-3.0: Create new files for supporting NAN data path feature
Add new files for supporting NAN data path feature.
Propagation from qcacld-2.0 to qcacld-3.0
CRs-Fixed: 962367
Change-Id: If12d15789659d04559a9d65d6b7016d4cc595fcf
diff --git a/Kbuild b/Kbuild
old mode 100755
new mode 100644
index 74e828b..cf509b1
--- a/Kbuild
+++ b/Kbuild
@@ -110,24 +110,28 @@
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 @@
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 @@
-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 @@
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_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 @@
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_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_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 @@
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 4ba9570..bac7403 100644
--- a/Kconfig
+++ b/Kconfig
@@ -37,6 +37,11 @@
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 0000000..3c955f3
--- /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 0000000..c9295cb
--- /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 0000000..d9f6a5f
--- /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 0000000..d4f2398
--- /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 0000000..9b91f0a
--- /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 0000000..56a8a99
--- /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 0000000..6deebb2
--- /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 0000000..b07810b
--- /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 */