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
18 CONFIG_NETFILTER_ADVANCED
=y \
20 FILES
:=$(foreach mod
,$(IPT_CORE-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
21 AUTOLOAD
:=$(call AutoLoad
,40,$(notdir $(IPT_CORE-m
)))
24 define KernelPackage
/ipt-core
/description
25 Netfilter core kernel modules
36 $(eval
$(call KernelPackage
,ipt-core
))
41 DEPENDS
+= kmod-ipt-core
$(1)
45 define KernelPackage
/ipt-conntrack
46 TITLE
:=Basic connection tracking modules
47 KCONFIG
:=$(KCONFIG_IPT_CONNTRACK
)
48 FILES
:=$(foreach mod
,$(IPT_CONNTRACK-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
49 AUTOLOAD
:=$(call AutoLoad
,41,$(notdir $(IPT_CONNTRACK-m
)))
50 $(call AddDepends
/ipt
)
53 define KernelPackage
/ipt-conntrack
/description
54 Netfilter
(IPv4
) kernel modules for connection tracking
63 $(eval
$(call KernelPackage
,ipt-conntrack
))
66 define KernelPackage
/ipt-conntrack-extra
67 TITLE
:=Extra connection tracking modules
68 KCONFIG
:=$(KCONFIG_IPT_CONNTRACK_EXTRA
)
69 FILES
:=$(foreach mod
,$(IPT_CONNTRACK_EXTRA-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
70 AUTOLOAD
:=$(call AutoLoad
,42,$(notdir $(IPT_CONNTRACK_EXTRA-m
)))
71 $(call AddDepends
/ipt
,+kmod-ipt-conntrack
)
74 define KernelPackage
/ipt-conntrack-extra
/description
75 Netfilter
(IPv4
) extra kernel modules for connection tracking
84 $(eval
$(call KernelPackage
,ipt-conntrack-extra
))
87 define KernelPackage
/ipt-filter
88 TITLE
:=Modules for packet content inspection
89 KCONFIG
:=$(KCONFIG_IPT_FILTER
)
90 FILES
:=$(foreach mod
,$(IPT_FILTER-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
91 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_FILTER-m
)))
92 $(call AddDepends
/ipt
,+kmod-textsearch
)
95 define KernelPackage
/ipt-filter
/description
96 Netfilter
(IPv4
) kernel modules for packet content inspection
102 $(eval
$(call KernelPackage
,ipt-filter
))
105 define KernelPackage
/ipt-ipopt
106 TITLE
:=Modules for matching
/changing IP packet options
107 KCONFIG
:=$(KCONFIG_IPT_IPOPT
)
108 FILES
:=$(foreach mod
,$(IPT_IPOPT-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
109 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_IPOPT-m
)))
110 $(call AddDepends
/ipt
)
113 define KernelPackage
/ipt-ipopt
/description
114 Netfilter
(IPv4
) modules for matching
/changing IP packet options
119 - hl
/HL
(2.6.30 and later
)
125 - tos
/TOS
(prior to
2.6.25)
126 - ttl
/TTL
(prior to
2.6.30)
130 $(eval
$(call KernelPackage
,ipt-ipopt
))
133 define KernelPackage
/ipt-ipsec
134 TITLE
:=Modules for matching IPSec packets
135 KCONFIG
:=$(KCONFIG_IPT_IPSEC
)
136 FILES
:=$(foreach mod
,$(IPT_IPSEC-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
137 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_IPSEC-m
)))
138 $(call AddDepends
/ipt
)
141 define KernelPackage
/ipt-ipsec
/description
142 Netfilter
(IPv4
) modules for matching IPSec packets
149 $(eval
$(call KernelPackage
,ipt-ipsec
))
152 define KernelPackage
/ipt-nat
153 TITLE
:=Basic NAT targets
154 KCONFIG
:=$(KCONFIG_IPT_NAT
)
155 FILES
:=$(foreach mod
,$(IPT_NAT-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
156 AUTOLOAD
:=$(call AutoLoad
,42,$(notdir $(IPT_NAT-m
)))
157 $(call AddDepends
/ipt
,+kmod-ipt-conntrack
)
160 define KernelPackage
/ipt-nat
/description
161 Netfilter
(IPv4
) kernel modules for basic NAT targets
166 $(eval
$(call KernelPackage
,ipt-nat
))
169 define KernelPackage
/ipt-nat-extra
170 TITLE
:=Extra NAT targets
171 KCONFIG
:=$(KCONFIG_IPT_NAT_EXTRA
)
172 FILES
:=$(foreach mod
,$(IPT_NAT_EXTRA-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
173 AUTOLOAD
:=$(call AutoLoad
,43,$(notdir $(IPT_NAT_EXTRA-m
)))
174 $(call AddDepends
/ipt
,+kmod-ipt-nat
)
177 define KernelPackage
/ipt-nat-extra
/description
178 Netfilter
(IPv4
) kernel modules for extra NAT targets
185 $(eval
$(call KernelPackage
,ipt-nat-extra
))
188 define KernelPackage
/ipt-nathelper
189 TITLE
:=Basic Conntrack and NAT helpers
190 KCONFIG
:=$(KCONFIG_IPT_NATHELPER
)
191 FILES
:=$(foreach mod
,$(IPT_NATHELPER-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
192 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_NATHELPER-m
)))
193 $(call AddDepends
/ipt
,+kmod-ipt-nat
)
196 define KernelPackage
/ipt-nathelper
/description
197 Default Netfilter
(IPv4
) Conntrack and NAT helpers
204 $(eval
$(call KernelPackage
,ipt-nathelper
))
207 define KernelPackage
/ipt-nathelper-extra
208 TITLE
:=Extra Conntrack and NAT helpers
209 KCONFIG
:=$(KCONFIG_IPT_NATHELPER_EXTRA
)
210 FILES
:=$(foreach mod
,$(IPT_NATHELPER_EXTRA-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
211 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_NATHELPER_EXTRA-m
)))
212 $(call AddDepends
/ipt
,+kmod-ipt-nat
+kmod-textsearch
)
215 define KernelPackage
/ipt-nathelper-extra
/description
216 Extra Netfilter
(IPv4
) Conntrack and NAT helpers
228 $(eval
$(call KernelPackage
,ipt-nathelper-extra
))
231 define KernelPackage
/ipt-queue
232 TITLE
:=Module for user-space packet queueing
233 KCONFIG
:=$(KCONFIG_IPT_QUEUE
)
234 FILES
:=$(foreach mod
,$(IPT_QUEUE-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
235 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_QUEUE-m
)))
236 $(call AddDepends
/ipt
)
239 define KernelPackage
/ipt-queue
/description
240 Netfilter
(IPv4
) module for user-space packet queueing
245 $(eval
$(call KernelPackage
,ipt-queue
))
248 define KernelPackage
/ipt-ulog
249 TITLE
:=Module for user-space packet logging
250 KCONFIG
:=$(KCONFIG_IPT_ULOG
)
251 FILES
:=$(foreach mod
,$(IPT_ULOG-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
252 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_ULOG-m
)))
253 $(call AddDepends
/ipt
)
256 define KernelPackage
/ipt-ulog
/description
257 Netfilter
(IPv4
) module for user-space packet logging
262 $(eval
$(call KernelPackage
,ipt-ulog
))
265 define KernelPackage
/ipt-debug
266 TITLE
:=Module for debugging
/development
267 KCONFIG
:=$(KCONFIG_IPT_DEBUG
)
269 FILES
:=$(foreach mod
,$(IPT_DEBUG-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
270 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_DEBUG-m
)))
271 $(call AddDepends
/ipt
)
274 define KernelPackage
/ipt-debug
/description
275 Netfilter modules for debugging
/development of the firewall
280 $(eval
$(call KernelPackage
,ipt-debug
))
283 define KernelPackage
/ipt-led
284 TITLE
:=Module to trigger a LED with a Netfilter rule
285 KCONFIG
:=$(KCONFIG_IPT_LED
)
286 FILES
:=$(foreach mod
,$(IPT_LED-m
),$(LINUX_DIR
)/net
/$(mod
).
$(LINUX_KMOD_SUFFIX
))
287 AUTOLOAD
:=$(call AutoLoad
,61,$(notdir $(IPT_LED-m
)))
288 $(call AddDepends
/ipt
)
291 define KernelPackage
/ipt-led
/description
292 Netfilter target to trigger a LED when a network packet is matched.
295 $(eval
$(call KernelPackage
,ipt-led
))
297 define KernelPackage
/ipt-tproxy
298 TITLE
:=Transparent proxying support
299 DEPENDS
+=+IPV6
:kmod-ipv6
301 CONFIG_NETFILTER_TPROXY \
302 CONFIG_NETFILTER_XT_MATCH_SOCKET \
303 CONFIG_NETFILTER_XT_TARGET_TPROXY
305 $(LINUX_DIR
)/net
/netfilter
/nf_tproxy_core.ko \
306 $(foreach mod
,$(IPT_TPROXY-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
307 AUTOLOAD
:=$(call AutoLoad
,50,$(notdir nf_tproxy_core
$(IPT_TPROXY-m
)))
308 $(call AddDepends
/ipt
)
311 define KernelPackage
/ipt-tproxy
/description
312 Kernel modules for Transparent Proxying
315 $(eval
$(call KernelPackage
,ipt-tproxy
))
318 define KernelPackage
/ipt-iprange
319 TITLE
:=Module for matching ip ranges
320 KCONFIG
:=$(KCONFIG_IPT_IPRANGE
)
321 FILES
:=$(foreach mod
,$(IPT_IPRANGE-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
322 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_IPRANGE-m
)))
323 $(call AddDepends
/ipt
)
326 define KernelPackage
/ipt-iprange
/description
327 Netfilter
(IPv4
) module for matching ip ranges
332 $(eval
$(call KernelPackage
,ipt-iprange
))
335 define KernelPackage
/ipt-extra
337 KCONFIG
:=$(KCONFIG_IPT_EXTRA
)
338 FILES
:=$(foreach mod
,$(IPT_EXTRA-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
339 AUTOLOAD
:=$(call AutoLoad
,45,$(notdir $(IPT_EXTRA-m
)))
340 $(call AddDepends
/ipt
)
343 define KernelPackage
/ipt-extra
/description
344 Other Netfilter
(IPv4
) kernel modules
346 - condition
(2.4 only
)
348 - physdev
(if bridge support was enabled in kernel
)
353 $(eval
$(call KernelPackage
,ipt-extra
))
356 define KernelPackage
/ip6tables
360 KCONFIG
:=$(KCONFIG_IPT_IPV6
)
361 FILES
:=$(foreach mod
,$(IPT_IPV6-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
362 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(IPT_IPV6-m
)))
365 define KernelPackage
/ip6tables
/description
366 Netfilter IPv6 firewalling support
369 $(eval
$(call KernelPackage
,ip6tables
))
372 define KernelPackage
/arptables
374 TITLE
:=ARP firewalling modules
375 FILES
:=$(LINUX_DIR
)/net
/ipv4
/netfilter
/arp
*.ko
376 KCONFIG
:=CONFIG_IP_NF_ARPTABLES \
377 CONFIG_IP_NF_ARPFILTER \
378 CONFIG_IP_NF_ARP_MANGLE
379 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(patsubst %.ko
,%,$(wildcard $(LINUX_DIR
)/net
/ipv4
/netfilter
/arp
*.ko
))))
382 define KernelPackage
/arptables
/description
383 Kernel modules for ARP firewalling
386 $(eval
$(call KernelPackage
,arptables
))
389 define KernelPackage
/ebtables
391 TITLE
:=Bridge firewalling modules
392 FILES
:=$(foreach mod
,$(EBTABLES-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
393 KCONFIG
:=CONFIG_BRIDGE_NETFILTER
=y \
395 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(EBTABLES-m
)))
398 define KernelPackage
/ebtables
/description
399 ebtables is a general
, extensible frame
/packet identification
400 framework. It provides you to do Ethernet
401 filtering
/NAT
/brouting on the Ethernet bridge.
404 $(eval
$(call KernelPackage
,ebtables
))
407 define AddDepends
/ebtables
409 DEPENDS
+=kmod-ebtables
$(1)
413 define KernelPackage
/ebtables-ipv4
414 TITLE
:=ebtables
: IPv4 support
415 FILES
:=$(foreach mod
,$(EBTABLES_IP4-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
416 KCONFIG
:=$(KCONFIG_EBTABLES_IP4
)
417 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(EBTABLES_IP4-m
)))
418 $(call AddDepends
/ebtables
)
421 define KernelPackage
/ebtables-ipv4
/description
422 This option adds the IPv4 support to ebtables
, which allows basic
423 IPv4 header field filtering
, ARP filtering
as well
as SNAT
, DNAT targets.
426 $(eval
$(call KernelPackage
,ebtables-ipv4
))
429 define KernelPackage
/ebtables-ipv6
430 TITLE
:=ebtables
: IPv6 support
431 FILES
:=$(foreach mod
,$(EBTABLES_IP6-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
432 KCONFIG
:=$(KCONFIG_EBTABLES_IP6
)
433 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(EBTABLES_IP6-m
)))
434 $(call AddDepends
/ebtables
)
437 define KernelPackage
/ebtables-ipv6
/description
438 This option adds the IPv6 support to ebtables
, which allows basic
439 IPv6 header field filtering and target support.
442 $(eval
$(call KernelPackage
,ebtables-ipv6
))
445 define KernelPackage
/ebtables-watchers
446 TITLE
:=ebtables
: watchers support
447 FILES
:=$(foreach mod
,$(EBTABLES_WATCHERS-m
),$(LINUX_DIR
)/net
/$(mod
).ko
)
448 KCONFIG
:=$(KCONFIG_EBTABLES_WATCHERS
)
449 AUTOLOAD
:=$(call AutoLoad
,49,$(notdir $(EBTABLES_WATCHERS-m
)))
450 $(call AddDepends
/ebtables
)
453 define KernelPackage
/ebtables-watchers
/description
454 This option adds the log watchers
, that you can use in any rule
455 in any ebtables table.
458 $(eval
$(call KernelPackage
,ebtables-watchers
))
461 define KernelPackage
/nfnetlink
463 TITLE
:=Netlink-based userspace interface
464 DEPENDS
:=+kmod-ipt-core
465 FILES
:=$(LINUX_DIR
)/net
/netfilter
/nfnetlink.ko
466 KCONFIG
:=CONFIG_NETFILTER_NETLINK
467 AUTOLOAD
:=$(call AutoLoad
,48,nfnetlink
)
470 define KernelPackage
/nfnetlink
/description
471 Kernel modules support for a netlink-based userspace interface
474 $(eval
$(call KernelPackage
,nfnetlink
))
477 define AddDepends
/nfnetlink
479 DEPENDS
+=+kmod-nfnetlink
$(1)
483 define KernelPackage
/nfnetlink-log
484 TITLE
:=Netfilter LOG over NFNETLINK interface
485 FILES
:=$(LINUX_DIR
)/net
/netfilter
/nfnetlink_log.ko
486 KCONFIG
:=CONFIG_NETFILTER_NETLINK_LOG
487 AUTOLOAD
:=$(call AutoLoad
,48,nfnetlink_log
)
488 $(call AddDepends
/nfnetlink
)
491 define KernelPackage
/nfnetlink-log
/description
492 Kernel modules support for logging packets via NFNETLINK
495 $(eval
$(call KernelPackage
,nfnetlink-log
))
498 define KernelPackage
/nfnetlink-queue
499 TITLE
:=Netfilter QUEUE over NFNETLINK interface
500 FILES
:=$(LINUX_DIR
)/net
/netfilter
/nfnetlink_queue.ko
501 KCONFIG
:=CONFIG_NETFILTER_NETLINK_QUEUE
502 AUTOLOAD
:=$(call AutoLoad
,48,nfnetlink_queue
)
503 $(call AddDepends
/nfnetlink
)
506 define KernelPackage
/nfnetlink-queue
/description
507 Kernel modules support for queueing packets via NFNETLINK
510 $(eval
$(call KernelPackage
,nfnetlink-queue
))
513 define KernelPackage
/nf-conntrack-netlink
514 TITLE
:=Connection tracking netlink interface
515 FILES
:=$(LINUX_DIR
)/net
/netfilter
/nf_conntrack_netlink.ko
516 KCONFIG
:=CONFIG_NF_CT_NETLINK
517 AUTOLOAD
:=$(call AutoLoad
,49,nf_conntrack_netlink
)
518 $(call AddDepends
/nfnetlink
,+kmod-ipt-conntrack
)
521 define KernelPackage
/nf-conntrack-netlink
/description
522 Kernel modules support for a netlink-based connection tracking
526 $(eval
$(call KernelPackage
,nf-conntrack-netlink
))
528 define KernelPackage
/ipt-hashlimit
530 TITLE
:=Netfilter hashlimit match
531 KCONFIG
:=$(KCONFIG_IPT_HASHLIMIT
)
532 FILES
:=$(LINUX_DIR
)/net
/netfilter
/xt_hashlimit.ko
533 AUTOLOAD
:=$(call AutoLoad
,50,xt_hashlimit
)
534 $(call KernelPackage
/ipt
)
537 define KernelPackage
/ipt-hashlimit
/description
538 Kernel modules support for the hashlimit bucket match module
541 $(eval
$(call KernelPackage
,ipt-hashlimit
))