blob: 31ef7bb1f3a275ba7c0db05e7afbf5e329768cd5 [file] [log] [blame]
Ben Menchaca84f36632014-02-28 20:57:38 +00001##########################################################################
Murat Sezgin6d8361e2015-01-21 11:32:06 -08002# Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
Ben Menchaca84f36632014-02-28 20:57:38 +00003# Permission to use, copy, modify, and/or distribute this software for
4# any purpose with or without fee is hereby granted, provided that the
5# above copyright notice and this permission notice appear in all copies.
6# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
7# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
9# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
10# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
11# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
12# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
13##########################################################################
14
15# ###################################################
16# Makefile for the QCA NSS ECM
17# ###################################################
18
Nicolas Costaf46c33b2014-05-15 10:02:00 -050019obj-m += ecm.o
20
Hai Shalom81f4e202014-06-04 09:30:27 -070021ecm-y := \
Nicolas Costaf46c33b2014-05-15 10:02:00 -050022 ecm_tracker_udp.o \
23 ecm_tracker_tcp.o \
24 ecm_tracker_datagram.o \
25 ecm_tracker.o \
Murat Sezgin8d916a12015-03-18 15:56:50 -070026 frontends/nss/ecm_nss_ipv4.o \
27 frontends/nss/ecm_nss_ported_ipv4.o \
Nicolas Costaf46c33b2014-05-15 10:02:00 -050028 ecm_db.o \
29 ecm_classifier_default.o \
30 ecm_conntrack_notifier.o \
31 ecm_interface.o \
Nicolas Costaf46c33b2014-05-15 10:02:00 -050032 ecm_init.o
Ben Menchaca84f36632014-02-28 20:57:38 +000033
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -080034# #############################################################################
35# Define ECM_INTERFACE_BOND_ENABLE=y in order to enable
36# Bonding / Link Aggregation support.
37# #############################################################################
Murat Sezgin2a0b2432014-11-26 14:53:57 -080038ifneq ($(findstring 3.4, $(KERNELVERSION)),)
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -080039ECM_INTERFACE_BOND_ENABLE=y
40endif
41ecm-$(ECM_INTERFACE_BOND_ENABLE) += ecm_bond_notifier.o
42ccflags-$(ECM_INTERFACE_BOND_ENABLE) += -DECM_INTERFACE_BOND_ENABLE
Hai Shalom81f4e202014-06-04 09:30:27 -070043
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -080044# #############################################################################
Gareth Williams141d2382014-11-25 11:35:19 -080045# Define ECM_INTERFACE_PPP_ENABLE=y in order
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -080046# to enable support for PPP and, specifically, PPPoE acceleration.
47# #############################################################################
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -080048ECM_INTERFACE_PPP_ENABLE=y
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -080049ccflags-$(ECM_INTERFACE_PPP_ENABLE) += -DECM_INTERFACE_PPP_ENABLE
50
51# #############################################################################
Murat Sezginb3731e82014-11-26 12:20:59 -080052# Define ECM_INTERFACE_SIT_ENABLE=y in order
53# to enable support for SIT interface.
54# #############################################################################
Murat Sezgin2a0b2432014-11-26 14:53:57 -080055ifneq ($(findstring 3.4, $(KERNELVERSION)),)
Murat Sezginb3731e82014-11-26 12:20:59 -080056ECM_INTERFACE_SIT_ENABLE=y
57endif
58ccflags-$(ECM_INTERFACE_SIT_ENABLE) += -DECM_INTERFACE_SIT_ENABLE
59
60# #############################################################################
Murat Sezginc1402562015-03-12 12:32:20 -070061# Define ECM_INTERFACE_TUNIPIP6_ENABLE=y in order
62# to enable support for TUNIPIP6 interface.
63# #############################################################################
64ifneq ($(findstring 3.4, $(KERNELVERSION)),)
65ECM_INTERFACE_TUNIPIP6_ENABLE=y
66endif
67ccflags-$(ECM_INTERFACE_TUNIPIP6_ENABLE) += -DECM_INTERFACE_TUNIPIP6_ENABLE
68
69# #############################################################################
Gareth Williams141d2382014-11-25 11:35:19 -080070# Define ECM_INTERFACE_VLAN_ENABLE=y in order to enable support for VLAN
71# #############################################################################
Gareth Williams141d2382014-11-25 11:35:19 -080072ECM_INTERFACE_VLAN_ENABLE=y
Gareth Williams141d2382014-11-25 11:35:19 -080073ccflags-$(ECM_INTERFACE_VLAN_ENABLE) += -DECM_INTERFACE_VLAN_ENABLE
74
75# #############################################################################
Murat Sezgin69a27532015-03-12 14:09:40 -070076# Define ECM_INTERFACE_IPSEC_ENABLE=y in order to enable support for IPSEC
77# #############################################################################
78ECM_INTERFACE_IPSEC_ENABLE=y
79ccflags-$(ECM_INTERFACE_IPSEC_ENABLE) += -DECM_INTERFACE_IPSEC_ENABLE
80
81# #############################################################################
Gareth Williams8ac34292015-03-17 14:06:58 +000082# Define ECM_IPV6_ENABLE=y in order to enable IPv6 support in the ECM.
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -080083# #############################################################################
Gareth Williams8ac34292015-03-17 14:06:58 +000084ECM_IPV6_ENABLE=y
85ecm-$(ECM_IPV6_ENABLE) += frontends/nss/ecm_front_end_ipv6.o
86ccflags-$(ECM_IPV6_ENABLE) += -DECM_IPV6_ENABLE
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -080087
88# #############################################################################
89# Define ECM_CLASSIFIER_NL_ENABLE=y in order to enable NL classifier.
90# #############################################################################
Murat Sezgin2a0b2432014-11-26 14:53:57 -080091ifneq ($(findstring 3.4, $(KERNELVERSION)),)
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -080092ECM_CLASSIFIER_NL_ENABLE=y
93endif
94ecm-$(ECM_CLASSIFIER_NL_ENABLE) += ecm_classifier_nl.o
95ccflags-$(ECM_CLASSIFIER_NL_ENABLE) += -DECM_CLASSIFIER_NL_ENABLE
96
97# #############################################################################
98# Define ECM_CLASSIFIER_DSCP_ENABLE=y in order to enable DSCP classifier.
99# #############################################################################
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -0800100ECM_CLASSIFIER_DSCP_ENABLE=y
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -0800101ecm-$(ECM_CLASSIFIER_DSCP_ENABLE) += ecm_classifier_dscp.o
102ccflags-$(ECM_CLASSIFIER_DSCP_ENABLE) += -DECM_CLASSIFIER_DSCP_ENABLE
103
104# #############################################################################
105# Define ECM_CLASSIFIER_HYFI_ENABLE=y in order to enable
106# the Hy-Fi classifier in ECM. Currently disabled until the integration
107# with Hy-Fi is completed.
108# #############################################################################
109ecm-$(ECM_CLASSIFIER_HYFI_ENABLE) += ecm_classifier_hyfi.o
110ccflags-$(ECM_CLASSIFIER_HYFI_ENABLE) += -DECM_CLASSIFIER_HYFI_ENABLE
111
112# #############################################################################
Murat Sezgin8d916a12015-03-18 15:56:50 -0700113# Define ECM_NON_PORTED_SUPPORT_ENABLE=y in order to enable non-ported protocol.
114# #############################################################################
115ECM_NON_PORTED_SUPPORT_ENABLE=y
116ecm-$(ECM_NON_PORTED_SUPPORT_ENABLE) += frontends/nss/ecm_nss_non_ported_ipv4.o
117ccflags-$(ECM_NON_PORTED_SUPPORT_ENABLE) += -DECM_NON_PORTED_SUPPORT_ENABLE
118
Gareth Williamsf98d4192015-03-11 16:55:41 +0000119# #############################################################################
120# Define ECM_STATE_OUTPUT_ENABLE=y to support XML state output
121# #############################################################################
122ECM_STATE_OUTPUT_ENABLE=y
123ecm-$(ECM_STATE_OUTPUT_ENABLE) += ecm_state.o
124ccflags-$(ECM_STATE_OUTPUT_ENABLE) += -DECM_STATE_OUTPUT_ENABLE
Murat Sezgin8d916a12015-03-18 15:56:50 -0700125
126# #############################################################################
Gareth Williams85331c92015-03-11 20:39:18 +0000127# Define ECM_DB_ADVANCED_STATS_ENABLE to support XML state output
128# #############################################################################
129ECM_DB_ADVANCED_STATS_ENABLE=y
130ccflags-$(ECM_DB_ADVANCED_STATS_ENABLE) += -DECM_DB_ADVANCED_STATS_ENABLE
131
132# #############################################################################
Gareth Williamsb5903892015-03-20 15:13:07 +0000133# Define ECM_DB_CONNECTION_CROSS_REFERENCING_ENABLE=y in order to enable
134# the database to track relationships between objects.
135# #############################################################################
136ECM_DB_CONNECTION_CROSS_REFERENCING_ENABLE=y
137ccflags-$(ECM_DB_CONNECTION_CROSS_REFERENCING_ENABLE) += -DECM_DB_XREF_ENABLE
138
139# #############################################################################
Gareth Williams88be3722015-03-23 19:51:01 +0000140# Define ECM_TRACKER_DPI_SUPPORT_ENABLE=y in order to enable support for
141# deep packet inspection and tracking of data with the trackers.
142# #############################################################################
143ECM_TRACKER_DPI_SUPPORT_ENABLE=y
144ccflags-$(ECM_TRACKER_DPI_SUPPORT_ENABLE) += -DECM_TRACKER_DPI_SUPPORT_ENABLE
145
146# #############################################################################
Gareth Williamsdbb2bfd2014-11-20 16:42:09 -0800147# Debug flags, set these to = 0 if you want to disable all debugging for that
148# file.
149# By turning off debugs you gain maximum ECM performance.
150# #############################################################################
Gareth Williams8932a912014-06-11 18:06:25 -0700151ccflags-y += -DECM_CLASSIFIER_DSCP_DEBUG_LEVEL=1
Ben Menchaca84f36632014-02-28 20:57:38 +0000152ccflags-y += -DECM_CLASSIFIER_HYFI_DEBUG_LEVEL=1
153ccflags-y += -DECM_CLASSIFIER_NL_DEBUG_LEVEL=1
154ccflags-y += -DECM_CLASSIFIER_DEFAULT_DEBUG_LEVEL=1
155ccflags-y += -DECM_DB_DEBUG_LEVEL=1
156ccflags-y += -DECM_FRONT_END_IPV4_DEBUG_LEVEL=1
157ccflags-y += -DECM_FRONT_END_IPV6_DEBUG_LEVEL=1
158ccflags-y += -DECM_CONNTRACK_NOTIFIER_DEBUG_LEVEL=1
159ccflags-y += -DECM_TRACKER_DEBUG_LEVEL=1
160ccflags-y += -DECM_TRACKER_DATAGRAM_DEBUG_LEVEL=1
161ccflags-y += -DECM_TRACKER_TCP_DEBUG_LEVEL=1
162ccflags-y += -DECM_TRACKER_UDP_DEBUG_LEVEL=1
163ccflags-y += -DECM_BOND_NOTIFIER_DEBUG_LEVEL=1
164ccflags-y += -DECM_INTERFACE_DEBUG_LEVEL=1
Gareth Williamsf98d4192015-03-11 16:55:41 +0000165ccflags-y += -DECM_STATE_DEBUG_LEVEL=1
Ben Menchaca84f36632014-02-28 20:57:38 +0000166
Gareth Williams85331c92015-03-11 20:39:18 +0000167ccflags-y += -DECM_NSS
168
Murat Sezgin8d916a12015-03-18 15:56:50 -0700169ccflags-y += -I$(obj)/ -I$(obj)/frontends/include -I$(obj)/frontends/nss
Murat Sezgin7c12aba2015-03-16 12:01:57 -0700170
Ben Menchaca84f36632014-02-28 20:57:38 +0000171obj ?= .
172