get rid of $Id$ - it has never helped us and it has broken too many patches ;)
[openwrt.git] / package / kernel / modules / netfilter.mk
1 #
2 # Copyright (C) 2006-2008 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 NF_MENU:=Netfilter Extensions
9 NF_KMOD:=1
10 include $(INCLUDE_DIR)/netfilter.mk
11
12 define KernelPackage/ipt-core
13   SUBMENU:=$(NF_MENU)
14   TITLE:=Netfilter core
15   KCONFIG:=$(KCONFIG_IPT_CORE)
16   FILES:=$(foreach mod,$(IPT_CORE-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
17   AUTOLOAD:=$(call AutoLoad,40,$(notdir $(IPT_CORE-m)))
18 endef
19
20 define KernelPackage/ipt-core/description
21  Netfilter core kernel modules
22  Includes:
23  - limit
24  - LOG
25  - mac
26  - multiport
27  - TCPMSS
28  - REJECT
29 endef
30
31 $(eval $(call KernelPackage,ipt-core))
32
33
34 define KernelPackage/ipt-conntrack
35   SUBMENU:=$(NF_MENU)
36   TITLE:=Basic connection tracking modules
37   KCONFIG:=$(KCONFIG_IPT_CONNTRACK)
38   FILES:=$(foreach mod,$(IPT_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
39   AUTOLOAD:=$(call AutoLoad,41,$(notdir $(IPT_CONNTRACK-m)))
40   DEPENDS:= kmod-ipt-core
41 endef
42
43 define KernelPackage/ipt-conntrack/description
44  Netfilter (IPv4) kernel modules for connection tracking
45  Includes:
46  - state
47 endef
48
49 $(eval $(call KernelPackage,ipt-conntrack))
50
51
52 define KernelPackage/ipt-conntrack-extra
53   SUBMENU:=$(NF_MENU)
54   TITLE:=Extra connection tracking modules
55   KCONFIG:=$(KCONFIG_IPT_CONNTRACK_EXTRA)
56   FILES:=$(foreach mod,$(IPT_CONNTRACK_EXTRA-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
57   AUTOLOAD:=$(call AutoLoad,42,$(notdir $(IPT_CONNTRACK_EXTRA-m)))
58   DEPENDS:= kmod-ipt-core +kmod-ipt-conntrack
59 endef
60
61 define KernelPackage/ipt-conntrack-extra/description
62  Netfilter (IPv4) extra kernel modules for connection tracking
63  Includes:
64  - connbytes
65  - connmark/CONNMARK
66  - conntrack
67  - helper
68  - recent
69  - NOTRACK
70 endef
71
72 $(eval $(call KernelPackage,ipt-conntrack-extra))
73
74
75 define KernelPackage/ipt-filter
76   SUBMENU:=$(NF_MENU)
77   TITLE:=Modules for packet content inspection
78   KCONFIG:=$(KCONFIG_IPT_FILTER)
79   FILES:=$(foreach mod,$(IPT_FILTER-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
80   AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_FILTER-m)))
81   DEPENDS:= kmod-ipt-core +kmod-textsearch
82 endef
83
84 define KernelPackage/ipt-filter/description
85  Netfilter (IPv4) kernel modules for packet content inspection
86  Includes:
87  - ipt_layer7
88  - ipt_string
89 endef
90
91 $(eval $(call KernelPackage,ipt-filter))
92
93
94 define KernelPackage/ipt-ipopt
95   SUBMENU:=$(NF_MENU)
96   TITLE:=Modules for matching/changing IP packet options
97   KCONFIG:=$(KCONFIG_IPT_IPOPT)
98   FILES:=$(foreach mod,$(IPT_IPOPT-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
99   AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_IPOPT-m)))
100   DEPENDS:= kmod-ipt-core
101 endef
102
103 define KernelPackage/ipt-ipopt/description
104  Netfilter (IPv4) modules for matching/changing IP packet options
105  Includes:
106  - ipt_CLASSIFY
107  - ipt_dscp/DSCP
108  - ipt_ecn/ECN
109  - ipt_length
110  - ipt_tos/TOS
111  - ipt_tcpmms
112  - ipt_ttl/TTL
113  - ipt_unclean
114 endef
115
116 $(eval $(call KernelPackage,ipt-ipopt))
117
118
119 define KernelPackage/ipt-ipsec
120   SUBMENU:=$(NF_MENU)
121   TITLE:=Modules for matching IPSec packets
122   KCONFIG:=$(KCONFIG_IPT_IPSEC)
123   FILES:=$(foreach mod,$(IPT_IPSEC-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
124   AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_IPSEC-m)))
125   DEPENDS:= kmod-ipt-core
126 endef
127
128 define KernelPackage/ipt-ipsec/description
129  Netfilter (IPv4) modules for matching IPSec packets
130  Includes:
131  - ipt_ah
132  - ipt_esp
133 endef
134
135 $(eval $(call KernelPackage,ipt-ipsec))
136
137
138 define KernelPackage/ipt-nat
139   SUBMENU:=$(NF_MENU)
140   TITLE:=Basic NAT targets
141   KCONFIG:=$(KCONFIG_IPT_NAT)
142   FILES:=$(foreach mod,$(IPT_NAT-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
143   AUTOLOAD:=$(call AutoLoad,42,$(notdir $(IPT_NAT-m)))
144   DEPENDS:= kmod-ipt-core +kmod-ipt-conntrack
145 endef
146
147 define KernelPackage/ipt-nat/description
148  Netfilter (IPv4) kernel modules for basic NAT targets
149  Includes:
150  - MASQUERADE
151 endef
152
153 $(eval $(call KernelPackage,ipt-nat))
154
155
156 define KernelPackage/ipt-nat-extra
157   SUBMENU:=$(NF_MENU)
158   TITLE:=Extra NAT targets
159   KCONFIG:=$(KCONFIG_IPT_NAT_EXTRA)
160   FILES:=$(foreach mod,$(IPT_NAT_EXTRA-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
161   AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_NAT_EXTRA-m)))
162   DEPENDS:= kmod-ipt-core +kmod-ipt-nat
163 endef
164
165 define KernelPackage/ipt-nat-extra/description
166  Netfilter (IPv4) kernel modules for extra NAT targets
167  Includes:
168  - MIRROR
169  - NETMAP
170  - REDIRECT
171 endef
172
173 $(eval $(call KernelPackage,ipt-nat-extra))
174
175
176 define KernelPackage/ipt-nathelper
177   SUBMENU:=$(NF_MENU)
178   TITLE:=Basic Conntrack and NAT helpers
179   KCONFIG:=$(KCONFIG_IPT_NATHELPER)
180   FILES:=$(foreach mod,$(IPT_NATHELPER-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
181   AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_NATHELPER-m)))
182   DEPENDS:= kmod-ipt-core +kmod-ipt-nat
183 endef
184
185 define KernelPackage/ipt-nathelper/description
186  Default Netfilter (IPv4) Conntrack and NAT helpers
187  Includes:
188  - conntrack_ftp
189  - nat_ftp
190  - conntrack_irc
191  - nat_irc
192  - conntrack_tftp
193  - nat_tftp
194 endef
195
196 $(eval $(call KernelPackage,ipt-nathelper))
197
198
199 define KernelPackage/ipt-nathelper-extra
200   SUBMENU:=$(NF_MENU)
201   TITLE:=Extra Conntrack and NAT helpers
202   KCONFIG:=$(KCONFIG_IPT_NATHELPER_EXTRA)
203   FILES:=$(foreach mod,$(IPT_NATHELPER_EXTRA-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
204   AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_NATHELPER_EXTRA-m)))
205   DEPENDS:= kmod-ipt-core +kmod-ipt-nat +kmod-textsearch
206 endef
207
208 define KernelPackage/ipt-nathelper-extra/description
209  Extra Netfilter (IPv4) Conntrack and NAT helpers
210  Includes:
211  - ip_conntrack_amanda
212  - ip_conntrack_proto_gre
213  - ip_nat_proto_gre
214  - ip_conntrack_pptp
215  - ip_nat_pptp
216  - ip_conntrack_sip
217  - ip_nat_sip
218  - ip_nat_snmp_basic
219 endef
220
221 $(eval $(call KernelPackage,ipt-nathelper-extra))
222
223
224 define KernelPackage/ipt-imq
225   SUBMENU:=$(NF_MENU)
226   TITLE:=Intermediate Queueing support
227   KCONFIG:= \
228         CONFIG_IMQ \
229         CONFIG_IMQ_BEHAVIOR_BA=y \
230         CONFIG_IMQ_NUM_DEVS=2 \
231         CONFIG_IP_NF_TARGET_IMQ
232   FILES:= \
233         $(LINUX_DIR)/drivers/net/imq.$(LINUX_KMOD_SUFFIX) \
234         $(foreach mod,$(IPT_IMQ-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
235   AUTOLOAD:=$(call AutoLoad,45,$(notdir \
236         imq \
237         $(IPT_IMQ-m) \
238   ))
239   DEPENDS:= kmod-ipt-core
240 endef
241
242 define KernelPackage/ipt-imq/description
243  Kernel support for Intermediate Queueing devices
244 endef
245
246 $(eval $(call KernelPackage,ipt-imq))
247
248
249 define KernelPackage/ipt-queue
250   SUBMENU:=$(NF_MENU)
251   TITLE:=Module for user-space packet queueing
252   KCONFIG:=$(KCONFIG_IPT_QUEUE)
253   FILES:=$(foreach mod,$(IPT_QUEUE-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
254   AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_QUEUE-m)))
255   DEPENDS:= kmod-ipt-core
256 endef
257
258 define KernelPackage/ipt-queue/description
259  Netfilter (IPv4) module for user-space packet queueing
260  Includes:
261  - QUEUE
262 endef
263
264 $(eval $(call KernelPackage,ipt-queue))
265
266
267 define KernelPackage/ipt-ulog
268   SUBMENU:=$(NF_MENU)
269   TITLE:=Module for user-space packet logging
270   KCONFIG:=$(KCONFIG_IPT_ULOG)
271   FILES:=$(foreach mod,$(IPT_ULOG-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
272   AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_ULOG-m)))
273   DEPENDS:= kmod-ipt-core
274 endef
275
276 define KernelPackage/ipt-ulog/description
277  Netfilter (IPv4) module for user-space packet logging
278  Includes:
279  - ipt_ULOG
280 endef
281
282 $(eval $(call KernelPackage,ipt-ulog))
283
284
285 define KernelPackage/ipt-iprange
286   SUBMENU:=$(NF_MENU)
287   TITLE:=Module for matching ip ranges
288   FILES:=$(foreach mod,$(IPT_IPRANGE-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
289   AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_IPRANGE-m)))
290   DEPENDS:= kmod-ipt-core
291 endef
292
293 define KernelPackage/ipt-iprange/description
294  Netfilter (IPv4) module for matching ip ranges
295  Includes:
296  - ipt_IPRANGE
297 endef
298
299 $(eval $(call KernelPackage,ipt-iprange))
300
301
302 define KernelPackage/ipt-ipset
303   SUBMENU:=$(NF_MENU)
304   TITLE:=IPSET Modules
305   KCONFIG:=$(KCONFIG_IPT_IPSET)
306   FILES:=$(foreach mod,$(IPT_IPSET-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
307   AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_IPSET-m)))
308   DEPENDS:= kmod-ipt-core
309 endef
310
311 define KernelPackage/ipt-ipset/description
312  Netfilter kernel modules for ipset
313  Includes:
314  - ip_set
315  - ip_set_iphash
316  - ip_set_ipmap
317  - ip_set_ipporthash
318  - ip_set_iptree
319  - ip_set_iptreemap
320  - ip_set_macipmap
321  - ip_set_nethash
322  - ip_set_portmap
323  - ipt_set
324  - ipt_SET
325 endef
326
327 $(eval $(call KernelPackage,ipt-ipset))
328
329
330 define KernelPackage/ipt-extra
331   SUBMENU:=$(NF_MENU)
332   TITLE:=Extra modules
333   KCONFIG:=$(KCONFIG_IPT_EXTRA)
334   FILES:=$(foreach mod,$(IPT_EXTRA-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
335   AUTOLOAD:=$(call AutoLoad,45,$(notdir $(IPT_EXTRA-m)))
336   DEPENDS:= kmod-ipt-core
337 endef
338
339 define KernelPackage/ipt-extra/description
340  Other Netfilter (IPv4) kernel modules
341  Includes:
342  - ipt_owner
343  - ipt_physdev
344  - ipt_pkttype
345  - ipt_recent
346  - iptable_raw
347  - xt_NOTRACK
348 endef
349
350 $(eval $(call KernelPackage,ipt-extra))
351
352
353 define KernelPackage/ip6tables
354   SUBMENU:=$(NF_MENU)
355   TITLE:=IPv6 modules
356   DEPENDS:=+kmod-ipv6
357   KCONFIG:=CONFIG_IP6_NF_IPTABLES
358   FILES:=$(foreach mod,$(IPT_IPV6-m),$(LINUX_DIR)/net/$(mod).$(LINUX_KMOD_SUFFIX))
359   AUTOLOAD:=$(call AutoLoad,49,$(notdir $(IPT_IPV6-m)))
360 endef
361
362 define KernelPackage/ip6tables/description
363  Netfilter IPv6 firewalling support
364 endef
365
366 $(eval $(call KernelPackage,ip6tables))
367
368
369 define KernelPackage/arptables
370   SUBMENU:=$(NF_MENU)
371   TITLE:=ARP firewalling modules
372   FILES:=$(LINUX_DIR)/net/ipv4/netfilter/arp*.$(LINUX_KMOD_SUFFIX)
373   KCONFIG:=CONFIG_IP_NF_ARPTABLES
374   AUTOLOAD:=$(call AutoLoad,49,$(notdir $(patsubst %.ko,%,$(wildcard $(LINUX_DIR)/net/ipv4/netfilter/arp*.$(LINUX_KMOD_SUFFIX)))))
375 endef
376
377 define KernelPackage/arptables/description
378  Kernel modules for ARP firewalling
379 endef
380
381 $(eval $(call KernelPackage,arptables))
382
383 define KernelPackage/ebtables
384   SUBMENU:=$(NF_MENU)
385   TITLE:=Bridge firewalling modules
386   DEPENDS:=@LINUX_2_6
387   FILES:=$(LINUX_DIR)/net/bridge/netfilter/*.$(LINUX_KMOD_SUFFIX)
388   KCONFIG:=CONFIG_BRIDGE_NETFILTER=y \
389         CONFIG_BRIDGE_NF_EBTABLES
390   AUTOLOAD:=$(call AutoLoad,49,$(notdir $(patsubst %.ko,%,ebtables.ko $(wildcard $(LINUX_DIR)/net/bridge/netfilter/ebtable_*.$(LINUX_KMOD_SUFFIX)) $(wildcard $(LINUX_DIR)/net/bridge/netfilter/ebt_*.$(LINUX_KMOD_SUFFIX)))))
391 endef
392
393 define KernelPackage/ebtables/description
394  Kernel modules for Ethernet Bridge firewalling
395 endef
396
397 $(eval $(call KernelPackage,ebtables))
398
399
400 define KernelPackage/nfnetlink
401   SUBMENU:=$(NF_MENU)
402   TITLE:=Netlink-based userspace interface
403   DEPENDS:=@LINUX_2_6 +kmod-ipt-core
404   FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink.$(LINUX_KMOD_SUFFIX)
405   KCONFIG:=CONFIG_NETFILTER_NETLINK
406   AUTOLOAD:=$(call AutoLoad,48,nfnetlink)
407 endef
408
409 define KernelPackage/nfnetlink/description
410  Kernel modules support for a netlink-based userspace interface
411 endef
412
413 $(eval $(call KernelPackage,nfnetlink))
414
415
416 define KernelPackage/nfnetlink-log
417   SUBMENU:=$(NF_MENU)
418   TITLE:=Netfilter LOG over NFNETLINK interface
419   DEPENDS:=@LINUX_2_6 +kmod-nfnetlink
420   FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_log.$(LINUX_KMOD_SUFFIX)
421   KCONFIG:=CONFIG_NETFILTER_NETLINK_LOG
422   AUTOLOAD:=$(call AutoLoad,48,nfnetlink_log)
423 endef
424
425 define KernelPackage/nfnetlink-log/description
426  Kernel modules support for logging packets via NFNETLINK
427 endef
428
429 $(eval $(call KernelPackage,nfnetlink-log))
430
431
432 define KernelPackage/nfnetlink-queue
433   SUBMENU:=$(NF_MENU)
434   TITLE:=Netfilter QUEUE over NFNETLINK interface
435   DEPENDS:=@LINUX_2_6 +kmod-nfnetlink
436   FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_queue.$(LINUX_KMOD_SUFFIX)
437   KCONFIG:=CONFIG_NETFILTER_NETLINK_QUEUE
438   AUTOLOAD:=$(call AutoLoad,48,nfnetlink_queue)
439 endef
440
441 define KernelPackage/nfnetlink-queue/description
442  Kernel modules support for queueing packets via NFNETLINK
443 endef
444
445 $(eval $(call KernelPackage,nfnetlink-queue))
446
447
448 define KernelPackage/nf-conntrack-netlink
449   SUBMENU:=$(NF_MENU)
450   TITLE:=Connection tracking netlink interface
451   DEPENDS:=@LINUX_2_6 +kmod-nfnetlink +kmod-ipt-conntrack
452   FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.$(LINUX_KMOD_SUFFIX)
453   KCONFIG:=CONFIG_NF_CT_NETLINK
454   AUTOLOAD:=$(call AutoLoad,49,nf_conntrack_netlink)
455 endef
456
457 define KernelPackage/nf-conntrack-netlink/description
458  Kernel modules support for a netlink-based connection tracking 
459  userspace interface
460 endef
461
462 $(eval $(call KernelPackage,nf-conntrack-netlink))