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-reject
16 TITLE:=Netfilter IPv4 reject support
19 CONFIG_NETFILTER_ADVANCED=y \
21 FILES:=$(foreach mod,$(NF_REJECT-m),$(LINUX_DIR)/net/$(mod).ko)
22 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_REJECT-m)))
25 $(eval $(call KernelPackage,nf-reject))
28 define KernelPackage/nf-reject6
30 TITLE:=Netfilter IPv6 reject support
33 CONFIG_NETFILTER_ADVANCED=y \
36 FILES:=$(foreach mod,$(NF_REJECT6-m),$(LINUX_DIR)/net/$(mod).ko)
37 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_REJECT6-m)))
40 $(eval $(call KernelPackage,nf-reject6))
43 define KernelPackage/nf-ipt
46 KCONFIG:=$(KCONFIG_NF_IPT)
47 FILES:=$(foreach mod,$(NF_IPT-m),$(LINUX_DIR)/net/$(mod).ko)
48 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_IPT-m)))
51 $(eval $(call KernelPackage,nf-ipt))
54 define KernelPackage/nf-ipt6
57 KCONFIG:=$(KCONFIG_NF_IPT6)
58 FILES:=$(foreach mod,$(NF_IPT6-m),$(LINUX_DIR)/net/$(mod).ko)
59 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_IPT6-m)))
63 $(eval $(call KernelPackage,nf-ipt6))
67 define KernelPackage/ipt-core
70 KCONFIG:=$(KCONFIG_IPT_CORE)
71 FILES:=$(foreach mod,$(IPT_CORE-m),$(LINUX_DIR)/net/$(mod).ko)
72 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CORE-m)))
73 DEPENDS:=+kmod-nf-reject +kmod-nf-ipt
76 define KernelPackage/ipt-core/description
77 Netfilter core kernel modules
88 $(eval $(call KernelPackage,ipt-core))
91 define KernelPackage/nf-conntrack
93 TITLE:=Netfilter connection tracking
96 CONFIG_NETFILTER_ADVANCED=y \
97 CONFIG_NF_CONNTRACK_MARK=y \
98 CONFIG_NF_CONNTRACK_ZONES=y \
99 $(KCONFIG_NF_CONNTRACK)
100 FILES:=$(foreach mod,$(NF_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).ko)
101 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNTRACK-m)))
104 $(eval $(call KernelPackage,nf-conntrack))
107 define KernelPackage/nf-conntrack6
109 TITLE:=Netfilter IPv6 connection tracking
110 KCONFIG:=$(KCONFIG_NF_CONNTRACK6)
111 DEPENDS:=@IPV6 +kmod-nf-conntrack
112 FILES:=$(foreach mod,$(NF_CONNTRACK6-m),$(LINUX_DIR)/net/$(mod).ko)
113 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNTRACK6-m)))
116 $(eval $(call KernelPackage,nf-conntrack6))
119 define KernelPackage/nf-nat
122 KCONFIG:=$(KCONFIG_NF_NAT)
123 DEPENDS:=+kmod-nf-conntrack
124 FILES:=$(foreach mod,$(NF_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
125 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NAT-m)))
128 $(eval $(call KernelPackage,nf-nat))
131 define KernelPackage/nf-nat6
133 TITLE:=Netfilter IPV6-NAT
134 KCONFIG:=$(KCONFIG_NF_NAT6)
135 DEPENDS:=+kmod-nf-conntrack6 +kmod-nf-nat
136 FILES:=$(foreach mod,$(NF_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
137 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NAT6-m)))
140 $(eval $(call KernelPackage,nf-nat6))
143 define KernelPackage/nf-flow
145 TITLE:=Netfilter flowtable support
147 CONFIG_NETFILTER_INGRESS=y \
148 CONFIG_NF_FLOW_TABLE \
149 CONFIG_NF_FLOW_TABLE_HW
150 DEPENDS:=+kmod-nf-conntrack +kmod-nft-core @!LINUX_3_18 @!LINUX_4_4 @!LINUX_4_9
152 $(LINUX_DIR)/net/netfilter/nf_flow_table.ko \
153 $(LINUX_DIR)/net/netfilter/nf_flow_table_hw.ko
154 AUTOLOAD:=$(call AutoProbe,nf_flow_table nf_flow_table_hw)
157 $(eval $(call KernelPackage,nf-flow))
160 define AddDepends/ipt
162 DEPENDS+= +kmod-ipt-core $(1)
166 define KernelPackage/ipt-conntrack
167 TITLE:=Basic connection tracking modules
168 KCONFIG:=$(KCONFIG_IPT_CONNTRACK)
169 FILES:=$(foreach mod,$(IPT_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).ko)
170 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK-m)))
171 $(call AddDepends/ipt,+kmod-nf-conntrack)
174 define KernelPackage/ipt-conntrack/description
175 Netfilter (IPv4) kernel modules for connection tracking
184 $(eval $(call KernelPackage,ipt-conntrack))
187 define KernelPackage/ipt-conntrack-extra
188 TITLE:=Extra connection tracking modules
189 KCONFIG:=$(KCONFIG_IPT_CONNTRACK_EXTRA)
190 FILES:=$(foreach mod,$(IPT_CONNTRACK_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
191 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK_EXTRA-m)))
192 $(call AddDepends/ipt,+kmod-ipt-conntrack)
195 define KernelPackage/ipt-conntrack-extra/description
196 Netfilter (IPv4) extra kernel modules for connection tracking
205 $(eval $(call KernelPackage,ipt-conntrack-extra))
207 define KernelPackage/ipt-conntrack-label
208 TITLE:=Module for handling connection tracking labels
209 KCONFIG:=$(KCONFIG_IPT_CONNTRACK_LABEL)
210 FILES:=$(foreach mod,$(IPT_CONNTRACK_LABEL-m),$(LINUX_DIR)/net/$(mod).ko)
211 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK_LABEL-m)))
212 $(call AddDepends/ipt,+kmod-ipt-conntrack)
215 define KernelPackage/ipt-conntrack-label/description
216 Netfilter (IPv4) module for handling connection tracking labels
221 $(eval $(call KernelPackage,ipt-conntrack-label))
223 define KernelPackage/ipt-filter
224 TITLE:=Modules for packet content inspection
225 KCONFIG:=$(KCONFIG_IPT_FILTER)
226 FILES:=$(foreach mod,$(IPT_FILTER-m),$(LINUX_DIR)/net/$(mod).ko)
227 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_FILTER-m)))
228 $(call AddDepends/ipt,+kmod-lib-textsearch +kmod-ipt-conntrack)
231 define KernelPackage/ipt-filter/description
232 Netfilter (IPv4) kernel modules for packet content inspection
237 $(eval $(call KernelPackage,ipt-filter))
240 define KernelPackage/ipt-ipopt
241 TITLE:=Modules for matching/changing IP packet options
242 KCONFIG:=$(KCONFIG_IPT_IPOPT)
243 FILES:=$(foreach mod,$(IPT_IPOPT-m),$(LINUX_DIR)/net/$(mod).ko)
244 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPOPT-m)))
245 $(call AddDepends/ipt)
248 define KernelPackage/ipt-ipopt/description
249 Netfilter (IPv4) modules for matching/changing IP packet options
264 $(eval $(call KernelPackage,ipt-ipopt))
267 define KernelPackage/ipt-ipsec
268 TITLE:=Modules for matching IPSec packets
269 KCONFIG:=$(KCONFIG_IPT_IPSEC)
270 FILES:=$(foreach mod,$(IPT_IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
271 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPSEC-m)))
272 $(call AddDepends/ipt)
275 define KernelPackage/ipt-ipsec/description
276 Netfilter (IPv4) modules for matching IPSec packets
283 $(eval $(call KernelPackage,ipt-ipsec))
287 ipset/ip_set_bitmap_ip \
288 ipset/ip_set_bitmap_ipmac \
289 ipset/ip_set_bitmap_port \
290 ipset/ip_set_hash_ip \
291 ipset/ip_set_hash_ipmark \
292 ipset/ip_set_hash_ipport \
293 ipset/ip_set_hash_ipportip \
294 ipset/ip_set_hash_ipportnet \
295 ipset/ip_set_hash_mac \
296 ipset/ip_set_hash_netportnet \
297 ipset/ip_set_hash_net \
298 ipset/ip_set_hash_netnet \
299 ipset/ip_set_hash_netport \
300 ipset/ip_set_hash_netiface \
301 ipset/ip_set_list_set \
304 define KernelPackage/ipt-ipset
305 SUBMENU:=Netfilter Extensions
306 TITLE:=IPset netfilter modules
307 DEPENDS+= +kmod-ipt-core +kmod-nfnetlink
310 CONFIG_IP_SET_MAX=256 \
311 CONFIG_NETFILTER_XT_SET \
312 CONFIG_IP_SET_BITMAP_IP \
313 CONFIG_IP_SET_BITMAP_IPMAC \
314 CONFIG_IP_SET_BITMAP_PORT \
315 CONFIG_IP_SET_HASH_IP \
316 CONFIG_IP_SET_HASH_IPMARK \
317 CONFIG_IP_SET_HASH_IPPORT \
318 CONFIG_IP_SET_HASH_IPPORTIP \
319 CONFIG_IP_SET_HASH_IPPORTNET \
320 CONFIG_IP_SET_HASH_MAC \
321 CONFIG_IP_SET_HASH_NET \
322 CONFIG_IP_SET_HASH_NETNET \
323 CONFIG_IP_SET_HASH_NETIFACE \
324 CONFIG_IP_SET_HASH_NETPORT \
325 CONFIG_IP_SET_HASH_NETPORTNET \
326 CONFIG_IP_SET_LIST_SET \
327 CONFIG_NET_EMATCH_IPSET=n
328 FILES:=$(foreach mod,$(IPSET_MODULES),$(LINUX_DIR)/net/netfilter/$(mod).ko)
329 AUTOLOAD:=$(call AutoLoad,49,$(notdir $(IPSET_MODULES)))
331 $(eval $(call KernelPackage,ipt-ipset))
334 define KernelPackage/ipt-nat
335 TITLE:=Basic NAT targets
336 KCONFIG:=$(KCONFIG_IPT_NAT)
337 FILES:=$(foreach mod,$(IPT_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
338 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NAT-m)))
339 $(call AddDepends/ipt,+kmod-nf-nat)
342 define KernelPackage/ipt-nat/description
343 Netfilter (IPv4) kernel modules for basic NAT targets
348 $(eval $(call KernelPackage,ipt-nat))
351 define KernelPackage/ipt-raw
352 TITLE:=Netfilter IPv4 raw table support
353 KCONFIG:=CONFIG_IP_NF_RAW
354 FILES:=$(LINUX_DIR)/net/ipv4/netfilter/iptable_raw.ko
355 AUTOLOAD:=$(call AutoProbe,iptable_raw)
356 $(call AddDepends/ipt)
359 $(eval $(call KernelPackage,ipt-raw))
362 define KernelPackage/ipt-raw6
363 TITLE:=Netfilter IPv6 raw table support
364 KCONFIG:=CONFIG_IP6_NF_RAW
365 FILES:=$(LINUX_DIR)/net/ipv6/netfilter/ip6table_raw.ko
366 AUTOLOAD:=$(call AutoProbe,ip6table_raw)
367 $(call AddDepends/ipt,+kmod-ip6tables)
370 $(eval $(call KernelPackage,ipt-raw6))
373 define KernelPackage/ipt-nat6
374 TITLE:=IPv6 NAT targets
375 KCONFIG:=$(KCONFIG_IPT_NAT6)
376 FILES:=$(foreach mod,$(IPT_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
377 AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_NAT6-m)))
378 $(call AddDepends/ipt,+kmod-nf-nat6)
379 $(call AddDepends/ipt,+kmod-ipt-conntrack)
380 $(call AddDepends/ipt,+kmod-ipt-nat)
381 $(call AddDepends/ipt,+kmod-ip6tables)
384 define KernelPackage/ipt-nat6/description
385 Netfilter (IPv6) kernel modules for NAT targets
388 $(eval $(call KernelPackage,ipt-nat6))
391 define KernelPackage/ipt-nat-extra
392 TITLE:=Extra NAT targets
393 KCONFIG:=$(KCONFIG_IPT_NAT_EXTRA)
394 FILES:=$(foreach mod,$(IPT_NAT_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
395 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NAT_EXTRA-m)))
396 $(call AddDepends/ipt,+kmod-ipt-nat)
399 define KernelPackage/ipt-nat-extra/description
400 Netfilter (IPv4) kernel modules for extra NAT targets
406 $(eval $(call KernelPackage,ipt-nat-extra))
409 define KernelPackage/nf-nathelper
411 TITLE:=Basic Conntrack and NAT helpers
412 KCONFIG:=$(KCONFIG_NF_NATHELPER)
413 FILES:=$(foreach mod,$(NF_NATHELPER-m),$(LINUX_DIR)/net/$(mod).ko)
414 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NATHELPER-m)))
415 DEPENDS:=+kmod-nf-nat
418 define KernelPackage/nf-nathelper/description
419 Default Netfilter (IPv4) Conntrack and NAT helpers
424 $(eval $(call KernelPackage,nf-nathelper))
427 define KernelPackage/nf-nathelper-extra
429 TITLE:=Extra Conntrack and NAT helpers
430 KCONFIG:=$(KCONFIG_NF_NATHELPER_EXTRA)
431 FILES:=$(foreach mod,$(NF_NATHELPER_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
432 AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NATHELPER_EXTRA-m)))
433 DEPENDS:=+kmod-nf-nat +kmod-lib-textsearch
436 define KernelPackage/nf-nathelper-extra/description
437 Extra Netfilter (IPv4) Conntrack and NAT helpers
451 $(eval $(call KernelPackage,nf-nathelper-extra))
454 define KernelPackage/ipt-ulog
455 TITLE:=Module for user-space packet logging
456 KCONFIG:=$(KCONFIG_IPT_ULOG)
457 FILES:=$(foreach mod,$(IPT_ULOG-m),$(LINUX_DIR)/net/$(mod).ko)
458 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_ULOG-m)))
459 $(call AddDepends/ipt)
462 define KernelPackage/ipt-ulog/description
463 Netfilter (IPv4) module for user-space packet logging
468 $(eval $(call KernelPackage,ipt-ulog))
471 define KernelPackage/ipt-nflog
472 TITLE:=Module for user-space packet logging
473 KCONFIG:=$(KCONFIG_IPT_NFLOG)
474 FILES:=$(foreach mod,$(IPT_NFLOG-m),$(LINUX_DIR)/net/$(mod).ko)
475 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFLOG-m)))
476 $(call AddDepends/ipt,+kmod-nfnetlink-log)
479 define KernelPackage/ipt-nflog/description
480 Netfilter module for user-space packet logging
485 $(eval $(call KernelPackage,ipt-nflog))
488 define KernelPackage/ipt-nfqueue
489 TITLE:=Module for user-space packet queuing
490 KCONFIG:=$(KCONFIG_IPT_NFQUEUE)
491 FILES:=$(foreach mod,$(IPT_NFQUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
492 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFQUEUE-m)))
493 $(call AddDepends/ipt,+kmod-nfnetlink-queue)
496 define KernelPackage/ipt-nfqueue/description
497 Netfilter module for user-space packet queuing
502 $(eval $(call KernelPackage,ipt-nfqueue))
505 define KernelPackage/ipt-debug
506 TITLE:=Module for debugging/development
507 KCONFIG:=$(KCONFIG_IPT_DEBUG)
508 FILES:=$(foreach mod,$(IPT_DEBUG-m),$(LINUX_DIR)/net/$(mod).ko)
509 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_DEBUG-m)))
510 $(call AddDepends/ipt,+kmod-ipt-raw +IPV6:kmod-ipt-raw6)
513 define KernelPackage/ipt-debug/description
514 Netfilter modules for debugging/development of the firewall
519 $(eval $(call KernelPackage,ipt-debug))
522 define KernelPackage/ipt-led
523 TITLE:=Module to trigger a LED with a Netfilter rule
524 KCONFIG:=$(KCONFIG_IPT_LED)
525 FILES:=$(foreach mod,$(IPT_LED-m),$(LINUX_DIR)/net/$(mod).ko)
526 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_LED-m)))
527 $(call AddDepends/ipt)
530 define KernelPackage/ipt-led/description
531 Netfilter target to trigger a LED when a network packet is matched.
534 $(eval $(call KernelPackage,ipt-led))
536 define KernelPackage/ipt-tproxy
537 TITLE:=Transparent proxying support
538 DEPENDS+=+kmod-ipt-conntrack +IPV6:kmod-nf-conntrack6 +IPV6:kmod-ip6tables
540 CONFIG_NETFILTER_XT_MATCH_SOCKET \
541 CONFIG_NETFILTER_XT_TARGET_TPROXY
543 $(foreach mod,$(IPT_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko)
544 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_TPROXY-m)))
545 $(call AddDepends/ipt)
548 define KernelPackage/ipt-tproxy/description
549 Kernel modules for Transparent Proxying
552 $(eval $(call KernelPackage,ipt-tproxy))
554 define KernelPackage/ipt-tee
556 DEPENDS:=+kmod-ipt-conntrack
558 CONFIG_NETFILTER_XT_TARGET_TEE
560 $(LINUX_DIR)/net/netfilter/xt_TEE.ko \
561 $(foreach mod,$(IPT_TEE-m),$(LINUX_DIR)/net/$(mod).ko)
562 AUTOLOAD:=$(call AutoProbe,$(notdir nf_tee $(IPT_TEE-m)))
563 $(call AddDepends/ipt)
566 define KernelPackage/ipt-tee/description
567 Kernel modules for TEE
570 $(eval $(call KernelPackage,ipt-tee))
573 define KernelPackage/ipt-u32
576 CONFIG_NETFILTER_XT_MATCH_U32
578 $(LINUX_DIR)/net/netfilter/xt_u32.ko \
579 $(foreach mod,$(IPT_U32-m),$(LINUX_DIR)/net/$(mod).ko)
580 AUTOLOAD:=$(call AutoProbe,$(notdir nf_tee $(IPT_U32-m)))
581 $(call AddDepends/ipt)
584 define KernelPackage/ipt-u32/description
585 Kernel modules for U32
588 $(eval $(call KernelPackage,ipt-u32))
590 define KernelPackage/ipt-checksum
591 TITLE:=CHECKSUM support
593 CONFIG_NETFILTER_XT_TARGET_CHECKSUM
595 $(LINUX_DIR)/net/netfilter/xt_CHECKSUM.ko \
596 $(foreach mod,$(IPT_CHECKSUM-m),$(LINUX_DIR)/net/$(mod).ko)
597 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CHECKSUM-m)))
598 $(call AddDepends/ipt)
601 define KernelPackage/ipt-checksum/description
602 Kernel modules for CHECKSUM fillin target
605 $(eval $(call KernelPackage,ipt-checksum))
608 define KernelPackage/ipt-iprange
609 TITLE:=Module for matching ip ranges
610 KCONFIG:=$(KCONFIG_IPT_IPRANGE)
611 FILES:=$(foreach mod,$(IPT_IPRANGE-m),$(LINUX_DIR)/net/$(mod).ko)
612 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPRANGE-m)))
613 $(call AddDepends/ipt)
616 define KernelPackage/ipt-iprange/description
617 Netfilter (IPv4) module for matching ip ranges
622 $(eval $(call KernelPackage,ipt-iprange))
624 define KernelPackage/ipt-cluster
625 TITLE:=Module for matching cluster
626 KCONFIG:=$(KCONFIG_IPT_CLUSTER)
627 FILES:=$(foreach mod,$(IPT_CLUSTER-m),$(LINUX_DIR)/net/$(mod).ko)
628 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CLUSTER-m)))
629 $(call AddDepends/ipt)
632 define KernelPackage/ipt-cluster/description
633 Netfilter (IPv4/IPv6) module for matching cluster
634 This option allows you to build work-load-sharing clusters of
635 network servers/stateful firewalls without having a dedicated
636 load-balancing router/server/switch. Basically, this match returns
637 true when the packet must be handled by this cluster node. Thus,
638 all nodes see all packets and this match decides which node handles
639 what packets. The work-load sharing algorithm is based on source
642 This module is usable for ipv4 and ipv6.
644 To use it also enable iptables-mod-cluster
646 see `iptables -m cluster --help` for more information.
649 $(eval $(call KernelPackage,ipt-cluster))
651 define KernelPackage/ipt-clusterip
652 TITLE:=Module for CLUSTERIP
653 KCONFIG:=$(KCONFIG_IPT_CLUSTERIP)
654 FILES:=$(foreach mod,$(IPT_CLUSTERIP-m),$(LINUX_DIR)/net/$(mod).ko)
655 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CLUSTERIP-m)))
656 $(call AddDepends/ipt,+kmod-nf-conntrack)
659 define KernelPackage/ipt-clusterip/description
660 Netfilter (IPv4-only) module for CLUSTERIP
661 The CLUSTERIP target allows you to build load-balancing clusters of
662 network servers without having a dedicated load-balancing
663 router/server/switch.
665 To use it also enable iptables-mod-clusterip
667 see `iptables -j CLUSTERIP --help` for more information.
670 $(eval $(call KernelPackage,ipt-clusterip))
673 define KernelPackage/ipt-extra
675 KCONFIG:=$(KCONFIG_IPT_EXTRA)
676 FILES:=$(foreach mod,$(IPT_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
677 AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_EXTRA-m)))
678 $(call AddDepends/ipt,+kmod-br-netfilter)
681 define KernelPackage/ipt-extra/description
682 Other Netfilter (IPv4) kernel modules
686 - physdev (if bridge support was enabled in kernel)
691 $(eval $(call KernelPackage,ipt-extra))
694 define KernelPackage/ip6tables
697 DEPENDS:=+kmod-nf-reject6 +kmod-nf-ipt6 +kmod-ipt-core
698 KCONFIG:=$(KCONFIG_IPT_IPV6)
699 FILES:=$(foreach mod,$(IPT_IPV6-m),$(LINUX_DIR)/net/$(mod).ko)
700 AUTOLOAD:=$(call AutoLoad,42,$(notdir $(IPT_IPV6-m)))
703 define KernelPackage/ip6tables/description
704 Netfilter IPv6 firewalling support
707 $(eval $(call KernelPackage,ip6tables))
709 define KernelPackage/ip6tables-extra
711 TITLE:=Extra IPv6 modules
712 DEPENDS:=+kmod-ip6tables
713 KCONFIG:=$(KCONFIG_IPT_IPV6_EXTRA)
714 FILES:=$(foreach mod,$(IPT_IPV6_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
715 AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_IPV6_EXTRA-m)))
718 define KernelPackage/ip6tables-extra/description
719 Netfilter IPv6 extra header matching modules
722 $(eval $(call KernelPackage,ip6tables-extra))
724 ARP_MODULES = arp_tables arpt_mangle arptable_filter
725 define KernelPackage/arptables
727 TITLE:=ARP firewalling modules
728 DEPENDS:=+kmod-ipt-core
729 FILES:=$(LINUX_DIR)/net/ipv4/netfilter/arp*.ko
730 KCONFIG:=CONFIG_IP_NF_ARPTABLES \
731 CONFIG_IP_NF_ARPFILTER \
732 CONFIG_IP_NF_ARP_MANGLE
733 AUTOLOAD:=$(call AutoProbe,$(ARP_MODULES))
736 define KernelPackage/arptables/description
737 Kernel modules for ARP firewalling
740 $(eval $(call KernelPackage,arptables))
743 define KernelPackage/br-netfilter
745 TITLE:=Bridge netfilter support modules
747 DEPENDS:=+kmod-ipt-core
748 FILES:=$(LINUX_DIR)/net/bridge/br_netfilter.ko
749 KCONFIG:=CONFIG_BRIDGE_NETFILTER
750 AUTOLOAD:=$(call AutoProbe,br_netfilter)
753 $(eval $(call KernelPackage,br-netfilter))
756 define KernelPackage/ebtables
758 TITLE:=Bridge firewalling modules
759 DEPENDS:=+kmod-ipt-core +kmod-br-netfilter
760 FILES:=$(foreach mod,$(EBTABLES-m),$(LINUX_DIR)/net/$(mod).ko)
761 KCONFIG:=$(KCONFIG_EBTABLES)
762 AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES-m)))
765 define KernelPackage/ebtables/description
766 ebtables is a general, extensible frame/packet identification
767 framework. It provides you to do Ethernet
768 filtering/NAT/brouting on the Ethernet bridge.
771 $(eval $(call KernelPackage,ebtables))
774 define AddDepends/ebtables
776 DEPENDS+=kmod-ebtables $(1)
780 define KernelPackage/ebtables-ipv4
781 TITLE:=ebtables: IPv4 support
782 FILES:=$(foreach mod,$(EBTABLES_IP4-m),$(LINUX_DIR)/net/$(mod).ko)
783 KCONFIG:=$(KCONFIG_EBTABLES_IP4)
784 AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP4-m)))
785 $(call AddDepends/ebtables)
788 define KernelPackage/ebtables-ipv4/description
789 This option adds the IPv4 support to ebtables, which allows basic
790 IPv4 header field filtering, ARP filtering as well as SNAT, DNAT targets.
793 $(eval $(call KernelPackage,ebtables-ipv4))
796 define KernelPackage/ebtables-ipv6
797 TITLE:=ebtables: IPv6 support
798 FILES:=$(foreach mod,$(EBTABLES_IP6-m),$(LINUX_DIR)/net/$(mod).ko)
799 KCONFIG:=$(KCONFIG_EBTABLES_IP6)
800 AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP6-m)))
801 $(call AddDepends/ebtables)
804 define KernelPackage/ebtables-ipv6/description
805 This option adds the IPv6 support to ebtables, which allows basic
806 IPv6 header field filtering and target support.
809 $(eval $(call KernelPackage,ebtables-ipv6))
812 define KernelPackage/ebtables-watchers
813 TITLE:=ebtables: watchers support
814 FILES:=$(foreach mod,$(EBTABLES_WATCHERS-m),$(LINUX_DIR)/net/$(mod).ko)
815 KCONFIG:=$(KCONFIG_EBTABLES_WATCHERS)
816 AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_WATCHERS-m)))
817 $(call AddDepends/ebtables)
820 define KernelPackage/ebtables-watchers/description
821 This option adds the log watchers, that you can use in any rule
822 in any ebtables table.
825 $(eval $(call KernelPackage,ebtables-watchers))
828 define KernelPackage/nfnetlink
830 TITLE:=Netlink-based userspace interface
831 FILES:=$(foreach mod,$(NFNETLINK-m),$(LINUX_DIR)/net/$(mod).ko)
832 KCONFIG:=$(KCONFIG_NFNETLINK)
833 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK-m)))
836 define KernelPackage/nfnetlink/description
837 Kernel modules support for a netlink-based userspace interface
840 $(eval $(call KernelPackage,nfnetlink))
843 define AddDepends/nfnetlink
845 DEPENDS+=+kmod-nfnetlink $(1)
849 define KernelPackage/nfnetlink-log
850 TITLE:=Netfilter LOG over NFNETLINK interface
851 FILES:=$(foreach mod,$(NFNETLINK_LOG-m),$(LINUX_DIR)/net/$(mod).ko)
852 KCONFIG:=$(KCONFIG_NFNETLINK_LOG)
853 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_LOG-m)))
854 $(call AddDepends/nfnetlink)
857 define KernelPackage/nfnetlink-log/description
858 Kernel modules support for logging packets via NFNETLINK
863 $(eval $(call KernelPackage,nfnetlink-log))
866 define KernelPackage/nfnetlink-queue
867 TITLE:=Netfilter QUEUE over NFNETLINK interface
868 FILES:=$(foreach mod,$(NFNETLINK_QUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
869 KCONFIG:=$(KCONFIG_NFNETLINK_QUEUE)
870 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_QUEUE-m)))
871 $(call AddDepends/nfnetlink)
874 define KernelPackage/nfnetlink-queue/description
875 Kernel modules support for queueing packets via NFNETLINK
880 $(eval $(call KernelPackage,nfnetlink-queue))
883 define KernelPackage/nf-conntrack-netlink
884 TITLE:=Connection tracking netlink interface
885 FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.ko
886 KCONFIG:=CONFIG_NF_CT_NETLINK CONFIG_NF_CONNTRACK_EVENTS=y
887 AUTOLOAD:=$(call AutoProbe,nf_conntrack_netlink)
888 $(call AddDepends/nfnetlink,+kmod-ipt-conntrack)
891 define KernelPackage/nf-conntrack-netlink/description
892 Kernel modules support for a netlink-based connection tracking
896 $(eval $(call KernelPackage,nf-conntrack-netlink))
898 define KernelPackage/ipt-hashlimit
900 TITLE:=Netfilter hashlimit match
901 DEPENDS:=+kmod-ipt-core
902 KCONFIG:=$(KCONFIG_IPT_HASHLIMIT)
903 FILES:=$(LINUX_DIR)/net/netfilter/xt_hashlimit.ko
904 AUTOLOAD:=$(call AutoProbe,xt_hashlimit)
905 $(call KernelPackage/ipt)
908 define KernelPackage/ipt-hashlimit/description
909 Kernel modules support for the hashlimit bucket match module
912 $(eval $(call KernelPackage,ipt-hashlimit))
914 define KernelPackage/ipt-rpfilter
916 TITLE:=Netfilter rpfilter match
917 DEPENDS:=+kmod-ipt-core
918 KCONFIG:=$(KCONFIG_IPT_RPFILTER)
920 $(LINUX_DIR)/net/ipv4/netfilter/ipt_rpfilter.ko \
921 $(LINUX_DIR)/net/ipv6/netfilter/ip6t_rpfilter.ko)
922 AUTOLOAD:=$(call AutoProbe,ipt_rpfilter ip6t_rpfilter)
923 $(call KernelPackage/ipt)
926 define KernelPackage/ipt-rpfilter/description
927 Kernel modules support for the Netfilter rpfilter match
930 $(eval $(call KernelPackage,ipt-rpfilter))
933 define KernelPackage/nft-core
935 TITLE:=Netfilter nf_tables support
936 DEPENDS:=+kmod-nfnetlink +kmod-nf-reject +kmod-nf-reject6 +kmod-nf-conntrack6
937 FILES:=$(foreach mod,$(NFT_CORE-m),$(LINUX_DIR)/net/$(mod).ko)
938 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_CORE-m)))
940 CONFIG_NFT_COMPAT=n \
945 define KernelPackage/nft-core/description
946 Kernel module support for nftables
949 $(eval $(call KernelPackage,nft-core))
952 define KernelPackage/nft-arp
954 TITLE:=Netfilter nf_tables ARP table support
955 DEPENDS:=+kmod-nft-core
956 FILES:=$(foreach mod,$(NFT_ARP-m),$(LINUX_DIR)/net/$(mod).ko)
957 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_ARP-m)))
958 KCONFIG:=$(KCONFIG_NFT_ARP)
961 $(eval $(call KernelPackage,nft-arp))
964 define KernelPackage/nft-bridge
966 TITLE:=Netfilter nf_tables bridge table support
967 DEPENDS:=+kmod-nft-core
968 FILES:=$(foreach mod,$(NFT_BRIDGE-m),$(LINUX_DIR)/net/$(mod).ko)
969 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_BRIDGE-m)))
971 CONFIG_NF_LOG_BRIDGE=n \
972 $(KCONFIG_NFT_BRIDGE)
975 $(eval $(call KernelPackage,nft-bridge))
978 define KernelPackage/nft-nat
980 TITLE:=Netfilter nf_tables NAT support
981 DEPENDS:=+kmod-nft-core +kmod-nf-nat
982 FILES:=$(foreach mod,$(NFT_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
983 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_NAT-m)))
984 KCONFIG:=$(KCONFIG_NFT_NAT)
987 $(eval $(call KernelPackage,nft-nat))
990 define KernelPackage/nft-offload
992 TITLE:=Netfilter nf_tables routing/NAT offload support
993 DEPENDS:=+kmod-nf-flow +kmod-nft-nat
995 CONFIG_NF_FLOW_TABLE_INET \
996 CONFIG_NF_FLOW_TABLE_IPV4 \
997 CONFIG_NF_FLOW_TABLE_IPV6 \
998 CONFIG_NFT_FLOW_OFFLOAD
1000 $(LINUX_DIR)/net/netfilter/nf_flow_table_inet.ko \
1001 $(LINUX_DIR)/net/ipv4/netfilter/nf_flow_table_ipv4.ko \
1002 $(LINUX_DIR)/net/ipv6/netfilter/nf_flow_table_ipv6.ko \
1003 $(LINUX_DIR)/net/netfilter/nft_flow_offload.ko
1004 AUTOLOAD:=$(call AutoProbe,nf_flow_table_inet nf_flow_table_ipv4 nf_flow_table_ipv6 nft_flow_offload)
1007 $(eval $(call KernelPackage,nft-offload))
1010 define KernelPackage/nft-nat6
1012 TITLE:=Netfilter nf_tables IPv6-NAT support
1013 DEPENDS:=+kmod-nft-nat +kmod-nf-nat6
1014 FILES:=$(foreach mod,$(NFT_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
1015 AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_NAT6-m)))
1016 KCONFIG:=$(KCONFIG_NFT_NAT6)
1019 $(eval $(call KernelPackage,nft-nat6))