kernel: add AutoProbe for ppp_async and ppp_synctty (should fix #14185)
[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   AUTOLOAD:=$(call AutoProbe,ppp_async)
540 endef
541
542 define KernelPackage/ppp/description
543  Kernel modules for PPP support
544 endef
545
546 $(eval $(call KernelPackage,ppp))
547
548
549 define KernelPackage/ppp-synctty
550   SUBMENU:=$(NETWORK_SUPPORT_MENU)
551   TITLE:=PPP sync tty support
552   DEPENDS:=kmod-ppp
553   KCONFIG:=CONFIG_PPP_SYNC_TTY
554   FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
555   AUTOLOAD:=$(call AutoProbe,ppp_synctty)
556 endef
557
558 define KernelPackage/ppp-synctty/description
559  Kernel modules for PPP sync tty support
560 endef
561
562 $(eval $(call KernelPackage,ppp-synctty))
563
564
565 define KernelPackage/pppox
566   SUBMENU:=$(NETWORK_SUPPORT_MENU)
567   TITLE:=PPPoX helper
568   DEPENDS:=kmod-ppp
569   KCONFIG:=CONFIG_PPPOE
570   FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
571 endef
572
573 define KernelPackage/pppox/description
574  Kernel helper module for PPPoE and PPTP support
575 endef
576
577 $(eval $(call KernelPackage,pppox))
578
579
580 define KernelPackage/pppoe
581   SUBMENU:=$(NETWORK_SUPPORT_MENU)
582   TITLE:=PPPoE support
583   DEPENDS:=kmod-ppp +kmod-pppox
584   KCONFIG:=CONFIG_PPPOE
585   FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
586   AUTOLOAD:=$(call AutoProbe,pppoe)
587 endef
588
589 define KernelPackage/pppoe/description
590  Kernel module for PPPoE (PPP over Ethernet) support
591 endef
592
593 $(eval $(call KernelPackage,pppoe))
594
595
596 define KernelPackage/pppoa
597   SUBMENU:=$(NETWORK_SUPPORT_MENU)
598   TITLE:=PPPoA support
599   DEPENDS:=kmod-ppp +kmod-atm
600   KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
601   FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
602   AUTOLOAD:=$(call AutoLoad,40,pppoatm)
603 endef
604
605 define KernelPackage/pppoa/description
606  Kernel modules for PPPoA (PPP over ATM) support
607 endef
608
609 $(eval $(call KernelPackage,pppoa))
610
611
612 define KernelPackage/pptp
613   SUBMENU:=$(NETWORK_SUPPORT_MENU)
614   TITLE:=PPtP support
615   DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
616   KCONFIG:=CONFIG_PPTP
617   FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
618   AUTOLOAD:=$(call AutoProbe,pptp)
619 endef
620
621 $(eval $(call KernelPackage,pptp))
622
623
624 define KernelPackage/pppol2tp
625   SUBMENU:=$(NETWORK_SUPPORT_MENU)
626   TITLE:=PPPoL2TP support
627   DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
628   KCONFIG:=CONFIG_PPPOL2TP
629   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
630   AUTOLOAD:=$(call AutoProbe,l2tp_ppp)
631 endef
632
633 define KernelPackage/pppol2tp/description
634   Kernel modules for PPPoL2TP (PPP over L2TP) support
635 endef
636
637 $(eval $(call KernelPackage,pppol2tp))
638
639
640 define KernelPackage/ipoa
641   SUBMENU:=$(NETWORK_SUPPORT_MENU)
642   TITLE:=IPoA support
643   DEPENDS:=kmod-atm
644   KCONFIG:=CONFIG_ATM_CLIP
645   FILES:=$(LINUX_DIR)/net/atm/clip.ko
646   AUTOLOAD:=$(call AutoProbe,clip)
647 endef
648
649 define KernelPackage/ipoa/description
650   Kernel modules for IPoA (IP over ATM) support
651 endef
652
653 $(eval $(call KernelPackage,ipoa))
654
655
656 define KernelPackage/mppe
657   SUBMENU:=$(NETWORK_SUPPORT_MENU)
658   TITLE:=Microsoft PPP compression/encryption
659   DEPENDS:=kmod-ppp +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
660   KCONFIG:= \
661         CONFIG_PPP_MPPE_MPPC \
662         CONFIG_PPP_MPPE
663   FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
664   AUTOLOAD:=$(call AutoProbe,ppp_mppe)
665 endef
666
667 define KernelPackage/mppe/description
668  Kernel modules for Microsoft PPP compression/encryption
669 endef
670
671 $(eval $(call KernelPackage,mppe))
672
673
674 SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
675 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
676 SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark sch_esfq
677 SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES))
678 SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES)))
679 SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
680
681 define KernelPackage/sched-core
682   SUBMENU:=$(NETWORK_SUPPORT_MENU)
683   TITLE:=Traffic schedulers
684   KCONFIG:= \
685         CONFIG_NET_SCHED=y \
686         CONFIG_NET_SCH_HFSC \
687         CONFIG_NET_SCH_INGRESS \
688         CONFIG_NET_SCH_FQ_CODEL \
689         CONFIG_NET_CLS=y \
690         CONFIG_NET_CLS_ACT=y \
691         CONFIG_NET_CLS_FLOW \
692         CONFIG_NET_CLS_FW \
693         CONFIG_NET_CLS_ROUTE4 \
694         CONFIG_NET_CLS_TCINDEX \
695         CONFIG_NET_CLS_U32 \
696         CONFIG_NET_ACT_MIRRED \
697         CONFIG_NET_ACT_SKBEDIT \
698         CONFIG_NET_EMATCH=y \
699         CONFIG_NET_EMATCH_U32
700   FILES:=$(SCHED_FILES)
701   AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
702 endef
703
704 define KernelPackage/sched-core/description
705  Core kernel scheduler support for IP traffic
706 endef
707
708 $(eval $(call KernelPackage,sched-core))
709
710
711 define KernelPackage/sched-connmark
712   SUBMENU:=$(NETWORK_SUPPORT_MENU)
713   TITLE:=Traffic shaper conntrack mark support
714   DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
715   KCONFIG:=CONFIG_NET_ACT_CONNMARK
716   FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
717   AUTOLOAD:=$(call AutoLoad,71, act_connmark)
718 endef
719 $(eval $(call KernelPackage,sched-connmark))
720
721 define KernelPackage/sched-esfq
722   SUBMENU:=$(NETWORK_SUPPORT_MENU)
723   TITLE:=Traffic shaper ESFQ support
724   DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack
725   KCONFIG:= \
726         CONFIG_NET_SCH_ESFQ \
727         CONFIG_NET_SCH_ESFQ_NFCT=y
728   FILES:=$(LINUX_DIR)/net/sched/sch_esfq.ko
729   AUTOLOAD:=$(call AutoLoad,72, sch_esfq)
730 endef
731 $(eval $(call KernelPackage,sched-esfq))
732
733 define KernelPackage/sched
734   SUBMENU:=$(NETWORK_SUPPORT_MENU)
735   TITLE:=Extra traffic schedulers
736   DEPENDS:=+kmod-sched-core +kmod-ipt-core
737   KCONFIG:= \
738         CONFIG_NET_SCH_CODEL \
739         CONFIG_NET_SCH_DSMARK \
740         CONFIG_NET_SCH_HTB \
741         CONFIG_NET_SCH_FIFO \
742         CONFIG_NET_SCH_GRED \
743         CONFIG_NET_SCH_PRIO \
744         CONFIG_NET_SCH_RED \
745         CONFIG_NET_SCH_TBF \
746         CONFIG_NET_SCH_SFQ \
747         CONFIG_NET_SCH_TEQL \
748         CONFIG_NET_CLS_BASIC \
749         CONFIG_NET_ACT_POLICE \
750         CONFIG_NET_ACT_IPT \
751         CONFIG_NET_EMATCH_CMP \
752         CONFIG_NET_EMATCH_NBYTE \
753         CONFIG_NET_EMATCH_META \
754         CONFIG_NET_EMATCH_TEXT
755   FILES:=$(SCHED_FILES_EXTRA)
756   AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
757 endef
758
759 define KernelPackage/sched/description
760  Extra kernel schedulers modules for IP traffic
761 endef
762
763 $(eval $(call KernelPackage,sched))
764
765
766 define KernelPackage/ax25
767   SUBMENU:=$(NETWORK_SUPPORT_MENU)
768   TITLE:=AX25 support
769   KCONFIG:= \
770         CONFIG_AX25 \
771         CONFIG_MKISS
772   FILES:= \
773         $(LINUX_DIR)/net/ax25/ax25.ko \
774         $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
775   AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
776   $(call AddDepends/crc16)
777 endef
778
779 define KernelPackage/ax25/description
780  Kernel modules for AX25 support
781 endef
782
783 $(eval $(call KernelPackage,ax25))
784
785
786 define KernelPackage/mp-alg
787   SUBMENU:=$(NETWORK_SUPPORT_MENU)
788   TITLE:=ECMP caching algorithms
789   KCONFIG:= \
790         CONFIG_IP_ROUTE_MULTIPATH_RR \
791         CONFIG_IP_ROUTE_MULTIPATH_RANDOM \
792         CONFIG_IP_ROUTE_MULTIPATH_WRANDOM \
793         CONFIG_IP_ROUTE_MULTIPATH_DRR
794   FILES:= \
795         $(LINUX_DIR)/net/ipv4/multipath_rr.ko \
796         $(LINUX_DIR)/net/ipv4/multipath_random.ko \
797         $(LINUX_DIR)/net/ipv4/multipath_wrandom.ko \
798         $(LINUX_DIR)/net/ipv4/multipath_drr.ko
799   AUTOLOAD:=$(call AutoLoad,35,multipath_rr multipath_random multipath_wrandom multipath_drr)
800 endef
801
802 define KernelPackage/mp-alg/description
803  Kernel modules that provide several different algorithms for multipath
804  route selection from the route cache. The iproute "mpath" argument allows
805  specifying which algorithm to use for routes.
806  quagga (at least <=0.99.6) requires a multipath patch to support this
807  cached mp route feature.
808 endef
809
810 $(eval $(call KernelPackage,mp-alg))
811
812
813 define KernelPackage/pktgen
814   SUBMENU:=$(NETWORK_SUPPORT_MENU)
815   DEPENDS:=@!TARGET_uml
816   TITLE:=Network packet generator
817   KCONFIG:=CONFIG_NET_PKTGEN
818   FILES:=$(LINUX_DIR)/net/core/pktgen.ko
819   AUTOLOAD:=$(call AutoLoad,99,pktgen)
820 endef
821
822 define KernelPackage/pktgen/description
823   Kernel modules for the Network Packet Generator
824 endef
825
826 $(eval $(call KernelPackage,pktgen))
827
828 define KernelPackage/l2tp
829   SUBMENU:=$(NETWORK_SUPPORT_MENU)
830   TITLE:=Layer Two Tunneling Protocol (L2TP)
831   DEPENDS:=+IPV6:kmod-ipv6
832   KCONFIG:=CONFIG_L2TP \
833         CONFIG_L2TP_V3=y \
834         CONFIG_L2TP_DEBUGFS=n
835   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
836         $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
837   AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
838 endef
839
840 define KernelPackage/l2tp/description
841  Kernel modules for L2TP V3 Support
842 endef
843
844 $(eval $(call KernelPackage,l2tp))
845
846
847 define KernelPackage/l2tp-eth
848   SUBMENU:=$(NETWORK_SUPPORT_MENU)
849   TITLE:=L2TP ethernet pseudowire support for L2TPv3
850   DEPENDS:=+kmod-l2tp
851   KCONFIG:=CONFIG_L2TP_ETH
852   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
853   AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
854 endef
855
856 define KernelPackage/l2tp-eth/description
857  Kernel modules for L2TP ethernet pseudowire support for L2TPv3
858 endef
859
860 $(eval $(call KernelPackage,l2tp-eth))
861
862 define KernelPackage/l2tp-ip
863   SUBMENU:=$(NETWORK_SUPPORT_MENU)
864   TITLE:=L2TP IP encapsulation for L2TPv3
865   DEPENDS:=+kmod-l2tp
866   KCONFIG:=CONFIG_L2TP_IP
867   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ip.ko
868   AUTOLOAD:=$(call AutoLoad,33,l2tp_ip)
869 endef
870
871 define KernelPackage/l2tp-ip/description
872  Kernel modules for L2TP IP encapsulation for L2TPv3
873 endef
874
875 $(eval $(call KernelPackage,l2tp-ip))
876
877
878 define KernelPackage/sctp
879   SUBMENU:=$(NETWORK_SUPPORT_MENU)
880   TITLE:=SCTP protocol kernel support
881   KCONFIG:=\
882      CONFIG_IP_SCTP \
883      CONFIG_SCTP_DBG_MSG=n \
884      CONFIG_SCTP_DBG_OBJCNT=n \
885      CONFIG_SCTP_HMAC_NONE=n \
886      CONFIG_SCTP_HMAC_SHA1=n \
887      CONFIG_SCTP_HMAC_MD5=y \
888      CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
889      CONFIG_SCTP_COOKIE_HMAC_MD5=y \
890      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
891      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
892      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
893   FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
894   AUTOLOAD:= $(call AutoLoad,32,sctp)
895   DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac +IPV6:kmod-ipv6
896 endef
897
898 define KernelPackage/sctp/description
899  Kernel modules for SCTP protocol support
900 endef
901
902 $(eval $(call KernelPackage,sctp))
903
904
905 define KernelPackage/netem
906   SUBMENU:=$(NETWORK_SUPPORT_MENU)
907   TITLE:=Network emulation functionality
908   DEPENDS:=+kmod-sched
909   KCONFIG:=CONFIG_NET_SCH_NETEM
910   FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
911   AUTOLOAD:=$(call AutoLoad,99,netem)
912 endef
913
914 define KernelPackage/netem/description
915   Kernel modules for emulating the properties of wide area networks
916 endef
917
918 $(eval $(call KernelPackage,netem))
919
920 define KernelPackage/slip
921   SUBMENU:=$(NETWORK_SUPPORT_MENU)
922   DEPENDS:=+kmod-slhc
923   TITLE:=SLIP modules
924   KCONFIG:= \
925        CONFIG_SLIP \
926        CONFIG_SLIP_COMPRESSED=y \
927        CONFIG_SLIP_SMART=y \
928        CONFIG_SLIP_MODE_SLIP6=y
929
930   FILES:= \
931        $(LINUX_DIR)/drivers/net/slip/slip.ko
932   AUTOLOAD:=$(call AutoLoad,30,slip)
933 endef
934
935 define KernelPackage/slip/description
936  Kernel modules for SLIP support
937 endef
938
939 $(eval $(call KernelPackage,slip))
940