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