4e75a9c274717e3d24597b7633c384c4eb971408
[openwrt.git] / package / kernel / modules / netsupport.mk
1 #
2 # Copyright (C) 2006-2008 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 # $Id$
8
9 NETWORK_SUPPORT_MENU:=Network Support
10
11 define KernelPackage/atm
12   SUBMENU:=$(NETWORK_SUPPORT_MENU)
13   TITLE:=ATM support
14   DEPENDS:=@LINUX_2_6
15   KCONFIG:= \
16         CONFIG_ATM \
17         CONFIG_ATM_BR2684
18   FILES:= \
19         $(LINUX_DIR)/net/atm/atm.$(LINUX_KMOD_SUFFIX) \
20         $(LINUX_DIR)/net/atm/br2684.$(LINUX_KMOD_SUFFIX)
21   AUTOLOAD:=$(call AutoLoad,30,atm br2684)
22 endef
23
24 define KernelPackage/atm/description
25  Kernel modules for ATM support
26 endef
27
28 $(eval $(call KernelPackage,atm))
29
30
31 define KernelPackage/atmtcp
32   SUBMENU:=$(NETWORK_SUPPORT_MENU)
33   TITLE:=ATM over TCP
34   DEPENDS:=@LINUX_2_6 kmod-atm
35   KCONFIG:=CONFIG_ATM_TCP CONFIG_ATM_DRIVERS=y
36   FILES:=$(LINUX_DIR)/drivers/atm/atmtcp.$(LINUX_KMOD_SUFFIX)
37   AUTOLOAD:=$(call AutoLoad,40,atmtcp)
38 endef
39
40 define KernelPackage/atmtcp/description
41  Kernel module for ATM over TCP support
42 endef
43
44 $(eval $(call KernelPackage,atmtcp))
45
46
47 define KernelPackage/bonding
48   SUBMENU:=$(NETWORK_SUPPORT_MENU)
49   TITLE:=Ethernet bonding driver
50   KCONFIG:=CONFIG_BONDING
51   FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.$(LINUX_KMOD_SUFFIX)
52   AUTOLOAD:=$(call AutoLoad,40,bonding)
53 endef
54
55 define KernelPackage/bonding/description
56  Kernel module for NIC bonding.
57 endef
58
59 $(eval $(call KernelPackage,bonding))
60
61
62 define KernelPackage/capi
63   SUBMENU:=$(NETWORK_SUPPORT_MENU)
64   TITLE:=CAPI (ISDN) Support
65   DEPENDS:=@LINUX_2_6
66   KCONFIG:= \
67         CONFIG_ISDN_CAPI \
68         CONFIG_ISDN_CAPI_CAPI20 \
69         CONFIG_ISDN_CAPIFS
70   FILES:= \
71         $(LINUX_DIR)/drivers/isdn/capi/kernelcapi.$(LINUX_KMOD_SUFFIX) \
72         $(LINUX_DIR)/drivers/isdn/capi/capi.$(LINUX_KMOD_SUFFIX) \
73         $(LINUX_DIR)/drivers/isdn/capi/capifs.$(LINUX_KMOD_SUFFIX)
74   AUTOLOAD:=$(call AutoLoad,30,kernelcapi capi capifs)
75 endef
76
77 define KernelPackage/capi/description
78  Kernel module for basic CAPI (ISDN) support
79 endef
80
81 $(eval $(call KernelPackage,capi))
82
83 define KernelPackage/misdn
84   SUBMENU:=$(NETWORK_SUPPORT_MENU)
85   TITLE:=mISDN (ISDN) Support
86   KCONFIG:= \
87         CONFIG_ISDN=y \
88         CONFIG_MISDN \
89         CONFIG_MISDN_DSP \
90         CONFIG_MISDN_L1OIP
91   FILES:= \
92         $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.$(LINUX_KMOD_SUFFIX) \
93         $(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.$(LINUX_KMOD_SUFFIX) \
94         $(LINUX_DIR)/drivers/isdn/mISDN/l1oip.$(LINUX_KMOD_SUFFIX)
95   AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
96 endef
97
98 define KernelPackage/misdn/description
99   Modular ISDN driver support
100 endef
101
102 $(eval $(call KernelPackage,misdn))
103
104
105 define KernelPackage/ipip
106   SUBMENU:=$(NETWORK_SUPPORT_MENU)
107   TITLE:=IP-in-IP encapsulation
108   DEPENDS:=+kmod-iptunnel4
109   KCONFIG:=CONFIG_NET_IPIP
110   FILES:=$(LINUX_DIR)/net/ipv4/ipip.$(LINUX_KMOD_SUFFIX)
111   AUTOLOAD:=$(call AutoLoad,30,ipip)
112 endef
113
114 define KernelPackage/ipip/description
115  Kernel modules for IP-in-IP encapsulation
116 endef
117
118 $(eval $(call KernelPackage,ipip))
119
120
121 define KernelPackage/ipsec
122   SUBMENU:=$(NETWORK_SUPPORT_MENU)
123   TITLE:=IPsec related modules (IPv4 and IPv6)
124   DEPENDS:=@LINUX_2_6 +kmod-crypto-core +kmod-crypto-des +kmod-crypto-hmac +kmod-crypto-md5 +kmod-crypto-sha1
125   KCONFIG:= \
126         CONFIG_NET_KEY \
127         CONFIG_XFRM_USER
128   FILES:= \
129         $(LINUX_DIR)/net/key/af_key.$(LINUX_KMOD_SUFFIX) \
130         $(LINUX_DIR)/net/xfrm/xfrm_user.$(LINUX_KMOD_SUFFIX)
131 endef
132
133 define KernelPackage/ipsec/description
134  Kernel modules for IPsec support in both IPv4 and IPv6.
135  Includes:
136  - af_key
137  - xfrm_user
138 endef
139
140 $(eval $(call KernelPackage,ipsec))
141
142
143 define KernelPackage/ipsec4
144   SUBMENU:=$(NETWORK_SUPPORT_MENU)
145   TITLE:=IPsec related modules (IPv4)
146   DEPENDS:=kmod-ipsec +kmod-iptunnel4
147   KCONFIG:= \
148         CONFIG_INET_AH \
149         CONFIG_INET_ESP \
150         CONFIG_INET_IPCOMP \
151         CONFIG_INET_XFRM_MODE_BEET \
152         CONFIG_INET_XFRM_MODE_TRANSPORT \
153         CONFIG_INET_XFRM_MODE_TUNNEL \
154         CONFIG_INET_XFRM_TUNNEL
155   FILES:= $(foreach mod,ah4 esp4 ipcomp xfrm4_mode_beet xfrm4_mode_transport xfrm4_mode_tunnel xfrm4_tunnel , \
156         $(LINUX_DIR)/net/ipv4/$(mod).$(LINUX_KMOD_SUFFIX) \
157   )
158 endef
159
160 define KernelPackage/ipsec4/description
161  Kernel modules for IPsec support in IPv4.
162  Includes:
163  - ah4
164  - esp4
165  - ipcomp
166  - xfrm4_mode_beet
167  - xfrm4_mode_transport
168  - xfrm4_mode_tunnel
169  - xfrm4_tunnel
170 endef
171
172 $(eval $(call KernelPackage,ipsec4))
173
174
175 define KernelPackage/ipsec6
176   SUBMENU:=$(NETWORK_SUPPORT_MENU)
177   TITLE:=IPsec related modules (IPv6)
178   DEPENDS:=kmod-ipsec +kmod-iptunnel6
179   KCONFIG:= \
180         CONFIG_INET6_AH \
181         CONFIG_INET6_ESP \
182         CONFIG_INET6_IPCOMP \
183         CONFIG_INET6_XFRM_MODE_BEET \
184         CONFIG_INET6_XFRM_MODE_TRANSPORT \
185         CONFIG_INET6_XFRM_MODE_TUNNEL \
186         CONFIG_INET6_XFRM_TUNNEL
187   FILES:= $(foreach mod,ah6 esp6 ipcomp6 xfrm6_mode_beet xfrm6_mode_transport xfrm6_mode_tunnel xfrm6_tunnel, \
188         $(LINUX_DIR)/net/ipv6/$(mod).$(LINUX_KMOD_SUFFIX) \
189   )
190 endef
191
192 define KernelPackage/ipsec6/description
193  Kernel modules for IPsec support in IPv6.
194  Includes:
195  - ah6
196  - esp6
197  - ipcomp6
198  - xfrm6_mode_beet
199  - xfrm6_mode_transport
200  - xfrm6_mode_tunnel
201  - xfrm6_tunnel
202 endef
203
204 $(eval $(call KernelPackage,ipsec6))
205
206
207 # NOTE: tunnel4 is not selectable by itself, so enable ipip for that
208 define KernelPackage/iptunnel4
209   SUBMENU:=$(NETWORK_SUPPORT_MENU)
210   TITLE:=IPv4 tunneling
211   DEPENDS:= @LINUX_2_6
212   KCONFIG:= \
213         CONFIG_NET_IPIP \
214         CONFIG_INET_TUNNEL
215   FILES:= $(foreach mod,tunnel4, \
216         $(LINUX_DIR)/net/ipv4/$(mod).$(LINUX_KMOD_SUFFIX) \
217   )
218   AUTOLOAD:=$(call AutoLoad,31,tunnel4)
219 endef
220
221 define KernelPackage/iptunnel4/description
222  Kernel modules for IPv4 tunneling
223 endef
224
225 $(eval $(call KernelPackage,iptunnel4))
226
227
228 define KernelPackage/iptunnel6
229   SUBMENU:=$(NETWORK_SUPPORT_MENU)
230   TITLE:=IPv6 tunneling
231   DEPENDS:= @LINUX_2_6 +kmod-ipv6
232   KCONFIG:= \
233         CONFIG_INET6_TUNNEL
234   FILES:= $(foreach mod,tunnel6, \
235         $(LINUX_DIR)/net/ipv6/$(mod).$(LINUX_KMOD_SUFFIX) \
236   )
237   AUTOLOAD:=$(call AutoLoad,31,tunnel6)
238 endef
239
240 define KernelPackage/iptunnel6/description
241  Kernel modules for IPv6 tunneling
242 endef
243
244 $(eval $(call KernelPackage,iptunnel6))
245
246
247 define KernelPackage/ipv6
248   SUBMENU:=$(NETWORK_SUPPORT_MENU)
249   TITLE:=IPv6 support
250   KCONFIG:= \
251         CONFIG_IPV6 \
252         CONFIG_IPV6_PRIVACY=y \
253         CONFIG_IPV6_MULTIPLE_TABLES=y \
254         CONFIG_IPV6_SUBTREES=y
255   FILES:=$(LINUX_DIR)/net/ipv6/ipv6.$(LINUX_KMOD_SUFFIX)
256   AUTOLOAD:=$(call AutoLoad,20,ipv6)
257 endef
258
259 define KernelPackage/ipv6/description
260  Kernel modules for IPv6 support
261 endef
262
263 $(eval $(call KernelPackage,ipv6))
264
265
266 define KernelPackage/sit
267   SUBMENU:=$(NETWORK_SUPPORT_MENU)
268   DEPENDS:=+kmod-iptunnel4
269   TITLE:=IPv6-in-IPv4 tunnelling
270 endef
271
272 # sit is compiled in the 2.4 ipv6 stack
273 define KernelPackage/sit/2.4
274   DEPENDS:= @LINUX_2_4 +kmod-ipv6
275   KCONFIG:=CONFIG_IPV6
276 endef
277
278 define KernelPackage/sit/2.6
279   DEPENDS:= @LINUX_2_6 +kmod-ipv6 +kmod-iptunnel4
280   KCONFIG+=CONFIG_IPV6_SIT
281   FILES:=$(LINUX_DIR)/net/ipv6/sit.$(LINUX_KMOD_SUFFIX)
282   AUTOLOAD:=$(call AutoLoad,32,sit)
283 endef
284
285 define KernelPackage/sit/description
286  Kernel modules for IPv6-in-IPv4 tunnelling
287 endef
288
289 $(eval $(call KernelPackage,sit))
290
291
292 define KernelPackage/ip6-tunnel
293   SUBMENU:=$(NETWORK_SUPPORT_MENU)
294   TITLE:=IP-in-IPv6 tunnelling
295   DEPENDS:= @LINUX_2_6 +kmod-ipv6 +kmod-iptunnel6
296   KCONFIG:= CONFIG_IPV6_TUNNEL
297   FILES:= $(foreach mod,ip6_tunnel, \
298         $(LINUX_DIR)/net/ipv6/$(mod).$(LINUX_KMOD_SUFFIX) \
299   )
300   AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
301 endef
302
303 define KernelPackage/ip6-tunnel/description
304  Kernel modules for IPv6-in-IPv6 and IPv4-in-IPv6 tunnelling
305 endef
306
307 $(eval $(call KernelPackage,ip6-tunnel))
308
309
310 define KernelPackage/gre
311   SUBMENU:=$(NETWORK_SUPPORT_MENU)
312   TITLE:=GRE support
313   KCONFIG:=CONFIG_NET_IPGRE
314   FILES=$(LINUX_DIR)/net/ipv4/ip_gre.$(LINUX_KMOD_SUFFIX)
315 endef
316
317 define KernelPackage/gre/description
318  Generic Routing Encapsulation support
319 endef
320
321 $(eval $(call KernelPackage,gre))
322
323
324 define KernelPackage/tun
325   SUBMENU:=$(NETWORK_SUPPORT_MENU)
326   TITLE:=Universal TUN/TAP driver
327   KCONFIG:=CONFIG_TUN
328   FILES:=$(LINUX_DIR)/drivers/net/tun.$(LINUX_KMOD_SUFFIX)
329   AUTOLOAD:=$(call AutoLoad,30,tun)
330 endef
331
332 define KernelPackage/tun/description
333  Kernel support for the TUN/TAP tunneling device
334 endef
335
336 $(eval $(call KernelPackage,tun))
337
338
339 define KernelPackage/ppp
340   SUBMENU:=$(NETWORK_SUPPORT_MENU)
341   TITLE:=PPP modules
342   DEPENDS:=+LINUX_2_6:kmod-crc-ccitt
343   KCONFIG:= \
344         CONFIG_PPP \
345         CONFIG_PPP_ASYNC \
346         CONFIG_SLHC
347   FILES:= \
348         $(LINUX_DIR)/drivers/net/ppp_async.$(LINUX_KMOD_SUFFIX) \
349         $(LINUX_DIR)/drivers/net/ppp_generic.$(LINUX_KMOD_SUFFIX) \
350         $(LINUX_DIR)/drivers/net/slhc.$(LINUX_KMOD_SUFFIX)
351   AUTOLOAD:=$(call AutoLoad,30,slhc ppp_generic ppp_async)
352 endef
353
354 define KernelPackage/ppp/description
355  Kernel modules for PPP support
356 endef
357
358 $(eval $(call KernelPackage,ppp))
359
360
361 define KernelPackage/ppp-synctty
362   SUBMENU:=$(NETWORK_SUPPORT_MENU)
363   TITLE:=PPP sync tty support
364   DEPENDS:=kmod-ppp
365   KCONFIG:=CONFIG_PPP_SYNC_TTY
366   FILES:=$(LINUX_DIR)/drivers/net/ppp_synctty.$(LINUX_KMOD_SUFFIX)
367   AUTOLOAD:=$(call AutoLoad,40,ppp_synctty)
368 endef
369
370 define KernelPackage/ppp-synctty/description
371  Kernel modules for PPP sync tty support
372 endef
373
374 $(eval $(call KernelPackage,ppp-synctty))
375
376
377 define KernelPackage/pppoe
378   SUBMENU:=$(NETWORK_SUPPORT_MENU)
379   TITLE:=PPPoE support
380   DEPENDS:=kmod-ppp
381   KCONFIG:=CONFIG_PPPOE
382   FILES:= \
383         $(LINUX_DIR)/drivers/net/pppoe.$(LINUX_KMOD_SUFFIX) \
384         $(LINUX_DIR)/drivers/net/pppox.$(LINUX_KMOD_SUFFIX)
385 endef
386
387 define KernelPackage/pppoe/description
388  Kernel modules for PPPoE (PPP over Ethernet) support
389 endef
390
391 $(eval $(call KernelPackage,pppoe))
392
393
394 define KernelPackage/pppoa
395   SUBMENU:=$(NETWORK_SUPPORT_MENU)
396   TITLE:=PPPoA support
397   DEPENDS:=kmod-ppp +kmod-atm
398   KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
399   FILES:=$(LINUX_DIR)/net/atm/pppoatm.$(LINUX_KMOD_SUFFIX)
400   AUTOLOAD:=$(call AutoLoad,40,pppoatm)
401 endef
402
403 define KernelPackage/pppoa/description
404  Kernel modules for PPPoA (PPP over ATM) support
405 endef
406
407 $(eval $(call KernelPackage,pppoa))
408
409
410 define KernelPackage/ipoa
411   SUBMENU:=$(NETWORK_SUPPORT_MENU)
412   TITLE:=IPoA support
413   DEPENDS:=kmod-atm
414   KCONFIG:=CONFIG_ATM_CLIP
415   FILES:=$(LINUX_DIR)/net/atm/clip.$(LINUX_KMOD_SUFFIX)
416   AUTOLOAD:=$(call AutoLoad,40,clip)
417 endef
418
419 define KernelPackage/ipoa/description
420   Kernel modules for IPoA (IP over ATM) support
421 endef
422
423 $(eval $(call KernelPackage,ipoa))
424
425
426 define KernelPackage/mppe
427   SUBMENU:=$(NETWORK_SUPPORT_MENU)
428   TITLE:=Microsoft PPP compression/encryption
429   DEPENDS:=kmod-ppp +kmod-crypto-arc4 +kmod-crypto-sha1
430   KCONFIG:= \
431         CONFIG_PPP_MPPE_MPPC \
432         CONFIG_PPP_MPPE
433 endef
434
435 define KernelPackage/mppe/2.4
436 #  KCONFIG:=CONFIG_PPP_MPPE_MPPC
437   FILES:=$(LINUX_DIR)/drivers/net/ppp_mppe_mppc.$(LINUX_KMOD_SUFFIX)
438   AUTOLOAD:=$(call AutoLoad,31,ppp_mppe_mppc)
439 endef
440
441 define KernelPackage/mppe/2.6
442 #  KCONFIG:=CONFIG_PPP_MPPE
443   FILES:=$(LINUX_DIR)/drivers/net/ppp_mppe.$(LINUX_KMOD_SUFFIX)
444   AUTOLOAD:=$(call AutoLoad,31,ppp_mppe)
445 endef
446
447 define KernelPackage/mppe/description
448  Kernel modules for Microsoft PPP compression/encryption
449 endef
450
451 $(eval $(call KernelPackage,mppe))
452
453
454 define KernelPackage/sched
455   SUBMENU:=$(NETWORK_SUPPORT_MENU)
456   TITLE:=Traffic schedulers
457   KCONFIG:= \
458         CONFIG_NET_SCHED=y \
459         CONFIG_NET_SCH_DSMARK \
460         CONFIG_NET_SCH_ESFQ \
461         CONFIG_NET_SCH_FIFO \
462         CONFIG_NET_SCH_GRED \
463         CONFIG_NET_SCH_HFSC \
464         CONFIG_NET_SCH_HTB \
465         CONFIG_NET_SCH_INGRESS \
466         CONFIG_NET_SCH_PRIO \
467         CONFIG_NET_SCH_RED \
468         CONFIG_NET_SCH_SFQ \
469         CONFIG_NET_SCH_TBF \
470         CONFIG_NET_SCH_TEQL
471   FILES:=$(LINUX_DIR)/net/sched/*.$(LINUX_KMOD_SUFFIX)
472 endef
473
474 define KernelPackage/sched/description
475  Kernel schedulers for IP traffic
476 endef
477
478 $(eval $(call KernelPackage,sched))
479
480
481 define KernelPackage/ax25
482   SUBMENU:=$(NETWORK_SUPPORT_MENU)
483   TITLE:=AX25 support
484   KCONFIG:= \
485         CONFIG_AX25 \
486         CONFIG_MKISS
487   FILES:= \
488         $(LINUX_DIR)/net/ax25/ax25.$(LINUX_KMOD_SUFFIX) \
489         $(LINUX_DIR)/drivers/net/hamradio/mkiss.$(LINUX_KMOD_SUFFIX)
490   AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
491 endef
492
493 define KernelPackage/ax25/description
494  Kernel modules for AX25 support
495 endef
496
497 $(eval $(call KernelPackage,ax25))
498
499
500 define KernelPackage/mp-alg
501   SUBMENU:=$(NETWORK_SUPPORT_MENU)
502   TITLE:=ECMP caching algorithms
503   DEPENDS:=@LINUX_2_6
504   KCONFIG:= \
505         CONFIG_IP_ROUTE_MULTIPATH_RR \
506         CONFIG_IP_ROUTE_MULTIPATH_RANDOM \
507         CONFIG_IP_ROUTE_MULTIPATH_WRANDOM \
508         CONFIG_IP_ROUTE_MULTIPATH_DRR
509   FILES:= \
510         $(LINUX_DIR)/net/ipv4/multipath_rr.$(LINUX_KMOD_SUFFIX) \
511         $(LINUX_DIR)/net/ipv4/multipath_random.$(LINUX_KMOD_SUFFIX) \
512         $(LINUX_DIR)/net/ipv4/multipath_wrandom.$(LINUX_KMOD_SUFFIX) \
513         $(LINUX_DIR)/net/ipv4/multipath_drr.$(LINUX_KMOD_SUFFIX)
514   AUTOLOAD:=$(call AutoLoad,35,multipath_rr multipath_random multipath_wrandom multipath_drr)
515 endef
516
517 define KernelPackage/mp-alg/description
518  Kernel modules that provide several different algorithms for multipath
519  route selection from the route cache. The iproute "mpath" argument allows
520  specifying which algorithm to use for routes.
521  quagga (at least <=0.99.6) requires a multipath patch to support this
522  cached mp route feature.
523 endef
524
525 $(eval $(call KernelPackage,mp-alg))
526
527
528 define KernelPackage/pktgen
529   SUBMENU:=$(NETWORK_SUPPORT_MENU)
530   TITLE:=Network packet generator
531   DEPENDS:=@LINUX_2_6
532   KCONFIG:=CONFIG_NET_PKTGEN
533   FILES:=$(LINUX_DIR)/net/core/pktgen.$(LINUX_KMOD_SUFFIX)
534   AUTOLOAD:=$(call AutoLoad,99,pktgen)
535 endef
536
537 define KernelPackage/pktgen/description
538   Kernel modules for the Network Packet Generator
539 endef
540
541 $(eval $(call KernelPackage,pktgen))
542