a0a19b23a95fd0bb84e42605e08d540244115642
[openwrt.git] / package / kernel / linux / modules / netfilter.mk
1
2 #
3 # Copyright (C) 2006-2010 OpenWrt.org
4 #
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
7 #
8
9 NF_MENU:=Netfilter Extensions
10 NF_KMOD:=1
11 include $(INCLUDE_DIR)/netfilter.mk
12
13
14 define KernelPackage/nf-ipt
15   SUBMENU:=$(NF_MENU)
16   TITLE:=Iptables core
17   KCONFIG:= \
18         CONFIG_NETFILTER=y \
19         CONFIG_NETFILTER_ADVANCED=y \
20         $(KCONFIG_NF_IPT)
21   FILES:=$(foreach mod,$(NF_IPT-m),$(LINUX_DIR)/net/$(mod).ko)
22   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_IPT-m)))
23 endef
24
25 $(eval $(call KernelPackage,nf-ipt))
26
27
28 define KernelPackage/nf-ipt6
29   SUBMENU:=$(NF_MENU)
30   TITLE:=Ip6tables core
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
35 endef
36
37 $(eval $(call KernelPackage,nf-ipt6))
38
39
40
41 define KernelPackage/ipt-core
42   SUBMENU:=$(NF_MENU)
43   TITLE:=Iptables 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)))
47   DEPENDS:=+kmod-nf-ipt
48 endef
49
50 define KernelPackage/ipt-core/description
51  Netfilter core kernel modules
52  Includes:
53  - comment
54  - limit
55  - LOG
56  - mac
57  - multiport
58  - REJECT
59  - TCPMSS
60 endef
61
62 $(eval $(call KernelPackage,ipt-core))
63
64
65 define KernelPackage/nf-conntrack
66   SUBMENU:=$(NF_MENU)
67   TITLE:=Netfilter connection tracking
68   KCONFIG:= \
69         CONFIG_NETFILTER=y \
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)))
74 endef
75
76 $(eval $(call KernelPackage,nf-conntrack))
77
78
79 define KernelPackage/nf-conntrack6
80   SUBMENU:=$(NF_MENU)
81   TITLE:=Netfilter IPv6 connection tracking
82   KCONFIG:=$(KCONFIG_NF_CONNTRACK6)
83   DEPENDS:=@IPV6 +kmod-nf-conntrack
84   FILES:=$(foreach mod,$(NF_CONNTRACK6-m),$(LINUX_DIR)/net/$(mod).ko)
85   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNTRACK6-m)))
86 endef
87
88 $(eval $(call KernelPackage,nf-conntrack6))
89
90
91 define KernelPackage/nf-nat
92   SUBMENU:=$(NF_MENU)
93   TITLE:=Netfilter 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)))
98 endef
99
100 $(eval $(call KernelPackage,nf-nat))
101
102
103 define KernelPackage/nf-nat6
104   SUBMENU:=$(NF_MENU)
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)))
110 endef
111
112 $(eval $(call KernelPackage,nf-nat6))
113
114
115 define AddDepends/ipt
116   SUBMENU:=$(NF_MENU)
117   DEPENDS+= +kmod-ipt-core $(1)
118 endef
119
120
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)
127 endef
128
129 define KernelPackage/ipt-conntrack/description
130  Netfilter (IPv4) kernel modules for connection tracking
131  Includes:
132  - conntrack
133  - defrag
134  - iptables_raw
135  - NOTRACK
136  - state
137 endef
138
139 $(eval $(call KernelPackage,ipt-conntrack))
140
141
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)
148 endef
149
150 define KernelPackage/ipt-conntrack-extra/description
151  Netfilter (IPv4) extra kernel modules for connection tracking
152  Includes:
153  - connbytes
154  - connmark/CONNMARK
155  - conntrack
156  - helper
157  - recent
158 endef
159
160 $(eval $(call KernelPackage,ipt-conntrack-extra))
161
162
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)
169 endef
170
171 define KernelPackage/ipt-filter/description
172  Netfilter (IPv4) kernel modules for packet content inspection
173  Includes:
174  - string
175 endef
176
177 $(eval $(call KernelPackage,ipt-filter))
178
179
180 define KernelPackage/ipt-ipopt
181   TITLE:=Modules for matching/changing IP packet options
182   KCONFIG:=$(KCONFIG_IPT_IPOPT)
183   FILES:=$(foreach mod,$(IPT_IPOPT-m),$(LINUX_DIR)/net/$(mod).ko)
184   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPOPT-m)))
185   $(call AddDepends/ipt)
186 endef
187
188 define KernelPackage/ipt-ipopt/description
189  Netfilter (IPv4) modules for matching/changing IP packet options
190  Includes:
191  - CLASSIFY
192  - dscp/DSCP
193  - ecn/ECN
194  - hl/HL
195  - length
196  - mark/MARK
197  - statistic
198  - tcpmss
199  - time
200  - ttl/TTL
201  - unclean
202 endef
203
204 $(eval $(call KernelPackage,ipt-ipopt))
205
206
207 define KernelPackage/ipt-ipsec
208   TITLE:=Modules for matching IPSec packets
209   KCONFIG:=$(KCONFIG_IPT_IPSEC)
210   FILES:=$(foreach mod,$(IPT_IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
211   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPSEC-m)))
212   $(call AddDepends/ipt)
213 endef
214
215 define KernelPackage/ipt-ipsec/description
216  Netfilter (IPv4) modules for matching IPSec packets
217  Includes:
218  - ah
219  - esp
220  - policy
221 endef
222
223 $(eval $(call KernelPackage,ipt-ipsec))
224
225 IPSET_MODULES:= \
226         ipset/ip_set \
227         ipset/ip_set_bitmap_ip \
228         ipset/ip_set_bitmap_ipmac \
229         ipset/ip_set_bitmap_port \
230         ipset/ip_set_hash_ip \
231         ipset/ip_set_hash_ipmark \
232         ipset/ip_set_hash_ipport \
233         ipset/ip_set_hash_ipportip \
234         ipset/ip_set_hash_ipportnet \
235         ipset/ip_set_hash_mac \
236         ipset/ip_set_hash_netportnet \
237         ipset/ip_set_hash_net \
238         ipset/ip_set_hash_netnet \
239         ipset/ip_set_hash_netport \
240         ipset/ip_set_hash_netiface \
241         ipset/ip_set_list_set \
242         xt_set
243
244 define KernelPackage/ipt-ipset
245   SUBMENU:=Netfilter Extensions
246   TITLE:=IPset netfilter modules
247   DEPENDS+= +kmod-ipt-core +kmod-nfnetlink
248   KCONFIG:= \
249         CONFIG_IP_SET \
250         CONFIG_IP_SET_MAX=256 \
251         CONFIG_NETFILTER_XT_SET \
252         CONFIG_IP_SET_BITMAP_IP \
253         CONFIG_IP_SET_BITMAP_IPMAC \
254         CONFIG_IP_SET_BITMAP_PORT \
255         CONFIG_IP_SET_HASH_IP \
256         CONFIG_IP_SET_HASH_IPMARK \
257         CONFIG_IP_SET_HASH_IPPORT \
258         CONFIG_IP_SET_HASH_IPPORTIP \
259         CONFIG_IP_SET_HASH_IPPORTNET \
260         CONFIG_IP_SET_HASH_MAC \
261         CONFIG_IP_SET_HASH_NET \
262         CONFIG_IP_SET_HASH_NETNET \
263         CONFIG_IP_SET_HASH_NETIFACE \
264         CONFIG_IP_SET_HASH_NETPORT \
265         CONFIG_IP_SET_HASH_NETPORTNET \
266         CONFIG_IP_SET_LIST_SET \
267         CONFIG_NET_EMATCH_IPSET=n
268   FILES:=$(foreach mod,$(IPSET_MODULES),$(LINUX_DIR)/net/netfilter/$(mod).ko)
269   AUTOLOAD:=$(call AutoLoad,49,$(notdir $(IPSET_MODULES)))
270 endef
271 $(eval $(call KernelPackage,ipt-ipset))
272
273
274 define KernelPackage/ipt-nat
275   TITLE:=Basic NAT targets
276   KCONFIG:=$(KCONFIG_IPT_NAT)
277   FILES:=$(foreach mod,$(IPT_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
278   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NAT-m)))
279   $(call AddDepends/ipt,+kmod-nf-nat)
280 endef
281
282 define KernelPackage/ipt-nat/description
283  Netfilter (IPv4) kernel modules for basic NAT targets
284  Includes:
285  - MASQUERADE
286 endef
287
288 $(eval $(call KernelPackage,ipt-nat))
289
290
291 define KernelPackage/ipt-nat6
292   TITLE:=IPv6 NAT targets
293   KCONFIG:=$(KCONFIG_IPT_NAT6)
294   FILES:=$(foreach mod,$(IPT_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
295   AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_NAT6-m)))
296   $(call AddDepends/ipt,+kmod-nf-nat6)
297   $(call AddDepends/ipt,+kmod-ipt-conntrack)
298   $(call AddDepends/ipt,+kmod-ipt-nat)
299   $(call AddDepends/ipt,+kmod-ip6tables)
300 endef
301
302 define KernelPackage/ipt-nat6/description
303  Netfilter (IPv6) kernel modules for NAT targets
304 endef
305
306 $(eval $(call KernelPackage,ipt-nat6))
307
308
309 define KernelPackage/ipt-nat-extra
310   TITLE:=Extra NAT targets
311   KCONFIG:=$(KCONFIG_IPT_NAT_EXTRA)
312   FILES:=$(foreach mod,$(IPT_NAT_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
313   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NAT_EXTRA-m)))
314   $(call AddDepends/ipt,+kmod-ipt-nat)
315 endef
316
317 define KernelPackage/ipt-nat-extra/description
318  Netfilter (IPv4) kernel modules for extra NAT targets
319  Includes:
320  - NETMAP
321  - REDIRECT
322 endef
323
324 $(eval $(call KernelPackage,ipt-nat-extra))
325
326
327 define KernelPackage/nf-nathelper
328   SUBMENU:=$(NF_MENU)
329   TITLE:=Basic Conntrack and NAT helpers
330   KCONFIG:=$(KCONFIG_NF_NATHELPER)
331   FILES:=$(foreach mod,$(NF_NATHELPER-m),$(LINUX_DIR)/net/$(mod).ko)
332   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NATHELPER-m)))
333   DEPENDS:=+kmod-nf-nat
334 endef
335
336 define KernelPackage/nf-nathelper/description
337  Default Netfilter (IPv4) Conntrack and NAT helpers
338  Includes:
339  - ftp
340  - irc
341  - tftp
342 endef
343
344 $(eval $(call KernelPackage,nf-nathelper))
345
346
347 define KernelPackage/nf-nathelper-extra
348   SUBMENU:=$(NF_MENU)
349   TITLE:=Extra Conntrack and NAT helpers
350   KCONFIG:=$(KCONFIG_NF_NATHELPER_EXTRA)
351   FILES:=$(foreach mod,$(NF_NATHELPER_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
352   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NATHELPER_EXTRA-m)))
353   DEPENDS:=+kmod-nf-nat +kmod-lib-textsearch
354 endef
355
356 define KernelPackage/nf-nathelper-extra/description
357  Extra Netfilter (IPv4) Conntrack and NAT helpers
358  Includes:
359  - amanda
360  - h323
361  - mms
362  - pptp
363  - proto_gre
364  - sip
365  - snmp_basic
366  - broadcast
367 endef
368
369 $(eval $(call KernelPackage,nf-nathelper-extra))
370
371
372 define KernelPackage/ipt-ulog
373   TITLE:=Module for user-space packet logging
374   KCONFIG:=$(KCONFIG_IPT_ULOG)
375   FILES:=$(foreach mod,$(IPT_ULOG-m),$(LINUX_DIR)/net/$(mod).ko)
376   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_ULOG-m)))
377   $(call AddDepends/ipt)
378 endef
379
380 define KernelPackage/ipt-ulog/description
381  Netfilter (IPv4) module for user-space packet logging
382  Includes:
383  - ULOG
384 endef
385
386 $(eval $(call KernelPackage,ipt-ulog))
387
388
389 define KernelPackage/ipt-nflog
390   TITLE:=Module for user-space packet logging
391   KCONFIG:=$(KCONFIG_IPT_NFLOG)
392   FILES:=$(foreach mod,$(IPT_NFLOG-m),$(LINUX_DIR)/net/$(mod).ko)
393   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFLOG-m)))
394   $(call AddDepends/ipt,+kmod-nfnetlink-log)
395 endef
396
397 define KernelPackage/ipt-nflog/description
398  Netfilter module for user-space packet logging
399  Includes:
400  - NFLOG
401 endef
402
403 $(eval $(call KernelPackage,ipt-nflog))
404
405
406 define KernelPackage/ipt-nfqueue
407   TITLE:=Module for user-space packet queuing
408   KCONFIG:=$(KCONFIG_IPT_NFQUEUE)
409   FILES:=$(foreach mod,$(IPT_NFQUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
410   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFQUEUE-m)))
411   $(call AddDepends/ipt,+kmod-nfnetlink-queue)
412 endef
413
414 define KernelPackage/ipt-nfqueue/description
415  Netfilter module for user-space packet queuing
416  Includes:
417  - NFQUEUE
418 endef
419
420 $(eval $(call KernelPackage,ipt-nfqueue))
421
422
423 define KernelPackage/ipt-debug
424   TITLE:=Module for debugging/development
425   KCONFIG:=$(KCONFIG_IPT_DEBUG)
426   DEFAULT:=n
427   FILES:=$(foreach mod,$(IPT_DEBUG-m),$(LINUX_DIR)/net/$(mod).ko)
428   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_DEBUG-m)))
429   $(call AddDepends/ipt)
430 endef
431
432 define KernelPackage/ipt-debug/description
433  Netfilter modules for debugging/development of the firewall
434  Includes:
435  - TRACE
436 endef
437
438 $(eval $(call KernelPackage,ipt-debug))
439
440
441 define KernelPackage/ipt-led
442   TITLE:=Module to trigger a LED with a Netfilter rule
443   KCONFIG:=$(KCONFIG_IPT_LED)
444   FILES:=$(foreach mod,$(IPT_LED-m),$(LINUX_DIR)/net/$(mod).ko)
445   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_LED-m)))
446   $(call AddDepends/ipt)
447 endef
448
449 define KernelPackage/ipt-led/description
450  Netfilter target to trigger a LED when a network packet is matched.
451 endef
452
453 $(eval $(call KernelPackage,ipt-led))
454
455 define KernelPackage/ipt-tproxy
456   TITLE:=Transparent proxying support
457   DEPENDS+=+kmod-ipt-conntrack +IPV6:kmod-ip6tables
458   KCONFIG:= \
459         CONFIG_NETFILTER_TPROXY \
460         CONFIG_NETFILTER_XT_MATCH_SOCKET \
461         CONFIG_NETFILTER_XT_TARGET_TPROXY
462   FILES:= \
463         $(foreach mod,$(IPT_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko)
464   AUTOLOAD:=$(call AutoProbe,$(notdir nf_tproxy_core $(IPT_TPROXY-m)))
465   $(call AddDepends/ipt)
466 endef
467
468 define KernelPackage/ipt-tproxy/description
469   Kernel modules for Transparent Proxying
470 endef
471
472 $(eval $(call KernelPackage,ipt-tproxy))
473
474 define KernelPackage/ipt-tee
475   TITLE:=TEE support
476   DEPENDS:=+kmod-ipt-conntrack @!LINUX_4_4
477   KCONFIG:= \
478         CONFIG_NETFILTER_XT_TARGET_TEE
479   FILES:= \
480         $(LINUX_DIR)/net/netfilter/xt_TEE.ko \
481         $(foreach mod,$(IPT_TEE-m),$(LINUX_DIR)/net/$(mod).ko)
482   AUTOLOAD:=$(call AutoProbe,$(notdir nf_tee $(IPT_TEE-m)))
483   $(call AddDepends/ipt)
484 endef
485
486 define KernelPackage/ipt-tee/description
487   Kernel modules for TEE
488 endef
489
490 $(eval $(call KernelPackage,ipt-tee))
491
492
493 define KernelPackage/ipt-u32
494   TITLE:=U32 support
495   KCONFIG:= \
496         CONFIG_NETFILTER_XT_MATCH_U32
497   FILES:= \
498         $(LINUX_DIR)/net/netfilter/xt_u32.ko \
499         $(foreach mod,$(IPT_U32-m),$(LINUX_DIR)/net/$(mod).ko)
500   AUTOLOAD:=$(call AutoProbe,$(notdir nf_tee $(IPT_U32-m)))
501   $(call AddDepends/ipt)
502 endef
503
504 define KernelPackage/ipt-u32/description
505   Kernel modules for U32
506 endef
507
508 $(eval $(call KernelPackage,ipt-u32))
509
510
511 define KernelPackage/ipt-iprange
512   TITLE:=Module for matching ip ranges
513   KCONFIG:=$(KCONFIG_IPT_IPRANGE)
514   FILES:=$(foreach mod,$(IPT_IPRANGE-m),$(LINUX_DIR)/net/$(mod).ko)
515   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPRANGE-m)))
516   $(call AddDepends/ipt)
517 endef
518
519 define KernelPackage/ipt-iprange/description
520  Netfilter (IPv4) module for matching ip ranges
521  Includes:
522  - iprange
523 endef
524
525 $(eval $(call KernelPackage,ipt-iprange))
526
527 define KernelPackage/ipt-cluster
528   TITLE:=Module for matching cluster
529   KCONFIG:=$(KCONFIG_IPT_CLUSTER)
530   FILES:=$(foreach mod,$(IPT_CLUSTER-m),$(LINUX_DIR)/net/$(mod).ko)
531   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CLUSTER-m)))
532   $(call AddDepends/ipt)
533 endef
534
535 define KernelPackage/ipt-cluster/description
536  Netfilter (IPv4/IPv6) module for matching cluster
537  This option allows you to build work-load-sharing clusters of
538  network servers/stateful firewalls without having a dedicated
539  load-balancing router/server/switch. Basically, this match returns
540  true when the packet must be handled by this cluster node. Thus,
541  all nodes see all packets and this match decides which node handles
542  what packets. The work-load sharing algorithm is based on source
543  address hashing.
544
545  This module is usable for ipv4 and ipv6.
546
547  To use it also enable iptables-mod-cluster
548
549  see `iptables -m cluster --help` for more information.
550 endef
551
552 $(eval $(call KernelPackage,ipt-cluster))
553
554 define KernelPackage/ipt-clusterip
555   TITLE:=Module for CLUSTERIP
556   KCONFIG:=$(KCONFIG_IPT_CLUSTERIP)
557   FILES:=$(foreach mod,$(IPT_CLUSTERIP-m),$(LINUX_DIR)/net/$(mod).ko)
558   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CLUSTERIP-m)))
559   $(call AddDepends/ipt,+kmod-nf-conntrack)
560 endef
561
562 define KernelPackage/ipt-clusterip/description
563  Netfilter (IPv4-only) module for CLUSTERIP
564  The CLUSTERIP target allows you to build load-balancing clusters of
565  network servers without having a dedicated load-balancing
566  router/server/switch.
567
568  To use it also enable iptables-mod-clusterip
569
570  see `iptables -j CLUSTERIP --help` for more information.
571 endef
572
573 $(eval $(call KernelPackage,ipt-clusterip))
574
575
576 define KernelPackage/ipt-extra
577   TITLE:=Extra modules
578   KCONFIG:=$(KCONFIG_IPT_EXTRA)
579   FILES:=$(foreach mod,$(IPT_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
580   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_EXTRA-m)))
581   $(call AddDepends/ipt)
582 endef
583
584 define KernelPackage/ipt-extra/description
585  Other Netfilter (IPv4) kernel modules
586  Includes:
587  - addrtype
588  - owner
589  - physdev (if bridge support was enabled in kernel)
590  - pkttype
591  - quota
592 endef
593
594 $(eval $(call KernelPackage,ipt-extra))
595
596
597 define KernelPackage/ip6tables
598   SUBMENU:=$(NF_MENU)
599   TITLE:=IPv6 modules
600   DEPENDS:=+kmod-nf-ipt6 +kmod-ipt-core +kmod-ipt-conntrack
601   KCONFIG:=$(KCONFIG_IPT_IPV6)
602   FILES:=$(foreach mod,$(IPT_IPV6-m),$(LINUX_DIR)/net/$(mod).ko)
603   AUTOLOAD:=$(call AutoLoad,42,$(notdir $(IPT_IPV6-m)))
604 endef
605
606 define KernelPackage/ip6tables/description
607  Netfilter IPv6 firewalling support
608 endef
609
610 $(eval $(call KernelPackage,ip6tables))
611
612 define KernelPackage/ip6tables-extra
613   SUBMENU:=$(NF_MENU)
614   TITLE:=Extra IPv6 modules
615   DEPENDS:=+kmod-ip6tables
616   KCONFIG:=$(KCONFIG_IPT_IPV6_EXTRA)
617   FILES:=$(foreach mod,$(IPT_IPV6_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
618   AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_IPV6_EXTRA-m)))
619 endef
620
621 define KernelPackage/ip6tables-extra/description
622  Netfilter IPv6 extra header matching modules
623 endef
624
625 $(eval $(call KernelPackage,ip6tables-extra))
626
627 ARP_MODULES = arp_tables arpt_mangle arptable_filter
628 define KernelPackage/arptables
629   SUBMENU:=$(NF_MENU)
630   TITLE:=ARP firewalling modules
631   DEPENDS:=+kmod-ipt-core
632   FILES:=$(LINUX_DIR)/net/ipv4/netfilter/arp*.ko
633   KCONFIG:=CONFIG_IP_NF_ARPTABLES \
634     CONFIG_IP_NF_ARPFILTER \
635     CONFIG_IP_NF_ARP_MANGLE
636   AUTOLOAD:=$(call AutoProbe,$(ARP_MODULES))
637 endef
638
639 define KernelPackage/arptables/description
640  Kernel modules for ARP firewalling
641 endef
642
643 $(eval $(call KernelPackage,arptables))
644
645
646 define KernelPackage/ebtables
647   SUBMENU:=$(NF_MENU)
648   TITLE:=Bridge firewalling modules
649   DEPENDS:=+kmod-ipt-core +kmod-bridge
650   FILES:=$(foreach mod,$(EBTABLES-m),$(LINUX_DIR)/net/$(mod).ko)
651   KCONFIG:=CONFIG_BRIDGE_NETFILTER=y \
652         $(KCONFIG_EBTABLES)
653   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES-m)))
654 endef
655
656 define KernelPackage/ebtables/description
657   ebtables is a general, extensible frame/packet identification
658   framework. It provides you to do Ethernet
659   filtering/NAT/brouting on the Ethernet bridge.
660 endef
661
662 $(eval $(call KernelPackage,ebtables))
663
664
665 define AddDepends/ebtables
666   SUBMENU:=$(NF_MENU)
667   DEPENDS+=kmod-ebtables $(1)
668 endef
669
670
671 define KernelPackage/ebtables-ipv4
672   TITLE:=ebtables: IPv4 support
673   FILES:=$(foreach mod,$(EBTABLES_IP4-m),$(LINUX_DIR)/net/$(mod).ko)
674   KCONFIG:=$(KCONFIG_EBTABLES_IP4)
675   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP4-m)))
676   $(call AddDepends/ebtables)
677 endef
678
679 define KernelPackage/ebtables-ipv4/description
680  This option adds the IPv4 support to ebtables, which allows basic
681  IPv4 header field filtering, ARP filtering as well as SNAT, DNAT targets.
682 endef
683
684 $(eval $(call KernelPackage,ebtables-ipv4))
685
686
687 define KernelPackage/ebtables-ipv6
688   TITLE:=ebtables: IPv6 support
689   FILES:=$(foreach mod,$(EBTABLES_IP6-m),$(LINUX_DIR)/net/$(mod).ko)
690   KCONFIG:=$(KCONFIG_EBTABLES_IP6)
691   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP6-m)))
692   $(call AddDepends/ebtables)
693 endef
694
695 define KernelPackage/ebtables-ipv6/description
696  This option adds the IPv6 support to ebtables, which allows basic
697  IPv6 header field filtering and target support.
698 endef
699
700 $(eval $(call KernelPackage,ebtables-ipv6))
701
702
703 define KernelPackage/ebtables-watchers
704   TITLE:=ebtables: watchers support
705   FILES:=$(foreach mod,$(EBTABLES_WATCHERS-m),$(LINUX_DIR)/net/$(mod).ko)
706   KCONFIG:=$(KCONFIG_EBTABLES_WATCHERS)
707   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_WATCHERS-m)))
708   $(call AddDepends/ebtables)
709 endef
710
711 define KernelPackage/ebtables-watchers/description
712  This option adds the log watchers, that you can use in any rule
713  in any ebtables table.
714 endef
715
716 $(eval $(call KernelPackage,ebtables-watchers))
717
718
719 define KernelPackage/nfnetlink
720   SUBMENU:=$(NF_MENU)
721   TITLE:=Netlink-based userspace interface
722   FILES:=$(foreach mod,$(NFNETLINK-m),$(LINUX_DIR)/net/$(mod).ko)
723   KCONFIG:=$(KCONFIG_NFNETLINK)
724   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK-m)))
725 endef
726
727 define KernelPackage/nfnetlink/description
728  Kernel modules support for a netlink-based userspace interface
729 endef
730
731 $(eval $(call KernelPackage,nfnetlink))
732
733
734 define AddDepends/nfnetlink
735   SUBMENU:=$(NF_MENU)
736   DEPENDS+=+kmod-nfnetlink $(1)
737 endef
738
739
740 define KernelPackage/nfnetlink-log
741   TITLE:=Netfilter LOG over NFNETLINK interface
742   FILES:=$(foreach mod,$(NFNETLINK_LOG-m),$(LINUX_DIR)/net/$(mod).ko)
743   KCONFIG:=$(KCONFIG_NFNETLINK_LOG)
744   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_LOG-m)))
745   $(call AddDepends/nfnetlink)
746 endef
747
748 define KernelPackage/nfnetlink-log/description
749  Kernel modules support for logging packets via NFNETLINK
750  Includes:
751  - NFLOG
752 endef
753
754 $(eval $(call KernelPackage,nfnetlink-log))
755
756
757 define KernelPackage/nfnetlink-queue
758   TITLE:=Netfilter QUEUE over NFNETLINK interface
759   FILES:=$(foreach mod,$(NFNETLINK_QUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
760   KCONFIG:=$(KCONFIG_NFNETLINK_QUEUE)
761   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_QUEUE-m)))
762   $(call AddDepends/nfnetlink)
763 endef
764
765 define KernelPackage/nfnetlink-queue/description
766  Kernel modules support for queueing packets via NFNETLINK
767  Includes:
768  - NFQUEUE
769 endef
770
771 $(eval $(call KernelPackage,nfnetlink-queue))
772
773
774 define KernelPackage/nf-conntrack-netlink
775   TITLE:=Connection tracking netlink interface
776   FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.ko
777   KCONFIG:=CONFIG_NF_CT_NETLINK CONFIG_NF_CONNTRACK_EVENTS=y
778   AUTOLOAD:=$(call AutoProbe,nf_conntrack_netlink)
779   $(call AddDepends/nfnetlink,+kmod-ipt-conntrack)
780 endef
781
782 define KernelPackage/nf-conntrack-netlink/description
783  Kernel modules support for a netlink-based connection tracking
784  userspace interface
785 endef
786
787 $(eval $(call KernelPackage,nf-conntrack-netlink))
788
789 define KernelPackage/ipt-hashlimit
790   SUBMENU:=$(NF_MENU)
791   TITLE:=Netfilter hashlimit match
792   DEPENDS:=+kmod-ipt-core
793   KCONFIG:=$(KCONFIG_IPT_HASHLIMIT)
794   FILES:=$(LINUX_DIR)/net/netfilter/xt_hashlimit.ko
795   AUTOLOAD:=$(call AutoProbe,xt_hashlimit)
796   $(call KernelPackage/ipt)
797 endef
798
799 define KernelPackage/ipt-hashlimit/description
800  Kernel modules support for the hashlimit bucket match module
801 endef
802
803 $(eval $(call KernelPackage,ipt-hashlimit))
804
805
806 define KernelPackage/nft-core
807   SUBMENU:=$(NF_MENU)
808   TITLE:=Netfilter nf_tables support
809   DEPENDS:=+kmod-nfnetlink +kmod-nf-conntrack6
810   FILES:=$(foreach mod,$(NFT_CORE-m),$(LINUX_DIR)/net/$(mod).ko)
811   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_CORE-m)))
812   KCONFIG:= \
813         CONFIG_NETFILTER=y \
814         CONFIG_NETFILTER_ADVANCED=y \
815         CONFIG_NFT_COMPAT=n \
816         CONFIG_NFT_QUEUE=n \
817         CONFIG_NF_TABLES_ARP=n \
818         CONFIG_NF_TABLES_BRIDGE=n \
819         $(KCONFIG_NFT_CORE)
820 endef
821
822 define KernelPackage/nft-core/description
823  Kernel module support for nftables
824 endef
825
826 $(eval $(call KernelPackage,nft-core))
827
828
829 define KernelPackage/nft-nat
830   SUBMENU:=$(NF_MENU)
831   TITLE:=Netfilter nf_tables NAT support
832   DEPENDS:=+kmod-nft-core +kmod-nf-nat
833   FILES:=$(foreach mod,$(NFT_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
834   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_NAT-m)))
835   KCONFIG:=$(KCONFIG_NFT_NAT)
836 endef
837
838 $(eval $(call KernelPackage,nft-nat))
839
840
841 define KernelPackage/nft-nat6
842   SUBMENU:=$(NF_MENU)
843   TITLE:=Netfilter nf_tables IPv6-NAT support
844   DEPENDS:=+kmod-nft-core +kmod-nf-nat6
845   FILES:=$(foreach mod,$(NFT_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
846   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_NAT6-m)))
847   KCONFIG:=$(KCONFIG_NFT_NAT6)
848 endef
849
850 $(eval $(call KernelPackage,nft-nat6))
851