kernel: make most modules use AutoProbe
[openwrt.git] / package / kernel / linux / modules / netsupport.mk
1 #
2 # Copyright (C) 2006-2011 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 NETWORK_SUPPORT_MENU:=Network Support
9
10 define KernelPackage/atm
11   SUBMENU:=$(NETWORK_SUPPORT_MENU)
12   TITLE:=ATM support
13   KCONFIG:= \
14         CONFIG_ATM \
15         CONFIG_ATM_BR2684
16   FILES:= \
17         $(LINUX_DIR)/net/atm/atm.ko \
18         $(LINUX_DIR)/net/atm/br2684.ko
19   AUTOLOAD:=$(call AutoLoad,30,atm br2684)
20 endef
21
22 define KernelPackage/atm/description
23  Kernel modules for ATM support
24 endef
25
26 $(eval $(call KernelPackage,atm))
27
28
29 define KernelPackage/atmtcp
30   SUBMENU:=$(NETWORK_SUPPORT_MENU)
31   TITLE:=ATM over TCP
32   DEPENDS:=kmod-atm
33   KCONFIG:=CONFIG_ATM_TCP CONFIG_ATM_DRIVERS=y
34   FILES:=$(LINUX_DIR)/drivers/atm/atmtcp.ko
35   AUTOLOAD:=$(call AutoLoad,40,atmtcp)
36 endef
37
38 define KernelPackage/atmtcp/description
39  Kernel module for ATM over TCP support
40 endef
41
42 $(eval $(call KernelPackage,atmtcp))
43
44
45 define KernelPackage/appletalk
46   SUBMENU:=$(NETWORK_SUPPORT_MENU)
47   TITLE:=Appletalk protocol support
48   DEPENDS:=+PACKAGE_kmod-llc:kmod-llc
49   KCONFIG:= \
50         CONFIG_ATALK \
51         CONFIG_DEV_APPLETALK \
52         CONFIG_IPDDP \
53         CONFIG_IPDDP_ENCAP=y \
54         CONFIG_IPDDP_DECAP=y
55   FILES:= \
56         $(LINUX_DIR)/net/appletalk/appletalk.ko \
57         $(LINUX_DIR)/drivers/net/appletalk/ipddp.ko
58   AUTOLOAD:=$(call AutoLoad,40,appletalk ipddp)
59 endef
60
61 define KernelPackage/appletalk/description
62  Kernel module for AppleTalk protocol.
63 endef
64
65 $(eval $(call KernelPackage,appletalk))
66
67
68 define KernelPackage/bonding
69   SUBMENU:=$(NETWORK_SUPPORT_MENU)
70   TITLE:=Ethernet bonding driver
71   KCONFIG:=CONFIG_BONDING
72   FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.ko
73   AUTOLOAD:=$(call AutoLoad,40,bonding)
74 endef
75
76 define KernelPackage/bonding/description
77  Kernel module for NIC bonding.
78 endef
79
80 $(eval $(call KernelPackage,bonding))
81
82
83 define KernelPackage/bridge
84   SUBMENU:=$(NETWORK_SUPPORT_MENU)
85   TITLE:=Ethernet bridging support
86   DEPENDS:=+kmod-stp
87   KCONFIG:= \
88         CONFIG_BRIDGE \
89         CONFIG_BRIDGE_IGMP_SNOOPING=y
90   FILES:=$(LINUX_DIR)/net/bridge/bridge.ko
91   AUTOLOAD:=$(call AutoLoad,11,bridge)
92 endef
93
94 define KernelPackage/bridge/description
95  Kernel module for Ethernet bridging.
96 endef
97
98 $(eval $(call KernelPackage,bridge))
99
100 define KernelPackage/llc
101   SUBMENU:=$(NETWORK_SUPPORT_MENU)
102   TITLE:=ANSI/IEEE 802.2 LLC support
103   KCONFIG:=CONFIG_LLC
104   FILES:= \
105         $(LINUX_DIR)/net/llc/llc.ko \
106         $(LINUX_DIR)/net/802/p8022.ko \
107         $(LINUX_DIR)/net/802/psnap.ko
108   AUTOLOAD:=$(call AutoLoad,09,llc p8022 psnap)
109 endef
110
111 define KernelPackage/llc/description
112  Kernel module for ANSI/IEEE 802.2 LLC support.
113 endef
114
115 $(eval $(call KernelPackage,llc))
116
117 define KernelPackage/stp
118   SUBMENU:=$(NETWORK_SUPPORT_MENU)
119   TITLE:=Ethernet Spanning Tree Protocol support
120   DEPENDS:=+kmod-llc
121   KCONFIG:=CONFIG_STP
122   FILES:=$(LINUX_DIR)/net/802/stp.ko
123   AUTOLOAD:=$(call AutoLoad,10,stp)
124 endef
125
126 define KernelPackage/stp/description
127  Kernel module for Ethernet Spanning Tree Protocol support.
128 endef
129
130 $(eval $(call KernelPackage,stp))
131
132 define KernelPackage/8021q
133   SUBMENU:=$(NETWORK_SUPPORT_MENU)
134   TITLE:=802.1Q VLAN support
135   KCONFIG:=CONFIG_VLAN_8021Q \
136                 CONFIG_VLAN_8021Q_GVRP=n
137   FILES:=$(LINUX_DIR)/net/8021q/8021q.ko
138   AUTOLOAD:=$(call AutoLoad,12,8021q)
139 endef
140
141 define KernelPackage/8021q/description
142  Kernel module for 802.1Q VLAN support
143 endef
144
145 $(eval $(call KernelPackage,8021q))
146
147
148 define KernelPackage/capi
149   SUBMENU:=$(NETWORK_SUPPORT_MENU)
150   TITLE:=CAPI (ISDN) Support
151   KCONFIG:= \
152         CONFIG_ISDN_CAPI \
153         CONFIG_ISDN_CAPI_CAPI20 \
154         CONFIG_ISDN_CAPIFS \
155         CONFIG_ISDN_CAPI_CAPIFS
156   FILES:= \
157         $(LINUX_DIR)/drivers/isdn/capi/kernelcapi.ko \
158         $(LINUX_DIR)/drivers/isdn/capi/capi.ko
159   AUTOLOAD:=$(call AutoLoad,30,kernelcapi capi)
160 endef
161
162 define KernelPackage/capi/description
163  Kernel module for basic CAPI (ISDN) support
164 endef
165
166 $(eval $(call KernelPackage,capi))
167
168 define KernelPackage/misdn
169   SUBMENU:=$(NETWORK_SUPPORT_MENU)
170   TITLE:=mISDN (ISDN) Support
171   KCONFIG:= \
172         CONFIG_ISDN=y \
173         CONFIG_MISDN \
174         CONFIG_MISDN_DSP \
175         CONFIG_MISDN_L1OIP
176   FILES:= \
177         $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
178         $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
179         $(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
180   AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
181 endef
182
183 define KernelPackage/misdn/description
184   Modular ISDN driver support
185 endef
186
187 $(eval $(call KernelPackage,misdn))
188
189
190 define KernelPackage/isdn4linux
191   SUBMENU:=$(NETWORK_SUPPORT_MENU)
192   TITLE:=Old ISDN4Linux (deprecated)
193   DEPENDS:=+kmod-ppp
194   KCONFIG:= \
195         CONFIG_ISDN=y \
196     CONFIG_ISDN_I4L \
197     CONFIG_ISDN_PPP=y \
198     CONFIG_ISDN_PPP_VJ=y \
199     CONFIG_ISDN_MPP=y \
200     CONFIG_IPPP_FILTER=y \
201     CONFIG_ISDN_PPP_BSDCOMP \
202     CONFIG_ISDN_CAPI_MIDDLEWARE=y \
203     CONFIG_ISDN_CAPI_CAPIFS_BOOL=y \
204     CONFIG_ISDN_AUDIO=y \
205     CONFIG_ISDN_TTY_FAX=y \
206     CONFIG_ISDN_X25=y \
207     CONFIG_ISDN_DIVERSION
208   FILES:= \
209     $(LINUX_DIR)/drivers/isdn/divert/dss1_divert.ko \
210         $(LINUX_DIR)/drivers/isdn/i4l/isdn.ko \
211         $(LINUX_DIR)/drivers/isdn/i4l/isdn_bsdcomp.ko
212   AUTOLOAD:=$(call AutoLoad,40,isdn isdn_bsdcomp dss1_divert)
213 endef
214
215 define KernelPackage/isdn4linux/description
216   This driver allows you to use an ISDN adapter for networking
217 endef
218
219 $(eval $(call KernelPackage,isdn4linux))
220
221
222 define KernelPackage/ipip
223   SUBMENU:=$(NETWORK_SUPPORT_MENU)
224   TITLE:=IP-in-IP encapsulation
225   DEPENDS:=+kmod-iptunnel +kmod-iptunnel4
226   KCONFIG:=CONFIG_NET_IPIP
227   FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
228   AUTOLOAD:=$(call AutoLoad,32,ipip)
229 endef
230
231 define KernelPackage/ipip/description
232  Kernel modules for IP-in-IP encapsulation
233 endef
234
235 $(eval $(call KernelPackage,ipip))
236
237
238 IPSEC-m:= \
239         $(if $(CONFIG_LINUX_3_3),,xfrm/xfrm_algo) \
240         xfrm/xfrm_ipcomp \
241         xfrm/xfrm_user \
242         key/af_key \
243
244 define KernelPackage/ipsec
245   SUBMENU:=$(NETWORK_SUPPORT_MENU)
246   TITLE:=IPsec related modules (IPv4 and IPv6)
247   DEPENDS:=+kmod-crypto-authenc +kmod-crypto-iv +kmod-crypto-des +kmod-crypto-hmac +kmod-crypto-md5 +kmod-crypto-sha1 +kmod-crypto-deflate +kmod-crypto-cbc
248   KCONFIG:= \
249         CONFIG_NET_KEY \
250         CONFIG_XFRM_USER \
251         CONFIG_INET_IPCOMP \
252         CONFIG_XFRM_IPCOMP
253   FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
254   AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
255 endef
256
257 define KernelPackage/ipsec/description
258  Kernel modules for IPsec support in both IPv4 and IPv6.
259  Includes:
260  - af_key
261  - xfrm_ipcomp
262  - xfrm_user
263 endef
264
265 $(eval $(call KernelPackage,ipsec))
266
267
268 IPSEC4-m:= \
269         ipv4/ah4 \
270         ipv4/esp4 \
271         ipv4/xfrm4_mode_beet \
272         ipv4/xfrm4_mode_transport \
273         ipv4/xfrm4_mode_tunnel \
274         ipv4/xfrm4_tunnel \
275         ipv4/ipcomp \
276
277 define KernelPackage/ipsec4
278   SUBMENU:=$(NETWORK_SUPPORT_MENU)
279   TITLE:=IPsec related modules (IPv4)
280   DEPENDS:=kmod-ipsec +kmod-iptunnel4
281   KCONFIG:= \
282         CONFIG_INET_AH \
283         CONFIG_INET_ESP \
284         CONFIG_INET_IPCOMP \
285         CONFIG_INET_XFRM_MODE_BEET \
286         CONFIG_INET_XFRM_MODE_TRANSPORT \
287         CONFIG_INET_XFRM_MODE_TUNNEL \
288         CONFIG_INET_XFRM_TUNNEL
289   FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
290   AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
291 endef
292
293 define KernelPackage/ipsec4/description
294  Kernel modules for IPsec support in IPv4.
295  Includes:
296  - ah4
297  - esp4
298  - ipcomp4
299  - xfrm4_mode_beet
300  - xfrm4_mode_transport
301  - xfrm4_mode_tunnel
302  - xfrm4_tunnel
303 endef
304
305 $(eval $(call KernelPackage,ipsec4))
306
307
308 IPSEC6-m:= \
309         ipv6/ah6 \
310         ipv6/esp6 \
311         ipv6/xfrm6_mode_beet \
312         ipv6/xfrm6_mode_transport \
313         ipv6/xfrm6_mode_tunnel \
314         ipv6/xfrm6_tunnel \
315         ipv6/ipcomp6 \
316
317 define KernelPackage/ipsec6
318   SUBMENU:=$(NETWORK_SUPPORT_MENU)
319   TITLE:=IPsec related modules (IPv6)
320   DEPENDS:=kmod-ipsec +kmod-iptunnel6
321   KCONFIG:= \
322         CONFIG_INET6_AH \
323         CONFIG_INET6_ESP \
324         CONFIG_INET6_IPCOMP \
325         CONFIG_INET6_XFRM_MODE_BEET \
326         CONFIG_INET6_XFRM_MODE_TRANSPORT \
327         CONFIG_INET6_XFRM_MODE_TUNNEL \
328         CONFIG_INET6_XFRM_TUNNEL
329   FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
330   AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
331 endef
332
333 define KernelPackage/ipsec6/description
334  Kernel modules for IPsec support in IPv6.
335  Includes:
336  - ah6
337  - esp6
338  - ipcomp6
339  - xfrm6_mode_beet
340  - xfrm6_mode_transport
341  - xfrm6_mode_tunnel
342  - xfrm6_tunnel
343 endef
344
345 $(eval $(call KernelPackage,ipsec6))
346
347
348 define KernelPackage/iptunnel
349   SUBMENU:=$(NETWORK_SUPPORT_MENU)
350   TITLE:=IP tunnel support
351   HIDDEN:=1
352   KCONFIG:= \
353         CONFIG_NET_IP_TUNNEL
354   FILES:=$(LINUX_DIR)/net/ipv4/ip_tunnel.ko
355   AUTOLOAD:=$(call AutoLoad,31,ip_tunnel)
356 endef
357
358 define KernelPackage/iptunnel/description
359  Kernel module for generic IP tunnel support
360 endef
361
362 $(eval $(call KernelPackage,iptunnel))
363
364
365 define KernelPackage/iptunnel4
366   SUBMENU:=$(NETWORK_SUPPORT_MENU)
367   TITLE:=IPv4 tunneling
368   HIDDEN:=1
369   KCONFIG:= \
370         CONFIG_INET_TUNNEL
371   FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
372   AUTOLOAD:=$(call AutoLoad,31,tunnel4)
373 endef
374
375 define KernelPackage/iptunnel4/description
376  Kernel modules for IPv4 tunneling
377 endef
378
379 $(eval $(call KernelPackage,iptunnel4))
380
381
382 define KernelPackage/iptunnel6
383   SUBMENU:=$(NETWORK_SUPPORT_MENU)
384   TITLE:=IPv6 tunneling
385   DEPENDS:= +kmod-ipv6
386   KCONFIG:= \
387         CONFIG_INET6_TUNNEL
388   FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
389   AUTOLOAD:=$(call AutoLoad,31,tunnel6)
390 endef
391
392 define KernelPackage/iptunnel6/description
393  Kernel modules for IPv6 tunneling
394 endef
395
396 $(eval $(call KernelPackage,iptunnel6))
397
398
399 define KernelPackage/ipv6
400   SUBMENU:=$(NETWORK_SUPPORT_MENU)
401   TITLE:=IPv6 support
402   KCONFIG:= \
403         CONFIG_IPV6 \
404         CONFIG_IPV6_PRIVACY=y \
405         CONFIG_IPV6_MULTIPLE_TABLES=y \
406         CONFIG_IPV6_MROUTE=y \
407         CONFIG_IPV6_PIMSM_V2=n \
408         CONFIG_IPV6_SUBTREES=y
409   FILES:=$(LINUX_DIR)/net/ipv6/ipv6.ko
410   AUTOLOAD:=$(call AutoLoad,20,ipv6)
411 endef
412
413 define KernelPackage/ipv6/description
414  Kernel modules for IPv6 support
415 endef
416
417 $(eval $(call KernelPackage,ipv6))
418
419
420 define KernelPackage/sit
421   SUBMENU:=$(NETWORK_SUPPORT_MENU)
422   DEPENDS:=+kmod-ipv6 +kmod-iptunnel +kmod-iptunnel4
423   TITLE:=IPv6-in-IPv4 tunnel
424   KCONFIG:=CONFIG_IPV6_SIT \
425         CONFIG_IPV6_SIT_6RD=y
426   FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
427   AUTOLOAD:=$(call AutoLoad,32,sit)
428 endef
429
430 define KernelPackage/sit/description
431  Kernel modules for IPv6-in-IPv4 tunnelling
432 endef
433
434 $(eval $(call KernelPackage,sit))
435
436
437 define KernelPackage/ip6-tunnel
438   SUBMENU:=$(NETWORK_SUPPORT_MENU)
439   TITLE:=IP-in-IPv6 tunnelling
440   DEPENDS:= +kmod-ipv6 +kmod-iptunnel6
441   KCONFIG:= CONFIG_IPV6_TUNNEL
442   FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
443   AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
444 endef
445
446 define KernelPackage/ip6-tunnel/description
447  Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
448 endef
449
450 $(eval $(call KernelPackage,ip6-tunnel))
451
452
453 define KernelPackage/gre
454   SUBMENU:=$(NETWORK_SUPPORT_MENU)
455   TITLE:=GRE support
456   DEPENDS:=+PACKAGE_kmod-ipv6:kmod-ipv6 +kmod-iptunnel
457   KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
458   FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
459   AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
460 endef
461
462 define KernelPackage/gre/description
463  Generic Routing Encapsulation support
464 endef
465
466 $(eval $(call KernelPackage,gre))
467
468
469 define KernelPackage/gre6
470   SUBMENU:=$(NETWORK_SUPPORT_MENU)
471   TITLE:=GRE support over IPV6
472   DEPENDS:=+kmod-ipv6 +kmod-iptunnel +kmod-ip6-tunnel @!LINUX_3_3 @!LINUX_3_6
473   KCONFIG:=CONFIG_IPV6_GRE
474   FILES:=$(LINUX_DIR)/net/ipv6/ip6_gre.ko
475   AUTOLOAD:=$(call AutoLoad,39,ip6_gre)
476 endef
477
478 define KernelPackage/gre6/description
479  Generic Routing Encapsulation support over IPv6
480 endef
481
482 $(eval $(call KernelPackage,gre6))
483
484
485 define KernelPackage/tun
486   SUBMENU:=$(NETWORK_SUPPORT_MENU)
487   TITLE:=Universal TUN/TAP driver
488   KCONFIG:=CONFIG_TUN
489   FILES:=$(LINUX_DIR)/drivers/net/tun.ko
490   AUTOLOAD:=$(call AutoLoad,30,tun)
491 endef
492
493 define KernelPackage/tun/description
494  Kernel support for the TUN/TAP tunneling device
495 endef
496
497 $(eval $(call KernelPackage,tun))
498
499
500 define KernelPackage/veth
501   SUBMENU:=$(NETWORK_SUPPORT_MENU)
502   TITLE:=Virtual ethernet pair device
503   KCONFIG:=CONFIG_VETH
504   FILES:=$(LINUX_DIR)/drivers/net/veth.ko
505   AUTOLOAD:=$(call AutoLoad,30,veth)
506 endef
507
508 define KernelPackage/veth/description
509  This device is a local ethernet tunnel. Devices are created in pairs.
510  When one end receives the packet it appears on its pair and vice
511  versa.
512 endef
513
514 $(eval $(call KernelPackage,veth))
515
516
517 define KernelPackage/slhc
518   SUBMENU:=$(NETWORK_SUPPORT_MENU)
519   HIDDEN:=1
520   TITLE:=Serial Line Header Compression
521   DEPENDS:=+kmod-lib-crc-ccitt
522   KCONFIG:=CONFIG_SLHC
523   FILES:=$(LINUX_DIR)/drivers/net/slip/slhc.ko
524 endef
525
526 $(eval $(call KernelPackage,slhc))
527
528
529 define KernelPackage/ppp
530   SUBMENU:=$(NETWORK_SUPPORT_MENU)
531   TITLE:=PPP modules
532   DEPENDS:=+kmod-lib-crc-ccitt +kmod-slhc
533   KCONFIG:= \
534         CONFIG_PPP \
535         CONFIG_PPP_ASYNC
536   FILES:= \
537         $(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
538         $(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko
539 endef
540
541 define KernelPackage/ppp/description
542  Kernel modules for PPP support
543 endef
544
545 $(eval $(call KernelPackage,ppp))
546
547
548 define KernelPackage/ppp-synctty
549   SUBMENU:=$(NETWORK_SUPPORT_MENU)
550   TITLE:=PPP sync tty support
551   DEPENDS:=kmod-ppp
552   KCONFIG:=CONFIG_PPP_SYNC_TTY
553   FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
554   AUTOLOAD:=$(call AutoLoad,40,ppp_synctty)
555 endef
556
557 define KernelPackage/ppp-synctty/description
558  Kernel modules for PPP sync tty support
559 endef
560
561 $(eval $(call KernelPackage,ppp-synctty))
562
563
564 define KernelPackage/pppox
565   SUBMENU:=$(NETWORK_SUPPORT_MENU)
566   TITLE:=PPPoX helper
567   DEPENDS:=kmod-ppp
568   KCONFIG:=CONFIG_PPPOE
569   FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
570 endef
571
572 define KernelPackage/pppox/description
573  Kernel helper module for PPPoE and PPTP support
574 endef
575
576 $(eval $(call KernelPackage,pppox))
577
578
579 define KernelPackage/pppoe
580   SUBMENU:=$(NETWORK_SUPPORT_MENU)
581   TITLE:=PPPoE support
582   DEPENDS:=kmod-ppp +kmod-pppox
583   KCONFIG:=CONFIG_PPPOE
584   FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
585   AUTOLOAD:=$(call AutoProbe,pppoe)
586 endef
587
588 define KernelPackage/pppoe/description
589  Kernel module for PPPoE (PPP over Ethernet) support
590 endef
591
592 $(eval $(call KernelPackage,pppoe))
593
594
595 define KernelPackage/pppoa
596   SUBMENU:=$(NETWORK_SUPPORT_MENU)
597   TITLE:=PPPoA support
598   DEPENDS:=kmod-ppp +kmod-atm
599   KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
600   FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
601   AUTOLOAD:=$(call AutoLoad,40,pppoatm)
602 endef
603
604 define KernelPackage/pppoa/description
605  Kernel modules for PPPoA (PPP over ATM) support
606 endef
607
608 $(eval $(call KernelPackage,pppoa))
609
610
611 define KernelPackage/pptp
612   SUBMENU:=$(NETWORK_SUPPORT_MENU)
613   TITLE:=PPtP support
614   DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
615   KCONFIG:=CONFIG_PPTP
616   FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
617   AUTOLOAD:=$(call AutoProbe,pptp)
618 endef
619
620 $(eval $(call KernelPackage,pptp))
621
622
623 define KernelPackage/pppol2tp
624   SUBMENU:=$(NETWORK_SUPPORT_MENU)
625   TITLE:=PPPoL2TP support
626   DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
627   KCONFIG:=CONFIG_PPPOL2TP
628   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
629   AUTOLOAD:=$(call AutoProbe,l2tp_ppp)
630 endef
631
632 define KernelPackage/pppol2tp/description
633   Kernel modules for PPPoL2TP (PPP over L2TP) support
634 endef
635
636 $(eval $(call KernelPackage,pppol2tp))
637
638
639 define KernelPackage/ipoa
640   SUBMENU:=$(NETWORK_SUPPORT_MENU)
641   TITLE:=IPoA support
642   DEPENDS:=kmod-atm
643   KCONFIG:=CONFIG_ATM_CLIP
644   FILES:=$(LINUX_DIR)/net/atm/clip.ko
645   AUTOLOAD:=$(call AutoProbe,clip)
646 endef
647
648 define KernelPackage/ipoa/description
649   Kernel modules for IPoA (IP over ATM) support
650 endef
651
652 $(eval $(call KernelPackage,ipoa))
653
654
655 define KernelPackage/mppe
656   SUBMENU:=$(NETWORK_SUPPORT_MENU)
657   TITLE:=Microsoft PPP compression/encryption
658   DEPENDS:=kmod-ppp +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
659   KCONFIG:= \
660         CONFIG_PPP_MPPE_MPPC \
661         CONFIG_PPP_MPPE
662   FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
663   AUTOLOAD:=$(call AutoProbe,ppp_mppe)
664 endef
665
666 define KernelPackage/mppe/description
667  Kernel modules for Microsoft PPP compression/encryption
668 endef
669
670 $(eval $(call KernelPackage,mppe))
671
672
673 SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
674 SCHED_MODULES_CORE = sch_ingress sch_fq_codel sch_hfsc cls_fw cls_route cls_flow cls_tcindex cls_u32 em_u32 act_mirred act_skbedit
675 SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark sch_esfq
676 SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES))
677 SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES)))
678 SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
679
680 define KernelPackage/sched-core
681   SUBMENU:=$(NETWORK_SUPPORT_MENU)
682   TITLE:=Traffic schedulers
683   KCONFIG:= \
684         CONFIG_NET_SCHED=y \
685         CONFIG_NET_SCH_HFSC \
686         CONFIG_NET_SCH_INGRESS \
687         CONFIG_NET_SCH_FQ_CODEL \
688         CONFIG_NET_CLS=y \
689         CONFIG_NET_CLS_ACT=y \
690         CONFIG_NET_CLS_FLOW \
691         CONFIG_NET_CLS_FW \
692         CONFIG_NET_CLS_ROUTE4 \
693         CONFIG_NET_CLS_TCINDEX \
694         CONFIG_NET_CLS_U32 \
695         CONFIG_NET_ACT_MIRRED \
696         CONFIG_NET_ACT_SKBEDIT \
697         CONFIG_NET_EMATCH=y \
698         CONFIG_NET_EMATCH_U32
699   FILES:=$(SCHED_FILES)
700   AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
701 endef
702
703 define KernelPackage/sched-core/description
704  Core kernel scheduler support for IP traffic
705 endef
706
707 $(eval $(call KernelPackage,sched-core))
708
709
710 define KernelPackage/sched-connmark
711   SUBMENU:=$(NETWORK_SUPPORT_MENU)
712   TITLE:=Traffic shaper conntrack mark support
713   DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
714   KCONFIG:=CONFIG_NET_ACT_CONNMARK
715   FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
716   AUTOLOAD:=$(call AutoLoad,71, act_connmark)
717 endef
718 $(eval $(call KernelPackage,sched-connmark))
719
720 define KernelPackage/sched-esfq
721   SUBMENU:=$(NETWORK_SUPPORT_MENU)
722   TITLE:=Traffic shaper ESFQ support
723   DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack
724   KCONFIG:= \
725         CONFIG_NET_SCH_ESFQ \
726         CONFIG_NET_SCH_ESFQ_NFCT=y
727   FILES:=$(LINUX_DIR)/net/sched/sch_esfq.ko
728   AUTOLOAD:=$(call AutoLoad,72, sch_esfq)
729 endef
730 $(eval $(call KernelPackage,sched-esfq))
731
732 define KernelPackage/sched
733   SUBMENU:=$(NETWORK_SUPPORT_MENU)
734   TITLE:=Extra traffic schedulers
735   DEPENDS:=+kmod-sched-core +kmod-ipt-core
736   KCONFIG:= \
737         CONFIG_NET_SCH_CODEL \
738         CONFIG_NET_SCH_DSMARK \
739         CONFIG_NET_SCH_HTB \
740         CONFIG_NET_SCH_FIFO \
741         CONFIG_NET_SCH_GRED \
742         CONFIG_NET_SCH_PRIO \
743         CONFIG_NET_SCH_RED \
744         CONFIG_NET_SCH_TBF \
745         CONFIG_NET_SCH_SFQ \
746         CONFIG_NET_SCH_TEQL \
747         CONFIG_NET_CLS_BASIC \
748         CONFIG_NET_ACT_POLICE \
749         CONFIG_NET_ACT_IPT \
750         CONFIG_NET_EMATCH_CMP \
751         CONFIG_NET_EMATCH_NBYTE \
752         CONFIG_NET_EMATCH_META \
753         CONFIG_NET_EMATCH_TEXT
754   FILES:=$(SCHED_FILES_EXTRA)
755   AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
756 endef
757
758 define KernelPackage/sched/description
759  Extra kernel schedulers modules for IP traffic
760 endef
761
762 $(eval $(call KernelPackage,sched))
763
764
765 define KernelPackage/ax25
766   SUBMENU:=$(NETWORK_SUPPORT_MENU)
767   TITLE:=AX25 support
768   KCONFIG:= \
769         CONFIG_AX25 \
770         CONFIG_MKISS
771   FILES:= \
772         $(LINUX_DIR)/net/ax25/ax25.ko \
773         $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
774   AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
775   $(call AddDepends/crc16)
776 endef
777
778 define KernelPackage/ax25/description
779  Kernel modules for AX25 support
780 endef
781
782 $(eval $(call KernelPackage,ax25))
783
784
785 define KernelPackage/mp-alg
786   SUBMENU:=$(NETWORK_SUPPORT_MENU)
787   TITLE:=ECMP caching algorithms
788   KCONFIG:= \
789         CONFIG_IP_ROUTE_MULTIPATH_RR \
790         CONFIG_IP_ROUTE_MULTIPATH_RANDOM \
791         CONFIG_IP_ROUTE_MULTIPATH_WRANDOM \
792         CONFIG_IP_ROUTE_MULTIPATH_DRR
793   FILES:= \
794         $(LINUX_DIR)/net/ipv4/multipath_rr.ko \
795         $(LINUX_DIR)/net/ipv4/multipath_random.ko \
796         $(LINUX_DIR)/net/ipv4/multipath_wrandom.ko \
797         $(LINUX_DIR)/net/ipv4/multipath_drr.ko
798   AUTOLOAD:=$(call AutoLoad,35,multipath_rr multipath_random multipath_wrandom multipath_drr)
799 endef
800
801 define KernelPackage/mp-alg/description
802  Kernel modules that provide several different algorithms for multipath
803  route selection from the route cache. The iproute "mpath" argument allows
804  specifying which algorithm to use for routes.
805  quagga (at least <=0.99.6) requires a multipath patch to support this
806  cached mp route feature.
807 endef
808
809 $(eval $(call KernelPackage,mp-alg))
810
811
812 define KernelPackage/pktgen
813   SUBMENU:=$(NETWORK_SUPPORT_MENU)
814   DEPENDS:=@!TARGET_uml
815   TITLE:=Network packet generator
816   KCONFIG:=CONFIG_NET_PKTGEN
817   FILES:=$(LINUX_DIR)/net/core/pktgen.ko
818   AUTOLOAD:=$(call AutoLoad,99,pktgen)
819 endef
820
821 define KernelPackage/pktgen/description
822   Kernel modules for the Network Packet Generator
823 endef
824
825 $(eval $(call KernelPackage,pktgen))
826
827 define KernelPackage/l2tp
828   SUBMENU:=$(NETWORK_SUPPORT_MENU)
829   TITLE:=Layer Two Tunneling Protocol (L2TP)
830   DEPENDS:=+IPV6:kmod-ipv6
831   KCONFIG:=CONFIG_L2TP \
832         CONFIG_L2TP_V3=y \
833         CONFIG_L2TP_DEBUGFS=n
834   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
835         $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
836   AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
837 endef
838
839 define KernelPackage/l2tp/description
840  Kernel modules for L2TP V3 Support
841 endef
842
843 $(eval $(call KernelPackage,l2tp))
844
845
846 define KernelPackage/l2tp-eth
847   SUBMENU:=$(NETWORK_SUPPORT_MENU)
848   TITLE:=L2TP ethernet pseudowire support for L2TPv3
849   DEPENDS:=+kmod-l2tp
850   KCONFIG:=CONFIG_L2TP_ETH
851   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
852   AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
853 endef
854
855 define KernelPackage/l2tp-eth/description
856  Kernel modules for L2TP ethernet pseudowire support for L2TPv3
857 endef
858
859 $(eval $(call KernelPackage,l2tp-eth))
860
861 define KernelPackage/l2tp-ip
862   SUBMENU:=$(NETWORK_SUPPORT_MENU)
863   TITLE:=L2TP IP encapsulation for L2TPv3
864   DEPENDS:=+kmod-l2tp
865   KCONFIG:=CONFIG_L2TP_IP
866   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ip.ko
867   AUTOLOAD:=$(call AutoLoad,33,l2tp_ip)
868 endef
869
870 define KernelPackage/l2tp-ip/description
871  Kernel modules for L2TP IP encapsulation for L2TPv3
872 endef
873
874 $(eval $(call KernelPackage,l2tp-ip))
875
876
877 define KernelPackage/sctp
878   SUBMENU:=$(NETWORK_SUPPORT_MENU)
879   TITLE:=SCTP protocol kernel support
880   KCONFIG:=\
881      CONFIG_IP_SCTP \
882      CONFIG_SCTP_DBG_MSG=n \
883      CONFIG_SCTP_DBG_OBJCNT=n \
884      CONFIG_SCTP_HMAC_NONE=n \
885      CONFIG_SCTP_HMAC_SHA1=n \
886      CONFIG_SCTP_HMAC_MD5=y \
887      CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
888      CONFIG_SCTP_COOKIE_HMAC_MD5=y \
889      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
890      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
891      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
892   FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
893   AUTOLOAD:= $(call AutoLoad,32,sctp)
894   DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac +IPV6:kmod-ipv6
895 endef
896
897 define KernelPackage/sctp/description
898  Kernel modules for SCTP protocol support
899 endef
900
901 $(eval $(call KernelPackage,sctp))
902
903
904 define KernelPackage/netem
905   SUBMENU:=$(NETWORK_SUPPORT_MENU)
906   TITLE:=Network emulation functionality
907   DEPENDS:=+kmod-sched
908   KCONFIG:=CONFIG_NET_SCH_NETEM
909   FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
910   AUTOLOAD:=$(call AutoLoad,99,netem)
911 endef
912
913 define KernelPackage/netem/description
914   Kernel modules for emulating the properties of wide area networks
915 endef
916
917 $(eval $(call KernelPackage,netem))
918
919 define KernelPackage/slip
920   SUBMENU:=$(NETWORK_SUPPORT_MENU)
921   DEPENDS:=+kmod-slhc
922   TITLE:=SLIP modules
923   KCONFIG:= \
924        CONFIG_SLIP \
925        CONFIG_SLIP_COMPRESSED=y \
926        CONFIG_SLIP_SMART=y \
927        CONFIG_SLIP_MODE_SLIP6=y
928
929   FILES:= \
930        $(LINUX_DIR)/drivers/net/slip/slip.ko
931   AUTOLOAD:=$(call AutoLoad,30,slip)
932 endef
933
934 define KernelPackage/slip/description
935  Kernel modules for SLIP support
936 endef
937
938 $(eval $(call KernelPackage,slip))
939