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