3 # Copyright (C) 2006-2010 OpenWrt.org
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
9 NF_MENU
:=Netfilter Extensions
11 include $(INCLUDE_DIR
)/netfilter.mk
13 define KernelPackage
/ipt-core
16 KCONFIG
:=$(KCONFIG_IPT_CORE
)
17 FILES
:=$(foreach mod
,$(IPT_CORE-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
18 AUTOLOAD
:=$(call AutoLoad
,40,$(notdir $(IPT_CORE-m
)))
21 define KernelPackage
/ipt-core
/description
22 Netfilter core kernel modules
33 $(eval
$(call KernelPackage
,ipt-core
))
38 DEPENDS
+= kmod-ipt-core
$(1)
42 define KernelPackage
/ipt-conntrack
43 TITLE
:=Basic connection tracking modules
44 KCONFIG
:=$(KCONFIG_IPT_CONNTRACK
)
45 FILES
:=$(foreach mod
,$(IPT_CONNTRACK-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
46 AUTOLOAD
:=$(call AutoLoad
,41,$(notdir $(IPT_CONNTRACK-m
)))
47 $(call AddDepends
/ipt
)
50 define KernelPackage
/ipt-conntrack
/description
51 Netfilter
(IPv4
) kernel modules for connection tracking
60 $(eval
$(call KernelPackage
,ipt-conntrack
))
63 define KernelPackage
/ipt-conntrack-extra
64 TITLE
:=Extra connection tracking modules
65 KCONFIG
:=$(KCONFIG_IPT_CONNTRACK_EXTRA
)
66 FILES
:=$(foreach mod
,$(IPT_CONNTRACK_EXTRA-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
67 AUTOLOAD
:=$(call AutoLoad
,42,$(notdir $(IPT_CONNTRACK_EXTRA-m
)))
68 $(call AddDepends
/ipt
,+kmod-ipt-conntrack
)
71 define KernelPackage
/ipt-conntrack-extra
/description
72 Netfilter
(IPv4
) extra kernel modules for connection tracking
81 $(eval
$(call KernelPackage
,ipt-conntrack-extra
))
84 define KernelPackage
/ipt-filter
85 TITLE
:=Modules for packet content inspection
86 KCONFIG
:=$(KCONFIG_IPT_FILTER
)
87 FILES
:=$(foreach mod
,$(IPT_FILTER-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
88 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_FILTER-m
)))
89 $(call AddDepends
/ipt
,+kmod-textsearch
)
92 define KernelPackage
/ipt-filter
/description
93 Netfilter
(IPv4
) kernel modules for packet content inspection
99 $(eval
$(call KernelPackage
,ipt-filter
))
102 define KernelPackage
/ipt-ipopt
103 TITLE
:=Modules for matching
/changing IP packet options
104 KCONFIG
:=$(KCONFIG_IPT_IPOPT
)
105 FILES
:=$(foreach mod
,$(IPT_IPOPT-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
106 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_IPOPT-m
)))
107 $(call AddDepends
/ipt
)
110 define KernelPackage
/ipt-ipopt
/description
111 Netfilter
(IPv4
) modules for matching
/changing IP packet options
116 - hl
/HL
(2.6.30 and later
)
122 - tos
/TOS
(prior to
2.6.25)
123 - ttl
/TTL
(prior to
2.6.30)
127 $(eval
$(call KernelPackage
,ipt-ipopt
))
130 define KernelPackage
/ipt-ipsec
131 TITLE
:=Modules for matching IPSec packets
132 KCONFIG
:=$(KCONFIG_IPT_IPSEC
)
133 FILES
:=$(foreach mod
,$(IPT_IPSEC-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
134 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_IPSEC-m
)))
135 $(call AddDepends
/ipt
)
138 define KernelPackage
/ipt-ipsec
/description
139 Netfilter
(IPv4
) modules for matching IPSec packets
146 $(eval
$(call KernelPackage
,ipt-ipsec
))
149 define KernelPackage
/ipt-nat
150 TITLE
:=Basic NAT targets
151 KCONFIG
:=$(KCONFIG_IPT_NAT
)
152 FILES
:=$(foreach mod
,$(IPT_NAT-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
153 AUTOLOAD
:=$(call AutoLoad
,42,$(notdir $(IPT_NAT-m
)))
154 $(call AddDepends
/ipt
,+kmod-ipt-conntrack
)
157 define KernelPackage
/ipt-nat
/description
158 Netfilter
(IPv4
) kernel modules for basic NAT targets
163 $(eval
$(call KernelPackage
,ipt-nat
))
166 define KernelPackage
/ipt-nat-extra
167 TITLE
:=Extra NAT targets
168 KCONFIG
:=$(KCONFIG_IPT_NAT_EXTRA
)
169 FILES
:=$(foreach mod
,$(IPT_NAT_EXTRA-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
170 AUTOLOAD
:=$(call AutoLoad
,43,$(notdir $(IPT_NAT_EXTRA-m
)))
171 $(call AddDepends
/ipt
,+kmod-ipt-nat
)
174 define KernelPackage
/ipt-nat-extra
/description
175 Netfilter
(IPv4
) kernel modules for extra NAT targets
182 $(eval
$(call KernelPackage
,ipt-nat-extra
))
185 define KernelPackage
/ipt-nathelper
186 TITLE
:=Basic Conntrack and NAT helpers
187 KCONFIG
:=$(KCONFIG_IPT_NATHELPER
)
188 FILES
:=$(foreach mod
,$(IPT_NATHELPER-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
189 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_NATHELPER-m
)))
190 $(call AddDepends
/ipt
,+kmod-ipt-nat
)
193 define KernelPackage
/ipt-nathelper
/description
194 Default Netfilter
(IPv4
) Conntrack and NAT helpers
201 $(eval
$(call KernelPackage
,ipt-nathelper
))
204 define KernelPackage
/ipt-nathelper-extra
205 TITLE
:=Extra Conntrack and NAT helpers
206 KCONFIG
:=$(KCONFIG_IPT_NATHELPER_EXTRA
)
207 FILES
:=$(foreach mod
,$(IPT_NATHELPER_EXTRA-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
208 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_NATHELPER_EXTRA-m
)))
209 $(call AddDepends
/ipt
,+kmod-ipt-nat
+kmod-textsearch
)
212 define KernelPackage
/ipt-nathelper-extra
/description
213 Extra Netfilter
(IPv4
) Conntrack and NAT helpers
225 $(eval
$(call KernelPackage
,ipt-nathelper-extra
))
228 define KernelPackage
/ipt-imq
229 TITLE
:=Intermediate Queueing support
232 CONFIG_IMQ_BEHAVIOR_BA
=y \
233 CONFIG_IMQ_NUM_DEVS
=2 \
234 CONFIG_NETFILTER_XT_TARGET_IMQ
236 $(LINUX_DIR
)/drivers
/net
/imq.ko \
237 $(foreach mod
,$(IPT_IMQ-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
238 AUTOLOAD
:=$(call AutoLoad
,46,$(notdir \
242 $(call AddDepends
/ipt
)
245 define KernelPackage
/ipt-imq
/description
246 Kernel support for Intermediate Queueing devices
249 $(eval
$(call KernelPackage
,ipt-imq
))
252 define KernelPackage
/ipt-queue
253 TITLE
:=Module for user-space packet queueing
254 KCONFIG
:=$(KCONFIG_IPT_QUEUE
)
255 FILES
:=$(foreach mod
,$(IPT_QUEUE-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
256 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_QUEUE-m
)))
257 $(call AddDepends
/ipt
)
260 define KernelPackage
/ipt-queue
/description
261 Netfilter
(IPv4
) module for user-space packet queueing
266 $(eval
$(call KernelPackage
,ipt-queue
))
269 define KernelPackage
/ipt-ulog
270 TITLE
:=Module for user-space packet logging
271 KCONFIG
:=$(KCONFIG_IPT_ULOG
)
272 FILES
:=$(foreach mod
,$(IPT_ULOG-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
273 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_ULOG-m
)))
274 $(call AddDepends
/ipt
)
277 define KernelPackage
/ipt-ulog
/description
278 Netfilter
(IPv4
) module for user-space packet logging
283 $(eval
$(call KernelPackage
,ipt-ulog
))
286 define KernelPackage
/ipt-tproxy
287 TITLE
:=Transparent proxying support
289 CONFIG_NETFILTER_TPROXY \
290 CONFIG_NETFILTER_XT_MATCH_SOCKET \
291 CONFIG_NETFILTER_XT_TARGET_TPROXY
293 $(LINUX_DIR
)/net
/netfilter
/nf_tproxy_core.ko \
294 $(foreach mod
,$(IPT_TPROXY-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
295 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir nf_tproxy_core
$(IPT_TPROXY-m
)))
296 $(call AddDepends
/ipt
)
299 define KernelPackage
/ipt-tproxy
/description
300 Kernel modules for Transparent Proxying
303 $(eval
$(call KernelPackage
,ipt-tproxy
))
306 define KernelPackage
/ipt-iprange
307 TITLE
:=Module for matching ip ranges
308 KCONFIG
:=$(KCONFIG_IPT_IPRANGE
)
309 FILES
:=$(foreach mod
,$(IPT_IPRANGE-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
310 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_IPRANGE-m
)))
311 $(call AddDepends
/ipt
)
314 define KernelPackage
/ipt-iprange
/description
315 Netfilter
(IPv4
) module for matching ip ranges
320 $(eval
$(call KernelPackage
,ipt-iprange
))
323 define KernelPackage
/ipt-extra
325 KCONFIG
:=$(KCONFIG_IPT_EXTRA
)
326 FILES
:=$(foreach mod
,$(IPT_EXTRA-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
327 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_EXTRA-m
)))
328 $(call AddDepends
/ipt
)
331 define KernelPackage
/ipt-extra
/description
332 Other Netfilter
(IPv4
) kernel modules
334 - condition
(2.4 only
)
336 - physdev
(if bridge support was enabled in kernel
)
341 $(eval
$(call KernelPackage
,ipt-extra
))
344 define KernelPackage
/ip6tables
348 KCONFIG
:=$(KCONFIG_IPT_IPV6
)
349 FILES
:=$(foreach mod
,$(IPT_IPV6-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
350 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(IPT_IPV6-m
)))
353 define KernelPackage
/ip6tables
/description
354 Netfilter IPv6 firewalling support
357 $(eval
$(call KernelPackage
,ip6tables
))
360 define KernelPackage
/arptables
362 TITLE
:=ARP firewalling modules
363 FILES
:=$(LINUX_DIR
)/net
/ipv4
/netfilter
/arp
*.ko
364 KCONFIG
:=CONFIG_IP_NF_ARPTABLES \
365 CONFIG_IP_NF_ARPFILTER \
366 CONFIG_IP_NF_ARP_MANGLE
367 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(patsubst %.ko
,%,$(wildcard $(LINUX_DIR
)/net
/ipv4
/netfilter
/arp
*.ko
))))
370 define KernelPackage
/arptables
/description
371 Kernel modules for ARP firewalling
374 $(eval
$(call KernelPackage
,arptables
))
377 define KernelPackage
/ebtables
379 TITLE
:=Bridge firewalling modules
380 FILES
:=$(foreach mod
,$(EBTABLES-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
381 KCONFIG
:=CONFIG_BRIDGE_NETFILTER
=y \
383 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(EBTABLES-m
)))
386 define KernelPackage
/ebtables
/description
387 ebtables is a general
, extensible frame
/packet identification
388 framework. It provides you to do Ethernet
389 filtering
/NAT
/brouting on the Ethernet bridge.
392 $(eval
$(call KernelPackage
,ebtables
))
395 define AddDepends
/ebtables
397 DEPENDS
+=kmod-ebtables
$(1)
401 define KernelPackage
/ebtables-ipv4
402 TITLE
:=ebtables
: IPv4 support
403 FILES
:=$(foreach mod
,$(EBTABLES_IP4-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
404 KCONFIG
:=$(KCONFIG_EBTABLES_IP4
)
405 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(EBTABLES_IP4-m
)))
406 $(call AddDepends
/ebtables
)
409 define KernelPackage
/ebtables-ipv4
/description
410 This option adds the IPv4 support to ebtables
, which allows basic
411 IPv4 header field filtering
, ARP filtering
as well
as SNAT
, DNAT targets.
414 $(eval
$(call KernelPackage
,ebtables-ipv4
))
417 define KernelPackage
/ebtables-ipv6
418 TITLE
:=ebtables
: IPv6 support
419 FILES
:=$(foreach mod
,$(EBTABLES_IP6-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
420 KCONFIG
:=$(KCONFIG_EBTABLES_IP6
)
421 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(EBTABLES_IP6-m
)))
422 $(call AddDepends
/ebtables
)
425 define KernelPackage
/ebtables-ipv6
/description
426 This option adds the IPv6 support to ebtables
, which allows basic
427 IPv6 header field filtering and target support.
430 $(eval
$(call KernelPackage
,ebtables-ipv6
))
433 define KernelPackage
/ebtables-watchers
434 TITLE
:=ebtables
: watchers support
435 FILES
:=$(foreach mod
,$(EBTABLES_WATCHERS-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
436 KCONFIG
:=$(KCONFIG_EBTABLES_WATCHERS
)
437 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(EBTABLES_WATCHERS-m
)))
438 $(call AddDepends
/ebtables
)
441 define KernelPackage
/ebtables-watchers
/description
442 This option adds the log watchers
, that you can use in any rule
443 in any ebtables table.
446 $(eval
$(call KernelPackage
,ebtables-watchers
))
449 define KernelPackage
/nfnetlink
451 TITLE
:=Netlink-based userspace interface
452 DEPENDS
:=+kmod-ipt-core
453 FILES
:=$(LINUX_DIR
)/net
/netfilter
/nfnetlink.ko
454 KCONFIG
:=CONFIG_NETFILTER_NETLINK
455 AUTOLOAD
:=$(call AutoLoad
,48,nfnetlink
)
458 define KernelPackage
/nfnetlink
/description
459 Kernel modules support for a netlink-based userspace interface
462 $(eval
$(call KernelPackage
,nfnetlink
))
465 define AddDepends
/nfnetlink
467 DEPENDS
+=+kmod-nfnetlink
$(1)
471 define KernelPackage
/nfnetlink-log
472 TITLE
:=Netfilter LOG over NFNETLINK interface
473 FILES
:=$(LINUX_DIR
)/net
/netfilter
/nfnetlink_log.ko
474 KCONFIG
:=CONFIG_NETFILTER_NETLINK_LOG
475 AUTOLOAD
:=$(call AutoLoad
,48,nfnetlink_log
)
476 $(call AddDepends
/nfnetlink
)
479 define KernelPackage
/nfnetlink-log
/description
480 Kernel modules support for logging packets via NFNETLINK
483 $(eval
$(call KernelPackage
,nfnetlink-log
))
486 define KernelPackage
/nfnetlink-queue
487 TITLE
:=Netfilter QUEUE over NFNETLINK interface
488 FILES
:=$(LINUX_DIR
)/net
/netfilter
/nfnetlink_queue.ko
489 KCONFIG
:=CONFIG_NETFILTER_NETLINK_QUEUE
490 AUTOLOAD
:=$(call AutoLoad
,48,nfnetlink_queue
)
491 $(call AddDepends
/nfnetlink
)
494 define KernelPackage
/nfnetlink-queue
/description
495 Kernel modules support for queueing packets via NFNETLINK
498 $(eval
$(call KernelPackage
,nfnetlink-queue
))
501 define KernelPackage
/nf-conntrack-netlink
502 TITLE
:=Connection tracking netlink interface
503 FILES
:=$(LINUX_DIR
)/net
/netfilter
/nf_conntrack_netlink.ko
504 KCONFIG
:=CONFIG_NF_CT_NETLINK
505 AUTOLOAD
:=$(call AutoLoad
,49,nf_conntrack_netlink
)
506 $(call AddDepends
/nfnetlink
,+kmod-ipt-conntrack
)
509 define KernelPackage
/nf-conntrack-netlink
/description
510 Kernel modules support for a netlink-based connection tracking
514 $(eval
$(call KernelPackage
,nf-conntrack-netlink
))
516 define KernelPackage
/ipt-hashlimit
518 TITLE
:=Netfilter hashlimit match
519 KCONFIG
:=$(KCONFIG_IPT_HASHLIMIT
)
520 FILES
:=$(LINUX_DIR
)/net
/netfilter
/xt_hashlimit.ko
521 AUTOLOAD
:=$(call AutoLoad
,50,xt_hashlimit
)
522 $(call KernelPackage
/ipt
)
525 define KernelPackage
/ipt-hashlimit
/description
526 Kernel modules support for the hashlimit bucket match module
529 $(eval
$(call KernelPackage
,ipt-hashlimit
))