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
14 define KernelPackage/nf-ipt
19 CONFIG_NETFILTER_ADVANCED=y \
21 FILES:=$(foreach mod,$(NF_IPT-m),$(LINUX_DIR)/net/$(mod).ko)
22 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_IPT-m)))
25 $(eval $(call KernelPackage,nf-ipt))
28 define KernelPackage/nf-ipt6
31 KCONFIG:=$(KCONFIG_NF_IPT6)
32 FILES:=$(foreach mod,$(NF_IPT6-m),$(LINUX_DIR)/net/$(mod).ko)
33 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_IPT6-m)))
34 DEPENDS:=+kmod-nf-ipt +kmod-nf-conntrack6
37 $(eval $(call KernelPackage,nf-ipt6))
41 define KernelPackage/ipt-core
44 KCONFIG:=$(KCONFIG_IPT_CORE)
45 FILES:=$(foreach mod,$(IPT_CORE-m),$(LINUX_DIR)/net/$(mod).ko)
46 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CORE-m)))
50 define KernelPackage/ipt-core/description
51 Netfilter core kernel modules
62 $(eval $(call KernelPackage,ipt-core))
65 define KernelPackage/nf-conntrack
67 TITLE:=Netfilter connection tracking
70 CONFIG_NETFILTER_ADVANCED=y \
71 $(KCONFIG_NF_CONNTRACK)
72 FILES:=$(foreach mod,$(NF_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).ko)
73 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNTRACK-m)))
76 $(eval $(call KernelPackage,nf-conntrack))
79 define KernelPackage/nf-conntrack6
81 TITLE:=Netfilter IPv6 connection tracking
82 KCONFIG:=$(KCONFIG_NF_CONNTRACK6)
83 DEPENDS:=+kmod-ipv6 +kmod-nf-conntrack
84 FILES:=$(foreach mod,$(NF_CONNTRACK6-m),$(LINUX_DIR)/net/$(mod).ko)
85 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNTRACK6-m)))
88 $(eval $(call KernelPackage,nf-conntrack6))
91 define KernelPackage/nf-nat
94 KCONFIG:=$(KCONFIG_NF_NAT)
95 DEPENDS:=+kmod-nf-conntrack +kmod-nf-ipt
96 FILES:=$(foreach mod,$(NF_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
97 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NAT-m)))
100 $(eval $(call KernelPackage,nf-nat))
103 define KernelPackage/nf-nat6
105 TITLE:=Netfilter IPV6-NAT
106 KCONFIG:=$(KCONFIG_NF_NAT6)
107 DEPENDS:=+kmod-nf-conntrack6 +kmod-nf-ipt6 +kmod-nf-nat
108 FILES:=$(foreach mod,$(NF_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
109 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NAT6-m)))
112 $(eval $(call KernelPackage,nf-nat6))
115 define AddDepends/ipt
117 DEPENDS+= +kmod-ipt-core $(1)
121 define KernelPackage/ipt-conntrack
122 TITLE:=Basic connection tracking modules
123 KCONFIG:=$(KCONFIG_IPT_CONNTRACK)
124 FILES:=$(foreach mod,$(IPT_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).ko)
125 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK-m)))
126 $(call AddDepends/ipt,+kmod-nf-conntrack)
129 define KernelPackage/ipt-conntrack/description
130 Netfilter (IPv4) kernel modules for connection tracking
139 $(eval $(call KernelPackage,ipt-conntrack))
142 define KernelPackage/ipt-conntrack-extra
143 TITLE:=Extra connection tracking modules
144 KCONFIG:=$(KCONFIG_IPT_CONNTRACK_EXTRA)
145 FILES:=$(foreach mod,$(IPT_CONNTRACK_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
146 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK_EXTRA-m)))
147 $(call AddDepends/ipt,+kmod-ipt-conntrack)
150 define KernelPackage/ipt-conntrack-extra/description
151 Netfilter (IPv4) extra kernel modules for connection tracking
160 $(eval $(call KernelPackage,ipt-conntrack-extra))
163 define KernelPackage/ipt-filter
164 TITLE:=Modules for packet content inspection
165 KCONFIG:=$(KCONFIG_IPT_FILTER)
166 FILES:=$(foreach mod,$(IPT_FILTER-m),$(LINUX_DIR)/net/$(mod).ko)
167 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_FILTER-m)))
168 $(call AddDepends/ipt,+kmod-lib-textsearch +kmod-ipt-conntrack)
171 define KernelPackage/ipt-filter/description
172 Netfilter (IPv4) kernel modules for packet content inspection
178 $(eval $(call KernelPackage,ipt-filter))
181 define KernelPackage/ipt-ipopt
182 TITLE:=Modules for matching/changing IP packet options
183 KCONFIG:=$(KCONFIG_IPT_IPOPT)
184 FILES:=$(foreach mod,$(IPT_IPOPT-m),$(LINUX_DIR)/net/$(mod).ko)
185 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPOPT-m)))
186 $(call AddDepends/ipt)
189 define KernelPackage/ipt-ipopt/description
190 Netfilter (IPv4) modules for matching/changing IP packet options
205 $(eval $(call KernelPackage,ipt-ipopt))
208 define KernelPackage/ipt-ipsec
209 TITLE:=Modules for matching IPSec packets
210 KCONFIG:=$(KCONFIG_IPT_IPSEC)
211 FILES:=$(foreach mod,$(IPT_IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
212 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPSEC-m)))
213 $(call AddDepends/ipt)
216 define KernelPackage/ipt-ipsec/description
217 Netfilter (IPv4) modules for matching IPSec packets
224 $(eval $(call KernelPackage,ipt-ipsec))
228 ipset/ip_set_bitmap_ip \
229 ipset/ip_set_bitmap_ipmac \
230 ipset/ip_set_bitmap_port \
231 ipset/ip_set_hash_ip \
232 ipset/ip_set_hash_ipmark \
233 ipset/ip_set_hash_ipport \
234 ipset/ip_set_hash_ipportip \
235 ipset/ip_set_hash_ipportnet \
236 ipset/ip_set_hash_mac \
237 ipset/ip_set_hash_netportnet \
238 ipset/ip_set_hash_net \
239 ipset/ip_set_hash_netnet \
240 ipset/ip_set_hash_netport \
241 ipset/ip_set_hash_netiface \
242 ipset/ip_set_list_set \
245 define KernelPackage/ipt-ipset
246 SUBMENU:=Netfilter Extensions
247 TITLE:=IPset netfilter modules
248 DEPENDS+= +kmod-ipt-core +kmod-nfnetlink
251 CONFIG_IP_SET_MAX=256 \
252 CONFIG_NETFILTER_XT_SET \
253 CONFIG_IP_SET_BITMAP_IP \
254 CONFIG_IP_SET_BITMAP_IPMAC \
255 CONFIG_IP_SET_BITMAP_PORT \
256 CONFIG_IP_SET_HASH_IP \
257 CONFIG_IP_SET_HASH_IPMARK \
258 CONFIG_IP_SET_HASH_IPPORT \
259 CONFIG_IP_SET_HASH_IPPORTIP \
260 CONFIG_IP_SET_HASH_IPPORTNET \
261 CONFIG_IP_SET_HASH_MAC \
262 CONFIG_IP_SET_HASH_NET \
263 CONFIG_IP_SET_HASH_NETNET \
264 CONFIG_IP_SET_HASH_NETIFACE \
265 CONFIG_IP_SET_HASH_NETPORT \
266 CONFIG_IP_SET_HASH_NETPORTNET \
267 CONFIG_IP_SET_LIST_SET \
268 CONFIG_NET_EMATCH_IPSET=n
269 FILES:=$(foreach mod,$(IPSET_MODULES),$(LINUX_DIR)/net/netfilter/$(mod).ko)
270 AUTOLOAD:=$(call AutoLoad,49,$(notdir $(IPSET_MODULES)))
272 $(eval $(call KernelPackage,ipt-ipset))
275 define KernelPackage/ipt-nat
276 TITLE:=Basic NAT targets
277 KCONFIG:=$(KCONFIG_IPT_NAT)
278 FILES:=$(foreach mod,$(IPT_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
279 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NAT-m)))
280 $(call AddDepends/ipt,+kmod-nf-nat)
283 define KernelPackage/ipt-nat/description
284 Netfilter (IPv4) kernel modules for basic NAT targets
289 $(eval $(call KernelPackage,ipt-nat))
292 define KernelPackage/ipt-nat6
293 TITLE:=IPv6 NAT targets
294 KCONFIG:=$(KCONFIG_IPT_NAT6)
295 FILES:=$(foreach mod,$(IPT_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
296 AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_NAT6-m)))
297 $(call AddDepends/ipt,+kmod-nf-nat6)
298 $(call AddDepends/ipt,+kmod-ipt-conntrack)
299 $(call AddDepends/ipt,+kmod-ipt-nat)
300 $(call AddDepends/ipt,+kmod-ip6tables)
303 define KernelPackage/ipt-nat6/description
304 Netfilter (IPv6) kernel modules for NAT targets
307 $(eval $(call KernelPackage,ipt-nat6))
310 define KernelPackage/ipt-nat-extra
311 TITLE:=Extra NAT targets
312 KCONFIG:=$(KCONFIG_IPT_NAT_EXTRA)
313 FILES:=$(foreach mod,$(IPT_NAT_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
314 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NAT_EXTRA-m)))
315 $(call AddDepends/ipt,+kmod-ipt-nat)
318 define KernelPackage/ipt-nat-extra/description
319 Netfilter (IPv4) kernel modules for extra NAT targets
325 $(eval $(call KernelPackage,ipt-nat-extra))
328 define KernelPackage/nf-nathelper
330 TITLE:=Basic Conntrack and NAT helpers
331 KCONFIG:=$(KCONFIG_NF_NATHELPER)
332 FILES:=$(foreach mod,$(NF_NATHELPER-m),$(LINUX_DIR)/net/$(mod).ko)
333 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NATHELPER-m)))
334 DEPENDS:=+kmod-nf-nat
337 define KernelPackage/nf-nathelper/description
338 Default Netfilter (IPv4) Conntrack and NAT helpers
345 $(eval $(call KernelPackage,nf-nathelper))
348 define KernelPackage/nf-nathelper-extra
350 TITLE:=Extra Conntrack and NAT helpers
351 KCONFIG:=$(KCONFIG_NF_NATHELPER_EXTRA)
352 FILES:=$(foreach mod,$(NF_NATHELPER_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
353 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NATHELPER_EXTRA-m)))
354 DEPENDS:=+kmod-nf-nat +kmod-lib-textsearch
357 define KernelPackage/nf-nathelper-extra/description
358 Extra Netfilter (IPv4) Conntrack and NAT helpers
370 $(eval $(call KernelPackage,nf-nathelper-extra))
373 define KernelPackage/ipt-queue
374 TITLE:=Module for user-space packet queueing
375 KCONFIG:=$(KCONFIG_IPT_QUEUE)
377 FILES:=$(foreach mod,$(IPT_QUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
378 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_QUEUE-m)))
379 $(call AddDepends/ipt)
382 define KernelPackage/ipt-queue/description
383 Netfilter (IPv4) module for user-space packet queueing
388 $(eval $(call KernelPackage,ipt-queue))
391 define KernelPackage/ipt-ulog
392 TITLE:=Module for user-space packet logging
393 KCONFIG:=$(KCONFIG_IPT_ULOG)
394 FILES:=$(foreach mod,$(IPT_ULOG-m),$(LINUX_DIR)/net/$(mod).ko)
395 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_ULOG-m)))
396 $(call AddDepends/ipt)
399 define KernelPackage/ipt-ulog/description
400 Netfilter (IPv4) module for user-space packet logging
405 $(eval $(call KernelPackage,ipt-ulog))
408 define KernelPackage/ipt-nflog
409 TITLE:=Module for user-space packet logging
410 KCONFIG:=$(KCONFIG_IPT_NFLOG)
411 FILES:=$(foreach mod,$(IPT_NFLOG-m),$(LINUX_DIR)/net/$(mod).ko)
412 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFLOG-m)))
413 $(call AddDepends/ipt,+kmod-nfnetlink-log)
416 define KernelPackage/ipt-nflog/description
417 Netfilter module for user-space packet logging
422 $(eval $(call KernelPackage,ipt-nflog))
425 define KernelPackage/ipt-nfqueue
426 TITLE:=Module for user-space packet queuing
427 KCONFIG:=$(KCONFIG_IPT_NFQUEUE)
428 FILES:=$(foreach mod,$(IPT_NFQUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
429 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFQUEUE-m)))
430 $(call AddDepends/ipt,+kmod-nfnetlink-queue)
433 define KernelPackage/ipt-nfqueue/description
434 Netfilter module for user-space packet queuing
439 $(eval $(call KernelPackage,ipt-nfqueue))
442 define KernelPackage/ipt-debug
443 TITLE:=Module for debugging/development
444 KCONFIG:=$(KCONFIG_IPT_DEBUG)
446 FILES:=$(foreach mod,$(IPT_DEBUG-m),$(LINUX_DIR)/net/$(mod).ko)
447 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_DEBUG-m)))
448 $(call AddDepends/ipt)
451 define KernelPackage/ipt-debug/description
452 Netfilter modules for debugging/development of the firewall
457 $(eval $(call KernelPackage,ipt-debug))
460 define KernelPackage/ipt-led
461 TITLE:=Module to trigger a LED with a Netfilter rule
462 KCONFIG:=$(KCONFIG_IPT_LED)
463 FILES:=$(foreach mod,$(IPT_LED-m),$(LINUX_DIR)/net/$(mod).ko)
464 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_LED-m)))
465 $(call AddDepends/ipt)
468 define KernelPackage/ipt-led/description
469 Netfilter target to trigger a LED when a network packet is matched.
472 $(eval $(call KernelPackage,ipt-led))
474 define KernelPackage/ipt-tproxy
475 TITLE:=Transparent proxying support
476 DEPENDS+=+kmod-ipt-conntrack +IPV6:kmod-ipv6 +IPV6:kmod-ip6tables
478 CONFIG_NETFILTER_TPROXY \
479 CONFIG_NETFILTER_XT_MATCH_SOCKET \
480 CONFIG_NETFILTER_XT_TARGET_TPROXY
482 $(if $(call kernel_patchver_lt,3.12),$(LINUX_DIR)/net/netfilter/nf_tproxy_core.ko) \
483 $(foreach mod,$(IPT_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko)
484 AUTOLOAD:=$(call AutoProbe,$(notdir nf_tproxy_core $(IPT_TPROXY-m)))
485 $(call AddDepends/ipt)
488 define KernelPackage/ipt-tproxy/description
489 Kernel modules for Transparent Proxying
492 $(eval $(call KernelPackage,ipt-tproxy))
494 define KernelPackage/ipt-tee
496 DEPENDS:=+kmod-ipt-conntrack +IPV6:kmod-ipv6
498 CONFIG_NETFILTER_XT_TARGET_TEE
500 $(LINUX_DIR)/net/netfilter/xt_TEE.ko \
501 $(foreach mod,$(IPT_TEE-m),$(LINUX_DIR)/net/$(mod).ko)
502 AUTOLOAD:=$(call AutoProbe,$(notdir nf_tee $(IPT_TEE-m)))
503 $(call AddDepends/ipt)
506 define KernelPackage/ipt-tee/description
507 Kernel modules for TEE
510 $(eval $(call KernelPackage,ipt-tee))
513 define KernelPackage/ipt-u32
516 CONFIG_NETFILTER_XT_MATCH_U32
518 $(LINUX_DIR)/net/netfilter/xt_u32.ko \
519 $(foreach mod,$(IPT_U32-m),$(LINUX_DIR)/net/$(mod).ko)
520 AUTOLOAD:=$(call AutoProbe,$(notdir nf_tee $(IPT_U32-m)))
521 $(call AddDepends/ipt)
524 define KernelPackage/ipt-u32/description
525 Kernel modules for U32
528 $(eval $(call KernelPackage,ipt-u32))
531 define KernelPackage/ipt-iprange
532 TITLE:=Module for matching ip ranges
533 KCONFIG:=$(KCONFIG_IPT_IPRANGE)
534 FILES:=$(foreach mod,$(IPT_IPRANGE-m),$(LINUX_DIR)/net/$(mod).ko)
535 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPRANGE-m)))
536 $(call AddDepends/ipt)
539 define KernelPackage/ipt-iprange/description
540 Netfilter (IPv4) module for matching ip ranges
545 $(eval $(call KernelPackage,ipt-iprange))
547 define KernelPackage/ipt-cluster
548 TITLE:=Module for matching cluster
549 KCONFIG:=$(KCONFIG_IPT_CLUSTER)
550 FILES:=$(foreach mod,$(IPT_CLUSTER-m),$(LINUX_DIR)/net/$(mod).ko)
551 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CLUSTER-m)))
552 $(call AddDepends/ipt)
555 define KernelPackage/ipt-cluster/description
556 Netfilter (IPv4/IPv6) module for matching cluster
557 This option allows you to build work-load-sharing clusters of
558 network servers/stateful firewalls without having a dedicated
559 load-balancing router/server/switch. Basically, this match returns
560 true when the packet must be handled by this cluster node. Thus,
561 all nodes see all packets and this match decides which node handles
562 what packets. The work-load sharing algorithm is based on source
565 This module is usable for ipv4 and ipv6.
567 To use it also enable iptables-mod-cluster
569 see `iptables -m cluster --help` for more information.
572 $(eval $(call KernelPackage,ipt-cluster))
574 define KernelPackage/ipt-clusterip
575 TITLE:=Module for CLUSTERIP
576 KCONFIG:=$(KCONFIG_IPT_CLUSTERIP)
577 FILES:=$(foreach mod,$(IPT_CLUSTERIP-m),$(LINUX_DIR)/net/$(mod).ko)
578 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CLUSTERIP-m)))
579 $(call AddDepends/ipt,+kmod-nf-conntrack)
582 define KernelPackage/ipt-clusterip/description
583 Netfilter (IPv4-only) module for CLUSTERIP
584 The CLUSTERIP target allows you to build load-balancing clusters of
585 network servers without having a dedicated load-balancing
586 router/server/switch.
588 To use it also enable iptables-mod-clusterip
590 see `iptables -j CLUSTERIP --help` for more information.
593 $(eval $(call KernelPackage,ipt-clusterip))
596 define KernelPackage/ipt-extra
598 KCONFIG:=$(KCONFIG_IPT_EXTRA)
599 FILES:=$(foreach mod,$(IPT_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
600 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_EXTRA-m)))
601 $(call AddDepends/ipt)
604 define KernelPackage/ipt-extra/description
605 Other Netfilter (IPv4) kernel modules
609 - physdev (if bridge support was enabled in kernel)
614 $(eval $(call KernelPackage,ipt-extra))
617 define KernelPackage/ip6tables
620 DEPENDS:=+kmod-nf-ipt6 +kmod-ipt-core +kmod-ipt-conntrack
621 KCONFIG:=$(KCONFIG_IPT_IPV6)
622 FILES:=$(foreach mod,$(IPT_IPV6-m),$(LINUX_DIR)/net/$(mod).ko)
623 AUTOLOAD:=$(call AutoLoad,42,$(notdir $(IPT_IPV6-m)))
626 define KernelPackage/ip6tables/description
627 Netfilter IPv6 firewalling support
630 $(eval $(call KernelPackage,ip6tables))
632 define KernelPackage/ip6tables-extra
634 TITLE:=Extra IPv6 modules
635 DEPENDS:=+kmod-ip6tables
636 KCONFIG:=$(KCONFIG_IPT_IPV6_EXTRA)
637 FILES:=$(foreach mod,$(IPT_IPV6_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
638 AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_IPV6_EXTRA-m)))
641 define KernelPackage/ip6tables-extra/description
642 Netfilter IPv6 extra header matching modules
645 $(eval $(call KernelPackage,ip6tables-extra))
647 ARP_MODULES = arp_tables arpt_mangle arptable_filter
648 define KernelPackage/arptables
650 TITLE:=ARP firewalling modules
651 DEPENDS:=+kmod-ipt-core
652 FILES:=$(LINUX_DIR)/net/ipv4/netfilter/arp*.ko
653 KCONFIG:=CONFIG_IP_NF_ARPTABLES \
654 CONFIG_IP_NF_ARPFILTER \
655 CONFIG_IP_NF_ARP_MANGLE
656 AUTOLOAD:=$(call AutoProbe,$(ARP_MODULES))
659 define KernelPackage/arptables/description
660 Kernel modules for ARP firewalling
663 $(eval $(call KernelPackage,arptables))
666 define KernelPackage/ebtables
668 TITLE:=Bridge firewalling modules
669 DEPENDS:=+kmod-ipt-core +kmod-bridge
670 FILES:=$(foreach mod,$(EBTABLES-m),$(LINUX_DIR)/net/$(mod).ko)
671 KCONFIG:=CONFIG_BRIDGE_NETFILTER=y \
673 AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES-m)))
676 define KernelPackage/ebtables/description
677 ebtables is a general, extensible frame/packet identification
678 framework. It provides you to do Ethernet
679 filtering/NAT/brouting on the Ethernet bridge.
682 $(eval $(call KernelPackage,ebtables))
685 define AddDepends/ebtables
687 DEPENDS+=kmod-ebtables $(1)
691 define KernelPackage/ebtables-ipv4
692 TITLE:=ebtables: IPv4 support
693 FILES:=$(foreach mod,$(EBTABLES_IP4-m),$(LINUX_DIR)/net/$(mod).ko)
694 KCONFIG:=$(KCONFIG_EBTABLES_IP4)
695 AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP4-m)))
696 $(call AddDepends/ebtables)
699 define KernelPackage/ebtables-ipv4/description
700 This option adds the IPv4 support to ebtables, which allows basic
701 IPv4 header field filtering, ARP filtering as well as SNAT, DNAT targets.
704 $(eval $(call KernelPackage,ebtables-ipv4))
707 define KernelPackage/ebtables-ipv6
708 TITLE:=ebtables: IPv6 support
709 FILES:=$(foreach mod,$(EBTABLES_IP6-m),$(LINUX_DIR)/net/$(mod).ko)
710 KCONFIG:=$(KCONFIG_EBTABLES_IP6)
711 AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP6-m)))
712 $(call AddDepends/ebtables)
715 define KernelPackage/ebtables-ipv6/description
716 This option adds the IPv6 support to ebtables, which allows basic
717 IPv6 header field filtering and target support.
720 $(eval $(call KernelPackage,ebtables-ipv6))
723 define KernelPackage/ebtables-watchers
724 TITLE:=ebtables: watchers support
725 FILES:=$(foreach mod,$(EBTABLES_WATCHERS-m),$(LINUX_DIR)/net/$(mod).ko)
726 KCONFIG:=$(KCONFIG_EBTABLES_WATCHERS)
727 AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_WATCHERS-m)))
728 $(call AddDepends/ebtables)
731 define KernelPackage/ebtables-watchers/description
732 This option adds the log watchers, that you can use in any rule
733 in any ebtables table.
736 $(eval $(call KernelPackage,ebtables-watchers))
739 define KernelPackage/nfnetlink
741 TITLE:=Netlink-based userspace interface
742 FILES:=$(foreach mod,$(NFNETLINK-m),$(LINUX_DIR)/net/$(mod).ko)
743 KCONFIG:=$(KCONFIG_NFNETLINK)
744 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK-m)))
747 define KernelPackage/nfnetlink/description
748 Kernel modules support for a netlink-based userspace interface
751 $(eval $(call KernelPackage,nfnetlink))
754 define AddDepends/nfnetlink
756 DEPENDS+=+kmod-nfnetlink $(1)
760 define KernelPackage/nfnetlink-log
761 TITLE:=Netfilter LOG over NFNETLINK interface
762 FILES:=$(foreach mod,$(NFNETLINK_LOG-m),$(LINUX_DIR)/net/$(mod).ko)
763 KCONFIG:=$(KCONFIG_NFNETLINK_LOG)
764 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_LOG-m)))
765 $(call AddDepends/nfnetlink)
768 define KernelPackage/nfnetlink-log/description
769 Kernel modules support for logging packets via NFNETLINK
774 $(eval $(call KernelPackage,nfnetlink-log))
777 define KernelPackage/nfnetlink-queue
778 TITLE:=Netfilter QUEUE over NFNETLINK interface
779 FILES:=$(foreach mod,$(NFNETLINK_QUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
780 KCONFIG:=$(KCONFIG_NFNETLINK_QUEUE)
781 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_QUEUE-m)))
782 $(call AddDepends/nfnetlink)
785 define KernelPackage/nfnetlink-queue/description
786 Kernel modules support for queueing packets via NFNETLINK
791 $(eval $(call KernelPackage,nfnetlink-queue))
794 define KernelPackage/nf-conntrack-netlink
795 TITLE:=Connection tracking netlink interface
796 FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.ko
797 KCONFIG:=CONFIG_NF_CT_NETLINK
798 AUTOLOAD:=$(call AutoProbe,nf_conntrack_netlink)
799 $(call AddDepends/nfnetlink,+kmod-ipt-conntrack)
802 define KernelPackage/nf-conntrack-netlink/description
803 Kernel modules support for a netlink-based connection tracking
807 $(eval $(call KernelPackage,nf-conntrack-netlink))
809 define KernelPackage/ipt-hashlimit
811 TITLE:=Netfilter hashlimit match
812 DEPENDS:=+kmod-ipt-core
813 KCONFIG:=$(KCONFIG_IPT_HASHLIMIT)
814 FILES:=$(LINUX_DIR)/net/netfilter/xt_hashlimit.ko
815 AUTOLOAD:=$(call AutoProbe,xt_hashlimit)
816 $(call KernelPackage/ipt)
819 define KernelPackage/ipt-hashlimit/description
820 Kernel modules support for the hashlimit bucket match module
823 $(eval $(call KernelPackage,ipt-hashlimit))
826 define KernelPackage/nft-core
828 TITLE:=Netfilter nf_tables support
829 DEPENDS:=+kmod-nfnetlink +kmod-nf-conntrack6
830 FILES:=$(foreach mod,$(NFT_CORE-m),$(LINUX_DIR)/net/$(mod).ko)
831 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_CORE-m)))
834 CONFIG_NETFILTER_ADVANCED=y \
835 CONFIG_NFT_COMPAT=n \
837 CONFIG_NF_TABLES_ARP=n \
838 CONFIG_NF_TABLES_BRIDGE=n \
842 define KernelPackage/nft-core/description
843 Kernel module support for nftables
846 $(eval $(call KernelPackage,nft-core))
849 define KernelPackage/nft-nat
851 TITLE:=Netfilter nf_tables NAT support
852 DEPENDS:=+kmod-nft-core +kmod-nf-nat
853 FILES:=$(foreach mod,$(NFT_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
854 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_NAT-m)))
855 KCONFIG:=$(KCONFIG_NFT_NAT)
858 $(eval $(call KernelPackage,nft-nat))
861 define KernelPackage/nft-nat6
863 TITLE:=Netfilter nf_tables IPv6-NAT support
864 DEPENDS:=+kmod-nft-core +kmod-nf-nat6
865 FILES:=$(foreach mod,$(NFT_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
866 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_NAT6-m)))
867 KCONFIG:=$(KCONFIG_NFT_NAT6)
870 $(eval $(call KernelPackage,nft-nat6))