| 
 | 1 | +include $(TOPDIR)/rules.mk  | 
 | 2 | +include $(INCLUDE_DIR)/kernel.mk  | 
 | 3 | + | 
 | 4 | +PKG_NAME:=qca-nss-ecm  | 
 | 5 | +PKG_VERSION:=NSS_11.4.0.5  | 
 | 6 | +PKG_RELEASE:=1  | 
 | 7 | + | 
 | 8 | +PKG_SOURCE_PROTO:=git  | 
 | 9 | +PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-nss-ecm  | 
 | 10 | +PKG_SOURCE_VERSION:=5187b677a343154ca794d4d96f7c750e26e0a35c  | 
 | 11 | +PKG_MIRROR_HASH:=skip  | 
 | 12 | + | 
 | 13 | +LOCAL_VARIANT=$(patsubst qca-nss-ecm-%,%,$(patsubst qca-nss-ecm-%,%,$(BUILD_VARIANT)))  | 
 | 14 | +include $(INCLUDE_DIR)/package.mk  | 
 | 15 | + | 
 | 16 | +ifeq ($(CONFIG_QCA_NSS_ECM_EXAMPLES_PCC),y)  | 
 | 17 | +       FILES_EXAMPLES=$(PKG_BUILD_DIR)/examples/ecm_pcc_test.ko  | 
 | 18 | +endif  | 
 | 19 | + | 
 | 20 | +ifeq ($(CONFIG_QCA_NSS_ECM_EXAMPLES_MARK),y)  | 
 | 21 | +       FILES_EXAMPLES+=$(PKG_BUILD_DIR)/examples/ecm_mark_test.ko  | 
 | 22 | +endif  | 
 | 23 | + | 
 | 24 | +#Explicitly enable OVS external module, if ovsmgr is enabled.  | 
 | 25 | +ifneq ($(CONFIG_PACKAGE_kmod-qca-ovsmgr),)  | 
 | 26 | +CONFIG_QCA_NSS_ECM_OVS=y  | 
 | 27 | +endif  | 
 | 28 | + | 
 | 29 | +ifeq ($(CONFIG_QCA_NSS_ECM_OVS),y)  | 
 | 30 | +       FILES_EXAMPLES+=$(PKG_BUILD_DIR)/examples/ecm_ovs.ko  | 
 | 31 | +endif  | 
 | 32 | + | 
 | 33 | +define KernelPackage/qca-nss-ecm/Default  | 
 | 34 | +  SECTION:=kernel  | 
 | 35 | +  CATEGORY:=Kernel modules  | 
 | 36 | +  SUBMENU:=Network Support  | 
 | 37 | +  DEPENDS:=@(TARGET_ipq50xx||TARGET_ipq60xx||TARGET_ipq806x||TARGET_ipq807x) \  | 
 | 38 | +	+kmod-ipt-conntrack +iptables-mod-extra \  | 
 | 39 | +	+kmod-qca-nss-drv \  | 
 | 40 | +	+kmod-pppoe \  | 
 | 41 | +	+PACKAGE_kmod-qca-ovsmgr:kmod-qca-ovsmgr  | 
 | 42 | +  TITLE:=QCA NSS Enhanced Connection Manager (ECM)  | 
 | 43 | +  FILES:=$(PKG_BUILD_DIR)/*.ko $(FILES_EXAMPLES)  | 
 | 44 | +  KCONFIG:=CONFIG_BRIDGE_NETFILTER=y \  | 
 | 45 | +	CONFIG_NF_CONNTRACK_EVENTS=y \  | 
 | 46 | +	CONFIG_NF_CONNTRACK_CHAIN_EVENTS=y \  | 
 | 47 | +	CONFIG_NF_CONNTRACK_DSCPREMARK_EXT=y  | 
 | 48 | +  MENU:=1  | 
 | 49 | +  PROVIDES:=kmod-qca-nss-ecm  | 
 | 50 | +endef  | 
 | 51 | + | 
 | 52 | +define KernelPackage/qca-nss-ecm/Description/Default  | 
 | 53 | +This package contains the QCA NSS Enhanced Connection Manager  | 
 | 54 | +endef  | 
 | 55 | + | 
 | 56 | +define KernelPackage/qca-nss-ecm/Default/install  | 
 | 57 | +	$(INSTALL_DIR) $(1)/etc/firewall.d $(1)/etc/init.d $(1)/usr/bin $(1)/lib/netifd/offload $(1)/etc/config $(1)/etc/uci-defaults $(1)/etc/sysctl.d  | 
 | 58 | +	$(INSTALL_DATA) ./files/qca-nss-ecm.firewall $(1)/etc/firewall.d/qca-nss-ecm  | 
 | 59 | +	$(INSTALL_BIN) ./files/qca-nss-ecm.init $(1)/etc/init.d/qca-nss-ecm  | 
 | 60 | +	$(INSTALL_BIN) ./files/ecm_dump.sh $(1)/usr/bin/  | 
 | 61 | +	$(INSTALL_BIN) ./files/on-demand-down $(1)/lib/netifd/offload/on-demand-down  | 
 | 62 | +	$(INSTALL_DATA) ./files/qca-nss-ecm.uci $(1)/etc/config/ecm  | 
 | 63 | +	$(INSTALL_DATA) ./files/qca-nss-ecm.defaults $(1)/etc/uci-defaults/99-qca-nss-ecm  | 
 | 64 | +	$(INSTALL_BIN) ./files/qca-nss-ecm.sysctl $(1)/etc/sysctl.d/qca-nss-ecm.conf  | 
 | 65 | +# ifeq ($(CONFIG_KERNEL_IPQ_MEM_PROFILE),256)  | 
 | 66 | +# 	echo 'net.netfilter.nf_conntrack_max=2048' >> $(1)/etc/sysctl.d/qca-nss-ecm.conf  | 
 | 67 | +# else ifeq ($(CONFIG_LOWMEM_FLASH),y)  | 
 | 68 | +# 	echo 'net.netfilter.nf_conntrack_max=2048' >> $(1)/etc/sysctl.d/qca-nss-ecm.conf  | 
 | 69 | +# else ifeq ($(CONFIG_KERNEL_IPQ_MEM_PROFILE),512)  | 
 | 70 | +# 	echo 'net.netfilter.nf_conntrack_max=8192' >> $(1)/etc/sysctl.d/qca-nss-ecm.conf  | 
 | 71 | +# endif  | 
 | 72 | +endef  | 
 | 73 | + | 
 | 74 | +# Variant with additional features enabled for standard profile  | 
 | 75 | +define KernelPackage/qca-nss-ecm-standard  | 
 | 76 | +  $(call KernelPackage/qca-nss-ecm/Default)  | 
 | 77 | +  TITLE+= (with standard features)  | 
 | 78 | +  VARIANT:=standard  | 
 | 79 | +  DEPENDS+=+PACKAGE_kmod-qca-mcs:kmod-qca-mcs  | 
 | 80 | +endef  | 
 | 81 | + | 
 | 82 | +define KernelPackage/qca-nss-ecm-standard/Description  | 
 | 83 | +  $(call KernelPackage/qca-nss-ecm/Description/Default)  | 
 | 84 | +endef  | 
 | 85 | + | 
 | 86 | +define KernelPackage/qca-nss-ecm-standard/install  | 
 | 87 | +$(call KernelPackage/qca-nss-ecm/Default/install, $(1))  | 
 | 88 | +endef  | 
 | 89 | + | 
 | 90 | +# Variant with additional features enabled for premium profile  | 
 | 91 | +define KernelPackage/qca-nss-ecm-premium/Default  | 
 | 92 | +$(call KernelPackage/qca-nss-ecm/Default)  | 
 | 93 | +  TITLE+= (with premium features)  | 
 | 94 | +  VARIANT:=premium  | 
 | 95 | +  DEPENDS+= \  | 
 | 96 | +	+kmod-shortcut-fe-drv \  | 
 | 97 | +	+kmod-bonding \  | 
 | 98 | +	+kmod-nat46 +kmod-l2tp +kmod-pppol2tp +kmod-pptp \  | 
 | 99 | +	+PACKAGE_kmod-qca-mcs:kmod-qca-mcs \  | 
 | 100 | +	+PACKAGE_kmod-qca-hyfi-bridge:kmod-qca-hyfi-bridge \  | 
 | 101 | +	PACKAGE_kmod-emesh-sp:kmod-emesh-sp  | 
 | 102 | +endef  | 
 | 103 | + | 
 | 104 | +define KernelPackage/qca-nss-ecm-premium/Description/Default  | 
 | 105 | +$(call KernelPackage/qca-nss-ecm/Description/Default)  | 
 | 106 | +with the premium features enabled  | 
 | 107 | +endef  | 
 | 108 | + | 
 | 109 | +define KernelPackage/qca-nss-ecm-premium/Default/install  | 
 | 110 | +$(call KernelPackage/qca-nss-ecm/install)  | 
 | 111 | +endef  | 
 | 112 | + | 
 | 113 | +define KernelPackage/qca-nss-ecm-premium  | 
 | 114 | +$(call KernelPackage/qca-nss-ecm-premium/Default)  | 
 | 115 | +endef  | 
 | 116 | + | 
 | 117 | +define KernelPackage/qca-nss-ecm-premium/Description  | 
 | 118 | +$(call KernelPackage/qca-nss-ecm-premium/Description/Default)  | 
 | 119 | +endef  | 
 | 120 | + | 
 | 121 | +define KernelPackage/qca-nss-ecm-premium/install  | 
 | 122 | +$(call KernelPackage/qca-nss-ecm-standard/install, $(1))  | 
 | 123 | +endef  | 
 | 124 | + | 
 | 125 | +# Variant with additional features enabled for noload profile  | 
 | 126 | +define KernelPackage/qca-nss-ecm-noload  | 
 | 127 | +  $(call KernelPackage/qca-nss-ecm/Default)  | 
 | 128 | +  TITLE+= (with noload features)  | 
 | 129 | +  PROVIDES:=kmod-qca-nss-ecm  | 
 | 130 | +  VARIANT:=noload  | 
 | 131 | +  DEPENDS+= \  | 
 | 132 | +	+kmod-shortcut-fe-drv \  | 
 | 133 | +	+kmod-bonding \  | 
 | 134 | +	+kmod-l2tp +kmod-pppol2tp +kmod-pptp \  | 
 | 135 | +	+PACKAGE_kmod-qca-mcs:kmod-qca-mcs  | 
 | 136 | +endef  | 
 | 137 | + | 
 | 138 | +define KernelPackage/qca-nss-ecm-noload/Description  | 
 | 139 | +  $(call KernelPackage/qca-nss-ecm/Description/Default)  | 
 | 140 | +  When selected, this package installs the driver but does not load it at init.  | 
 | 141 | +endef  | 
 | 142 | + | 
 | 143 | +define KernelPackage/qca-nss-ecm-noload/install  | 
 | 144 | +$(call KernelPackage/qca-nss-ecm/Default/install, $(1))  | 
 | 145 | +	#  | 
 | 146 | +	# Remove the START line from the init script, so that the symlink  | 
 | 147 | +	# in the /etc/rc.d directory is not created.  | 
 | 148 | +	#  | 
 | 149 | +	sed -i '/START=/d' $(1)/etc/init.d/qca-nss-ecm  | 
 | 150 | +endef  | 
 | 151 | + | 
 | 152 | +define KernelPackage/qca-nss-ecm-premium-noload  | 
 | 153 | +  $(call KernelPackage/qca-nss-ecm-premium/Default)  | 
 | 154 | +  PROVIDES:=kmod-qca-nss-ecm-premium  | 
 | 155 | +endef  | 
 | 156 | + | 
 | 157 | +define KernelPackage/qca-nss-ecm-premium-noload/Description  | 
 | 158 | +  $(call KernelPackage/qca-nss-ecm-premium/Description/Default)  | 
 | 159 | +  When selected, this package installs the driver but does not load it at init.  | 
 | 160 | +endef  | 
 | 161 | + | 
 | 162 | +define KernelPackage/qca-nss-ecm-premium-noload/install  | 
 | 163 | +$(call KernelPackage/qca-nss-ecm-premium/Default/install, $(1))  | 
 | 164 | +endef  | 
 | 165 | + | 
 | 166 | +define Build/InstallDev/qca-nss-ecm  | 
 | 167 | +	$(INSTALL_DIR) $(1)/usr/include/qca-nss-ecm  | 
 | 168 | +	$(CP) $(PKG_BUILD_DIR)/exports/* $(1)/usr/include/qca-nss-ecm/  | 
 | 169 | +endef  | 
 | 170 | + | 
 | 171 | +define Build/InstallDev  | 
 | 172 | +	$(call Build/InstallDev/qca-nss-ecm,$(1))  | 
 | 173 | +endef  | 
 | 174 | + | 
 | 175 | +EXTRA_CFLAGS+= \  | 
 | 176 | +	-I$(STAGING_DIR)/usr/include/hyfibr \  | 
 | 177 | +	-I$(STAGING_DIR)/usr/include/qca-mcs \  | 
 | 178 | +	-I$(STAGING_DIR)/usr/include/qca-nss-drv \  | 
 | 179 | +	-I$(STAGING_DIR)/usr/include/shortcut-fe \  | 
 | 180 | +	-I$(STAGING_DIR)/usr/include/nat46  | 
 | 181 | + | 
 | 182 | +ECM_MAKE_OPTS:=ECM_CLASSIFIER_HYFI_ENABLE=y  | 
 | 183 | +ifneq ($(LOCAL_VARIANT),standard)  | 
 | 184 | +ECM_MAKE_OPTS+=ECM_MULTICAST_ENABLE=y \  | 
 | 185 | +		ECM_INTERFACE_IPSEC_ENABLE=y \  | 
 | 186 | +		ECM_INTERFACE_PPTP_ENABLE=y \  | 
 | 187 | +		ECM_INTERFACE_L2TPV2_ENABLE=y \  | 
 | 188 | +		ECM_INTERFACE_GRE_TAP_ENABLE=y \  | 
 | 189 | +		ECM_INTERFACE_GRE_TUN_ENABLE=y \  | 
 | 190 | +		ECM_INTERFACE_SIT_ENABLE=y \  | 
 | 191 | +		ECM_INTERFACE_TUNIPIP6_ENABLE=y \  | 
 | 192 | +		ECM_INTERFACE_RAWIP_ENABLE=y  | 
 | 193 | + | 
 | 194 | +ifeq ($(CONFIG_TARGET_ipq_ipq40xx)$(CONFIG_TARGET_ipq40xx),)  | 
 | 195 | +ECM_MAKE_OPTS+=ECM_INTERFACE_BOND_ENABLE=y  | 
 | 196 | +endif  | 
 | 197 | +endif  | 
 | 198 | + | 
 | 199 | +# ifneq ($(CONFIG_KERNEL_IPQ_MEM_PROFILE),256)  | 
 | 200 | +# ifneq ($(CONFIG_LOWMEM_FLASH),y)  | 
 | 201 | +ifneq ($(CONFIG_XFRM),)  | 
 | 202 | +ECM_MAKE_OPTS+=ECM_XFRM_ENABLE=y  | 
 | 203 | +endif  | 
 | 204 | +# ECM_MAKE_OPTS+=ECM_FRONT_END_SFE_ENABLE=y  | 
 | 205 | +ECM_MAKE_OPTS+=ECM_NON_PORTED_SUPPORT_ENABLE=y  | 
 | 206 | +# endif  | 
 | 207 | +# endif  | 
 | 208 | + | 
 | 209 | +# ifeq ($(CONFIG_KERNEL_IPQ_MEM_PROFILE),256)  | 
 | 210 | +# ECM_MAKE_OPTS+=ECM_FRONT_END_CONN_LIMIT_ENABLE=y  | 
 | 211 | +# else ifeq ($(CONFIG_LOWMEM_FLASH),y)  | 
 | 212 | +# ECM_MAKE_OPTS+=ECM_FRONT_END_CONN_LIMIT_ENABLE=y  | 
 | 213 | +# endif  | 
 | 214 | + | 
 | 215 | +ifneq ($(CONFIG_PACKAGE_kmod-nat46),)  | 
 | 216 | +ECM_MAKE_OPTS+=ECM_INTERFACE_MAP_T_ENABLE=y  | 
 | 217 | +endif  | 
 | 218 | + | 
 | 219 | +ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-ovpn-link),)  | 
 | 220 | +ECM_MAKE_OPTS+=ECM_INTERFACE_OVPN_ENABLE=y  | 
 | 221 | +endif  | 
 | 222 | + | 
 | 223 | +ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-vxlanmgr),)  | 
 | 224 | +ECM_MAKE_OPTS+=ECM_INTERFACE_VXLAN_ENABLE=y  | 
 | 225 | +endif  | 
 | 226 | + | 
 | 227 | +ifneq ($(CONFIG_PACKAGE_kmod-qca-ovsmgr),)  | 
 | 228 | +ECM_MAKE_OPTS+=ECM_INTERFACE_OVS_BRIDGE_ENABLE=y \  | 
 | 229 | +		ECM_CLASSIFIER_OVS_ENABLE=y  | 
 | 230 | +EXTRA_CFLAGS+= -I$(STAGING_DIR)/usr/include/qca-ovsmgr  | 
 | 231 | +endif  | 
 | 232 | + | 
 | 233 | +ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-igs),)  | 
 | 234 | +ECM_MAKE_OPTS+=ECM_CLASSIFIER_DSCP_IGS=y  | 
 | 235 | +endif  | 
 | 236 | + | 
 | 237 | +ifneq ($(CONFIG_PACKAGE_kmod-emesh-sp),)  | 
 | 238 | +ECM_MAKE_OPTS+=ECM_CLASSIFIER_EMESH_ENABLE=y  | 
 | 239 | +EXTRA_CFLAGS+= -I$(STAGING_DIR)/usr/include/emesh-sp  | 
 | 240 | +endif  | 
 | 241 | + | 
 | 242 | +ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-drv-mscs),)  | 
 | 243 | +ECM_MAKE_OPTS+=ECM_CLASSIFIER_MSCS_ENABLE=y  | 
 | 244 | +endif  | 
 | 245 | + | 
 | 246 | +ifneq ($(CONFIG_PACKAGE_kmod-macvlan),)  | 
 | 247 | +ECM_MAKE_OPTS+=ECM_INTERFACE_MACVLAN_ENABLE=y  | 
 | 248 | +endif  | 
 | 249 | + | 
 | 250 | +# Disable ECM IPv6 support when global IPv6 support is disabled.  | 
 | 251 | +ifneq ($(CONFIG_IPV6),)  | 
 | 252 | +ECM_MAKE_OPTS+=ECM_IPV6_ENABLE=y  | 
 | 253 | +endif  | 
 | 254 | + | 
 | 255 | +# Keeping default as ipq806x for branches that does not have subtarget framework  | 
 | 256 | +ifeq ($(CONFIG_TARGET_ipq),y)  | 
 | 257 | +subtarget:=$(SUBTARGET)  | 
 | 258 | +else  | 
 | 259 | +subtarget:=$(CONFIG_TARGET_BOARD)  | 
 | 260 | +endif  | 
 | 261 | + | 
 | 262 | +# Enable NSS frontend for all the platforms except ipq40xx  | 
 | 263 | +ifeq ($(CONFIG_TARGET_ipq_ipq40xx)$(CONFIG_TARGET_ipq40xx),)  | 
 | 264 | +ECM_MAKE_OPTS+=ECM_FRONT_END_NSS_ENABLE=y  | 
 | 265 | +endif  | 
 | 266 | + | 
 | 267 | +define Build/InstallDev  | 
 | 268 | +	$(INSTALL_DIR) $(1)/usr/include/qca-nss-ecm  | 
 | 269 | +	$(CP) $(PKG_BUILD_DIR)/exports/* $(1)/usr/include/qca-nss-ecm  | 
 | 270 | +endef  | 
 | 271 | + | 
 | 272 | +define Build/Compile  | 
 | 273 | +	$(MAKE) -C "$(LINUX_DIR)" $(strip $(ECM_MAKE_OPTS)) \  | 
 | 274 | +		CROSS_COMPILE="$(TARGET_CROSS)" \  | 
 | 275 | +		ARCH="$(LINUX_KARCH)" \  | 
 | 276 | +		M="$(PKG_BUILD_DIR)" \  | 
 | 277 | +		EXTRA_CFLAGS="$(EXTRA_CFLAGS)" SoC="$(subtarget)" \  | 
 | 278 | +		EXAMPLES_BUILD_PCC="$(CONFIG_QCA_NSS_ECM_EXAMPLES_PCC)" \  | 
 | 279 | +		EXAMPLES_BUILD_MARK="$(CONFIG_QCA_NSS_ECM_EXAMPLES_MARK)" \  | 
 | 280 | +		EXAMPLES_BUILD_OVS="$(CONFIG_QCA_NSS_ECM_OVS)" \  | 
 | 281 | +		modules  | 
 | 282 | +endef  | 
 | 283 | + | 
 | 284 | +define KernelPackage/qca-nss-ecm-premium/config  | 
 | 285 | +menu "ECM Configuration"  | 
 | 286 | +	config QCA_NSS_ECM_EXAMPLES_PCC  | 
 | 287 | +		bool "Build PCC usage example"  | 
 | 288 | +		help  | 
 | 289 | +			Selecting this will build the PCC classifier usage example module.  | 
 | 290 | +		default n  | 
 | 291 | + | 
 | 292 | +	config QCA_NSS_ECM_EXAMPLES_MARK  | 
 | 293 | +		bool "Build Mark classifier usage example"  | 
 | 294 | +		help  | 
 | 295 | +			Selecting this will build the Mark classifier usage example module.  | 
 | 296 | +		default n  | 
 | 297 | + | 
 | 298 | +	config QCA_NSS_ECM_OVS  | 
 | 299 | +		bool "Build OVS classifier external module"  | 
 | 300 | +		help  | 
 | 301 | +			Selecting this will build the OVS classifier external module.  | 
 | 302 | +		default n  | 
 | 303 | +endmenu  | 
 | 304 | +endef  | 
 | 305 | + | 
 | 306 | +$(eval $(call KernelPackage,qca-nss-ecm-noload))  | 
 | 307 | +$(eval $(call KernelPackage,qca-nss-ecm-standard))  | 
 | 308 | +$(eval $(call KernelPackage,qca-nss-ecm-premium-noload))  | 
 | 309 | +$(eval $(call KernelPackage,qca-nss-ecm-premium))  | 
0 commit comments