[NET]: add a top-level Networking menu to *config
[linux-2.6.git] / net / Kconfig
1 #
2 # Network configuration
3 #
4
5 menu "Networking"
6
7 config NET
8         bool "Networking support"
9         ---help---
10           Unless you really know what you are doing, you should say Y here.
11           The reason is that some programs need kernel networking support even
12           when running on a stand-alone machine that isn't connected to any
13           other computer.
14           
15           If you are upgrading from an older kernel, you
16           should consider updating your networking tools too because changes
17           in the kernel and the tools often go hand in hand. The tools are
18           contained in the package net-tools, the location and version number
19           of which are given in <file:Documentation/Changes>.
20
21           For a general introduction to Linux networking, it is highly
22           recommended to read the NET-HOWTO, available from
23           <http://www.tldp.org/docs.html#howto>.
24
25 menu "Networking options"
26         depends on NET
27
28 config PACKET
29         tristate "Packet socket"
30         ---help---
31           The Packet protocol is used by applications which communicate
32           directly with network devices without an intermediate network
33           protocol implemented in the kernel, e.g. tcpdump.  If you want them
34           to work, choose Y.
35
36           To compile this driver as a module, choose M here: the module will
37           be called af_packet.
38
39           If unsure, say Y.
40
41 config PACKET_MMAP
42         bool "Packet socket: mmapped IO"
43         depends on PACKET
44         help
45           If you say Y here, the Packet protocol driver will use an IO
46           mechanism that results in faster communication.
47
48           If unsure, say N.
49
50 config UNIX
51         tristate "Unix domain sockets"
52         ---help---
53           If you say Y here, you will include support for Unix domain sockets;
54           sockets are the standard Unix mechanism for establishing and
55           accessing network connections.  Many commonly used programs such as
56           the X Window system and syslog use these sockets even if your
57           machine is not connected to any network.  Unless you are working on
58           an embedded system or something similar, you therefore definitely
59           want to say Y here.
60
61           To compile this driver as a module, choose M here: the module will be
62           called unix.  Note that several important services won't work
63           correctly if you say M here and then neglect to load the module.
64
65           Say Y unless you know what you are doing.
66
67 config NET_KEY
68         tristate "PF_KEY sockets"
69         select XFRM
70         ---help---
71           PF_KEYv2 socket family, compatible to KAME ones.
72           They are required if you are going to use IPsec tools ported
73           from KAME.
74
75           Say Y unless you know what you are doing.
76
77 config INET
78         bool "TCP/IP networking"
79         ---help---
80           These are the protocols used on the Internet and on most local
81           Ethernets. It is highly recommended to say Y here (this will enlarge
82           your kernel by about 144 KB), since some programs (e.g. the X window
83           system) use TCP/IP even if your machine is not connected to any
84           other computer. You will get the so-called loopback device which
85           allows you to ping yourself (great fun, that!).
86
87           For an excellent introduction to Linux networking, please read the
88           Linux Networking HOWTO, available from
89           <http://www.tldp.org/docs.html#howto>.
90
91           If you say Y here and also to "/proc file system support" and
92           "Sysctl support" below, you can change various aspects of the
93           behavior of the TCP/IP code by writing to the (virtual) files in
94           /proc/sys/net/ipv4/*; the options are explained in the file
95           <file:Documentation/networking/ip-sysctl.txt>.
96
97           Short answer: say Y.
98
99 source "net/ipv4/Kconfig"
100
101 #   IPv6 as module will cause a CRASH if you try to unload it
102 config IPV6
103         tristate "The IPv6 protocol"
104         depends on INET
105         default m
106         select CRYPTO if IPV6_PRIVACY
107         select CRYPTO_MD5 if IPV6_PRIVACY
108         ---help---
109           This is complemental support for the IP version 6.
110           You will still be able to do traditional IPv4 networking as well.
111
112           For general information about IPv6, see
113           <http://playground.sun.com/pub/ipng/html/ipng-main.html>.
114           For Linux IPv6 development information, see <http://www.linux-ipv6.org>.
115           For specific information about IPv6 under Linux, read the HOWTO at
116           <http://www.bieringer.de/linux/IPv6/>.
117
118           To compile this protocol support as a module, choose M here: the 
119           module will be called ipv6.
120
121 source "net/ipv6/Kconfig"
122
123 menuconfig NETFILTER
124         bool "Network packet filtering (replaces ipchains)"
125         ---help---
126           Netfilter is a framework for filtering and mangling network packets
127           that pass through your Linux box.
128
129           The most common use of packet filtering is to run your Linux box as
130           a firewall protecting a local network from the Internet. The type of
131           firewall provided by this kernel support is called a "packet
132           filter", which means that it can reject individual network packets
133           based on type, source, destination etc. The other kind of firewall,
134           a "proxy-based" one, is more secure but more intrusive and more
135           bothersome to set up; it inspects the network traffic much more
136           closely, modifies it and has knowledge about the higher level
137           protocols, which a packet filter lacks. Moreover, proxy-based
138           firewalls often require changes to the programs running on the local
139           clients. Proxy-based firewalls don't need support by the kernel, but
140           they are often combined with a packet filter, which only works if
141           you say Y here.
142
143           You should also say Y here if you intend to use your Linux box as
144           the gateway to the Internet for a local network of machines without
145           globally valid IP addresses. This is called "masquerading": if one
146           of the computers on your local network wants to send something to
147           the outside, your box can "masquerade" as that computer, i.e. it
148           forwards the traffic to the intended outside destination, but
149           modifies the packets to make it look like they came from the
150           firewall box itself. It works both ways: if the outside host
151           replies, the Linux box will silently forward the traffic to the
152           correct local computer. This way, the computers on your local net
153           are completely invisible to the outside world, even though they can
154           reach the outside and can receive replies. It is even possible to
155           run globally visible servers from within a masqueraded local network
156           using a mechanism called portforwarding. Masquerading is also often
157           called NAT (Network Address Translation).
158
159           Another use of Netfilter is in transparent proxying: if a machine on
160           the local network tries to connect to an outside host, your Linux
161           box can transparently forward the traffic to a local server,
162           typically a caching proxy server.
163
164           Yet another use of Netfilter is building a bridging firewall. Using
165           a bridge with Network packet filtering enabled makes iptables "see"
166           the bridged traffic. For filtering on the lower network and Ethernet
167           protocols over the bridge, use ebtables (under bridge netfilter
168           configuration).
169
170           Various modules exist for netfilter which replace the previous
171           masquerading (ipmasqadm), packet filtering (ipchains), transparent
172           proxying, and portforwarding mechanisms. Please see
173           <file:Documentation/Changes> under "iptables" for the location of
174           these packages.
175
176           Make sure to say N to "Fast switching" below if you intend to say Y
177           here, as Fast switching currently bypasses netfilter.
178
179           Chances are that you should say Y here if you compile a kernel which
180           will run as a router and N for regular hosts. If unsure, say N.
181
182 if NETFILTER
183
184 config NETFILTER_DEBUG
185         bool "Network packet filtering debugging"
186         depends on NETFILTER
187         help
188           You can say Y here if you want to get additional messages useful in
189           debugging the netfilter code.
190
191 config BRIDGE_NETFILTER
192         bool "Bridged IP/ARP packets filtering"
193         depends on BRIDGE && NETFILTER && INET
194         default y
195         ---help---
196           Enabling this option will let arptables resp. iptables see bridged
197           ARP resp. IP traffic. If you want a bridging firewall, you probably
198           want this option enabled.
199           Enabling or disabling this option doesn't enable or disable
200           ebtables.
201
202           If unsure, say N.
203
204 source "net/ipv4/netfilter/Kconfig"
205 source "net/ipv6/netfilter/Kconfig"
206 source "net/decnet/netfilter/Kconfig"
207 source "net/bridge/netfilter/Kconfig"
208
209 endif
210
211 config XFRM
212        bool
213        depends on NET
214
215 source "net/xfrm/Kconfig"
216
217 source "net/sctp/Kconfig"
218
219 config ATM
220         tristate "Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)"
221         depends on EXPERIMENTAL
222         ---help---
223           ATM is a high-speed networking technology for Local Area Networks
224           and Wide Area Networks.  It uses a fixed packet size and is
225           connection oriented, allowing for the negotiation of minimum
226           bandwidth requirements.
227
228           In order to participate in an ATM network, your Linux box needs an
229           ATM networking card. If you have that, say Y here and to the driver
230           of your ATM card below.
231
232           Note that you need a set of user-space programs to actually make use
233           of ATM.  See the file <file:Documentation/networking/atm.txt> for
234           further details.
235
236 config ATM_CLIP
237         tristate "Classical IP over ATM (EXPERIMENTAL)"
238         depends on ATM && INET
239         help
240           Classical IP over ATM for PVCs and SVCs, supporting InARP and
241           ATMARP. If you want to communication with other IP hosts on your ATM
242           network, you will typically either say Y here or to "LAN Emulation
243           (LANE)" below.
244
245 config ATM_CLIP_NO_ICMP
246         bool "Do NOT send ICMP if no neighbour (EXPERIMENTAL)"
247         depends on ATM_CLIP
248         help
249           Normally, an "ICMP host unreachable" message is sent if a neighbour
250           cannot be reached because there is no VC to it in the kernel's
251           ATMARP table. This may cause problems when ATMARP table entries are
252           briefly removed during revalidation. If you say Y here, packets to
253           such neighbours are silently discarded instead.
254
255 config ATM_LANE
256         tristate "LAN Emulation (LANE) support (EXPERIMENTAL)"
257         depends on ATM
258         help
259           LAN Emulation emulates services of existing LANs across an ATM
260           network. Besides operating as a normal ATM end station client, Linux
261           LANE client can also act as an proxy client bridging packets between
262           ELAN and Ethernet segments. You need LANE if you want to try MPOA.
263
264 config ATM_MPOA
265         tristate "Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL)"
266         depends on ATM && INET && ATM_LANE!=n
267         help
268           Multi-Protocol Over ATM allows ATM edge devices such as routers,
269           bridges and ATM attached hosts establish direct ATM VCs across
270           subnetwork boundaries. These shortcut connections bypass routers
271           enhancing overall network performance.
272
273 config ATM_BR2684
274         tristate "RFC1483/2684 Bridged protocols"
275         depends on ATM && INET
276         help
277           ATM PVCs can carry ethernet PDUs according to RFC2684 (formerly 1483)
278           This device will act like an ethernet from the kernels point of view,
279           with the traffic being carried by ATM PVCs (currently 1 PVC/device).
280           This is sometimes used over DSL lines.  If in doubt, say N.
281
282 config ATM_BR2684_IPFILTER
283         bool "Per-VC IP filter kludge"
284         depends on ATM_BR2684
285         help
286           This is an experimental mechanism for users who need to terminate a
287           large number of IP-only vcc's.  Do not enable this unless you are sure
288           you know what you are doing.
289
290 config BRIDGE
291         tristate "802.1d Ethernet Bridging"
292         ---help---
293           If you say Y here, then your Linux box will be able to act as an
294           Ethernet bridge, which means that the different Ethernet segments it
295           is connected to will appear as one Ethernet to the participants.
296           Several such bridges can work together to create even larger
297           networks of Ethernets using the IEEE 802.1 spanning tree algorithm.
298           As this is a standard, Linux bridges will cooperate properly with
299           other third party bridge products.
300
301           In order to use the Ethernet bridge, you'll need the bridge
302           configuration tools; see <file:Documentation/networking/bridge.txt>
303           for location. Please read the Bridge mini-HOWTO for more
304           information.
305
306           If you enable iptables support along with the bridge support then you
307           turn your bridge into a bridging IP firewall.
308           iptables will then see the IP packets being bridged, so you need to
309           take this into account when setting up your firewall rules.
310           Enabling arptables support when bridging will let arptables see
311           bridged ARP traffic in the arptables FORWARD chain.
312
313           To compile this code as a module, choose M here: the module
314           will be called bridge.
315
316           If unsure, say N.
317
318 config VLAN_8021Q
319         tristate "802.1Q VLAN Support"
320         ---help---
321           Select this and you will be able to create 802.1Q VLAN interfaces
322           on your ethernet interfaces.  802.1Q VLAN supports almost
323           everything a regular ethernet interface does, including
324           firewalling, bridging, and of course IP traffic.  You will need
325           the 'vconfig' tool from the VLAN project in order to effectively
326           use VLANs.  See the VLAN web page for more information:
327           <http://www.candelatech.com/~greear/vlan.html>
328
329           To compile this code as a module, choose M here: the module
330           will be called 8021q.
331
332           If unsure, say N.
333
334 config DECNET
335         tristate "DECnet Support"
336         ---help---
337           The DECnet networking protocol was used in many products made by
338           Digital (now Compaq).  It provides reliable stream and sequenced
339           packet communications over which run a variety of services similar
340           to those which run over TCP/IP.
341
342           To find some tools to use with the kernel layer support, please
343           look at Patrick Caulfield's web site:
344           <http://linux-decnet.sourceforge.net/>.
345
346           More detailed documentation is available in
347           <file:Documentation/networking/decnet.txt>.
348
349           Be sure to say Y to "/proc file system support" and "Sysctl support"
350           below when using DECnet, since you will need sysctl support to aid
351           in configuration at run time.
352
353           The DECnet code is also available as a module ( = code which can be
354           inserted in and removed from the running kernel whenever you want).
355           The module is called decnet.
356
357 source "net/decnet/Kconfig"
358
359 source "net/llc/Kconfig"
360
361 config IPX
362         tristate "The IPX protocol"
363         select LLC
364         ---help---
365           This is support for the Novell networking protocol, IPX, commonly
366           used for local networks of Windows machines.  You need it if you
367           want to access Novell NetWare file or print servers using the Linux
368           Novell client ncpfs (available from
369           <ftp://platan.vc.cvut.cz/pub/linux/ncpfs/>) or from
370           within the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO,
371           available from <http://www.tldp.org/docs.html#howto>).  In order
372           to do the former, you'll also have to say Y to "NCP file system
373           support", below.
374
375           IPX is similar in scope to IP, while SPX, which runs on top of IPX,
376           is similar to TCP. There is also experimental support for SPX in
377           Linux (see "SPX networking", below).
378
379           To turn your Linux box into a fully featured NetWare file server and
380           IPX router, say Y here and fetch either lwared from
381           <ftp://ibiblio.org/pub/Linux/system/network/daemons/> or
382           mars_nwe from <ftp://www.compu-art.de/mars_nwe/>. For more
383           information, read the IPX-HOWTO available from
384           <http://www.tldp.org/docs.html#howto>.
385
386           General information about how to connect Linux, Windows machines and
387           Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.
388
389           The IPX driver would enlarge your kernel by about 16 KB. To compile
390           this driver as a module, choose M here: the module will be called ipx.
391           Unless you want to integrate your Linux box with a local Novell
392           network, say N.
393
394 source "net/ipx/Kconfig"
395
396 config ATALK
397         tristate "Appletalk protocol support"
398         select LLC
399         ---help---
400           AppleTalk is the protocol that Apple computers can use to communicate
401           on a network.  If your Linux box is connected to such a network and you
402           wish to connect to it, say Y.  You will need to use the netatalk package
403           so that your Linux box can act as a print and file server for Macs as
404           well as access AppleTalk printers.  Check out
405           <http://www.zettabyte.net/netatalk/> on the WWW for details.
406           EtherTalk is the name used for AppleTalk over Ethernet and the
407           cheaper and slower LocalTalk is AppleTalk over a proprietary Apple
408           network using serial links.  EtherTalk and LocalTalk are fully
409           supported by Linux.
410
411           General information about how to connect Linux, Windows machines and
412           Macs is on the WWW at <http://www.eats.com/linux_mac_win.html>.  The
413           NET-3-HOWTO, available from
414           <http://www.tldp.org/docs.html#howto>, contains valuable
415           information as well.
416
417           To compile this driver as a module, choose M here: the module will be
418           called appletalk. You almost certainly want to compile it as a
419           module so you can restart your AppleTalk stack without rebooting
420           your machine. I hear that the GNU boycott of Apple is over, so
421           even politically correct people are allowed to say Y here.
422
423 source "drivers/net/appletalk/Kconfig"
424
425 config X25
426         tristate "CCITT X.25 Packet Layer (EXPERIMENTAL)"
427         depends on EXPERIMENTAL
428         ---help---
429           X.25 is a set of standardized network protocols, similar in scope to
430           frame relay; the one physical line from your box to the X.25 network
431           entry point can carry several logical point-to-point connections
432           (called "virtual circuits") to other computers connected to the X.25
433           network. Governments, banks, and other organizations tend to use it
434           to connect to each other or to form Wide Area Networks (WANs). Many
435           countries have public X.25 networks. X.25 consists of two
436           protocols: the higher level Packet Layer Protocol (PLP) (say Y here
437           if you want that) and the lower level data link layer protocol LAPB
438           (say Y to "LAPB Data Link Driver" below if you want that).
439
440           You can read more about X.25 at <http://www.sangoma.com/x25.htm> and
441           <http://www.cisco.com/univercd/cc/td/doc/product/software/ios11/cbook/cx25.htm>.
442           Information about X.25 for Linux is contained in the files
443           <file:Documentation/networking/x25.txt> and
444           <file:Documentation/networking/x25-iface.txt>.
445
446           One connects to an X.25 network either with a dedicated network card
447           using the X.21 protocol (not yet supported by Linux) or one can do
448           X.25 over a standard telephone line using an ordinary modem (say Y
449           to "X.25 async driver" below) or over Ethernet using an ordinary
450           Ethernet card and the LAPB over Ethernet (say Y to "LAPB Data Link
451           Driver" and "LAPB over Ethernet driver" below).
452
453           To compile this driver as a module, choose M here: the module
454           will be called x25. If unsure, say N.
455
456 config LAPB
457         tristate "LAPB Data Link Driver (EXPERIMENTAL)"
458         depends on EXPERIMENTAL
459         ---help---
460           Link Access Procedure, Balanced (LAPB) is the data link layer (i.e.
461           the lower) part of the X.25 protocol. It offers a reliable
462           connection service to exchange data frames with one other host, and
463           it is used to transport higher level protocols (mostly X.25 Packet
464           Layer, the higher part of X.25, but others are possible as well).
465           Usually, LAPB is used with specialized X.21 network cards, but Linux
466           currently supports LAPB only over Ethernet connections. If you want
467           to use LAPB connections over Ethernet, say Y here and to "LAPB over
468           Ethernet driver" below. Read
469           <file:Documentation/networking/lapb-module.txt> for technical
470           details.
471
472           To compile this driver as a module, choose M here: the
473           module will be called lapb.  If unsure, say N.
474
475 config NET_DIVERT
476         bool "Frame Diverter (EXPERIMENTAL)"
477         depends on EXPERIMENTAL
478         ---help---
479           The Frame Diverter allows you to divert packets from the
480           network, that are not aimed at the interface receiving it (in
481           promisc. mode). Typically, a Linux box setup as an Ethernet bridge
482           with the Frames Diverter on, can do some *really* transparent www
483           caching using a Squid proxy for example.
484
485           This is very useful when you don't want to change your router's
486           config (or if you simply don't have access to it).
487
488           The other possible usages of diverting Ethernet Frames are
489           numberous:
490           - reroute smtp traffic to another interface
491           - traffic-shape certain network streams
492           - transparently proxy smtp connections
493           - etc...
494
495           For more informations, please refer to:
496           <http://diverter.sourceforge.net/>
497           <http://perso.wanadoo.fr/magpie/EtherDivert.html>
498
499           If unsure, say N.
500
501 config ECONET
502         tristate "Acorn Econet/AUN protocols (EXPERIMENTAL)"
503         depends on EXPERIMENTAL && INET
504         ---help---
505           Econet is a fairly old and slow networking protocol mainly used by
506           Acorn computers to access file and print servers. It uses native
507           Econet network cards. AUN is an implementation of the higher level
508           parts of Econet that runs over ordinary Ethernet connections, on
509           top of the UDP packet protocol, which in turn runs on top of the
510           Internet protocol IP.
511
512           If you say Y here, you can choose with the next two options whether
513           to send Econet/AUN traffic over a UDP Ethernet connection or over
514           a native Econet network card.
515
516           To compile this driver as a module, choose M here: the module
517           will be called econet.
518
519 config ECONET_AUNUDP
520         bool "AUN over UDP"
521         depends on ECONET
522         help
523           Say Y here if you want to send Econet/AUN traffic over a UDP
524           connection (UDP is a packet based protocol that runs on top of the
525           Internet protocol IP) using an ordinary Ethernet network card.
526
527 config ECONET_NATIVE
528         bool "Native Econet"
529         depends on ECONET
530         help
531           Say Y here if you have a native Econet network card installed in
532           your computer.
533
534 config WAN_ROUTER
535         tristate "WAN router"
536         depends on EXPERIMENTAL
537         ---help---
538           Wide Area Networks (WANs), such as X.25, frame relay and leased
539           lines, are used to interconnect Local Area Networks (LANs) over vast
540           distances with data transfer rates significantly higher than those
541           achievable with commonly used asynchronous modem connections.
542           Usually, a quite expensive external device called a `WAN router' is
543           needed to connect to a WAN.
544
545           As an alternative, WAN routing can be built into the Linux kernel.
546           With relatively inexpensive WAN interface cards available on the
547           market, a perfectly usable router can be built for less than half
548           the price of an external router.  If you have one of those cards and
549           wish to use your Linux box as a WAN router, say Y here and also to
550           the WAN driver for your card, below.  You will then need the
551           wan-tools package which is available from <ftp://ftp.sangoma.com/>.
552           Read <file:Documentation/networking/wan-router.txt> for more
553           information.
554
555           To compile WAN routing support as a module, choose M here: the
556           module will be called wanrouter.
557
558           If unsure, say N.
559
560 menu "QoS and/or fair queueing"
561
562 config NET_SCHED
563         bool "QoS and/or fair queueing"
564         ---help---
565           When the kernel has several packets to send out over a network
566           device, it has to decide which ones to send first, which ones to
567           delay, and which ones to drop. This is the job of the packet
568           scheduler, and several different algorithms for how to do this
569           "fairly" have been proposed.
570
571           If you say N here, you will get the standard packet scheduler, which
572           is a FIFO (first come, first served). If you say Y here, you will be
573           able to choose from among several alternative algorithms which can
574           then be attached to different network devices. This is useful for
575           example if some of your network devices are real time devices that
576           need a certain minimum data flow rate, or if you need to limit the
577           maximum data flow rate for traffic which matches specified criteria.
578           This code is considered to be experimental.
579
580           To administer these schedulers, you'll need the user-level utilities
581           from the package iproute2+tc at <ftp://ftp.tux.org/pub/net/ip-routing/>.
582           That package also contains some documentation; for more, check out
583           <http://snafu.freedom.org/linux2.2/iproute-notes.html>.
584
585           This Quality of Service (QoS) support will enable you to use
586           Differentiated Services (diffserv) and Resource Reservation Protocol
587           (RSVP) on your Linux router if you also say Y to "QoS support",
588           "Packet classifier API" and to some classifiers below. Documentation
589           and software is at <http://diffserv.sourceforge.net/>.
590
591           If you say Y here and to "/proc file system" below, you will be able
592           to read status information about packet schedulers from the file
593           /proc/net/psched.
594
595           The available schedulers are listed in the following questions; you
596           can say Y to as many as you like. If unsure, say N now.
597
598 source "net/sched/Kconfig"
599
600 endmenu
601
602 menu "Network testing"
603
604 config NET_PKTGEN
605         tristate "Packet Generator (USE WITH CAUTION)"
606         depends on PROC_FS
607         ---help---
608           This module will inject preconfigured packets, at a configurable
609           rate, out of a given interface.  It is used for network interface
610           stress testing and performance analysis.  If you don't understand
611           what was just said, you don't need it: say N.
612
613           Documentation on how to use the packet generator can be found
614           at <file:Documentation/networking/pktgen.txt>.
615
616           To compile this code as a module, choose M here: the
617           module will be called pktgen.
618
619 endmenu
620
621 endmenu
622
623 config NETPOLL
624         def_bool NETCONSOLE
625
626 config NETPOLL_RX
627         bool "Netpoll support for trapping incoming packets"
628         default n
629         depends on NETPOLL
630
631 config NETPOLL_TRAP
632         bool "Netpoll traffic trapping"
633         default n
634         depends on NETPOLL
635
636 config NET_POLL_CONTROLLER
637         def_bool NETPOLL
638
639 source "net/ax25/Kconfig"
640
641 source "net/irda/Kconfig"
642
643 source "net/bluetooth/Kconfig"
644
645 endmenu # Networking
646