1include $(TOPDIR)/rules.mk
2include $(INCLUDE_DIR)/kernel.mk
3
4PKG_NAME:=qca-nss-clients
5PKG_SOURCE_PROTO:=git
6PKG_BRANCH:=master
7PKG_RELEASE:=1
8
9include $(INCLUDE_DIR)/local-development.mk
10ifeq ($(DUMP)$(PKG_VERSION),)
11  PKG_VERSION:=$(shell git ls-remote $(PKG_SOURCE_URL) $(PKG_BRANCH) | cut -b -7)
12endif
13PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
14PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
15PKG_SOURCE_VERSION:=$(PKG_VERSION)
16
17include $(INCLUDE_DIR)/package.mk
18
19define KernelPackage/qca-nss-drv-tun6rd
20  SECTION:=kernel
21  CATEGORY:=Kernel modules
22  SUBMENU:=Network Devices
23  TITLE:=Kernel driver for NSS (connection manager) - tun6rd
24  DEPENDS:=kmod-qca-nss-drv +kmod-sit +kmod-qca-nss-crypto
25  FILES:=$(PKG_BUILD_DIR)/qca-nss-tun6rd.ko
26  AUTOLOAD:=$(call AutoLoad,51,qca-nss-tun6rd)
27endef
28
29define KernelPackage/qca-nss-drv-tun6rd/Description
30Kernel modules for NSS connection manager - Support for 6rd tunnel
31endef
32
33define KernelPackage/qca-nss-drv-tunipip6
34  SECTION:=kernel
35  CATEGORY:=Kernel modules
36  SUBMENU:=Network Devices
37  TITLE:=Kernel driver for NSS (connection manager) - DS-lite and ipip6 Tunnel
38  DEPENDS:=kmod-qca-nss-drv +kmod-iptunnel6 +kmod-ip6-tunnel
39  FILES:=$(PKG_BUILD_DIR)/qca-nss-tunipip6.ko
40  AUTOLOAD:=$(call AutoLoad,51,qca-nss-tunipip6)
41endef
42
43define KernelPackage/qca-nss-drv-tunipip6/Description
44Kernel modules for NSS connection manager
45Add support for DS-lite and ipip6 tunnel
46endef
47
48define KernelPackage/qca-nss-drv-profile
49  SECTION:=kernel
50  CATEGORY:=Kernel modules
51  SUBMENU:=Network Devices
52  DEPENDS:=kmod-qca-nss-drv
53  TITLE:=Profiler for QCA NSS driver (IPQ806x)
54  FILES:=$(PKG_BUILD_DIR)/profiler/qca-nss-profile-drv.ko
55endef
56
57define KernelPackage/qca-nss-drv-profile/Description
58This package contains a NSS driver profiler for QCA chipset
59endef
60
61define KernelPackage/qca-nss-drv-capwapmgr
62  SECTION:=kernel
63  CATEGORY:=Kernel modules
64  SUBMENU:=Network Devices
65  DEPENDS:=kmod-qca-nss-drv
66  TITLE:=NSS CAPWAP Manager for QCA NSS driver (IPQ806x)
67  FILES:=$(PKG_BUILD_DIR)/capwapmgr/qca-nss-capwapmgr.ko
68endef
69
70define KernelPackage/qca-nss-drv-capwapmgr/Description
71This package contains a NSS CAPWAP Manager
72endef
73
74define KernelPackage/qca-nss-drv-qdisc
75  SECTION:=kernel
76  CATEGORY:=Kernel modules
77  SUBMENU:=Network Devices
78  TITLE:=Qdisc for configuring shapers in NSS
79  DEPENDS:=kmod-qca-nss-drv +kmod-qca-nss-crypto
80  FILES:=$(PKG_BUILD_DIR)/nss_qdisc/qca-nss-qdisc.ko
81  AUTOLOAD:=$(call AutoLoad,33,qca-nss-qdisc)
82endef
83
84define KernelPackage/qca-nss-drv-ipsecmgr
85  SECTION:=kernel
86  CATEGORY:=Kernel modules
87  SUBMENU:=Network Devices
88  TITLE:=Kernel driver for NSS (ipsec manager) - ipsecmgr
89  DEPENDS:=kmod-qca-nss-drv
90  FILES:=$(PKG_BUILD_DIR)/qca-nss-ipsecmgr.ko
91  AUTOLOAD:=$(call AutoLoad,34,qca-nss-ipsecmgr)
92endef
93
94define KernelPackage/qca-nss-drv-ipsecmgr/Description
95Kernel module for NSS IPsec offload manager
96endef
97
98EXTRA_CFLAGS+= \
99        -I$(STAGING_DIR)/usr/include/qca-nss-drv \
100	-I$(STAGING_DIR)/usr/include/qca-nss-gmac \
101	-I$(STAGING_DIR)/usr/include/qca-nss-crypto
102
103define Build/Prepare
104	mkdir -p $(PKG_BUILD_DIR)
105	$(CP) ./src/* $(PKG_BUILD_DIR)/
106endef
107
108define Build/Compile
109        $(MAKE) -C "$(LINUX_DIR)" \
110                CROSS_COMPILE="$(TARGET_CROSS)" \
111                ARCH="$(LINUX_KARCH)" \
112                SUBDIRS="$(PKG_BUILD_DIR)" \
113                EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
114                modules
115endef
116
117$(eval $(call KernelPackage,qca-nss-drv-profile))
118$(eval $(call KernelPackage,qca-nss-drv-capwapmgr))
119$(eval $(call KernelPackage,qca-nss-drv-tun6rd))
120$(eval $(call KernelPackage,qca-nss-drv-tunipip6))
121$(eval $(call KernelPackage,qca-nss-drv-qdisc))
122$(eval $(call KernelPackage,qca-nss-drv-ipsecmgr))
123