linux: introduce new kmod-iptunnel for Linux 3.10+, add missing dependencies to netsu...
[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/ppp
514   SUBMENU:=$(NETWORK_SUPPORT_MENU)
515   TITLE:=PPP modules
516   DEPENDS:=+kmod-lib-crc-ccitt
517   KCONFIG:= \
518         CONFIG_PPP \
519         CONFIG_PPP_ASYNC \
520         CONFIG_SLHC
521   FILES:= \
522         $(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
523         $(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko \
524         $(LINUX_DIR)/drivers/net/slip/slhc.ko
525   AUTOLOAD:=$(call AutoLoad,30,slhc ppp_generic ppp_async)
526 endef
527
528 define KernelPackage/ppp/description
529  Kernel modules for PPP support
530 endef
531
532 $(eval $(call KernelPackage,ppp))
533
534
535 define KernelPackage/ppp-synctty
536   SUBMENU:=$(NETWORK_SUPPORT_MENU)
537   TITLE:=PPP sync tty support
538   DEPENDS:=kmod-ppp
539   KCONFIG:=CONFIG_PPP_SYNC_TTY
540   FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
541   AUTOLOAD:=$(call AutoLoad,40,ppp_synctty)
542 endef
543
544 define KernelPackage/ppp-synctty/description
545  Kernel modules for PPP sync tty support
546 endef
547
548 $(eval $(call KernelPackage,ppp-synctty))
549
550
551 define KernelPackage/pppox
552   SUBMENU:=$(NETWORK_SUPPORT_MENU)
553   TITLE:=PPPoX helper
554   DEPENDS:=kmod-ppp
555   KCONFIG:=CONFIG_PPPOE
556   FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
557   AUTOLOAD:=$(call AutoLoad,40,pppox)
558 endef
559
560 define KernelPackage/pppox/description
561  Kernel helper module for PPPoE and PPTP support
562 endef
563
564 $(eval $(call KernelPackage,pppox))
565
566
567 define KernelPackage/pppoe
568   SUBMENU:=$(NETWORK_SUPPORT_MENU)
569   TITLE:=PPPoE support
570   DEPENDS:=kmod-ppp +kmod-pppox
571   KCONFIG:=CONFIG_PPPOE
572   FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
573   AUTOLOAD:=$(call AutoLoad,41,pppoe)
574 endef
575
576 define KernelPackage/pppoe/description
577  Kernel module for PPPoE (PPP over Ethernet) support
578 endef
579
580 $(eval $(call KernelPackage,pppoe))
581
582
583 define KernelPackage/pppoa
584   SUBMENU:=$(NETWORK_SUPPORT_MENU)
585   TITLE:=PPPoA support
586   DEPENDS:=kmod-ppp +kmod-atm
587   KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
588   FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
589   AUTOLOAD:=$(call AutoLoad,40,pppoatm)
590 endef
591
592 define KernelPackage/pppoa/description
593  Kernel modules for PPPoA (PPP over ATM) support
594 endef
595
596 $(eval $(call KernelPackage,pppoa))
597
598
599 define KernelPackage/pptp
600   SUBMENU:=$(NETWORK_SUPPORT_MENU)
601   TITLE:=PPtP support
602   DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
603   KCONFIG:=CONFIG_PPTP
604   FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
605   AUTOLOAD:=$(call AutoLoad,41,pptp)
606 endef
607
608 $(eval $(call KernelPackage,pptp))
609
610
611 define KernelPackage/pppol2tp
612   SUBMENU:=$(NETWORK_SUPPORT_MENU)
613   TITLE:=PPPoL2TP support
614   DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
615   KCONFIG:=CONFIG_PPPOL2TP
616   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
617   AUTOLOAD:=$(call AutoLoad,41,l2tp_ppp)
618 endef
619
620 define KernelPackage/pppol2tp/description
621   Kernel modules for PPPoL2TP (PPP over L2TP) support
622 endef
623
624 $(eval $(call KernelPackage,pppol2tp))
625
626
627 define KernelPackage/ipoa
628   SUBMENU:=$(NETWORK_SUPPORT_MENU)
629   TITLE:=IPoA support
630   DEPENDS:=kmod-atm
631   KCONFIG:=CONFIG_ATM_CLIP
632   FILES:=$(LINUX_DIR)/net/atm/clip.ko
633   AUTOLOAD:=$(call AutoLoad,40,clip)
634 endef
635
636 define KernelPackage/ipoa/description
637   Kernel modules for IPoA (IP over ATM) support
638 endef
639
640 $(eval $(call KernelPackage,ipoa))
641
642
643 define KernelPackage/mppe
644   SUBMENU:=$(NETWORK_SUPPORT_MENU)
645   TITLE:=Microsoft PPP compression/encryption
646   DEPENDS:=kmod-ppp +kmod-crypto-core +kmod-crypto-arc4 +kmod-crypto-sha1 +kmod-crypto-ecb
647   KCONFIG:= \
648         CONFIG_PPP_MPPE_MPPC \
649         CONFIG_PPP_MPPE
650   FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
651   AUTOLOAD:=$(call AutoLoad,31,ppp_mppe)
652 endef
653
654 define KernelPackage/mppe/description
655  Kernel modules for Microsoft PPP compression/encryption
656 endef
657
658 $(eval $(call KernelPackage,mppe))
659
660
661 SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
662 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
663 SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark sch_esfq
664 SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES))
665 SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES)))
666 SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
667
668 define KernelPackage/sched-core
669   SUBMENU:=$(NETWORK_SUPPORT_MENU)
670   TITLE:=Traffic schedulers
671   KCONFIG:= \
672         CONFIG_NET_SCHED=y \
673         CONFIG_NET_SCH_HFSC \
674         CONFIG_NET_SCH_INGRESS \
675         CONFIG_NET_SCH_FQ_CODEL \
676         CONFIG_NET_CLS=y \
677         CONFIG_NET_CLS_ACT=y \
678         CONFIG_NET_CLS_FLOW \
679         CONFIG_NET_CLS_FW \
680         CONFIG_NET_CLS_ROUTE4 \
681         CONFIG_NET_CLS_TCINDEX \
682         CONFIG_NET_CLS_U32 \
683         CONFIG_NET_ACT_MIRRED \
684         CONFIG_NET_ACT_SKBEDIT \
685         CONFIG_NET_EMATCH=y \
686         CONFIG_NET_EMATCH_U32
687   FILES:=$(SCHED_FILES)
688   AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
689 endef
690
691 define KernelPackage/sched-core/description
692  Core kernel scheduler support for IP traffic
693 endef
694
695 $(eval $(call KernelPackage,sched-core))
696
697
698 define KernelPackage/sched-connmark
699   SUBMENU:=$(NETWORK_SUPPORT_MENU)
700   TITLE:=Traffic shaper conntrack mark support
701   DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
702   KCONFIG:=CONFIG_NET_ACT_CONNMARK
703   FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
704   AUTOLOAD:=$(call AutoLoad,71, act_connmark)
705 endef
706 $(eval $(call KernelPackage,sched-connmark))
707
708 define KernelPackage/sched-esfq
709   SUBMENU:=$(NETWORK_SUPPORT_MENU)
710   TITLE:=Traffic shaper ESFQ support
711   DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack
712   KCONFIG:= \
713         CONFIG_NET_SCH_ESFQ \
714         CONFIG_NET_SCH_ESFQ_NFCT=y
715   FILES:=$(LINUX_DIR)/net/sched/sch_esfq.ko
716   AUTOLOAD:=$(call AutoLoad,72, sch_esfq)
717 endef
718 $(eval $(call KernelPackage,sched-esfq))
719
720 define KernelPackage/sched
721   SUBMENU:=$(NETWORK_SUPPORT_MENU)
722   TITLE:=Extra traffic schedulers
723   DEPENDS:=+kmod-sched-core
724   KCONFIG:= \
725         CONFIG_NET_SCH_CODEL \
726         CONFIG_NET_SCH_DSMARK \
727         CONFIG_NET_SCH_HTB \
728         CONFIG_NET_SCH_FIFO \
729         CONFIG_NET_SCH_GRED \
730         CONFIG_NET_SCH_PRIO \
731         CONFIG_NET_SCH_RED \
732         CONFIG_NET_SCH_TBF \
733         CONFIG_NET_SCH_SFQ \
734         CONFIG_NET_SCH_TEQL \
735         CONFIG_NET_CLS_BASIC \
736         CONFIG_NET_ACT_POLICE \
737         CONFIG_NET_ACT_IPT \
738         CONFIG_NET_EMATCH_CMP \
739         CONFIG_NET_EMATCH_NBYTE \
740         CONFIG_NET_EMATCH_META \
741         CONFIG_NET_EMATCH_TEXT
742   FILES:=$(SCHED_FILES_EXTRA)
743   AUTOLOAD:=$(call AutoLoad,73, $(SCHED_MODULES_EXTRA))
744 endef
745
746 define KernelPackage/sched/description
747  Extra kernel schedulers modules for IP traffic
748 endef
749
750 $(eval $(call KernelPackage,sched))
751
752
753 define KernelPackage/ax25
754   SUBMENU:=$(NETWORK_SUPPORT_MENU)
755   TITLE:=AX25 support
756   KCONFIG:= \
757         CONFIG_AX25 \
758         CONFIG_MKISS
759   FILES:= \
760         $(LINUX_DIR)/net/ax25/ax25.ko \
761         $(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
762   AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
763   $(call AddDepends/crc16)
764 endef
765
766 define KernelPackage/ax25/description
767  Kernel modules for AX25 support
768 endef
769
770 $(eval $(call KernelPackage,ax25))
771
772
773 define KernelPackage/mp-alg
774   SUBMENU:=$(NETWORK_SUPPORT_MENU)
775   TITLE:=ECMP caching algorithms
776   KCONFIG:= \
777         CONFIG_IP_ROUTE_MULTIPATH_RR \
778         CONFIG_IP_ROUTE_MULTIPATH_RANDOM \
779         CONFIG_IP_ROUTE_MULTIPATH_WRANDOM \
780         CONFIG_IP_ROUTE_MULTIPATH_DRR
781   FILES:= \
782         $(LINUX_DIR)/net/ipv4/multipath_rr.ko \
783         $(LINUX_DIR)/net/ipv4/multipath_random.ko \
784         $(LINUX_DIR)/net/ipv4/multipath_wrandom.ko \
785         $(LINUX_DIR)/net/ipv4/multipath_drr.ko
786   AUTOLOAD:=$(call AutoLoad,35,multipath_rr multipath_random multipath_wrandom multipath_drr)
787 endef
788
789 define KernelPackage/mp-alg/description
790  Kernel modules that provide several different algorithms for multipath
791  route selection from the route cache. The iproute "mpath" argument allows
792  specifying which algorithm to use for routes.
793  quagga (at least <=0.99.6) requires a multipath patch to support this
794  cached mp route feature.
795 endef
796
797 $(eval $(call KernelPackage,mp-alg))
798
799
800 define KernelPackage/pktgen
801   SUBMENU:=$(NETWORK_SUPPORT_MENU)
802   DEPENDS:=@!TARGET_uml
803   TITLE:=Network packet generator
804   KCONFIG:=CONFIG_NET_PKTGEN
805   FILES:=$(LINUX_DIR)/net/core/pktgen.ko
806   AUTOLOAD:=$(call AutoLoad,99,pktgen)
807 endef
808
809 define KernelPackage/pktgen/description
810   Kernel modules for the Network Packet Generator
811 endef
812
813 $(eval $(call KernelPackage,pktgen))
814
815 define KernelPackage/l2tp
816   SUBMENU:=$(NETWORK_SUPPORT_MENU)
817   TITLE:=Layer Two Tunneling Protocol (L2TP)
818   DEPENDS:=+IPV6:kmod-ipv6
819   KCONFIG:=CONFIG_L2TP \
820         CONFIG_L2TP_V3=y \
821         CONFIG_L2TP_DEBUGFS=n
822   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
823         $(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
824   AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
825 endef
826
827 define KernelPackage/l2tp/description
828  Kernel modules for L2TP V3 Support
829 endef
830
831 $(eval $(call KernelPackage,l2tp))
832
833
834 define KernelPackage/l2tp-eth
835   SUBMENU:=$(NETWORK_SUPPORT_MENU)
836   TITLE:=L2TP ethernet pseudowire support for L2TPv3
837   DEPENDS:=+kmod-l2tp
838   KCONFIG:=CONFIG_L2TP_ETH
839   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
840   AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
841 endef
842
843 define KernelPackage/l2tp-eth/description
844  Kernel modules for L2TP ethernet pseudowire support for L2TPv3
845 endef
846
847 $(eval $(call KernelPackage,l2tp-eth))
848
849 define KernelPackage/l2tp-ip
850   SUBMENU:=$(NETWORK_SUPPORT_MENU)
851   TITLE:=L2TP IP encapsulation for L2TPv3
852   DEPENDS:=+kmod-l2tp
853   KCONFIG:=CONFIG_L2TP_IP
854   FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ip.ko
855   AUTOLOAD:=$(call AutoLoad,33,l2tp_ip)
856 endef
857
858 define KernelPackage/l2tp-ip/description
859  Kernel modules for L2TP IP encapsulation for L2TPv3
860 endef
861
862 $(eval $(call KernelPackage,l2tp-ip))
863
864
865 define KernelPackage/sctp
866   SUBMENU:=$(NETWORK_SUPPORT_MENU)
867   TITLE:=SCTP protocol kernel support
868   KCONFIG:=\
869      CONFIG_IP_SCTP \
870      CONFIG_SCTP_DBG_MSG=n \
871      CONFIG_SCTP_DBG_OBJCNT=n \
872      CONFIG_SCTP_HMAC_NONE=n \
873      CONFIG_SCTP_HMAC_SHA1=n \
874      CONFIG_SCTP_HMAC_MD5=y \
875      CONFIG_SCTP_COOKIE_HMAC_SHA1=n \
876      CONFIG_SCTP_COOKIE_HMAC_MD5=y \
877      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
878      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
879      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
880   FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
881   AUTOLOAD:= $(call AutoLoad,32,sctp)
882   DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac
883 endef
884
885 define KernelPackage/sctp/description
886  Kernel modules for SCTP protocol support
887 endef
888
889 $(eval $(call KernelPackage,sctp))
890
891
892 define KernelPackage/netem
893   SUBMENU:=$(NETWORK_SUPPORT_MENU)
894   TITLE:=Network emulation functionality
895   DEPENDS:=+kmod-sched
896   KCONFIG:=CONFIG_NET_SCH_NETEM
897   FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
898   AUTOLOAD:=$(call AutoLoad,99,netem)
899 endef
900
901 define KernelPackage/netem/description
902   Kernel modules for emulating the properties of wide area networks
903 endef
904
905 $(eval $(call KernelPackage,netem))
906
907 define KernelPackage/slip
908   SUBMENU:=$(NETWORK_SUPPORT_MENU)
909   TITLE:=SLIP modules
910   KCONFIG:= \
911        CONFIG_SLIP \
912        CONFIG_SLIP_COMPRESSED=y \
913        CONFIG_SLIP_SMART=y \
914        CONFIG_SLIP_MODE_SLIP6=y
915
916   FILES:= \
917        $(LINUX_DIR)/drivers/net/slip/slip.ko
918   AUTOLOAD:=$(call AutoLoad,30,slip)
919 endef
920
921 define KernelPackage/slip/description
922  Kernel modules for SLIP support
923 endef
924
925 $(eval $(call KernelPackage,slip))
926