require all CONFIG_* symbols listed in its KCONFIG to be set to m in order to actuall...
[openwrt.git] / package / kernel / modules / network.mk
1
2 # Copyright (C) 2006 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 NSMENU:=Network Support
10
11 define KernelPackage/atm
12   SUBMENU:=$(NSMENU)
13   TITLE:=ATM support
14   DESCRIPTION:= \
15     Kernel modules for ATM support
16   DEPENDS:=@LINUX_2_6
17   KCONFIG:= \
18         CONFIG_ATM \
19         CONFIG_ATM_BR2684
20   FILES:= \
21         $(LINUX_DIR)/net/atm/atm.$(LINUX_KMOD_SUFFIX) \
22         $(LINUX_DIR)/net/atm/br2684.$(LINUX_KMOD_SUFFIX)
23   AUTOLOAD:=$(call AutoLoad,30,atm br2684)
24 endef
25
26 $(eval $(call KernelPackage,atm))
27
28
29 define KernelPackage/atmtcp
30   SUBMENU:=$(NSMENU)
31   TITLE:=ATM over TCP
32   DESCRIPTION:= \
33     Kernel module for ATM over TCP support
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 $(eval $(call KernelPackage,atmtcp))
41
42
43 define KernelPackage/bonding
44   SUBMENU:=$(NSMENU)
45   TITLE:=Ethernet bonding driver
46   DESCRIPTION:= \
47     Kernel module for NIC bonding.
48   KCONFIG:=CONFIG_BONDING
49   FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.$(LINUX_KMOD_SUFFIX)
50   AUTOLOAD:=$(call AutoLoad,40,bonding)
51 endef
52 $(eval $(call KernelPackage,bonding))
53
54 define KernelPackage/ipip
55   SUBMENU:=$(NSMENU)
56   TITLE:=IP in IP encapsulation support
57   DESCRIPTION:=\
58         Kernel modules for IP in IP encapsulation
59   KCONFIG:=CONFIG_NET_IPIP
60   FILES:=$(LINUX_DIR)/net/ipv4/ipip.$(LINUX_KMOD_SUFFIX)
61   AUTOLOAD:=$(call AutoLoad,30,ipip)
62 endef
63
64 define KernelPackage/ipip/2.6
65   KCONFIG+=CONFIG_INET_TUNNEL
66   FILES+=$(LINUX_DIR)/net/ipv4/tunnel4.$(LINUX_KMOD_SUFFIX)
67   AUTOLOAD+=$(call AutoLoad,31,tunnel4)
68 endef
69
70 $(eval $(call KernelPackage,ipip))
71
72
73 define KernelPackage/ipsec
74   SUBMENU:=$(NSMENU)
75   TITLE:=IPsec related modules (IPv4 and IPv6)
76   DESCRIPTION:=\
77         Kernel modules for IPsec support in both IPv4 and IPv6.\\\
78         Includes:\\\
79         - af_key\\\
80         - xfrm_user
81   DEPENDS:=@LINUX_2_6
82   KCONFIG:= \
83         CONFIG_NET_KEY \
84         CONFIG_XFRM_USER
85   FILES:= \
86         $(LINUX_DIR)/net/key/af_key.$(LINUX_KMOD_SUFFIX) \
87         $(LINUX_DIR)/net/xfrm/xfrm_user.$(LINUX_KMOD_SUFFIX)
88 endef
89
90 $(eval $(call KernelPackage,ipsec))
91
92
93 define KernelPackage/ipsec4
94   SUBMENU:=$(NSMENU)
95   TITLE:=IPsec related modules (IPv4)
96   DESCRIPTION:=\
97         Kernel modules for IPsec support in IPv4.\\\
98         Includes:\\\
99         - ah4\\\
100         - esp4\\\
101         - ipcomp\\\
102         - xfrm4_tunnel
103   DEPENDS:=kmod-ipsec
104   KCONFIG:= \
105         CONFIG_INET_AH \
106         CONFIG_INET_ESP \
107         CONFIG_INET_IPCOMP \
108         CONFIG_INET_XFRM_TUNNEL
109   FILES:= $(foreach mod,ah4 esp4 ipcomp xfrm4_tunnel, \
110         $(LINUX_DIR)/net/ipv4/$(mod).$(LINUX_KMOD_SUFFIX) \
111   )
112 endef
113
114 $(eval $(call KernelPackage,ipsec4))
115
116
117 define KernelPackage/ipsec6
118   SUBMENU:=$(NSMENU)
119   TITLE:=IPsec related modules (IPv6)
120   DESCRIPTION:=\
121         Kernel modules for IPsec support in IPv6.\\\
122         Includes:\\\
123         - ah6\\\
124         - esp6\\\
125         - ipcomp6\\\
126         - xfrm6_tunnel\\\
127         - tunnel6
128   DEPENDS:=kmod-ipsec
129   KCONFIG:= \
130         CONFIG_INET6_AH \
131         CONFIG_INET6_ESP \
132         CONFIG_INET6_IPCOMP \
133         CONFIG_INET6_XFRM_TUNNEL \
134         CONFIG_INET6_TUNNEL
135   FILES:= $(foreach mod,ah6 esp6 ipcomp6 xfrm6_tunnel tunnel6, \
136         $(LINUX_DIR)/net/ipv6/$(mod).$(LINUX_KMOD_SUFFIX) \
137   )
138 endef
139
140 $(eval $(call KernelPackage,ipsec6))
141
142
143 define KernelPackage/ipv6
144   SUBMENU:=$(NSMENU)
145   TITLE:=IPv6 support
146   DESCRIPTION:=\
147         Kernel modules for IPv6 support
148   KCONFIG:=CONFIG_IPV6
149   FILES:=$(LINUX_DIR)/net/ipv6/ipv6.$(LINUX_KMOD_SUFFIX)
150   AUTOLOAD:=$(call AutoLoad,20,ipv6)
151 endef
152
153 define KernelPackage/ipv6/2.6
154   KCONFIG+=CONFIG_IPV6_SIT
155   FILES+=$(LINUX_DIR)/net/ipv6/sit.$(LINUX_KMOD_SUFFIX)
156   AUTOLOAD+=$(call AutoLoad,21,sit)
157 endef
158
159 $(eval $(call KernelPackage,ipv6))
160
161
162 define KernelPackage/gre
163   SUBMENU:=$(NSMENU)
164   TITLE:=GRE support
165   DESCRIPTION:=\
166         Generic Routing Encapsulation support
167   KCONFIG:=CONFIG_NET_IPGRE
168   FILES=$(LINUX_DIR)/net/ipv4/ip_gre.$(LINUX_KMOD_SUFFIX)
169 endef
170
171 $(eval $(call KernelPackage,gre))
172
173
174 define KernelPackage/tun
175   SUBMENU:=$(NSMENU)
176   TITLE:=Universal TUN/TAP driver
177   DESCRIPTION:=\
178         Kernel support for the TUN/TAP tunneling device
179   KCONFIG:=CONFIG_TUN
180   FILES:=$(LINUX_DIR)/drivers/net/tun.$(LINUX_KMOD_SUFFIX)
181   AUTOLOAD:=$(call AutoLoad,30,tun)
182 endef
183
184 $(eval $(call KernelPackage,tun))
185
186
187 define KernelPackage/ppp
188   SUBMENU:=$(NSMENU)
189   TITLE:=PPP modules
190   DESCRIPTION:=\
191         Kernel modules for PPP support
192   KCONFIG:= \
193         CONFIG_PPP \
194         CONFIG_PPP_ASYNC
195   FILES:= \
196         $(LINUX_DIR)/drivers/net/ppp_async.$(LINUX_KMOD_SUFFIX) \
197         $(LINUX_DIR)/drivers/net/ppp_generic.$(LINUX_KMOD_SUFFIX) \
198         $(LINUX_DIR)/drivers/net/slhc.$(LINUX_KMOD_SUFFIX)
199 endef
200
201 define KernelPackage/ppp/2.4
202   AUTOLOAD:=$(call AutoLoad,30,slhc ppp_generic ppp_async)
203 endef
204
205 define KernelPackage/ppp/2.6
206   KCONFIG+= \
207         CONFIG_SLHC \
208         CONFIG_CRC_CCITT
209   FILES:= \
210         $(LINUX_DIR)/lib/crc-ccitt.$(LINUX_KMOD_SUFFIX)
211   AUTOLOAD:=$(call AutoLoad,30,crc-ccitt slhc ppp_generic ppp_async)
212 endef
213
214 $(eval $(call KernelPackage,ppp))
215
216
217 define KernelPackage/ppp-synctty
218   SUBMENU:=$(NSMENU)
219   TITLE:=PPP sync tty support
220   DESCRIPTION:=\
221         Kernel modules for PPP sync tty support
222   DEPENDS:=kmod-ppp
223   KCONFIG:=CONFIG_PPP_SYNC_TTY
224   FILES:=$(LINUX_DIR)/drivers/net/ppp_synctty.$(LINUX_KMOD_SUFFIX)
225   AUTOLOAD:=$(call AutoLoad,40,ppp_synctty)
226 endef
227
228 $(eval $(call KernelPackage,ppp-synctty))
229
230
231 define KernelPackage/pppoe
232   SUBMENU:=$(NSMENU)
233   TITLE:=PPPoE support
234   DESCRIPTION:=\
235         Kernel modules for PPPoE (PPP over Ethernet) support
236   DEPENDS:=kmod-ppp
237   KCONFIG:=CONFIG_PPPOE
238   FILES:= \
239         $(LINUX_DIR)/drivers/net/pppoe.$(LINUX_KMOD_SUFFIX) \
240         $(LINUX_DIR)/drivers/net/pppox.$(LINUX_KMOD_SUFFIX)
241 endef
242
243 $(eval $(call KernelPackage,pppoe))
244
245
246 define KernelPackage/pppoa
247   SUBMENU:=$(NSMENU)
248   TITLE:=PPPoA support
249   DESCRIPTION:=\
250         Kernel modules for PPPoA (PPP over ATM) support
251   DEPENDS:=kmod-ppp kmod-atm
252   KCONFIG:=CONFIG_PPPOATM
253   FILES:=$(LINUX_DIR)/net/atm/pppoatm.$(LINUX_KMOD_SUFFIX)
254   AUTOLOAD:=$(call AutoLoad,40,pppoatm)
255 endef
256
257 $(eval $(call KernelPackage,pppoa))
258
259
260 define KernelPackage/mppe
261   SUBMENU:=$(NSMENU)
262   TITLE:=Microsoft PPP compression/encryption
263   DESCRIPTION:=Kernel modules for Microsoft PPP compression/encryption
264   DEPENDS:=kmod-ppp
265 endef
266
267 define KernelPackage/mppe/2.4
268   KCONFIG:=CONFIG_PPP_MPPE_MPPC
269   FILES:=$(LINUX_DIR)/drivers/net/ppp_mppe_mppc.$(LINUX_KMOD_SUFFIX)
270   AUTOLOAD:=$(call AutoLoad,31,ppp_mppe_mppc)
271 endef
272
273 define KernelPackage/mppe/2.6
274   KCONFIG:=CONFIG_PPP_MPPE
275   FILES:=$(LINUX_DIR)/drivers/net/ppp_mppe.$(LINUX_KMOD_SUFFIX)
276   AUTOLOAD:=$(call AutoLoad,31,ppp_mppe)
277 endef
278
279 $(eval $(call KernelPackage,mppe))
280
281
282 define KernelPackage/sched
283   SUBMENU:=$(NSMENU)
284   TITLE:=Traffic schedulers
285   DESCRIPTION:=\
286         Kernel schedulers for IP traffic
287   KCONFIG:=CONFIG_NET_SCHED
288   FILES:=$(LINUX_DIR)/net/sched/*.$(LINUX_KMOD_SUFFIX)
289 endef
290
291 $(eval $(call KernelPackage,sched))
292
293
294 define KernelPackage/ax25
295   SUBMENU:=$(NSMENU)
296   TITLE:=AX25 support
297   DESCRIPTION:=Kernel modules for AX25 support
298   KCONFIG:= \
299         CONFIG_AX25 \
300         CONFIG_MKISS
301   FILES:= \
302         $(LINUX_DIR)/net/ax25/ax25.$(LINUX_KMOD_SUFFIX) \
303         $(LINUX_DIR)/drivers/net/hamradio/mkiss.$(LINUX_KMOD_SUFFIX)
304   AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
305 endef
306
307 $(eval $(call KernelPackage,ax25))
308
309
310 define KernelPackage/mp-alg
311   SUBMENU:=$(NSMENU)
312   TITLE:=ECMP caching algorithms
313   DEPENDS:=@LINUX_2_6
314   DESCRIPTION:= \
315         Kernel modules that provide several different algorithms for multipath \\\
316         route selection from the route cache. The iproute "mpath" argument allows \\\
317         specifying which algorithm to use for routes. \\\
318         quagga (at least <=0.99.6) requires a multipath patch to support this \\\
319         cached mp route feature.
320   KCONFIG:= \
321         CONFIG_IP_ROUTE_MULTIPATH_RR \
322         CONFIG_IP_ROUTE_MULTIPATH_RANDOM \
323         CONFIG_IP_ROUTE_MULTIPATH_WRANDOM \
324         CONFIG_IP_ROUTE_MULTIPATH_DRR
325   FILES:= \
326         $(LINUX_DIR)/net/ipv4/multipath_rr.$(LINUX_KMOD_SUFFIX) \
327         $(LINUX_DIR)/net/ipv4/multipath_random.$(LINUX_KMOD_SUFFIX) \
328         $(LINUX_DIR)/net/ipv4/multipath_wrandom.$(LINUX_KMOD_SUFFIX) \
329         $(LINUX_DIR)/net/ipv4/multipath_drr.$(LINUX_KMOD_SUFFIX)
330   AUTOLOAD:=$(call AutoLoad,35,multipath_rr multipath_random multipath_wrandom multipath_drr)
331 endef
332
333 $(eval $(call KernelPackage,mp-alg))
334
335
336 NDMENU:=Network Devices
337
338 define KernelPackage/natsemi
339   SUBMENU:=$(NDMENU)
340   TITLE:=National Semiconductor DP8381x series 
341   DESCRIPTION:=\
342         Kernel modules for National Semiconductor DP8381x series PCI Ethernet \\\
343         adapters.
344   DEPENDS:=@LINUX_2_6_X86
345   KCONFIG:=CONFIG_NATSEMI
346   FILES:=$(LINUX_DIR)/drivers/net/natsemi.$(LINUX_KMOD_SUFFIX)
347   AUTOLOAD:=$(call AutoLoad,20,natsemi)
348 endef
349
350 $(eval $(call KernelPackage,natsemi))
351
352
353 define KernelPackage/r6040
354   SUBMENU:=$(NDMENU)
355   TITLE:=RDC Fast-Ethernet support
356   DESCRIPTION:=\
357         Kernel modules for RDC Fast-Ethernet adapters.
358   DEPENDS:=@LINUX_2_6_RDC
359   KCONFIG:=CONFIG_R6040
360   FILES:=$(LINUX_DIR)/drivers/net/r6040.$(LINUX_KMOD_SUFFIX)
361 endef
362
363 $(eval $(call KernelPackage,r6040))
364
365
366 define KernelPackage/sis900
367   SUBMENU:=$(NDMENU)
368   TITLE:=SiS 900 Ethernet support
369   DESCRIPTION:=\
370         Kernel modules for Sis 900 Ethernet adapters.
371   DEPENDS:=@LINUX_2_6_X86
372   KCONFIG:=CONFIG_SIS900
373   FILES:=$(LINUX_DIR)/drivers/net/sis900.$(LINUX_KMOD_SUFFIX)
374   AUTOLOAD:=$(call AutoLoad,50,sis900)
375 endef
376
377 $(eval $(call KernelPackage,sis900))
378
379
380 define KernelPackage/via-rhine
381   SUBMENU:=$(NDMENU)
382   TITLE:=Via Rhine ethernet support
383   DESCRIPTION:=\
384         Kernel modules for Via Rhine Ethernet chipsets.
385   DEPENDS:=@LINUX_2_6_X86
386   KCONFIG:=CONFIG_VIA_RHINE
387   FILES:=$(LINUX_DIR)/drivers/net/via-rhine.$(LINUX_KMOD_SUFFIX)
388   AUTOLOAD:=$(call AutoLoad,50,via-rhine)
389 endef
390
391 $(eval $(call KernelPackage,via-rhine))
392
393
394 define KernelPackage/via-velocity
395   SUBMENU:=$(NDMENU)
396   TITLE:=VIA Velocity Gigabit Ethernet Adapter kernel support
397   DESCRIPTION:=\
398         Kernel modules for VIA Velocity Gigabit Ethernet chipsets.
399   DEPENDS:=@LINUX_2_6_IXP4XX
400   KCONFIG:=CONFIG_VIA_VELOCITY
401   FILES:=$(LINUX_DIR)/drivers/net/via-velocity.$(LINUX_KMOD_SUFFIX)
402   AUTOLOAD:=$(call AutoLoad,50,via-velocity)
403 endef
404
405 $(eval $(call KernelPackage,via-velocity))
406
407
408 define KernelPackage/8139too
409   SUBMENU:=$(NDMENU)
410   TITLE:=RealTek RTL-8139 PCI Fast Ethernet Adapter kernel support
411   DESCRIPTION:=\
412         Kernel modules for RealTek RTL-8139 PCI Fast Ethernet adapters.
413   DEPENDS:=@LINUX_2_6_X86
414   KCONFIG:=CONFIG_8139TOO
415   FILES:=$(LINUX_DIR)/drivers/net/8139too.$(LINUX_KMOD_SUFFIX)
416   AUTOLOAD:=$(call AutoLoad,50,8139too)
417 endef
418
419 $(eval $(call KernelPackage,8139too))
420
421
422 define KernelPackage/r8169
423   SUBMENU:=$(NDMENU)
424   TITLE:=RealTek RTL-8169 PCI Gigabit Ethernet Adapter kernel support
425   DESCRIPTION:=\
426         Kernel modules for RealTek RTL-8169 PCI Gigabit Ethernet adapters.
427   DEPENDS:=@LINUX_2_6_X86 
428   KCONFIG:=CONFIG_R8169 CONFIG_R8169_NAPI=y CONFIG_R8169_VLAN=n
429   FILES:=$(LINUX_DIR)/drivers/net/r8169.$(LINUX_KMOD_SUFFIX)
430   AUTOLOAD:=$(call AutoLoad,50,r8169)
431 endef
432
433 $(eval $(call KernelPackage,r8169))
434
435
436 define KernelPackage/ne2k-pci
437   SUBMENU:=$(NDMENU)
438   TITLE:=ne2k-pci Ethernet Adapter kernel support
439   DESCRIPTION:=\
440         ne2k-pci Ethernet Adapter kernel support.
441   DEPENDS:=@LINUX_2_6_X86
442   KCONFIG:=CONFIG_NE2K_PCI
443   FILES:= \
444         $(LINUX_DIR)/drivers/net/ne2k-pci.$(LINUX_KMOD_SUFFIX) \
445         $(LINUX_DIR)/drivers/net/8390.$(LINUX_KMOD_SUFFIX)
446   AUTOLOAD:=$(call AutoLoad,50,8390 ne2k-pci)
447 endef
448
449 $(eval $(call KernelPackage,ne2k-pci))
450
451
452 define KernelPackage/ixp4xx-npe
453   SUBMENU:=$(NDMENU)
454   TITLE:=Intel(R) IXP4xx ethernet support
455   DESCRIPTION:=\
456         Kernel modules for Intel(R) IXP4xx onboard ethernet.
457   DEPENDS:=@LINUX_2_6_IXP4XX
458   KCONFIG:=CONFIG_IXP4XX_MAC
459   FILES:= \
460         $(LINUX_DIR)/drivers/net/ixp4xx/ixp4xx_npe.$(LINUX_KMOD_SUFFIX) \
461         $(LINUX_DIR)/drivers/net/ixp4xx/ixp4xx_qmgr.$(LINUX_KMOD_SUFFIX) \
462         $(LINUX_DIR)/drivers/net/ixp4xx/ixp4xx_mac.$(LINUX_KMOD_SUFFIX)
463   AUTOLOAD:=$(call AutoLoad,20,ixp4xx_npe ixp4xx_qmgr ixp4xx_mac)
464 endef
465
466 $(eval $(call KernelPackage,ixp4xx-npe))
467
468
469 define KernelPackage/e100
470   SUBMENU:=$(NDMENU)
471   TITLE:=Intel(R) PRO/100+ cards kernel support
472   DESCRIPTION:=\
473         Kernel modules for Intel(R) PRO/100+ Ethernet adapters.
474   DEPENDS:=@LINUX_2_6_X86
475   KCONFIG:=CONFIG_E100
476   FILES:=$(LINUX_DIR)/drivers/net/e100.$(LINUX_KMOD_SUFFIX)
477   AUTOLOAD:=$(call AutoLoad,50,e100)
478 endef
479
480 $(eval $(call KernelPackage,e100))
481
482
483 define KernelPackage/e1000
484   SUBMENU:=$(NDMENU)
485   TITLE:=Intel(R) PRO/1000 cards kernel support
486   DESCRIPTION:=\
487         Kernel modules for Intel(R) PRO/1000 Ethernet adapters.
488   DEPENDS:=@LINUX_2_6_X86
489   KCONFIG:=CONFIG_E1000
490   FILES:=$(LINUX_DIR)/drivers/net/e1000/e1000.$(LINUX_KMOD_SUFFIX)
491   AUTOLOAD:=$(call AutoLoad,50,e1000)
492 endef
493
494 $(eval $(call KernelPackage,e1000))
495
496
497 define KernelPackage/3c59x
498   SUBMENU:=$(NDMENU)
499   TITLE:=3Com 3c590/3c900 series (592/595/597) Vortex/Boomerang
500   DESCRIPTION:=\
501         This option enables driver support for a large number of 10mbps and \\\
502         10/100mbps EISA, PCI and PCMCIA 3Com Ethernet adapters: \\\
503         - "Vortex"    (Fast EtherLink 3c590/3c592/3c595/3c597) EISA and PCI \\\
504         - "Boomerang" (EtherLink XL 3c900 or 3c905)            PCI \\\
505         - "Cyclone"   (3c540/3c900/3c905/3c980/3c575/3c656)    PCI and Cardbus \\\
506         - "Tornado"   (3c905)                                  PCI  \\\
507         - "Hurricane" (3c555/3cSOHO)                           PCI 
508   DEPENDS:=@LINUX_2_6_X86
509   KCONFIG:=CONFIG_3C59X
510   FILES:=$(LINUX_DIR)/drivers/net/3c59x.$(LINUX_KMOD_SUFFIX)
511   AUTOLOAD:=$(call AutoLoad,50,3c59x)
512 endef
513
514 $(eval $(call KernelPackage,3c59x))