a3abf0da08617ea95b3476d22dd3892bf130664a
[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 define KernelPackage/udptunnel6
148   SUBMENU:=$(NETWORK_SUPPORT_MENU)
149   TITLE:=UDP tunneling support
150   DEPENDS:=@!(LINUX_3_8||LINUX_3_10||LINUX_3_13||LINUX_3_14) +kmod-ipv6
151   KCONFIG:=CONFIG_NET_UDP_TUNNEL
152   FILES:=$(LINUX_DIR)/net/ipv6/ip6_udp_tunnel.ko
153   AUTOLOAD:=$(call AutoLoad,32,ip6_udp_tunnel)
154 endef
155
156 $(eval $(call KernelPackage,udptunnel6))
157
158 define KernelPackage/vxlan
159   SUBMENU:=$(NETWORK_SUPPORT_MENU)
160   TITLE:=Native VXLAN Kernel support
161   DEPENDS:=+kmod-iptunnel +IPV6:kmod-udptunnel6
162   KCONFIG:=CONFIG_VXLAN
163   FILES:=$(LINUX_DIR)/drivers/net/vxlan.ko
164   AUTOLOAD:=$(call AutoLoad,33,vxlan)
165 endef
166
167 define KernelPackage/vxlan/description
168  Kernel module for supporting VXLAN in the Kernel.
169  Requires Kernel 3.12 or newer.
170 endef
171
172 $(eval $(call KernelPackage,vxlan))
173
174 define KernelPackage/capi
175   SUBMENU:=$(NETWORK_SUPPORT_MENU)
176   TITLE:=CAPI (ISDN) Support
177   KCONFIG:= \
178         CONFIG_ISDN_CAPI \
179         CONFIG_ISDN_CAPI_CAPI20 \
180         CONFIG_ISDN_CAPIFS \
181         CONFIG_ISDN_CAPI_CAPIFS
182   FILES:= \
183         $(LINUX_DIR)/drivers/isdn/capi/kernelcapi.ko \
184         $(LINUX_DIR)/drivers/isdn/capi/capi.ko
185   AUTOLOAD:=$(call AutoLoad,30,kernelcapi capi)
186 endef
187
188 define KernelPackage/capi/description
189  Kernel module for basic CAPI (ISDN) support
190 endef
191
192 $(eval $(call KernelPackage,capi))
193
194 define KernelPackage/misdn
195   SUBMENU:=$(NETWORK_SUPPORT_MENU)
196   TITLE:=mISDN (ISDN) Support
197   KCONFIG:= \
198         CONFIG_ISDN=y \
199         CONFIG_MISDN \
200         CONFIG_MISDN_DSP \
201         CONFIG_MISDN_L1OIP
202   FILES:= \
203         $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
204         $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
205         $(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
206   AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
207 endef
208
209 define KernelPackage/misdn/description
210   Modular ISDN driver support
211 endef
212
213 $(eval $(call KernelPackage,misdn))
214
215
216 define KernelPackage/isdn4linux
217   SUBMENU:=$(NETWORK_SUPPORT_MENU)
218   TITLE:=Old ISDN4Linux (deprecated)
219   DEPENDS:=+kmod-ppp
220   KCONFIG:= \
221         CONFIG_ISDN=y \
222     CONFIG_ISDN_I4L \
223     CONFIG_ISDN_PPP=y \
224     CONFIG_ISDN_PPP_VJ=y \
225     CONFIG_ISDN_MPP=y \
226     CONFIG_IPPP_FILTER=y \
227     CONFIG_ISDN_PPP_BSDCOMP \
228     CONFIG_ISDN_CAPI_MIDDLEWARE=y \
229     CONFIG_ISDN_CAPI_CAPIFS_BOOL=y \
230     CONFIG_ISDN_AUDIO=y \
231     CONFIG_ISDN_TTY_FAX=y \
232     CONFIG_ISDN_X25=y \
233     CONFIG_ISDN_DIVERSION
234   FILES:= \
235     $(LINUX_DIR)/drivers/isdn/divert/dss1_divert.ko \
236         $(LINUX_DIR)/drivers/isdn/i4l/isdn.ko \
237         $(LINUX_DIR)/drivers/isdn/i4l/isdn_bsdcomp.ko
238   AUTOLOAD:=$(call AutoLoad,40,isdn isdn_bsdcomp dss1_divert)
239 endef
240
241 define KernelPackage/isdn4linux/description
242   This driver allows you to use an ISDN adapter for networking
243 endef
244
245 $(eval $(call KernelPackage,isdn4linux))
246
247
248 define KernelPackage/ipip
249   SUBMENU:=$(NETWORK_SUPPORT_MENU)
250   TITLE:=IP-in-IP encapsulation
251   DEPENDS:=+kmod-iptunnel +kmod-iptunnel4
252   KCONFIG:=CONFIG_NET_IPIP
253   FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
254   AUTOLOAD:=$(call AutoLoad,32,ipip)
255 endef
256
257 define KernelPackage/ipip/description
258  Kernel modules for IP-in-IP encapsulation
259 endef
260
261 $(eval $(call KernelPackage,ipip))
262
263
264 IPSEC-m:= \
265         xfrm/xfrm_algo \
266         xfrm/xfrm_ipcomp \
267         xfrm/xfrm_user \
268         key/af_key \
269
270 define KernelPackage/ipsec
271   SUBMENU:=$(NETWORK_SUPPORT_MENU)
272   TITLE:=IPsec related modules (IPv4 and IPv6)
273   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
274   KCONFIG:= \
275         CONFIG_NET_KEY \
276         CONFIG_XFRM_USER \
277         CONFIG_INET_IPCOMP \
278         CONFIG_XFRM_IPCOMP
279   FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
280   AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
281 endef
282
283 define KernelPackage/ipsec/description
284  Kernel modules for IPsec support in both IPv4 and IPv6.
285  Includes:
286  - af_key
287  - xfrm_ipcomp
288  - xfrm_user
289 endef
290
291 $(eval $(call KernelPackage,ipsec))
292
293
294 IPSEC4-m:= \
295         ipv4/ah4 \
296         ipv4/esp4 \
297         ipv4/xfrm4_mode_beet \
298         ipv4/xfrm4_mode_transport \
299         ipv4/xfrm4_mode_tunnel \
300         ipv4/xfrm4_tunnel \
301         ipv4/ipcomp \
302
303 define KernelPackage/ipsec4
304   SUBMENU:=$(NETWORK_SUPPORT_MENU)
305   TITLE:=IPsec related modules (IPv4)
306   DEPENDS:=kmod-ipsec +kmod-iptunnel4
307   KCONFIG:= \
308         CONFIG_INET_AH \
309         CONFIG_INET_ESP \
310         CONFIG_INET_IPCOMP \
311         CONFIG_INET_XFRM_MODE_BEET \
312         CONFIG_INET_XFRM_MODE_TRANSPORT \
313         CONFIG_INET_XFRM_MODE_TUNNEL \
314         CONFIG_INET_XFRM_TUNNEL
315   FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
316   AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
317 endef
318
319 define KernelPackage/ipsec4/description
320  Kernel modules for IPsec support in IPv4.
321  Includes:
322  - ah4
323  - esp4
324  - ipcomp4
325  - xfrm4_mode_beet
326  - xfrm4_mode_transport
327  - xfrm4_mode_tunnel
328  - xfrm4_tunnel
329 endef
330
331 $(eval $(call KernelPackage,ipsec4))
332
333
334 IPSEC6-m:= \
335         ipv6/ah6 \
336         ipv6/esp6 \
337         ipv6/xfrm6_mode_beet \
338         ipv6/xfrm6_mode_transport \
339         ipv6/xfrm6_mode_tunnel \
340         ipv6/xfrm6_tunnel \
341         ipv6/ipcomp6 \
342
343 define KernelPackage/ipsec6
344   SUBMENU:=$(NETWORK_SUPPORT_MENU)
345   TITLE:=IPsec related modules (IPv6)
346   DEPENDS:=kmod-ipsec +kmod-iptunnel6
347   KCONFIG:= \
348         CONFIG_INET6_AH \
349         CONFIG_INET6_ESP \
350         CONFIG_INET6_IPCOMP \
351         CONFIG_INET6_XFRM_MODE_BEET \
352         CONFIG_INET6_XFRM_MODE_TRANSPORT \
353         CONFIG_INET6_XFRM_MODE_TUNNEL \
354         CONFIG_INET6_XFRM_TUNNEL
355   FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
356   AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
357 endef
358
359 define KernelPackage/ipsec6/description
360  Kernel modules for IPsec support in IPv6.
361  Includes:
362  - ah6
363  - esp6
364  - ipcomp6
365  - xfrm6_mode_beet
366  - xfrm6_mode_transport
367  - xfrm6_mode_tunnel
368  - xfrm6_tunnel
369 endef
370
371 $(eval $(call KernelPackage,ipsec6))
372
373
374 define KernelPackage/iptunnel
375   SUBMENU:=$(NETWORK_SUPPORT_MENU)
376   TITLE:=IP tunnel support
377   HIDDEN:=1
378   KCONFIG:= \
379         CONFIG_NET_IP_TUNNEL
380   FILES:=$(LINUX_DIR)/net/ipv4/ip_tunnel.ko
381   AUTOLOAD:=$(call AutoLoad,31,ip_tunnel)
382 endef
383
384 define KernelPackage/iptunnel/description
385  Kernel module for generic IP tunnel support
386 endef
387
388 $(eval $(call KernelPackage,iptunnel))
389
390
391 define KernelPackage/iptunnel4
392   SUBMENU:=$(NETWORK_SUPPORT_MENU)
393   TITLE:=IPv4 tunneling
394   HIDDEN:=1
395   KCONFIG:= \
396         CONFIG_INET_TUNNEL
397   FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
398   AUTOLOAD:=$(call AutoLoad,31,tunnel4)
399 endef
400
401 define KernelPackage/iptunnel4/description
402  Kernel modules for IPv4 tunneling
403 endef
404
405 $(eval $(call KernelPackage,iptunnel4))
406
407
408 define KernelPackage/iptunnel6
409   SUBMENU:=$(NETWORK_SUPPORT_MENU)
410   TITLE:=IPv6 tunneling
411   DEPENDS:= +kmod-ipv6
412   KCONFIG:= \
413         CONFIG_INET6_TUNNEL
414   FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
415   AUTOLOAD:=$(call AutoLoad,31,tunnel6)
416 endef
417
418 define KernelPackage/iptunnel6/description
419  Kernel modules for IPv6 tunneling
420 endef
421
422 $(eval $(call KernelPackage,iptunnel6))
423
424
425 define KernelPackage/ipv6
426   SUBMENU:=$(NETWORK_SUPPORT_MENU)
427   TITLE:=IPv6 support
428   KCONFIG:= \
429         CONFIG_IPV6 \
430         CONFIG_IPV6_PRIVACY=y \
431         CONFIG_IPV6_MULTIPLE_TABLES=y \
432         CONFIG_IPV6_MROUTE=y \
433         CONFIG_IPV6_PIMSM_V2=n \
434         CONFIG_IPV6_SUBTREES=y
435   FILES:=$(LINUX_DIR)/net/ipv6/ipv6.ko
436   AUTOLOAD:=$(call AutoLoad,20,ipv6)
437 endef
438
439 define KernelPackage/ipv6/description
440  Kernel modules for IPv6 support
441 endef
442
443 $(eval $(call KernelPackage,ipv6))
444
445
446 define KernelPackage/sit
447   SUBMENU:=$(NETWORK_SUPPORT_MENU)
448   DEPENDS:=+kmod-ipv6 +kmod-iptunnel +kmod-iptunnel4
449   TITLE:=IPv6-in-IPv4 tunnel
450   KCONFIG:=CONFIG_IPV6_SIT \
451         CONFIG_IPV6_SIT_6RD=y
452   FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
453   AUTOLOAD:=$(call AutoLoad,32,sit)
454 endef
455
456 define KernelPackage/sit/description
457  Kernel modules for IPv6-in-IPv4 tunnelling
458 endef
459
460 $(eval $(call KernelPackage,sit))
461
462
463 define KernelPackage/ip6-tunnel
464   SUBMENU:=$(NETWORK_SUPPORT_MENU)
465   TITLE:=IP-in-IPv6 tunnelling
466   DEPENDS:= +kmod-ipv6 +kmod-iptunnel6
467   KCONFIG:= CONFIG_IPV6_TUNNEL
468   FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
469   AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
470 endef
471
472 define KernelPackage/ip6-tunnel/description
473  Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
474 endef
475
476 $(eval $(call KernelPackage,ip6-tunnel))
477
478
479 define KernelPackage/gre
480   SUBMENU:=$(NETWORK_SUPPORT_MENU)
481   TITLE:=GRE support
482   DEPENDS:=+PACKAGE_kmod-ipv6:kmod-ipv6 +kmod-iptunnel
483   KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
484   FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
485   AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
486 endef
487
488 define KernelPackage/gre/description
489  Generic Routing Encapsulation support
490 endef
491
492 $(eval $(call KernelPackage,gre))
493
494
495 define KernelPackage/gre6
496   SUBMENU:=$(NETWORK_SUPPORT_MENU)
497   TITLE:=GRE support over IPV6
498   DEPENDS:=+kmod-ipv6 +kmod-iptunnel +kmod-ip6-tunnel
499   KCONFIG:=CONFIG_IPV6_GRE
500   FILES:=$(LINUX_DIR)/net/ipv6/ip6_gre.ko
501   AUTOLOAD:=$(call AutoLoad,39,ip6_gre)
502 endef
503
504 define KernelPackage/gre6/description
505  Generic Routing Encapsulation support over IPv6
506 endef
507
508 $(eval $(call KernelPackage,gre6))
509
510
511 define KernelPackage/tun
512   SUBMENU:=$(NETWORK_SUPPORT_MENU)
513   TITLE:=Universal TUN/TAP driver
514   KCONFIG:=CONFIG_TUN
515   FILES:=$(LINUX_DIR)/drivers/net/tun.ko
516   AUTOLOAD:=$(call AutoLoad,30,tun)
517 endef
518
519 define KernelPackage/tun/description
520  Kernel support for the TUN/TAP tunneling device
521 endef
522
523 $(eval $(call KernelPackage,tun))
524
525
526 define KernelPackage/veth
527   SUBMENU:=$(NETWORK_SUPPORT_MENU)
528   TITLE:=Virtual ethernet pair device
529   KCONFIG:=CONFIG_VETH
530   FILES:=$(LINUX_DIR)/drivers/net/veth.ko
531   AUTOLOAD:=$(call AutoLoad,30,veth)
532 endef
533
534 define KernelPackage/veth/description
535  This device is a local ethernet tunnel. Devices are created in pairs.
536  When one end receives the packet it appears on its pair and vice
537  versa.
538 endef
539
540 $(eval $(call KernelPackage,veth))
541
542
543 define KernelPackage/slhc
544   SUBMENU:=$(NETWORK_SUPPORT_MENU)
545   HIDDEN:=1
546   TITLE:=Serial Line Header Compression
547   DEPENDS:=+kmod-lib-crc-ccitt
548   KCONFIG:=CONFIG_SLHC
549   FILES:=$(LINUX_DIR)/drivers/net/slip/slhc.ko
550 endef
551
552 $(eval $(call KernelPackage,slhc))
553
554
555 define KernelPackage/ppp
556   SUBMENU:=$(NETWORK_SUPPORT_MENU)
557   TITLE:=PPP modules
558   DEPENDS:=+kmod-lib-crc-ccitt +kmod-slhc
559   KCONFIG:= \
560         CONFIG_PPP \
561         CONFIG_PPP_ASYNC
562   FILES:= \
563         $(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
564         $(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko
565   AUTOLOAD:=$(call AutoProbe,ppp_async)
566 endef
567
568 define KernelPackage/ppp/description
569  Kernel modules for PPP support
570 endef
571
572 $(eval $(call KernelPackage,ppp))
573
574
575 define KernelPackage/ppp-synctty
576   SUBMENU:=$(NETWORK_SUPPORT_MENU)
577   TITLE:=PPP sync tty support
578   DEPENDS:=kmod-ppp
579   KCONFIG:=CONFIG_PPP_SYNC_TTY
580   FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
581   AUTOLOAD:=$(call AutoProbe,ppp_synctty)
582 endef
583
584 define KernelPackage/ppp-synctty/description
585  Kernel modules for PPP sync tty support
586 endef
587
588 $(eval $(call KernelPackage,ppp-synctty))
589
590
591 define KernelPackage/pppox
592   SUBMENU:=$(NETWORK_SUPPORT_MENU)
593   TITLE:=PPPoX helper
594   DEPENDS:=kmod-ppp
595   KCONFIG:=CONFIG_PPPOE
596   FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
597 endef
598
599 define KernelPackage/pppox/description
600  Kernel helper module for PPPoE and PPTP support
601 endef
602
603 $(eval $(call KernelPackage,pppox))
604
605
606 define KernelPackage/pppoe
607   SUBMENU:=$(NETWORK_SUPPORT_MENU)
608   TITLE:=PPPoE support
609   DEPENDS:=kmod-ppp +kmod-pppox
610   KCONFIG:=CONFIG_PPPOE
611   FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
612   AUTOLOAD:=$(call AutoProbe,pppoe)
613 endef
614
615 define KernelPackage/pppoe/description
616  Kernel module for PPPoE (PPP over Ethernet) support
617 endef
618
619 $(eval $(call KernelPackage,pppoe))
620
621
622 define KernelPackage/pppoa
623   SUBMENU:=$(NETWORK_SUPPORT_MENU)
624   TITLE:=PPPoA support
625   DEPENDS:=kmod-ppp +kmod-atm
626   KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
627   FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
628   AUTOLOAD:=$(call AutoLoad,40,pppoatm)
629 endef
630
631 define KernelPackage/pppoa/description
632  Kernel modules for PPPoA (PPP over ATM) support
633 endef
634
635 $(eval $(call KernelPackage,pppoa))
636
637
638 define KernelPackage/pptp
639   SUBMENU:=$(NETWORK_SUPPORT_MENU)
640   TITLE:=PPtP support
641   DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
642   KCONFIG:=CONFIG_PPTP
643   FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
644   AUTOLOAD:=$(call AutoProbe,pptp)
645 endef
646
647 $(eval $(call KernelPackage,pptp))
648
649
650 define KernelPackage/pppol2tp
651   SUBMENU:=$(NETWORK_SUPPORT_MENU)
652   TITLE:=PPPoL2TP support
653   DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
654   KCONFIG:=CONFIG_PPPOL2TP
655   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
656   AUTOLOAD:=$(call AutoProbe,l2tp_ppp)
657 endef
658
659 define KernelPackage/pppol2tp/description
660   Kernel modules for PPPoL2TP (PPP over L2TP) support
661 endef
662
663 $(eval $(call KernelPackage,pppol2tp))
664
665
666 define KernelPackage/ipoa
667   SUBMENU:=$(NETWORK_SUPPORT_MENU)
668   TITLE:=IPoA support
669   DEPENDS:=kmod-atm
670   KCONFIG:=CONFIG_ATM_CLIP
671   FILES:=$(LINUX_DIR)/net/atm/clip.ko
672   AUTOLOAD:=$(call AutoProbe,clip)
673 endef
674
675 define KernelPackage/ipoa/description
676   Kernel modules for IPoA (IP over ATM) support
677 endef
678
679 $(eval $(call KernelPackage,ipoa))
680
681
682 define KernelPackage/mppe
683   SUBMENU:=$(NETWORK_SUPPORT_MENU)
684   TITLE:=Microsoft PPP compression/encryption
685   DEPENDS:=kmod-ppp +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
686   KCONFIG:= \
687         CONFIG_PPP_MPPE_MPPC \
688         CONFIG_PPP_MPPE
689   FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
690   AUTOLOAD:=$(call AutoProbe,ppp_mppe)
691 endef
692
693 define KernelPackage/mppe/description
694  Kernel modules for Microsoft PPP compression/encryption
695 endef
696
697 $(eval $(call KernelPackage,mppe))
698
699
700 SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
701 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
702 SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark sch_esfq
703 SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES))
704 SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES)))
705 SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
706
707 define KernelPackage/sched-core
708   SUBMENU:=$(NETWORK_SUPPORT_MENU)
709   TITLE:=Traffic schedulers
710   KCONFIG:= \
711         CONFIG_NET_SCHED=y \
712         CONFIG_NET_SCH_HFSC \
713         CONFIG_NET_SCH_INGRESS \
714         CONFIG_NET_SCH_FQ_CODEL \
715         CONFIG_NET_CLS=y \
716         CONFIG_NET_CLS_ACT=y \
717         CONFIG_NET_CLS_FLOW \
718         CONFIG_NET_CLS_FW \
719         CONFIG_NET_CLS_ROUTE4 \
720         CONFIG_NET_CLS_TCINDEX \
721         CONFIG_NET_CLS_U32 \
722         CONFIG_NET_ACT_MIRRED \
723         CONFIG_NET_ACT_SKBEDIT \
724         CONFIG_NET_EMATCH=y \
725         CONFIG_NET_EMATCH_U32
726   FILES:=$(SCHED_FILES)
727   AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
728 endef
729
730 define KernelPackage/sched-core/description
731  Core kernel scheduler support for IP traffic
732 endef
733
734 $(eval $(call KernelPackage,sched-core))
735
736
737 define KernelPackage/sched-connmark
738   SUBMENU:=$(NETWORK_SUPPORT_MENU)
739   TITLE:=Traffic shaper conntrack mark support
740   DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
741   KCONFIG:=CONFIG_NET_ACT_CONNMARK
742   FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
743   AUTOLOAD:=$(call AutoLoad,71, act_connmark)
744 endef
745 $(eval $(call KernelPackage,sched-connmark))
746
747 define KernelPackage/sched-esfq
748   SUBMENU:=$(NETWORK_SUPPORT_MENU)
749   TITLE:=Traffic shaper ESFQ support
750   DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack
751   KCONFIG:= \
752         CONFIG_NET_SCH_ESFQ \
753         CONFIG_NET_SCH_ESFQ_NFCT=y
754   FILES:=$(LINUX_DIR)/net/sched/sch_esfq.ko
755   AUTOLOAD:=$(call AutoLoad,72, sch_esfq)
756 endef
757 $(eval $(call KernelPackage,sched-esfq))
758
759 define KernelPackage/sched
760   SUBMENU:=$(NETWORK_SUPPORT_MENU)
761   TITLE:=Extra traffic schedulers
762   DEPENDS:=+kmod-sched-core +kmod-ipt-core
763   KCONFIG:= \
764         CONFIG_NET_SCH_CODEL \
765         CONFIG_NET_SCH_DSMARK \
766         CONFIG_NET_SCH_HTB \
767         CONFIG_NET_SCH_FIFO \
768         CONFIG_NET_SCH_GRED \
769         CONFIG_NET_SCH_PRIO \
770         CONFIG_NET_SCH_RED \
771         CONFIG_NET_SCH_TBF \
772         CONFIG_NET_SCH_SFQ \
773         CONFIG_NET_SCH_TEQL \
774         CONFIG_NET_CLS_BASIC \
775         CONFIG_NET_ACT_POLICE \
776         CONFIG_NET_ACT_IPT \
777         CONFIG_NET_EMATCH_CMP \
778         CONFIG_NET_EMATCH_NBYTE \
779         CONFIG_NET_EMATCH_META \
780         CONFIG_NET_EMATCH_TEXT
781   FILES:=$(SCHED_FILES_EXTRA)
782   AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
783 endef
784
785 define KernelPackage/sched/description
786  Extra kernel schedulers modules for IP traffic
787 endef
788
789 $(eval $(call KernelPackage,sched))
790
791
792 define KernelPackage/ax25
793   SUBMENU:=$(NETWORK_SUPPORT_MENU)
794   TITLE:=AX25 support
795   KCONFIG:= \
796         CONFIG_AX25 \
797         CONFIG_MKISS
798   FILES:= \
799         $(LINUX_DIR)/net/ax25/ax25.ko \
800         $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
801   AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
802   $(call AddDepends/crc16)
803 endef
804
805 define KernelPackage/ax25/description
806  Kernel modules for AX25 support
807 endef
808
809 $(eval $(call KernelPackage,ax25))
810
811
812 define KernelPackage/mp-alg
813   SUBMENU:=$(NETWORK_SUPPORT_MENU)
814   TITLE:=ECMP caching algorithms
815   KCONFIG:= \
816         CONFIG_IP_ROUTE_MULTIPATH_RR \
817         CONFIG_IP_ROUTE_MULTIPATH_RANDOM \
818         CONFIG_IP_ROUTE_MULTIPATH_WRANDOM \
819         CONFIG_IP_ROUTE_MULTIPATH_DRR
820   FILES:= \
821         $(LINUX_DIR)/net/ipv4/multipath_rr.ko \
822         $(LINUX_DIR)/net/ipv4/multipath_random.ko \
823         $(LINUX_DIR)/net/ipv4/multipath_wrandom.ko \
824         $(LINUX_DIR)/net/ipv4/multipath_drr.ko
825   AUTOLOAD:=$(call AutoLoad,35,multipath_rr multipath_random multipath_wrandom multipath_drr)
826 endef
827
828 define KernelPackage/mp-alg/description
829  Kernel modules that provide several different algorithms for multipath
830  route selection from the route cache. The iproute "mpath" argument allows
831  specifying which algorithm to use for routes.
832  quagga (at least <=0.99.6) requires a multipath patch to support this
833  cached mp route feature.
834 endef
835
836 $(eval $(call KernelPackage,mp-alg))
837
838
839 define KernelPackage/pktgen
840   SUBMENU:=$(NETWORK_SUPPORT_MENU)
841   DEPENDS:=@!TARGET_uml
842   TITLE:=Network packet generator
843   KCONFIG:=CONFIG_NET_PKTGEN
844   FILES:=$(LINUX_DIR)/net/core/pktgen.ko
845   AUTOLOAD:=$(call AutoLoad,99,pktgen)
846 endef
847
848 define KernelPackage/pktgen/description
849   Kernel modules for the Network Packet Generator
850 endef
851
852 $(eval $(call KernelPackage,pktgen))
853
854 define KernelPackage/l2tp
855   SUBMENU:=$(NETWORK_SUPPORT_MENU)
856   TITLE:=Layer Two Tunneling Protocol (L2TP)
857   DEPENDS:=+IPV6:kmod-ipv6
858   KCONFIG:=CONFIG_L2TP \
859         CONFIG_L2TP_V3=y \
860         CONFIG_L2TP_DEBUGFS=n
861   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
862         $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
863   AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
864 endef
865
866 define KernelPackage/l2tp/description
867  Kernel modules for L2TP V3 Support
868 endef
869
870 $(eval $(call KernelPackage,l2tp))
871
872
873 define KernelPackage/l2tp-eth
874   SUBMENU:=$(NETWORK_SUPPORT_MENU)
875   TITLE:=L2TP ethernet pseudowire support for L2TPv3
876   DEPENDS:=+kmod-l2tp
877   KCONFIG:=CONFIG_L2TP_ETH
878   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
879   AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
880 endef
881
882 define KernelPackage/l2tp-eth/description
883  Kernel modules for L2TP ethernet pseudowire support for L2TPv3
884 endef
885
886 $(eval $(call KernelPackage,l2tp-eth))
887
888 define KernelPackage/l2tp-ip
889   SUBMENU:=$(NETWORK_SUPPORT_MENU)
890   TITLE:=L2TP IP encapsulation for L2TPv3
891   DEPENDS:=+kmod-l2tp
892   KCONFIG:=CONFIG_L2TP_IP
893   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ip.ko
894   AUTOLOAD:=$(call AutoLoad,33,l2tp_ip)
895 endef
896
897 define KernelPackage/l2tp-ip/description
898  Kernel modules for L2TP IP encapsulation for L2TPv3
899 endef
900
901 $(eval $(call KernelPackage,l2tp-ip))
902
903
904 define KernelPackage/sctp
905   SUBMENU:=$(NETWORK_SUPPORT_MENU)
906   TITLE:=SCTP protocol kernel support
907   KCONFIG:=\
908      CONFIG_IP_SCTP \
909      CONFIG_SCTP_DBG_MSG=n \
910      CONFIG_SCTP_DBG_OBJCNT=n \
911      CONFIG_SCTP_HMAC_NONE=n \
912      CONFIG_SCTP_HMAC_SHA1=n \
913      CONFIG_SCTP_HMAC_MD5=y \
914      CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
915      CONFIG_SCTP_COOKIE_HMAC_MD5=y \
916      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
917      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
918      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
919   FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
920   AUTOLOAD:= $(call AutoLoad,32,sctp)
921   DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac +IPV6:kmod-ipv6
922 endef
923
924 define KernelPackage/sctp/description
925  Kernel modules for SCTP protocol support
926 endef
927
928 $(eval $(call KernelPackage,sctp))
929
930
931 define KernelPackage/netem
932   SUBMENU:=$(NETWORK_SUPPORT_MENU)
933   TITLE:=Network emulation functionality
934   DEPENDS:=+kmod-sched
935   KCONFIG:=CONFIG_NET_SCH_NETEM
936   FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
937   AUTOLOAD:=$(call AutoLoad,99,netem)
938 endef
939
940 define KernelPackage/netem/description
941   Kernel modules for emulating the properties of wide area networks
942 endef
943
944 $(eval $(call KernelPackage,netem))
945
946 define KernelPackage/slip
947   SUBMENU:=$(NETWORK_SUPPORT_MENU)
948   DEPENDS:=+kmod-slhc
949   TITLE:=SLIP modules
950   KCONFIG:= \
951        CONFIG_SLIP \
952        CONFIG_SLIP_COMPRESSED=y \
953        CONFIG_SLIP_SMART=y \
954        CONFIG_SLIP_MODE_SLIP6=y
955
956   FILES:= \
957        $(LINUX_DIR)/drivers/net/slip/slip.ko
958   AUTOLOAD:=$(call AutoLoad,30,slip)
959 endef
960
961 define KernelPackage/slip/description
962  Kernel modules for SLIP support
963 endef
964
965 $(eval $(call KernelPackage,slip))
966
967 define KernelPackage/dnsresolver
968   SUBMENU:=$(NETWORK_SUPPORT_MENU)
969   TITLE:=In-kernel DNS Resolver
970   KCONFIG:= CONFIG_DNS_RESOLVER
971   FILES:=$(LINUX_DIR)/net/dns_resolver/dns_resolver.ko
972   AUTOLOAD:=$(call AutoLoad,30,dns_resolver)
973 endef
974
975 $(eval $(call KernelPackage,dnsresolver))
976
977 define KernelPackage/rxrpc
978   SUBMENU:=$(NETWORK_SUPPORT_MENU)
979   TITLE:=AF_RXRPC support
980   KCONFIG:= \
981         CONFIG_AF_RXRPC \
982         CONFIG_RXKAD=m \
983         CONFIG_AF_RXRPC_DEBUG=n
984   FILES:= \
985         $(LINUX_DIR)/net/rxrpc/af-rxrpc.ko \
986         $(LINUX_DIR)/net/rxrpc/rxkad.ko
987   AUTOLOAD:=$(call AutoLoad,30,rxkad af-rxrpc)
988   DEPENDS:=+kmod-crypto-core +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt
989 endef
990
991 define KernelPackage/rxrpc/description
992   Kernel support for AF_RXRPC; required for AFS client
993 endef
994
995 $(eval $(call KernelPackage,rxrpc))