kernel: add codel and fq_codel support to kmod-sched (patch by Dave Täht)
[lede.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  ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.0)),1)
156   AUTOLOAD:=$(call AutoLoad,30,kernelcapi capi)
157  else
158   FILES+= $(LINUX_DIR)/drivers/isdn/capi/capifs.ko
159   AUTOLOAD:=$(call AutoLoad,30,kernelcapi capifs capi)
160  endif
161 endef
162
163 define KernelPackage/capi/description
164  Kernel module for basic CAPI (ISDN) support
165 endef
166
167 $(eval $(call KernelPackage,capi))
168
169 define KernelPackage/misdn
170   SUBMENU:=$(NETWORK_SUPPORT_MENU)
171   TITLE:=mISDN (ISDN) Support
172   KCONFIG:= \
173         CONFIG_ISDN=y \
174         CONFIG_MISDN \
175         CONFIG_MISDN_DSP \
176         CONFIG_MISDN_L1OIP
177   FILES:= \
178         $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
179         $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
180         $(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
181   AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
182 endef
183
184 define KernelPackage/misdn/description
185   Modular ISDN driver support
186 endef
187
188 $(eval $(call KernelPackage,misdn))
189
190
191 define KernelPackage/isdn4linux
192   SUBMENU:=$(NETWORK_SUPPORT_MENU)
193   TITLE:=Old ISDN4Linux (deprecated)
194   KCONFIG:= \
195         CONFIG_ISDN=y \
196     CONFIG_ISDN_I4L \
197     CONFIG_ISDN_PPP=y \
198     CONFIG_ISDN_PPP_VJ=y \
199     CONFIG_ISDN_MPP=y \
200     CONFIG_IPPP_FILTER=y \
201     CONFIG_ISDN_PPP_BSDCOMP \
202     CONFIG_ISDN_CAPI_MIDDLEWARE=y \
203     CONFIG_ISDN_CAPI_CAPIFS_BOOL=y \
204     CONFIG_ISDN_AUDIO=y \
205     CONFIG_ISDN_TTY_FAX=y \
206     CONFIG_ISDN_X25=y \
207     CONFIG_ISDN_DIVERSION
208   FILES:= \
209     $(LINUX_DIR)/drivers/isdn/divert/dss1_divert.ko \
210         $(LINUX_DIR)/drivers/isdn/i4l/isdn.ko \
211         $(LINUX_DIR)/drivers/isdn/i4l/isdn_bsdcomp.ko
212   AUTOLOAD:=$(call AutoLoad,40,isdn isdn_bsdcomp dss1_divert)
213 endef
214
215 define KernelPackage/isdn4linux/description
216   This driver allows you to use an ISDN adapter for networking
217 endef
218
219 $(eval $(call KernelPackage,isdn4linux))
220
221
222 define KernelPackage/ipip
223   SUBMENU:=$(NETWORK_SUPPORT_MENU)
224   TITLE:=IP-in-IP encapsulation
225   DEPENDS:=+kmod-iptunnel4
226   KCONFIG:=CONFIG_NET_IPIP
227   FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
228   AUTOLOAD:=$(call AutoLoad,32,ipip)
229 endef
230
231 define KernelPackage/ipip/description
232  Kernel modules for IP-in-IP encapsulation
233 endef
234
235 $(eval $(call KernelPackage,ipip))
236
237
238 IPSEC-m:= \
239         key/af_key \
240         xfrm/xfrm_ipcomp \
241         xfrm/xfrm_user \
242
243 define KernelPackage/ipsec
244   SUBMENU:=$(NETWORK_SUPPORT_MENU)
245   TITLE:=IPsec related modules (IPv4 and IPv6)
246   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
247   KCONFIG:= \
248         CONFIG_NET_KEY \
249         CONFIG_XFRM_USER \
250         CONFIG_INET_IPCOMP \
251         CONFIG_XFRM_IPCOMP
252   FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
253   AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
254 endef
255
256 define KernelPackage/ipsec/description
257  Kernel modules for IPsec support in both IPv4 and IPv6.
258  Includes:
259  - af_key
260  - xfrm_ipcomp
261  - xfrm_user
262 endef
263
264 $(eval $(call KernelPackage,ipsec))
265
266
267 IPSEC4-m:= \
268         ipv4/ah4 \
269         ipv4/esp4 \
270         ipv4/xfrm4_mode_beet \
271         ipv4/xfrm4_mode_transport \
272         ipv4/xfrm4_mode_tunnel \
273         ipv4/xfrm4_tunnel \
274         ipv4/ipcomp \
275
276 define KernelPackage/ipsec4
277   SUBMENU:=$(NETWORK_SUPPORT_MENU)
278   TITLE:=IPsec related modules (IPv4)
279   DEPENDS:=kmod-ipsec +kmod-iptunnel4
280   KCONFIG:= \
281         CONFIG_INET_AH \
282         CONFIG_INET_ESP \
283         CONFIG_INET_IPCOMP \
284         CONFIG_INET_XFRM_MODE_BEET \
285         CONFIG_INET_XFRM_MODE_TRANSPORT \
286         CONFIG_INET_XFRM_MODE_TUNNEL \
287         CONFIG_INET_XFRM_TUNNEL
288   FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
289   AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
290 endef
291
292 define KernelPackage/ipsec4/description
293  Kernel modules for IPsec support in IPv4.
294  Includes:
295  - ah4
296  - esp4
297  - ipcomp
298  - xfrm4_mode_beet
299  - xfrm4_mode_transport
300  - xfrm4_mode_tunnel
301  - xfrm4_tunnel
302 endef
303
304 $(eval $(call KernelPackage,ipsec4))
305
306
307 IPSEC6-m:= \
308         ipv6/ah6 \
309         ipv6/esp6 \
310         ipv6/xfrm6_mode_beet \
311         ipv6/xfrm6_mode_transport \
312         ipv6/xfrm6_mode_tunnel \
313         ipv6/xfrm6_tunnel \
314         ipv6/ipcomp6 \
315
316 define KernelPackage/ipsec6
317   SUBMENU:=$(NETWORK_SUPPORT_MENU)
318   TITLE:=IPsec related modules (IPv6)
319   DEPENDS:=kmod-ipsec +kmod-iptunnel6
320   KCONFIG:= \
321         CONFIG_INET6_AH \
322         CONFIG_INET6_ESP \
323         CONFIG_INET6_IPCOMP \
324         CONFIG_INET6_XFRM_MODE_BEET \
325         CONFIG_INET6_XFRM_MODE_TRANSPORT \
326         CONFIG_INET6_XFRM_MODE_TUNNEL \
327         CONFIG_INET6_XFRM_TUNNEL
328   FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
329   AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
330 endef
331
332 define KernelPackage/ipsec6/description
333  Kernel modules for IPsec support in IPv6.
334  Includes:
335  - ah6
336  - esp6
337  - ipcomp6
338  - xfrm6_mode_beet
339  - xfrm6_mode_transport
340  - xfrm6_mode_tunnel
341  - xfrm6_tunnel
342 endef
343
344 $(eval $(call KernelPackage,ipsec6))
345
346
347 # NOTE: tunnel4 is not selectable by itself, so enable ipip for that
348 define KernelPackage/iptunnel4
349   SUBMENU:=$(NETWORK_SUPPORT_MENU)
350   TITLE:=IPv4 tunneling
351   KCONFIG:= \
352         CONFIG_NET_IPIP \
353         CONFIG_INET_TUNNEL
354   FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
355   AUTOLOAD:=$(call AutoLoad,31,tunnel4)
356 endef
357
358 define KernelPackage/iptunnel4/description
359  Kernel modules for IPv4 tunneling
360 endef
361
362 $(eval $(call KernelPackage,iptunnel4))
363
364
365 define KernelPackage/iptunnel6
366   SUBMENU:=$(NETWORK_SUPPORT_MENU)
367   TITLE:=IPv6 tunneling
368   DEPENDS:= +kmod-ipv6
369   KCONFIG:= \
370         CONFIG_INET6_TUNNEL
371   FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
372   AUTOLOAD:=$(call AutoLoad,31,tunnel6)
373 endef
374
375 define KernelPackage/iptunnel6/description
376  Kernel modules for IPv6 tunneling
377 endef
378
379 $(eval $(call KernelPackage,iptunnel6))
380
381
382 define KernelPackage/ipv6
383   SUBMENU:=$(NETWORK_SUPPORT_MENU)
384   TITLE:=IPv6 support
385   KCONFIG:= \
386         CONFIG_IPV6 \
387         CONFIG_IPV6_PRIVACY=y \
388         CONFIG_IPV6_MULTIPLE_TABLES=y \
389         CONFIG_IPV6_MROUTE=y \
390         CONFIG_IPV6_PIMSM_V2=n \
391         CONFIG_IPV6_SUBTREES=y
392   FILES:=$(LINUX_DIR)/net/ipv6/ipv6.ko
393   AUTOLOAD:=$(call AutoLoad,20,ipv6)
394 endef
395
396 define KernelPackage/ipv6/description
397  Kernel modules for IPv6 support
398 endef
399
400 $(eval $(call KernelPackage,ipv6))
401
402
403 define KernelPackage/sit
404   SUBMENU:=$(NETWORK_SUPPORT_MENU)
405   DEPENDS:=+kmod-ipv6 +kmod-iptunnel4
406   TITLE:=IPv6-in-IPv4 tunnel
407   KCONFIG:=CONFIG_IPV6_SIT \
408         CONFIG_IPV6_SIT_6RD=y
409   FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
410   AUTOLOAD:=$(call AutoLoad,32,sit)
411 endef
412
413 define KernelPackage/sit/description
414  Kernel modules for IPv6-in-IPv4 tunnelling
415 endef
416
417 $(eval $(call KernelPackage,sit))
418
419
420 define KernelPackage/ip6-tunnel
421   SUBMENU:=$(NETWORK_SUPPORT_MENU)
422   TITLE:=IP-in-IPv6 tunnelling
423   DEPENDS:= +kmod-ipv6 +kmod-iptunnel6
424   KCONFIG:= CONFIG_IPV6_TUNNEL
425   FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
426   AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
427 endef
428
429 define KernelPackage/ip6-tunnel/description
430  Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
431 endef
432
433 $(eval $(call KernelPackage,ip6-tunnel))
434
435
436 define KernelPackage/gre
437   SUBMENU:=$(NETWORK_SUPPORT_MENU)
438   TITLE:=GRE support
439   DEPENDS:=+PACKAGE_kmod-ipv6:kmod-ipv6
440   KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
441  ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.37)),1)
442   FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
443   AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
444  else
445   FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko
446   AUTOLOAD:=$(call AutoLoad,39,ip_gre)
447  endif
448 endef
449
450 define KernelPackage/gre/description
451  Generic Routing Encapsulation support
452 endef
453
454 $(eval $(call KernelPackage,gre))
455
456
457 define KernelPackage/tun
458   SUBMENU:=$(NETWORK_SUPPORT_MENU)
459   TITLE:=Universal TUN/TAP driver
460   KCONFIG:=CONFIG_TUN
461   FILES:=$(LINUX_DIR)/drivers/net/tun.ko
462   AUTOLOAD:=$(call AutoLoad,30,tun)
463 endef
464
465 define KernelPackage/tun/description
466  Kernel support for the TUN/TAP tunneling device
467 endef
468
469 $(eval $(call KernelPackage,tun))
470
471
472 define KernelPackage/ppp
473   SUBMENU:=$(NETWORK_SUPPORT_MENU)
474   TITLE:=PPP modules
475   DEPENDS:=+kmod-lib-crc-ccitt
476   KCONFIG:= \
477         CONFIG_PPP \
478         CONFIG_PPP_ASYNC \
479         CONFIG_SLHC
480   ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.2)),1)
481     FILES:= \
482         $(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
483         $(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko \
484         $(LINUX_DIR)/drivers/net/slip/slhc.ko
485   else
486     FILES:= \
487         $(LINUX_DIR)/drivers/net/ppp_async.ko \
488         $(LINUX_DIR)/drivers/net/ppp_generic.ko \
489         $(LINUX_DIR)/drivers/net/slhc.ko
490   endif
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   ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.2)),1)
507     FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
508   else
509     FILES:=$(LINUX_DIR)/drivers/net/ppp_synctty.ko
510   endif
511   AUTOLOAD:=$(call AutoLoad,40,ppp_synctty)
512 endef
513
514 define KernelPackage/ppp-synctty/description
515  Kernel modules for PPP sync tty support
516 endef
517
518 $(eval $(call KernelPackage,ppp-synctty))
519
520
521 define KernelPackage/pppoe
522   SUBMENU:=$(NETWORK_SUPPORT_MENU)
523   TITLE:=PPPoE support
524   DEPENDS:=kmod-ppp
525   KCONFIG:=CONFIG_PPPOE
526   ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.2)),1)
527     FILES:= \
528         $(LINUX_DIR)/drivers/net/ppp/pppoe.ko \
529         $(LINUX_DIR)/drivers/net/ppp/pppox.ko
530   else
531     FILES:= \
532         $(LINUX_DIR)/drivers/net/pppoe.ko \
533         $(LINUX_DIR)/drivers/net/pppox.ko
534   endif
535   AUTOLOAD:=$(call AutoLoad,40,pppox pppoe)
536 endef
537
538 define KernelPackage/pppoe/description
539  Kernel modules for PPPoE (PPP over Ethernet) support
540 endef
541
542 $(eval $(call KernelPackage,pppoe))
543
544
545 define KernelPackage/pppoa
546   SUBMENU:=$(NETWORK_SUPPORT_MENU)
547   TITLE:=PPPoA support
548   DEPENDS:=kmod-ppp +kmod-atm
549   KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
550   FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
551   AUTOLOAD:=$(call AutoLoad,40,pppoatm)
552 endef
553
554 define KernelPackage/pppoa/description
555  Kernel modules for PPPoA (PPP over ATM) support
556 endef
557
558 $(eval $(call KernelPackage,pppoa))
559
560
561 define KernelPackage/pptp
562   SUBMENU:=$(NETWORK_SUPPORT_MENU)
563   TITLE:=PPtP support
564   DEPENDS:=kmod-ppp +kmod-gre
565   KCONFIG:=CONFIG_PPTP
566   ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.2)),1)
567     FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
568   else
569     FILES:=$(LINUX_DIR)/drivers/net/pptp.ko
570   endif
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-pppoe +kmod-l2tp
581   KCONFIG:=CONFIG_PPPOL2TP
582   ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.35)),1)
583     FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
584     AUTOLOAD:=$(call AutoLoad,40,l2tp_ppp)
585   else
586     FILES:=$(LINUX_DIR)/drivers/net/pppol2tp.ko
587     AUTOLOAD:=$(call AutoLoad,40,pppol2tp)
588   endif
589 endef
590
591 define KernelPackage/pppol2tp/description
592   Kernel modules for PPPoL2TP (PPP over L2TP) support
593 endef
594
595 $(eval $(call KernelPackage,pppol2tp))
596
597
598 define KernelPackage/ipoa
599   SUBMENU:=$(NETWORK_SUPPORT_MENU)
600   TITLE:=IPoA support
601   DEPENDS:=kmod-atm
602   KCONFIG:=CONFIG_ATM_CLIP
603   FILES:=$(LINUX_DIR)/net/atm/clip.ko
604   AUTOLOAD:=$(call AutoLoad,40,clip)
605 endef
606
607 define KernelPackage/ipoa/description
608   Kernel modules for IPoA (IP over ATM) support
609 endef
610
611 $(eval $(call KernelPackage,ipoa))
612
613
614 define KernelPackage/mppe
615   SUBMENU:=$(NETWORK_SUPPORT_MENU)
616   TITLE:=Microsoft PPP compression/encryption
617   DEPENDS:=kmod-ppp +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
618   KCONFIG:= \
619         CONFIG_PPP_MPPE_MPPC \
620         CONFIG_PPP_MPPE
621   ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.2)),1)
622     FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
623   else
624     FILES:=$(LINUX_DIR)/drivers/net/ppp_mppe.ko
625   endif
626   AUTOLOAD:=$(call AutoLoad,31,ppp_mppe)
627 endef
628
629 define KernelPackage/mppe/description
630  Kernel modules for Microsoft PPP compression/encryption
631 endef
632
633 $(eval $(call KernelPackage,mppe))
634
635
636 define KernelPackage/sched
637   SUBMENU:=$(NETWORK_SUPPORT_MENU)
638   TITLE:=Traffic schedulers
639   KCONFIG:= \
640         CONFIG_NET_SCHED=y \
641         CONFIG_NET_SCH_DSMARK \
642         CONFIG_NET_SCH_ESFQ \
643         CONFIG_NET_SCH_ESFQ_NFCT=y \
644         CONFIG_NET_SCH_FIFO \
645         CONFIG_NET_SCH_GRED \
646         CONFIG_NET_SCH_HFSC \
647         CONFIG_NET_SCH_HTB \
648         CONFIG_NET_SCH_INGRESS \
649         CONFIG_NET_SCH_PRIO \
650         CONFIG_NET_SCH_RED \
651         CONFIG_NET_SCH_TBF \
652         CONFIG_NET_SCH_SFQ \
653         CONFIG_NET_SCH_TEQL \
654         CONFIG_NET_SCH_CODEL \
655         CONFIG_NET_SCH_FQ_CODEL \
656         CONFIG_NET_CLS=y \
657         CONFIG_NET_CLS_ACT=y \
658         CONFIG_NET_CLS_BASIC \
659         CONFIG_NET_CLS_FLOW \
660         CONFIG_NET_CLS_FW \
661         CONFIG_NET_CLS_ROUTE4 \
662         CONFIG_NET_CLS_TCINDEX \
663         CONFIG_NET_CLS_U32 \
664         CONFIG_NET_ACT_MIRRED \
665         CONFIG_NET_ACT_IPT \
666         CONFIG_NET_ACT_POLICE \
667         CONFIG_NET_ACT_CONNMARK \
668         CONFIG_NET_ACT_SKBEDIT \
669         CONFIG_NET_EMATCH=y \
670         CONFIG_NET_EMATCH_CMP \
671         CONFIG_NET_EMATCH_NBYTE \
672         CONFIG_NET_EMATCH_U32 \
673         CONFIG_NET_EMATCH_META \
674         CONFIG_NET_EMATCH_TEXT
675   FILES:=$(LINUX_DIR)/net/sched/*.ko
676 endef
677
678 define KernelPackage/sched/description
679  Kernel schedulers for IP traffic
680 endef
681
682 $(eval $(call KernelPackage,sched))
683
684
685 define KernelPackage/ax25
686   SUBMENU:=$(NETWORK_SUPPORT_MENU)
687   TITLE:=AX25 support
688   KCONFIG:= \
689         CONFIG_AX25 \
690         CONFIG_MKISS
691   FILES:= \
692         $(LINUX_DIR)/net/ax25/ax25.ko \
693         $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
694   AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
695   $(call AddDepends/crc16)
696 endef
697
698 define KernelPackage/ax25/description
699  Kernel modules for AX25 support
700 endef
701
702 $(eval $(call KernelPackage,ax25))
703
704
705 define KernelPackage/mp-alg
706   SUBMENU:=$(NETWORK_SUPPORT_MENU)
707   TITLE:=ECMP caching algorithms
708   KCONFIG:= \
709         CONFIG_IP_ROUTE_MULTIPATH_RR \
710         CONFIG_IP_ROUTE_MULTIPATH_RANDOM \
711         CONFIG_IP_ROUTE_MULTIPATH_WRANDOM \
712         CONFIG_IP_ROUTE_MULTIPATH_DRR
713   FILES:= \
714         $(LINUX_DIR)/net/ipv4/multipath_rr.ko \
715         $(LINUX_DIR)/net/ipv4/multipath_random.ko \
716         $(LINUX_DIR)/net/ipv4/multipath_wrandom.ko \
717         $(LINUX_DIR)/net/ipv4/multipath_drr.ko
718   AUTOLOAD:=$(call AutoLoad,35,multipath_rr multipath_random multipath_wrandom multipath_drr)
719 endef
720
721 define KernelPackage/mp-alg/description
722  Kernel modules that provide several different algorithms for multipath
723  route selection from the route cache. The iproute "mpath" argument allows
724  specifying which algorithm to use for routes.
725  quagga (at least <=0.99.6) requires a multipath patch to support this
726  cached mp route feature.
727 endef
728
729 $(eval $(call KernelPackage,mp-alg))
730
731
732 define KernelPackage/pktgen
733   SUBMENU:=$(NETWORK_SUPPORT_MENU)
734   DEPENDS:=@!TARGET_uml
735   TITLE:=Network packet generator
736   KCONFIG:=CONFIG_NET_PKTGEN
737   FILES:=$(LINUX_DIR)/net/core/pktgen.ko
738   AUTOLOAD:=$(call AutoLoad,99,pktgen)
739 endef
740
741 define KernelPackage/pktgen/description
742   Kernel modules for the Network Packet Generator
743 endef
744
745 $(eval $(call KernelPackage,pktgen))
746
747 define KernelPackage/l2tp
748   SUBMENU:=$(NETWORK_SUPPORT_MENU)
749   TITLE:=Layer Two Tunneling Protocol (L2TP)
750   KCONFIG:=CONFIG_L2TP \
751         CONFIG_L2TP_V3=y \
752         CONFIG_L2TP_DEBUGFS=n
753   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
754         $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
755   AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
756 endef
757
758 define KernelPackage/l2tp/description
759  Kernel modules for L2TP V3 Support
760 endef
761
762 $(eval $(call KernelPackage,l2tp))
763
764
765 define KernelPackage/l2tp-eth
766   SUBMENU:=$(NETWORK_SUPPORT_MENU)
767   TITLE:=L2TP ethernet pseudowire support for L2TPv3
768   DEPENDS:=+kmod-l2tp
769   KCONFIG:=CONFIG_L2TP_ETH
770   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
771   AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
772 endef
773
774 define KernelPackage/l2tp-eth/description
775  Kernel modules for L2TP ethernet pseudowire support for L2TPv3
776 endef
777
778 $(eval $(call KernelPackage,l2tp-eth))
779
780 define KernelPackage/l2tp-ip
781   SUBMENU:=$(NETWORK_SUPPORT_MENU)
782   TITLE:=L2TP IP encapsulation for L2TPv3
783   DEPENDS:=+kmod-l2tp
784   KCONFIG:=CONFIG_L2TP_IP
785   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ip.ko
786   AUTOLOAD:=$(call AutoLoad,33,l2tp_ip)
787 endef
788
789 define KernelPackage/l2tp-ip/description
790  Kernel modules for L2TP IP encapsulation for L2TPv3
791 endef
792
793 $(eval $(call KernelPackage,l2tp-ip))
794
795
796 define KernelPackage/sctp
797   SUBMENU:=$(NETWORK_SUPPORT_MENU)
798   TITLE:=SCTP protocol kernel support
799   KCONFIG:=\
800      CONFIG_IP_SCTP \
801      CONFIG_SCTP_DBG_MSG=n \
802      CONFIG_SCTP_DBG_OBJCNT=n \
803      CONFIG_SCTP_HMAC_NONE=n \
804      CONFIG_SCTP_HMAC_SHA1=n \
805      CONFIG_SCTP_HMAC_MD5=y
806   FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
807   AUTOLOAD:= $(call AutoLoad,32,sctp)
808   DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac
809 endef
810
811 define KernelPackage/sctp/description
812  Kernel modules for SCTP protocol support
813 endef
814
815 $(eval $(call KernelPackage,sctp))
816
817
818 define KernelPackage/netem
819   SUBMENU:=$(NETWORK_SUPPORT_MENU)
820   TITLE:=Network emulation functionality
821   DEPENDS:=+kmod-sched
822   KCONFIG:=CONFIG_NET_SCH_NETEM
823   FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
824   AUTOLOAD:=$(call AutoLoad,99,netem)
825 endef
826
827 define KernelPackage/netem/description
828   Kernel modules for emulating the properties of wide area networks
829 endef
830
831 $(eval $(call KernelPackage,netem))
832
833 define KernelPackage/slip
834   SUBMENU:=$(NETWORK_SUPPORT_MENU)
835   TITLE:=SLIP modules
836   KCONFIG:= \
837        CONFIG_SLIP \
838        CONFIG_SLIP_COMPRESSED=y \
839        CONFIG_SLIP_SMART=y \
840        CONFIG_SLIP_MODE_SLIP6=y
841
842   ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.2)),1)
843     FILES:= \
844        $(LINUX_DIR)/drivers/net/slip/slip.ko
845   else
846     FILES:= \
847        $(LINUX_DIR)/drivers/net/slip.ko
848   endif
849   AUTOLOAD:=$(call AutoLoad,30,slip)
850 endef
851
852 define KernelPackage/slip/description
853  Kernel modules for SLIP support
854 endef
855
856 $(eval $(call KernelPackage,slip))
857