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