8dfb1a321b3d7a954b998edb91b8fdd1cd1a2686
[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:=+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)))
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  - layer7
175  - string
176 endef
177
178 $(eval $(call KernelPackage,ipt-filter))
179
180
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)
187 endef
188
189 define KernelPackage/ipt-ipopt/description
190  Netfilter (IPv4) modules for matching/changing IP packet options
191  Includes:
192  - CLASSIFY
193  - dscp/DSCP
194  - ecn/ECN
195  - hl/HL
196  - length
197  - mark/MARK
198  - statistic
199  - tcpmss
200  - time
201  - ttl/TTL
202  - unclean
203 endef
204
205 $(eval $(call KernelPackage,ipt-ipopt))
206
207
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)
214 endef
215
216 define KernelPackage/ipt-ipsec/description
217  Netfilter (IPv4) modules for matching IPSec packets
218  Includes:
219  - ah
220  - esp
221  - policy
222 endef
223
224 $(eval $(call KernelPackage,ipt-ipsec))
225
226 IPSET_MODULES:= \
227         ipset/ip_set \
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 \
243         xt_set
244
245 define KernelPackage/ipt-ipset
246   SUBMENU:=Netfilter Extensions
247   TITLE:=IPset netfilter modules
248   DEPENDS+= +kmod-ipt-core +kmod-nfnetlink
249   KCONFIG:= \
250         CONFIG_IP_SET \
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)))
271 endef
272 $(eval $(call KernelPackage,ipt-ipset))
273
274
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)
281 endef
282
283 define KernelPackage/ipt-nat/description
284  Netfilter (IPv4) kernel modules for basic NAT targets
285  Includes:
286  - MASQUERADE
287 endef
288
289 $(eval $(call KernelPackage,ipt-nat))
290
291
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)
301 endef
302
303 define KernelPackage/ipt-nat6/description
304  Netfilter (IPv6) kernel modules for NAT targets
305 endef
306
307 $(eval $(call KernelPackage,ipt-nat6))
308
309
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)
316 endef
317
318 define KernelPackage/ipt-nat-extra/description
319  Netfilter (IPv4) kernel modules for extra NAT targets
320  Includes:
321  - NETMAP
322  - REDIRECT
323 endef
324
325 $(eval $(call KernelPackage,ipt-nat-extra))
326
327
328 define KernelPackage/nf-nathelper
329   SUBMENU:=$(NF_MENU)
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
335 endef
336
337 define KernelPackage/nf-nathelper/description
338  Default Netfilter (IPv4) Conntrack and NAT helpers
339  Includes:
340  - ftp
341  - irc
342  - tftp
343 endef
344
345 $(eval $(call KernelPackage,nf-nathelper))
346
347
348 define KernelPackage/nf-nathelper-extra
349   SUBMENU:=$(NF_MENU)
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
355 endef
356
357 define KernelPackage/nf-nathelper-extra/description
358  Extra Netfilter (IPv4) Conntrack and NAT helpers
359  Includes:
360  - amanda
361  - h323
362  - mms
363  - pptp
364  - proto_gre
365  - sip
366  - snmp_basic
367  - broadcast
368 endef
369
370 $(eval $(call KernelPackage,nf-nathelper-extra))
371
372
373 define KernelPackage/ipt-queue
374   TITLE:=Module for user-space packet queueing
375   KCONFIG:=$(KCONFIG_IPT_QUEUE)
376   DEPENDS:=@!LINUX_3_6
377   FILES:=$(foreach mod,$(IPT_QUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
378   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_QUEUE-m)))
379   $(call AddDepends/ipt)
380 endef
381
382 define KernelPackage/ipt-queue/description
383  Netfilter (IPv4) module for user-space packet queueing
384  Includes:
385  - QUEUE
386 endef
387
388 $(eval $(call KernelPackage,ipt-queue))
389
390
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)
397 endef
398
399 define KernelPackage/ipt-ulog/description
400  Netfilter (IPv4) module for user-space packet logging
401  Includes:
402  - ULOG
403 endef
404
405 $(eval $(call KernelPackage,ipt-ulog))
406
407
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)
414 endef
415
416 define KernelPackage/ipt-nflog/description
417  Netfilter module for user-space packet logging
418  Includes:
419  - NFLOG
420 endef
421
422 $(eval $(call KernelPackage,ipt-nflog))
423
424
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)
431 endef
432
433 define KernelPackage/ipt-nfqueue/description
434  Netfilter module for user-space packet queuing
435  Includes:
436  - NFQUEUE
437 endef
438
439 $(eval $(call KernelPackage,ipt-nfqueue))
440
441
442 define KernelPackage/ipt-debug
443   TITLE:=Module for debugging/development
444   KCONFIG:=$(KCONFIG_IPT_DEBUG)
445   DEFAULT:=n
446   FILES:=$(foreach mod,$(IPT_DEBUG-m),$(LINUX_DIR)/net/$(mod).ko)
447   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_DEBUG-m)))
448   $(call AddDepends/ipt)
449 endef
450
451 define KernelPackage/ipt-debug/description
452  Netfilter modules for debugging/development of the firewall
453  Includes:
454  - TRACE
455 endef
456
457 $(eval $(call KernelPackage,ipt-debug))
458
459
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)
466 endef
467
468 define KernelPackage/ipt-led/description
469  Netfilter target to trigger a LED when a network packet is matched.
470 endef
471
472 $(eval $(call KernelPackage,ipt-led))
473
474 define KernelPackage/ipt-tproxy
475   TITLE:=Transparent proxying support
476   DEPENDS+=+kmod-ipt-conntrack +IPV6:kmod-ipv6 +IPV6:kmod-ip6tables
477   KCONFIG:= \
478         CONFIG_NETFILTER_TPROXY \
479         CONFIG_NETFILTER_XT_MATCH_SOCKET \
480         CONFIG_NETFILTER_XT_TARGET_TPROXY
481   FILES:= \
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)
486 endef
487
488 define KernelPackage/ipt-tproxy/description
489   Kernel modules for Transparent Proxying
490 endef
491
492 $(eval $(call KernelPackage,ipt-tproxy))
493
494 define KernelPackage/ipt-tee
495   TITLE:=TEE support
496   DEPENDS:=+kmod-ipt-conntrack +IPV6:kmod-ipv6
497   KCONFIG:= \
498         CONFIG_NETFILTER_XT_TARGET_TEE
499   FILES:= \
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)
504 endef
505
506 define KernelPackage/ipt-tee/description
507   Kernel modules for TEE
508 endef
509
510 $(eval $(call KernelPackage,ipt-tee))
511
512
513 define KernelPackage/ipt-u32
514   TITLE:=U32 support
515   KCONFIG:= \
516         CONFIG_NETFILTER_XT_MATCH_U32
517   FILES:= \
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)
522 endef
523
524 define KernelPackage/ipt-u32/description
525   Kernel modules for U32
526 endef
527
528 $(eval $(call KernelPackage,ipt-u32))
529
530
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)
537 endef
538
539 define KernelPackage/ipt-iprange/description
540  Netfilter (IPv4) module for matching ip ranges
541  Includes:
542  - iprange
543 endef
544
545 $(eval $(call KernelPackage,ipt-iprange))
546
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)
553 endef
554
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
563  address hashing.
564
565  This module is usable for ipv4 and ipv6.
566
567  To use it also enable iptables-mod-cluster
568
569  see `iptables -m cluster --help` for more information.
570 endef
571
572 $(eval $(call KernelPackage,ipt-cluster))
573
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)
580 endef
581
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.
587
588  To use it also enable iptables-mod-clusterip
589
590  see `iptables -j CLUSTERIP --help` for more information.
591 endef
592
593 $(eval $(call KernelPackage,ipt-clusterip))
594
595
596 define KernelPackage/ipt-extra
597   TITLE:=Extra modules
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)
602 endef
603
604 define KernelPackage/ipt-extra/description
605  Other Netfilter (IPv4) kernel modules
606  Includes:
607  - addrtype
608  - owner
609  - physdev (if bridge support was enabled in kernel)
610  - pkttype
611  - quota
612 endef
613
614 $(eval $(call KernelPackage,ipt-extra))
615
616
617 define KernelPackage/ip6tables
618   SUBMENU:=$(NF_MENU)
619   TITLE:=IPv6 modules
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)))
624 endef
625
626 define KernelPackage/ip6tables/description
627  Netfilter IPv6 firewalling support
628 endef
629
630 $(eval $(call KernelPackage,ip6tables))
631
632 define KernelPackage/ip6tables-extra
633   SUBMENU:=$(NF_MENU)
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)))
639 endef
640
641 define KernelPackage/ip6tables-extra/description
642  Netfilter IPv6 extra header matching modules
643 endef
644
645 $(eval $(call KernelPackage,ip6tables-extra))
646
647 ARP_MODULES = arp_tables arpt_mangle arptable_filter
648 define KernelPackage/arptables
649   SUBMENU:=$(NF_MENU)
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))
657 endef
658
659 define KernelPackage/arptables/description
660  Kernel modules for ARP firewalling
661 endef
662
663 $(eval $(call KernelPackage,arptables))
664
665
666 define KernelPackage/ebtables
667   SUBMENU:=$(NF_MENU)
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 \
672         $(KCONFIG_EBTABLES)
673   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES-m)))
674 endef
675
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.
680 endef
681
682 $(eval $(call KernelPackage,ebtables))
683
684
685 define AddDepends/ebtables
686   SUBMENU:=$(NF_MENU)
687   DEPENDS+=kmod-ebtables $(1)
688 endef
689
690
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)
697 endef
698
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.
702 endef
703
704 $(eval $(call KernelPackage,ebtables-ipv4))
705
706
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)
713 endef
714
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.
718 endef
719
720 $(eval $(call KernelPackage,ebtables-ipv6))
721
722
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)
729 endef
730
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.
734 endef
735
736 $(eval $(call KernelPackage,ebtables-watchers))
737
738
739 define KernelPackage/nfnetlink
740   SUBMENU:=$(NF_MENU)
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)))
745 endef
746
747 define KernelPackage/nfnetlink/description
748  Kernel modules support for a netlink-based userspace interface
749 endef
750
751 $(eval $(call KernelPackage,nfnetlink))
752
753
754 define AddDepends/nfnetlink
755   SUBMENU:=$(NF_MENU)
756   DEPENDS+=+kmod-nfnetlink $(1)
757 endef
758
759
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)
766 endef
767
768 define KernelPackage/nfnetlink-log/description
769  Kernel modules support for logging packets via NFNETLINK
770  Includes:
771  - NFLOG
772 endef
773
774 $(eval $(call KernelPackage,nfnetlink-log))
775
776
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)
783 endef
784
785 define KernelPackage/nfnetlink-queue/description
786  Kernel modules support for queueing packets via NFNETLINK
787  Includes:
788  - NFQUEUE
789 endef
790
791 $(eval $(call KernelPackage,nfnetlink-queue))
792
793
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)
800 endef
801
802 define KernelPackage/nf-conntrack-netlink/description
803  Kernel modules support for a netlink-based connection tracking
804  userspace interface
805 endef
806
807 $(eval $(call KernelPackage,nf-conntrack-netlink))
808
809 define KernelPackage/ipt-hashlimit
810   SUBMENU:=$(NF_MENU)
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)
817 endef
818
819 define KernelPackage/ipt-hashlimit/description
820  Kernel modules support for the hashlimit bucket match module
821 endef
822
823 $(eval $(call KernelPackage,ipt-hashlimit))
824
825
826 define KernelPackage/nft-core
827   SUBMENU:=$(NF_MENU)
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)))
832   KCONFIG:= \
833         CONFIG_NETFILTER=y \
834         CONFIG_NETFILTER_ADVANCED=y \
835         CONFIG_NFT_COMPAT=n \
836         CONFIG_NFT_QUEUE=n \
837         CONFIG_NF_TABLES_ARP=n \
838         CONFIG_NF_TABLES_BRIDGE=n \
839         $(KCONFIG_NFT_CORE)
840 endef
841
842 define KernelPackage/nft-core/description
843  Kernel module support for nftables
844 endef
845
846 $(eval $(call KernelPackage,nft-core))
847
848
849 define KernelPackage/nft-nat
850   SUBMENU:=$(NF_MENU)
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)
856 endef
857
858 $(eval $(call KernelPackage,nft-nat))
859
860
861 define KernelPackage/nft-nat6
862   SUBMENU:=$(NF_MENU)
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)
868 endef
869
870 $(eval $(call KernelPackage,nft-nat6))
871