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