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