kernel: split kmod-sched into kmod-sched-core and kmod-sched
[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 SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
637 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_connmark act_skbedit
638 SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_CORE),$(SCHED_MODULES))
639 SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_CORE))
640 SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
641
642 define KernelPackage/sched-core
643   SUBMENU:=$(NETWORK_SUPPORT_MENU)
644   TITLE:=Traffic schedulers
645   KCONFIG:= \
646         CONFIG_NET_SCHED=y \
647         CONFIG_NET_SCH_HFSC \
648         CONFIG_NET_SCH_INGRESS \
649         CONFIG_NET_SCH_CODEL \
650         CONFIG_NET_SCH_FQ_CODEL \
651         CONFIG_NET_CLS=y \
652         CONFIG_NET_CLS_ACT=y \
653         CONFIG_NET_CLS_FLOW \
654         CONFIG_NET_CLS_FW \
655         CONFIG_NET_CLS_ROUTE4 \
656         CONFIG_NET_CLS_TCINDEX \
657         CONFIG_NET_CLS_U32 \
658         CONFIG_NET_ACT_MIRRED \
659         CONFIG_NET_ACT_CONNMARK \
660         CONFIG_NET_ACT_SKBEDIT \
661         CONFIG_NET_EMATCH=y \
662         CONFIG_NET_EMATCH_U32
663   FILES:=$(SCHED_FILES)
664 endef
665
666 define KernelPackage/sched-core/description
667  Core kernel scheduler support for IP traffic
668 endef
669
670 $(eval $(call KernelPackage,sched-core))
671
672
673 define KernelPackage/sched
674   SUBMENU:=$(NETWORK_SUPPORT_MENU)
675   TITLE:=Traffic schedulers
676   DEPENDS:=+kmod-sched-core
677   KCONFIG:= \
678         CONFIG_NET_SCH_DSMARK \
679         CONFIG_NET_SCH_HTB \
680         CONFIG_NET_SCH_ESFQ \
681         CONFIG_NET_SCH_ESFQ_NFCT=y \
682         CONFIG_NET_SCH_FIFO \
683         CONFIG_NET_SCH_GRED \
684         CONFIG_NET_SCH_PRIO \
685         CONFIG_NET_SCH_RED \
686         CONFIG_NET_SCH_TBF \
687         CONFIG_NET_SCH_SFQ \
688         CONFIG_NET_SCH_TEQL \
689         CONFIG_NET_CLS_BASIC \
690         CONFIG_NET_ACT_POLICE \
691         CONFIG_NET_ACT_IPT \
692         CONFIG_NET_EMATCH_CMP \
693         CONFIG_NET_EMATCH_NBYTE \
694         CONFIG_NET_EMATCH_META \
695         CONFIG_NET_EMATCH_TEXT
696   FILES:=$(SCHED_FILES_EXTRA)
697 endef
698
699 define KernelPackage/sched/description
700  Extra kernel schedulers modules for IP traffic
701 endef
702
703 $(eval $(call KernelPackage,sched))
704
705
706 define KernelPackage/ax25
707   SUBMENU:=$(NETWORK_SUPPORT_MENU)
708   TITLE:=AX25 support
709   KCONFIG:= \
710         CONFIG_AX25 \
711         CONFIG_MKISS
712   FILES:= \
713         $(LINUX_DIR)/net/ax25/ax25.ko \
714         $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
715   AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
716   $(call AddDepends/crc16)
717 endef
718
719 define KernelPackage/ax25/description
720  Kernel modules for AX25 support
721 endef
722
723 $(eval $(call KernelPackage,ax25))
724
725
726 define KernelPackage/mp-alg
727   SUBMENU:=$(NETWORK_SUPPORT_MENU)
728   TITLE:=ECMP caching algorithms
729   KCONFIG:= \
730         CONFIG_IP_ROUTE_MULTIPATH_RR \
731         CONFIG_IP_ROUTE_MULTIPATH_RANDOM \
732         CONFIG_IP_ROUTE_MULTIPATH_WRANDOM \
733         CONFIG_IP_ROUTE_MULTIPATH_DRR
734   FILES:= \
735         $(LINUX_DIR)/net/ipv4/multipath_rr.ko \
736         $(LINUX_DIR)/net/ipv4/multipath_random.ko \
737         $(LINUX_DIR)/net/ipv4/multipath_wrandom.ko \
738         $(LINUX_DIR)/net/ipv4/multipath_drr.ko
739   AUTOLOAD:=$(call AutoLoad,35,multipath_rr multipath_random multipath_wrandom multipath_drr)
740 endef
741
742 define KernelPackage/mp-alg/description
743  Kernel modules that provide several different algorithms for multipath
744  route selection from the route cache. The iproute "mpath" argument allows
745  specifying which algorithm to use for routes.
746  quagga (at least <=0.99.6) requires a multipath patch to support this
747  cached mp route feature.
748 endef
749
750 $(eval $(call KernelPackage,mp-alg))
751
752
753 define KernelPackage/pktgen
754   SUBMENU:=$(NETWORK_SUPPORT_MENU)
755   DEPENDS:=@!TARGET_uml
756   TITLE:=Network packet generator
757   KCONFIG:=CONFIG_NET_PKTGEN
758   FILES:=$(LINUX_DIR)/net/core/pktgen.ko
759   AUTOLOAD:=$(call AutoLoad,99,pktgen)
760 endef
761
762 define KernelPackage/pktgen/description
763   Kernel modules for the Network Packet Generator
764 endef
765
766 $(eval $(call KernelPackage,pktgen))
767
768 define KernelPackage/l2tp
769   SUBMENU:=$(NETWORK_SUPPORT_MENU)
770   TITLE:=Layer Two Tunneling Protocol (L2TP)
771   KCONFIG:=CONFIG_L2TP \
772         CONFIG_L2TP_V3=y \
773         CONFIG_L2TP_DEBUGFS=n
774   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
775         $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
776   AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
777 endef
778
779 define KernelPackage/l2tp/description
780  Kernel modules for L2TP V3 Support
781 endef
782
783 $(eval $(call KernelPackage,l2tp))
784
785
786 define KernelPackage/l2tp-eth
787   SUBMENU:=$(NETWORK_SUPPORT_MENU)
788   TITLE:=L2TP ethernet pseudowire support for L2TPv3
789   DEPENDS:=+kmod-l2tp
790   KCONFIG:=CONFIG_L2TP_ETH
791   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
792   AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
793 endef
794
795 define KernelPackage/l2tp-eth/description
796  Kernel modules for L2TP ethernet pseudowire support for L2TPv3
797 endef
798
799 $(eval $(call KernelPackage,l2tp-eth))
800
801 define KernelPackage/l2tp-ip
802   SUBMENU:=$(NETWORK_SUPPORT_MENU)
803   TITLE:=L2TP IP encapsulation for L2TPv3
804   DEPENDS:=+kmod-l2tp
805   KCONFIG:=CONFIG_L2TP_IP
806   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ip.ko
807   AUTOLOAD:=$(call AutoLoad,33,l2tp_ip)
808 endef
809
810 define KernelPackage/l2tp-ip/description
811  Kernel modules for L2TP IP encapsulation for L2TPv3
812 endef
813
814 $(eval $(call KernelPackage,l2tp-ip))
815
816
817 define KernelPackage/sctp
818   SUBMENU:=$(NETWORK_SUPPORT_MENU)
819   TITLE:=SCTP protocol kernel support
820   KCONFIG:=\
821      CONFIG_IP_SCTP \
822      CONFIG_SCTP_DBG_MSG=n \
823      CONFIG_SCTP_DBG_OBJCNT=n \
824      CONFIG_SCTP_HMAC_NONE=n \
825      CONFIG_SCTP_HMAC_SHA1=n \
826      CONFIG_SCTP_HMAC_MD5=y
827   FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
828   AUTOLOAD:= $(call AutoLoad,32,sctp)
829   DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac
830 endef
831
832 define KernelPackage/sctp/description
833  Kernel modules for SCTP protocol support
834 endef
835
836 $(eval $(call KernelPackage,sctp))
837
838
839 define KernelPackage/netem
840   SUBMENU:=$(NETWORK_SUPPORT_MENU)
841   TITLE:=Network emulation functionality
842   DEPENDS:=+kmod-sched
843   KCONFIG:=CONFIG_NET_SCH_NETEM
844   FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
845   AUTOLOAD:=$(call AutoLoad,99,netem)
846 endef
847
848 define KernelPackage/netem/description
849   Kernel modules for emulating the properties of wide area networks
850 endef
851
852 $(eval $(call KernelPackage,netem))
853
854 define KernelPackage/slip
855   SUBMENU:=$(NETWORK_SUPPORT_MENU)
856   TITLE:=SLIP modules
857   KCONFIG:= \
858        CONFIG_SLIP \
859        CONFIG_SLIP_COMPRESSED=y \
860        CONFIG_SLIP_SMART=y \
861        CONFIG_SLIP_MODE_SLIP6=y
862
863   ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.2)),1)
864     FILES:= \
865        $(LINUX_DIR)/drivers/net/slip/slip.ko
866   else
867     FILES:= \
868        $(LINUX_DIR)/drivers/net/slip.ko
869   endif
870   AUTOLOAD:=$(call AutoLoad,30,slip)
871 endef
872
873 define KernelPackage/slip/description
874  Kernel modules for SLIP support
875 endef
876
877 $(eval $(call KernelPackage,slip))
878