kernel/modules: add kmod-switch-rtl8367b
[lede.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         CONFIG_NF_CONNTRACK_ZONES=y \
72         $(KCONFIG_NF_CONNTRACK)
73   FILES:=$(foreach mod,$(NF_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).ko)
74   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNTRACK-m)))
75 endef
76
77 $(eval $(call KernelPackage,nf-conntrack))
78
79
80 define KernelPackage/nf-conntrack6
81   SUBMENU:=$(NF_MENU)
82   TITLE:=Netfilter IPv6 connection tracking
83   KCONFIG:=$(KCONFIG_NF_CONNTRACK6)
84   DEPENDS:=@IPV6 +kmod-nf-conntrack
85   FILES:=$(foreach mod,$(NF_CONNTRACK6-m),$(LINUX_DIR)/net/$(mod).ko)
86   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNTRACK6-m)))
87 endef
88
89 $(eval $(call KernelPackage,nf-conntrack6))
90
91
92 define KernelPackage/nf-nat
93   SUBMENU:=$(NF_MENU)
94   TITLE:=Netfilter NAT
95   KCONFIG:=$(KCONFIG_NF_NAT)
96   DEPENDS:=+kmod-nf-conntrack +kmod-nf-ipt
97   FILES:=$(foreach mod,$(NF_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
98   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NAT-m)))
99 endef
100
101 $(eval $(call KernelPackage,nf-nat))
102
103
104 define KernelPackage/nf-nat6
105   SUBMENU:=$(NF_MENU)
106   TITLE:=Netfilter IPV6-NAT
107   KCONFIG:=$(KCONFIG_NF_NAT6)
108   DEPENDS:=+kmod-nf-conntrack6 +kmod-nf-ipt6 +kmod-nf-nat
109   FILES:=$(foreach mod,$(NF_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
110   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NAT6-m)))
111 endef
112
113 $(eval $(call KernelPackage,nf-nat6))
114
115
116 define AddDepends/ipt
117   SUBMENU:=$(NF_MENU)
118   DEPENDS+= +kmod-ipt-core $(1)
119 endef
120
121
122 define KernelPackage/ipt-conntrack
123   TITLE:=Basic connection tracking modules
124   KCONFIG:=$(KCONFIG_IPT_CONNTRACK)
125   FILES:=$(foreach mod,$(IPT_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).ko)
126   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK-m)))
127   $(call AddDepends/ipt,+kmod-nf-conntrack)
128 endef
129
130 define KernelPackage/ipt-conntrack/description
131  Netfilter (IPv4) kernel modules for connection tracking
132  Includes:
133  - conntrack
134  - defrag
135  - iptables_raw
136  - NOTRACK
137  - state
138 endef
139
140 $(eval $(call KernelPackage,ipt-conntrack))
141
142
143 define KernelPackage/ipt-conntrack-extra
144   TITLE:=Extra connection tracking modules
145   KCONFIG:=$(KCONFIG_IPT_CONNTRACK_EXTRA)
146   FILES:=$(foreach mod,$(IPT_CONNTRACK_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
147   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK_EXTRA-m)))
148   $(call AddDepends/ipt,+kmod-ipt-conntrack)
149 endef
150
151 define KernelPackage/ipt-conntrack-extra/description
152  Netfilter (IPv4) extra kernel modules for connection tracking
153  Includes:
154  - connbytes
155  - connmark/CONNMARK
156  - conntrack
157  - helper
158  - recent
159 endef
160
161 $(eval $(call KernelPackage,ipt-conntrack-extra))
162
163
164 define KernelPackage/ipt-filter
165   TITLE:=Modules for packet content inspection
166   KCONFIG:=$(KCONFIG_IPT_FILTER)
167   FILES:=$(foreach mod,$(IPT_FILTER-m),$(LINUX_DIR)/net/$(mod).ko)
168   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_FILTER-m)))
169   $(call AddDepends/ipt,+kmod-lib-textsearch +kmod-ipt-conntrack)
170 endef
171
172 define KernelPackage/ipt-filter/description
173  Netfilter (IPv4) kernel modules for packet content inspection
174  Includes:
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-ulog
374   TITLE:=Module for user-space packet logging
375   KCONFIG:=$(KCONFIG_IPT_ULOG)
376   FILES:=$(foreach mod,$(IPT_ULOG-m),$(LINUX_DIR)/net/$(mod).ko)
377   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_ULOG-m)))
378   $(call AddDepends/ipt)
379 endef
380
381 define KernelPackage/ipt-ulog/description
382  Netfilter (IPv4) module for user-space packet logging
383  Includes:
384  - ULOG
385 endef
386
387 $(eval $(call KernelPackage,ipt-ulog))
388
389
390 define KernelPackage/ipt-nflog
391   TITLE:=Module for user-space packet logging
392   KCONFIG:=$(KCONFIG_IPT_NFLOG)
393   FILES:=$(foreach mod,$(IPT_NFLOG-m),$(LINUX_DIR)/net/$(mod).ko)
394   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFLOG-m)))
395   $(call AddDepends/ipt,+kmod-nfnetlink-log)
396 endef
397
398 define KernelPackage/ipt-nflog/description
399  Netfilter module for user-space packet logging
400  Includes:
401  - NFLOG
402 endef
403
404 $(eval $(call KernelPackage,ipt-nflog))
405
406
407 define KernelPackage/ipt-nfqueue
408   TITLE:=Module for user-space packet queuing
409   KCONFIG:=$(KCONFIG_IPT_NFQUEUE)
410   FILES:=$(foreach mod,$(IPT_NFQUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
411   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFQUEUE-m)))
412   $(call AddDepends/ipt,+kmod-nfnetlink-queue)
413 endef
414
415 define KernelPackage/ipt-nfqueue/description
416  Netfilter module for user-space packet queuing
417  Includes:
418  - NFQUEUE
419 endef
420
421 $(eval $(call KernelPackage,ipt-nfqueue))
422
423
424 define KernelPackage/ipt-debug
425   TITLE:=Module for debugging/development
426   KCONFIG:=$(KCONFIG_IPT_DEBUG)
427   DEFAULT:=n
428   FILES:=$(foreach mod,$(IPT_DEBUG-m),$(LINUX_DIR)/net/$(mod).ko)
429   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_DEBUG-m)))
430   $(call AddDepends/ipt)
431 endef
432
433 define KernelPackage/ipt-debug/description
434  Netfilter modules for debugging/development of the firewall
435  Includes:
436  - TRACE
437 endef
438
439 $(eval $(call KernelPackage,ipt-debug))
440
441
442 define KernelPackage/ipt-led
443   TITLE:=Module to trigger a LED with a Netfilter rule
444   KCONFIG:=$(KCONFIG_IPT_LED)
445   FILES:=$(foreach mod,$(IPT_LED-m),$(LINUX_DIR)/net/$(mod).ko)
446   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_LED-m)))
447   $(call AddDepends/ipt)
448 endef
449
450 define KernelPackage/ipt-led/description
451  Netfilter target to trigger a LED when a network packet is matched.
452 endef
453
454 $(eval $(call KernelPackage,ipt-led))
455
456 define KernelPackage/ipt-tproxy
457   TITLE:=Transparent proxying support
458   DEPENDS+=+kmod-ipt-conntrack +IPV6:kmod-ip6tables
459   KCONFIG:= \
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 $(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,+kmod-br-netfilter)
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/br-netfilter
647   SUBMENU:=$(NF_MENU)
648   TITLE:=Bridge netfilter support modules
649   HIDDEN:=1
650   DEPENDS:=+kmod-ipt-core +kmod-bridge
651   FILES:=$(LINUX_DIR)/net/bridge/br_netfilter.ko
652   KCONFIG:=CONFIG_BRIDGE_NETFILTER
653   AUTOLOAD:=$(call AutoProbe,br_netfilter)
654 endef
655
656 $(eval $(call KernelPackage,br-netfilter))
657
658
659 define KernelPackage/ebtables
660   SUBMENU:=$(NF_MENU)
661   TITLE:=Bridge firewalling modules
662   DEPENDS:=+kmod-ipt-core +kmod-bridge +kmod-br-netfilter
663   FILES:=$(foreach mod,$(EBTABLES-m),$(LINUX_DIR)/net/$(mod).ko)
664   KCONFIG:=$(KCONFIG_EBTABLES)
665   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES-m)))
666 endef
667
668 define KernelPackage/ebtables/description
669   ebtables is a general, extensible frame/packet identification
670   framework. It provides you to do Ethernet
671   filtering/NAT/brouting on the Ethernet bridge.
672 endef
673
674 $(eval $(call KernelPackage,ebtables))
675
676
677 define AddDepends/ebtables
678   SUBMENU:=$(NF_MENU)
679   DEPENDS+=kmod-ebtables $(1)
680 endef
681
682
683 define KernelPackage/ebtables-ipv4
684   TITLE:=ebtables: IPv4 support
685   FILES:=$(foreach mod,$(EBTABLES_IP4-m),$(LINUX_DIR)/net/$(mod).ko)
686   KCONFIG:=$(KCONFIG_EBTABLES_IP4)
687   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP4-m)))
688   $(call AddDepends/ebtables)
689 endef
690
691 define KernelPackage/ebtables-ipv4/description
692  This option adds the IPv4 support to ebtables, which allows basic
693  IPv4 header field filtering, ARP filtering as well as SNAT, DNAT targets.
694 endef
695
696 $(eval $(call KernelPackage,ebtables-ipv4))
697
698
699 define KernelPackage/ebtables-ipv6
700   TITLE:=ebtables: IPv6 support
701   FILES:=$(foreach mod,$(EBTABLES_IP6-m),$(LINUX_DIR)/net/$(mod).ko)
702   KCONFIG:=$(KCONFIG_EBTABLES_IP6)
703   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP6-m)))
704   $(call AddDepends/ebtables)
705 endef
706
707 define KernelPackage/ebtables-ipv6/description
708  This option adds the IPv6 support to ebtables, which allows basic
709  IPv6 header field filtering and target support.
710 endef
711
712 $(eval $(call KernelPackage,ebtables-ipv6))
713
714
715 define KernelPackage/ebtables-watchers
716   TITLE:=ebtables: watchers support
717   FILES:=$(foreach mod,$(EBTABLES_WATCHERS-m),$(LINUX_DIR)/net/$(mod).ko)
718   KCONFIG:=$(KCONFIG_EBTABLES_WATCHERS)
719   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_WATCHERS-m)))
720   $(call AddDepends/ebtables)
721 endef
722
723 define KernelPackage/ebtables-watchers/description
724  This option adds the log watchers, that you can use in any rule
725  in any ebtables table.
726 endef
727
728 $(eval $(call KernelPackage,ebtables-watchers))
729
730
731 define KernelPackage/nfnetlink
732   SUBMENU:=$(NF_MENU)
733   TITLE:=Netlink-based userspace interface
734   FILES:=$(foreach mod,$(NFNETLINK-m),$(LINUX_DIR)/net/$(mod).ko)
735   KCONFIG:=$(KCONFIG_NFNETLINK)
736   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK-m)))
737 endef
738
739 define KernelPackage/nfnetlink/description
740  Kernel modules support for a netlink-based userspace interface
741 endef
742
743 $(eval $(call KernelPackage,nfnetlink))
744
745
746 define AddDepends/nfnetlink
747   SUBMENU:=$(NF_MENU)
748   DEPENDS+=+kmod-nfnetlink $(1)
749 endef
750
751
752 define KernelPackage/nfnetlink-log
753   TITLE:=Netfilter LOG over NFNETLINK interface
754   FILES:=$(foreach mod,$(NFNETLINK_LOG-m),$(LINUX_DIR)/net/$(mod).ko)
755   KCONFIG:=$(KCONFIG_NFNETLINK_LOG)
756   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_LOG-m)))
757   $(call AddDepends/nfnetlink)
758 endef
759
760 define KernelPackage/nfnetlink-log/description
761  Kernel modules support for logging packets via NFNETLINK
762  Includes:
763  - NFLOG
764 endef
765
766 $(eval $(call KernelPackage,nfnetlink-log))
767
768
769 define KernelPackage/nfnetlink-queue
770   TITLE:=Netfilter QUEUE over NFNETLINK interface
771   FILES:=$(foreach mod,$(NFNETLINK_QUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
772   KCONFIG:=$(KCONFIG_NFNETLINK_QUEUE)
773   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_QUEUE-m)))
774   $(call AddDepends/nfnetlink)
775 endef
776
777 define KernelPackage/nfnetlink-queue/description
778  Kernel modules support for queueing packets via NFNETLINK
779  Includes:
780  - NFQUEUE
781 endef
782
783 $(eval $(call KernelPackage,nfnetlink-queue))
784
785
786 define KernelPackage/nf-conntrack-netlink
787   TITLE:=Connection tracking netlink interface
788   FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.ko
789   KCONFIG:=CONFIG_NF_CT_NETLINK CONFIG_NF_CONNTRACK_EVENTS=y
790   AUTOLOAD:=$(call AutoProbe,nf_conntrack_netlink)
791   $(call AddDepends/nfnetlink,+kmod-ipt-conntrack)
792 endef
793
794 define KernelPackage/nf-conntrack-netlink/description
795  Kernel modules support for a netlink-based connection tracking
796  userspace interface
797 endef
798
799 $(eval $(call KernelPackage,nf-conntrack-netlink))
800
801 define KernelPackage/ipt-hashlimit
802   SUBMENU:=$(NF_MENU)
803   TITLE:=Netfilter hashlimit match
804   DEPENDS:=+kmod-ipt-core
805   KCONFIG:=$(KCONFIG_IPT_HASHLIMIT)
806   FILES:=$(LINUX_DIR)/net/netfilter/xt_hashlimit.ko
807   AUTOLOAD:=$(call AutoProbe,xt_hashlimit)
808   $(call KernelPackage/ipt)
809 endef
810
811 define KernelPackage/ipt-hashlimit/description
812  Kernel modules support for the hashlimit bucket match module
813 endef
814
815 $(eval $(call KernelPackage,ipt-hashlimit))
816
817
818 define KernelPackage/nft-core
819   SUBMENU:=$(NF_MENU)
820   TITLE:=Netfilter nf_tables support
821   DEPENDS:=+kmod-nfnetlink +kmod-nf-conntrack6 +kmod-nf-ipt +kmod-nf-ipt6
822   FILES:=$(foreach mod,$(NFT_CORE-m),$(LINUX_DIR)/net/$(mod).ko)
823   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_CORE-m)))
824   KCONFIG:= \
825         CONFIG_NETFILTER=y \
826         CONFIG_NETFILTER_ADVANCED=y \
827         CONFIG_NFT_COMPAT=n \
828         CONFIG_NFT_QUEUE=n \
829         CONFIG_NF_TABLES_ARP=n \
830         CONFIG_NF_TABLES_BRIDGE=n \
831         $(KCONFIG_NFT_CORE)
832 endef
833
834 define KernelPackage/nft-core/description
835  Kernel module support for nftables
836 endef
837
838 $(eval $(call KernelPackage,nft-core))
839
840
841 define KernelPackage/nft-nat
842   SUBMENU:=$(NF_MENU)
843   TITLE:=Netfilter nf_tables NAT support
844   DEPENDS:=+kmod-nft-core +kmod-nf-nat +kmod-nf-nat6
845   FILES:=$(foreach mod,$(NFT_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
846   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_NAT-m)))
847   KCONFIG:=$(KCONFIG_NFT_NAT)
848 endef
849
850 $(eval $(call KernelPackage,nft-nat))
851
852
853 define KernelPackage/nft-nat6
854   SUBMENU:=$(NF_MENU)
855   TITLE:=Netfilter nf_tables IPv6-NAT support
856   DEPENDS:=+kmod-nft-core +kmod-nf-nat6
857   FILES:=$(foreach mod,$(NFT_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
858   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_NAT6-m)))
859   KCONFIG:=$(KCONFIG_NFT_NAT6)
860 endef
861
862 $(eval $(call KernelPackage,nft-nat6))
863