xref: /netbsd-src/share/man/man4/options.4 (revision 2a399c6883d870daece976daec6ffa7bb7f934ce)
1.\"	$NetBSD: options.4,v 1.36 1998/01/04 00:44:20 lukem Exp $
2.\"
3.\" Copyright (c) 1996
4.\" 	Perry E. Metzger.  All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. All advertising materials mentioning features or use of this software
15.\"    must display the following acknowledgement:
16.\"	This product includes software developed for the NetBSD Project
17.\"	by Perry E. Metzger.
18.\" 4. The name of the author may not be used to endorse or promote products
19.\"    derived from this software without specific prior written permission.
20.\"
21.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31.\"
32.\"
33.Dd October 20, 1996
34.Os NetBSD 1.3
35.Dt OPTIONS 4
36.Sh NAME
37.Nm options
38.Nd Miscellaneous kernel configuration options
39.Sh SYNOPSIS
40.Cd options ...
41.Sh DESCRIPTION
42This manual page describes a number of miscellaneous kernel
43configuration options that may be specified in a kernel config
44file. See
45.Xr config 8
46for information on how to configure and build kernels.
47.Em Note:
48Options are passed to the compile process as -D flags to the C
49compiler.
50.Ss Compatibility Options
51.Bl -ohang
52.It Cd options COMPAT_09
53Enable binary compatibility with
54.Nx 0.9 .
55This enables support for
5616-bit user, group, and process ids (following revisions support
5732-bit identifiers),
58It also allows the use of the deprecated getdomainname, setdomainname,
59and uname syscalls.
60This option also allows using numeric filesystem identifiers rather
61than strings.  Post 0.9 versions use string identifiers.
62.It Cd options COMPAT_10
63Enable binary compatibility with
64.Nx 1.0 .
65This option allows the use of the filesystem name of
66.Dq ufs
67as an alias for
68.Dq ffs .
69The name
70.Dq ffs
71should be used post 1.0 in
72.Pa /etc/fstab
73and other files.  It also adds old syscalls for the
74.At V
75shared memory interface.  This was changed post 1.0 to work on 64-bit
76architectures.  This option also enables
77.Dq sgtty
78compatibility, without which programs using the old interface produce
79an
80.Dq inappropriate ioctl
81error.
82.It Cd options COMPAT_11
83Enable binary compatibility with
84.Nx 1.1 .
85This allows binaries running on the i386 port to gain direct access to
86the io ports by opening
87.Pa /dev/io
88read/write.  This functionality was
89replaced by
90.Xr i386_iopl 2
91post 1.1.
92On the
93.Tn Atari
94port, the location of the disk label was moved after 1.1. When the
95.Em COMPAT_11
96option is set, the kernel will read (pre) 1.1 style disk labels as a
97last resort. When a disklabel is re-written, the old style label will
98be replaced with a post 1.1 style label.
99.It Cd options COMPAT_12
100Enable binary compatibility with
101.Nx 1.2 .
102This allows the use of old syscalls for
103.Fn reboot
104and
105.Fn swapon .
106The syscall numbers were changed post 1.2 to add functionality to the
107reboot syscall, and the new
108.Fn swapctl
109interface was introduced.
110.It Cd options COMPAT_13
111Enable binary compatibility with
112.Nx 1.3 .
113This allows the use of old syscalls for
114.Fn sigaltstack .
115.It Cd options COMPAT_43
116Enables compatibility with
117.Bx 4.3 .
118This adds an old syscall for lseek.  It also adds the ioctls for
119TIOCGETP and TIOCSETP.  The return values for getpid, getgid, and
120getuid syscalls are modified as well, to return the parent's pid and
121uid as well as the current process's.  It also enables the deprecated
122NTTYDISC terminal line discipline.
123It also provides backwards compatibility with
124.Dq old
125SIOC[GS]IF{ADDR,DSTADDR,BRDADDR,NETMASK} interface ioctls, including
126binary compatibility with code written before the introduction of the
127sa_len field in sockaddrs.
128It also enables
129support for some older pre BSD 4.4 socket calls.
130.It Cd options COMPAT_SVR4
131On those architectures that support it, this enables binary
132compatibility with
133.At V.4
134applications built for the same architecture.  This currently includes
135the sparc and i386.
136.It Cd options COMPAT_LINUX
137On those architectures that support it, this enables binary
138compatibility with Linux ELF and a.out
139applications built for the same architecture.  This is currently limited
140to the i386.
141.It Cd options COMPAT_SUNOS
142On those architectures that support it, this enables binary
143compatibility with SunOS 4.1
144applications built for the same architecture.  This currently includes
145the sparc and most or all m68k platforms.
146.It Cd options COMPAT_ULTRIX
147On those architectures that support it, this enables binary
148compatibility with Ultrix
149applications built for the same architecture.  This currently is limited
150to the pmax.  The functionality of this option is unknown.
151.It Cd options COMPAT_FREEBSD
152On those architectures that support it, this enables binary
153compatibility with FreeBSD
154applications built for the same architecture.  This is obviously limited
155to the i386.
156.It Cd options COMPAT_HPUX
157On those architectures that support it, this enables binary
158compatibility with HP/UX
159applications built for the same architecture.  This is limited to the
160hp300 port, and has some known bugs.  A limited set of programs do work.
161.It Cd options COMPAT_IBCS2
162On those architectures that support it, this enables binary
163compatibility with iBCS2
164applications built for the same architecture.  This is currently
165limited to the i386.
166.It Cd options COMPAT_OSF1
167On those architectures that support it, this enables binary
168compatibility with Digital UNIX (formerly OSF/1)
169applications built for the same architecture.  This is currently
170limited to the alpha, and may not even work.
171.It Cd options COMPAT_NOMID
172Enable compatibility with a.out executables that lack a machine id.
173This includes NetBSD 0.8's ZMAGIC format, and 386BSD and BSDI's
174QMAGIC, NMAGIC, and OMAGIC a.out formats.
175.El
176.Ss Debugging Options
177.Bl -ohang
178.It Cd options DDB
179Compiles in a kernel debugger for diagnosing kernel problems. See
180.Xr ddb 4
181for details.
182.Em NOTE:
183not available on all architectures.
184.It Cd options DDB_HISTORY_SIZE=integer
185If this is non-zero, enable history editing in the kernel debugger
186and set the size of the history to this value.
187.It Cd options DDB_ONPANIC
188If set to non-zero, the DDB will be entered upon kernel panic.  The
189default if not specified is "1". Note that this sets the value of
190the
191.Em ddb.onpanic
192sysctl variable which may be changed at run time -- see
193.Xr sysctl 8
194for details.
195.It Cd options KGDB
196Compiles in a remote kernel debugger stub for diagnosing kernel problems
197using the
198.Dq remote target
199feature of gdb. See
200.Xr gdb 1
201for details.
202.Em NOTE:
203not available on all architectures.
204.It Cd makeoptions DEBUG="-g"
205The -g flag causes
206.Pa netbsd.gdb
207to be built in addition to
208.Pa netbsd .
209.Pa netbsd.gdb
210is useful for debugging kernel crash dumps with gdb.
211The command
212.Dl gdb -k
213invokes gdb in kernel debugger mode.
214See
215.Xr gdb 1
216for details. This also turns on
217.Em options DEBUG
218(which see).
219.It Cd options DEBUG
220Turns on miscellaneous kernel debugging. Since options are turned into
221preprocessor defines (see above),
222.Em options DEBUG
223is equivalent to doing a
224.Em #define DEBUG
225throughout the kernel. Much of the kernel has
226.Em #ifdef DEBUG
227conditionalized debugging code. Note that many parts of the kernel
228(typically device drivers) include their own
229.Em #ifdef XXX_DEBUG
230conditionals instead.
231This option also turns on certain other options,
232which may decrease system performance.
233.It Cd options DIAGNOSTIC
234Adds code to the kernel that does internal consistency checks.  This
235code will cause the kernel to panic if corruption of internal data
236structures is detected.
237.It Cd options KTRACE
238Add hooks for the system call tracing facility, which allows users to
239watch the system call invocation behavior of processes. See
240.Xr ktrace 1
241for details.
242.It Cd options MSGBUFSIZE=integer
243This option sets the size of the kernel message buffer. This buffer holds the
244kernel output of
245.Fn printf
246when not (yet) read by
247.Xr syslogd 8 .
248This is particularly useful when the system has crashed and you wish to lookup
249the kernel output from just before the crash. Also, since the autoconfig
250output becomes more and more verbose, it sometimes happens that the message
251buffer overflows before
252.Xr syslogd 8
253was able to read it.
254Note that not all systems are capable of obtaining a variable sized message
255buffer. There are also some systems on which memory contents are not preserved
256accross reboots.
257.El
258.Ss File Systems
259.Bl -ohang
260.It Cd file-system FFS
261Includes code implementing the Berkeley Fast File System
262.Em ( FFS ) .
263Most machines need this if they are not running diskless.
264.It Cd file-system EXT2FS
265Includes code implementing the Second Extended File System
266.Em ( EXT2FS ) .
267This is the most commonly used file system on the Linux operating system,
268and is provided here for compatibility. Some of the specific features
269of
270.Em EXT2FS
271like the "behavior on errors" are not implemented. This file system can't be
272used with UID or GID greater than 65535. See
273.Xr mount_ext2fs 8
274for details.
275.It Cd file-system LFS
276Include the log structured file system
277.Em ( LFS ) .
278See
279.Xr mount_lfs 8
280and
281.Xr newlfs 8
282for details.
283.It Cd file-system MFS
284Include the memory file system
285.Em ( MFS ) .
286This file system stores files in swappable memory, and produces
287notable performance improvements when it is used as the file store
288for
289.Pa /tmp
290and similar file systems. See
291.Xr mount_mfs 8
292for details.
293.It Cd file-system NFS
294Include the client side of the
295.Em NFS
296(Network File System) remote file sharing protocol.
297Although the bulk of the code implementing
298.Em NFS
299is kernel based, several user level daemons are needed for it to
300work. See
301.Xr mount_nfs 8
302and
303.Xr nfsiod 8
304for details.
305.It Cd file-system CD9660
306Includes code for the ISO 9660 + Rock Ridge file system, which is the
307standard file system on many CD-ROMs. Useful mostly if you have a CD
308drive. See
309.Xr mount_cd9660 8
310for details.
311.It Cd file-system MSDOSFS
312Includes the
313.Tn MS-DOS
314FAT file system, which is reportedly still used
315by unfortunate people who have not heard about
316.Nx .
317Also implements the
318.Tn Windows 95
319extensions to the same, which permit the use of longer, mixed case
320file names. see
321.Xr mount_msdos 8
322and
323.Xr fsck_msdos 8
324for details.
325.It Cd file-system FDESC
326Includes code for a file system, conventionally mounted on
327.Pa /dev/fd ,
328which permits access to the per-process file descriptor space via
329special files in the file system.
330See
331.Xr mount_fdesc 8
332for details.
333Note that this facility is redundant, and thus unneeded on most
334.Nx
335systems, since the
336.Xr fd 4
337pseudodevice driver already provides identical functionality. On most
338.Nx
339systems, instances of
340.Xr fd 4
341are mknoded under
342.Pa /dev/fd/
343and on
344.Pa /dev/stdin ,
345.Pa /dev/stdout ,
346and
347.Pa /dev/stderr .
348.It Cd file-system KERNFS
349Includes code which permits the mounting of a special file system
350(normally mounted on
351.Pa /kern )
352in which files representing various kernel variables and parameters
353may be found.
354See
355.Xr mount_kernfs 8
356for details.
357.It Cd file-system NULLFS
358Includes code for a loopback file system. This permits portions of the file
359hierarchy to be re-mounted in other places. The code really exists to
360provide an example of a stackable file system layer. See
361.Xr mount_null 8
362for details.
363.It Cd file-system PORTAL
364Includes the (experimental) portal filesystem. This permits
365interesting tricks like opening TCP sockets by opening files in the
366file system. The portal file system is conventionally mounted on
367.Pa /p
368and is partially implemented by a special daemon. See
369.Xr mount_portal 8
370for details.
371.It Cd file-system PROCFS
372Includes code for a special file system (conventionally mounted on
373.Pa /proc )
374in which the process space becomes visible in the file system. Among
375other things, the memory spaces of processes running on the system are
376visible as files, and signals may be sent to processes by writing to
377.Pa ctl
378files in the procfs namespace. See
379.Xr mount_procfs 8
380for details.
381.It Cd file-system UMAPFS
382Includes a loopback file system in which user and group ids may be
383remapped -- this can be useful when mounting alien file systems with
384different uids and gids than the local system.
385See
386.Xr mount_umap 8
387for details.
388.It Cd file-system UNION
389Includes code for the union file system, which permits directories to
390be mounted on top of each other in such a way that both file systems
391remain visible -- this permits tricks like allowing writing (and the
392deleting of files) on a read-only file system like a CD-ROM by
393mounting a local writable file system on top of the read-only file
394system. See
395.Xr mount_union 8
396for details.
397.El
398.Ss File System Options
399.Bl -ohang
400.It Cd options NFSSERVER
401Include the server side of the
402.Em NFS
403(Network File System) remote file sharing protocol.
404Although the bulk of the code implementing
405.Em NFS
406is kernel based, several user level daemons are needed for it to
407work. See
408.Xr mountd 8
409and
410.Xr nfsd 8
411for details.
412.It Cd options QUOTA
413Enables kernel support for file system quotas. See
414.Xr quotaon 8 ,
415.Xr edquota 8 ,
416and
417.Xr quota 1
418for details. Note that quotas only work on
419.Dq ffs
420file systems, although
421.Xr rpc.rquotad 8
422permits them to be accessed over
423.Em NFS .
424.It Cd options FIFO
425Augments the system to permit the use of
426.At V
427style FIFOs (i.e.
428.Dq named pipes
429). This option is recommended.
430.It Cd options NVNODE=integer
431This option sets the size of the cache used by the name-to-inode translation
432routines, (a.k.a. the
433.Fn namei
434cache, though called by many other names in the kernel source).  By default,
435this cache has NPROC (set as 20 + 16 * MAXUSERS) * (80 + NPROC / 8) entries.
436A reasonable way to derive a value of NVNODE, should you notice a large
437number of namei cache misses with a tool such as
438.Xr systat 1 ,
439is to examine your system's current computed value with
440.Xr sysctl 1 ,
441(which calls this parameter "kern.maxvnodes") and to increase this value
442until either the namei cache hit rate improves or it is determined that
443your system does not benefit substantially from an increase in the size of
444the namei cache.
445.It Cd options EXT2FS_SYSTEM_FLAGS
446This option changes the behavior of the APPEND and IMMUTABLE flags
447for a file on an
448.Em EXT2FS
449filesystem. Without this option, the superuser or owner of the file can
450set and clear them. With this option, only the superuser can set them, and
451they can't be cleared if the securelevel is greater than 0. See also
452.Xr chflags 1 .
453.El
454.Ss Miscellaneous Options
455.Bl -ohang
456.It Cd options LKM
457Enable loadable kernel modules. See
458.Xr lkm 4
459for details.
460.Em NOTE:
461not available on all architectures.
462.It Cd options INSECURE
463Hardwires the kernel security level at -1. This means that the system
464always runs in secure level 0 mode, even when running multiuser. See
465the manual page for
466.Xr init 8
467for details on the implications of this. The kernel secure level may
468manipulated by the superuser by altering the
469.Em kern.securelevel
470sysctl variable. (It should be noted that the secure level may only be
471lowered by a call from process id 1, i.e.
472.Em init . )
473See also
474.Xr sysctl 8
475and
476.Xr sysctl 3 .
477.It Cd options UCONSOLE
478Normally, only the superuser can execute the TIOCCONS ioctl, which
479redirects console output to a non-console tty. (See
480.Xr tty 4
481for details).
482This option permits any user to execute the ioctl. This is useful on
483machines such as personal workstations which run X servers, where one
484would prefer to permit console output to be viewed in a window without
485requiring a suid root program to do it.
486.It Cd options MACHINE_NONCONTIG
487This option changes part of the VM/pmap interface, to allow for
488non-contiguous memory.  On some ports it is not an option.  These
489ports typically only use one of the interfaces.
490.It Cd options MEMORY_DISK_HOOKS
491This option allows for some machine dependent functions to be called when
492the ramdisk driver is configured. This can result in automatically loading
493a ramdisk from floppy on open (among other things).
494.It Cd options MEMORY_DISK_IS_ROOT
495Forces the ramdisk to be the root device. This can only be overridden when
496the kernel is booted in the 'ask-for-root' mode.
497.It Cd options NTP
498Turns on in-kernel precision timekeeping support used by software
499implementing
500.Em NTP
501(Network Time Protocol, RFC1305).
502The
503.Em NTP
504option adds an in-kernel phase-locked loop (PLL) for normal
505.Em NTP
506operation, and a frequency-locked loop (FLL) for intermittently-connected
507operation.
508.Xr xntpd 8
509will employ a user-level PLL when kernel support is unavailable,
510but the in-kernel version has lower latency and more precision, and
511so typically keeps much better time.
512The interface to the kernel
513.Em NTP
514support is provided by the
515.Xr ntp_adjtime 2
516and
517.Xr ntp_gettime 2
518system calls, which are intended for use by
519.Xr xntpd 8
520and are enabled by the option.
521On systems with sub-microsecond resolution timers, or where (HZ / 100000)
522is not an integer, the
523.Em NTP
524option also enables extended-precision arithmetic to keep track of
525fractional clock ticks at NTP time-format precision.
526.It Cd options PPS_SYNC
527This option enables a kernel serial line discipline for receiving time
528phase signals from an external reference clock such as a radio clock.
529(The
530.Em NTP
531option (which see) must be on if the
532.Em PPS_SYNC
533option is used.)
534Some reference clocks generate a pulse per second (PPS) signal in
535phase with their time source. The
536.Em PPS
537line discipline receives this signal on either the data leads
538or the DCD control lead of a serial port.
539.Em NTP
540uses the PPS signal to discipline the local clock oscillator to a high
541degree of precision (typically less than 50 microseconds in time and
5420.1 ppm in accuracy).
543.Em PPS
544can also generate a serial output pulse when the system receives a PPS
545interrupt.  This can be used to measure the system interrupt latency
546and thus calibrate
547.Em NTP
548to account for it.
549Using
550.Em PPS
551usually requires a
552gadget box
553to convert from TTL to RS-232 signal levels.
554The gadget box and PPS are described in more detail in the HTML documentation
555shipped with the xntpd distribution.
556.It Cd option SETUIDSCRIPTS
557Allows scripts with the setuid bit set to execute as the effective
558user rather than the real user, just like binary executables.
559NOTE: Using this option will also enable
560.Em option FDSCRIPTS
561.It Cd option FDSCRIPTS
562Allows execution of scripts with the execute bit set, but not the
563read bit, by opening the file and passing the file descriptor to
564the shell, rather than the filename.  NOTE: Execute only (non-readable)
565scripts will have
566.Va argv[0]
567set to
568.Pa /dev/fd/* .
569What this option allows as far as security is
570concerned, is the ability to safely ensure that the correct script
571is run by the interpreter, as it is passed as an already open file.
572.It Cd options RTC_OFFSET=integer
573The kernel (and typically the hardware battery backed-up clock on
574those machines that have one) keeps time in
575.Em UTC
576(Universal Coordinated Time, once known as
577.Em GMT ,
578or Greenwich Mean Time)
579and not in the time of the local time zone.
580The
581.Em RTC_OFFSET
582option is used on some ports (such as the i386) to tell the kernel
583that the hardware clock is offset from
584.Em UTC
585by the specified number of minutes. This is typically used when a
586machine boots several operating systems and one of them wants the
587hardware clock to run in the local time zone and not in
588.Em UTC ,
589e.g.
590.Em RTC_OFFSET=300
591means
592the hardware clock is set to US Eastern Time (300 minutes behind
593.Em UTC ) ,
594and not
595.Em UTC .
596(Note:
597.Em RTC_OFFSET
598is used to initialize a kernel variable named
599.Va rtc_offset
600which is the source actually used to determine the clock offset, and
601which may be accessed via the kern.rtc_offset sysctl variable.
602See
603.Xr sysctl 8
604and
605.Xr sysctl 3
606for details. Since the kernel clock is initialized from the hardware
607clock very early in the boot process, it is not possible to meaningfully change
608.Va rtc_offset
609in system initialization scripts.  Changing this value currently may
610only be done at kernel compile time or by patching the kernel and
611rebooting.)
612.It Cd options CCDNBUF=integer
613The
614.Xr ccd 4
615device driver uses "component buffers" to distribute I/O requests to the
616components of a concatenated disk.  It keeps a freelist of buffer headers
617in order to reduce use of the kernel memory allocator.
618.Em CCDNBUF
619is the number of buffer headers allocated on the freelist for
620each component buffer.  It defaults to 8.
621.It Cd options KMEMSTATS
622The kernel memory allocator,
623.Xr malloc 9 ,
624will keep statistics on its performance if this option is enabled.
625Unfortunately, this option therefore essentially disables the
626.Fn MALLOC
627and
628.Fn FREE
629forms of the memory allocator, which are used to enhance the performance
630of certain critical sections of code in the kernel.
631This option therefore can
632lead to a significant decrease in the performance of certain code in the kernel
633if enabled.  Examples of such code include the
634.Fn namei
635routine, the
636.Xr ccd 4
637driver,
638the
639.Xr ncr 4
640driver,
641and much of the networking code.
642.It Cd options MAXUPRC=integer
643Sets the
644.Em RLIMIT_NPROC
645resource limit, which specifies the maximum number of simultaneous
646processes a user is permitted to run, for process 0;
647this value is inherited by its child processes.
648It defaults to
649.Em CHILD_MAX ,
650which is currently defined to be 80.
651Setting
652.Em MAXUPRC
653to a value less than
654.Em CHILD_MAX
655is not permitted, as this would result in a violation of the semantics of
656.St -p1003.1-90 .
657.El
658.Ss Networking Options
659.Bl -ohang
660.It Cd options GATEWAY
661Enables
662.Em IPFORWARDING
663(which see)
664and (on most ports) increases the size of
665.Em NMBCLUSTERS
666(which see). In general,
667.Em GATEWAY
668is used to indicate that a system should act as a router, and
669.Em IPFORWARDING
670is not invoked directly.
671(Note that
672.Em GATEWAY
673has no impact on protocols other than IP, such as CLNP or XNS.)
674.It Cd options IPFORWARDING
675Enables IP routing behavior. With this option enabled, the machine
676will forward IP datagrams between its interfaces that are destined for
677other machines. Note that even without this option, the kernel will
678still forward some packets (such as source routed packets) -- removing
679.Em GATEWAY
680and
681.Em IPFORWARDING
682is insufficient to stop all routing through a bastion host on a
683firewall -- source routing is controlled independently.
684To turn off source routing, use
685.Em options IPFORWSRCRT=0
686(which see).
687Note that IP forwarding may be turned on and off independently of the
688setting of the
689.Em IPFORWARDING
690option through the use of the
691.Em net.inet.ip.forwarding
692sysctl variable. If
693.Em net.inet.ip.forwarding
694is 1, IP forwarding is on. See
695.Xr sysctl 8
696and
697.Xr sysctl 3
698for details.
699.It Cd options IPFORWSRCRT=value
700If
701.Em value
702is set to zero, source routing of IP datagrams is turned off. If
703.Em value
704is set to one (the default) or the option is absent, source routed IP
705datagrams are forwarded by the machine.  Note that source routing of
706IP packets may be turned on and off independently of the setting of
707the
708.Em IPFORWSRCRT
709option through the use of the
710.Em net.inet.ip.forwsrcrt
711sysctl variable. If
712.Em net.inet.ip.forwsrcrt
713is 1, forwarding of source routed IP datagrams is on. See
714.Xr sysctl 8
715and
716.Xr sysctl 3
717for details.
718.It Cd options MROUTING
719Includes support for IP multicast routers. You certainly want
720.Em INET
721with this. Multicast routing is controlled by the
722.Xr mrouted 8
723daemon.
724.It Cd options INET
725Includes support for the TCP/IP protocol stack. You almost certainly
726want this. See
727.Xr inet 4
728for details.
729This option is currently required.
730.It Cd options MCLSHIFT=value
731This option is the base-2 logarithm of the size of mbuf clusters.
732The BSD networking stack keeps network packets in a linked
733list, or chain, of kernel buffer objects called mbufs.  The system
734provides larger mbuf clusters as an optimization for large packets,
735instead of using long chains for large packets.
736The mbuf cluster size,
737or
738.Em MCLBYTES,
739must be a power of two, and is computed as two raised to the power
740.Em MCLSHIFT.
741On systems with Ethernet network adaptors,
742.Em	MCLSHIFT
743is often set to 11, giving 2048-byte mbuf clusters, large enough to
744hold a 1500-byte Ethernet frame in a single cluster. Systems with
745networks supporting larger frame sizes like ATM, FDDI, or HIPPI may
746perform better with MCLSHIFT set to 12 or 13, giving mbuf cluster
747sizes of 4096 and 8192 bytes, respectively.
748.It Cd options NS
749Include support for the Xerox XNS protocol stack. See
750.Xr ns 4
751for details.
752.It Cd options ISO,TPIP
753Include support for the ubiquitous OSI protocol stack. See
754.Xr iso 4
755for details.
756.It Cd options EON
757Include support for OSI tunneling over IP.
758.It Cd options CCITT,LLC,HDLC
759Include support for the X.25 protocol stack.
760The state of this code is currently unknown, and probably contains
761bugs.
762.It Cd options NETATALK
763Include support for the Appletalk protocol stack. The kernel provides
764provision for the
765.Em Datagram Delivery Protocol (DDP),
766providing SOCK_DGRAM support and Appletalk routing. This stack is used by the
767.Em Netatalk
768package, which adds support for Appletalk server services via user libraries
769and applications.
770.It Cd options IPNOPRIVPORTS
771Normally, only root can bind a socket descriptor to a so-called
772.Dq privileged
773TCP
774port, that is, a port number in the range 0-1023.  This option
775eliminates those checks from the kernel. This can be useful if there
776is a desire to allow daemons without privileges to bind those ports,
777e.g. on firewalls. The security tradeoffs in doing this are subtle.
778This option should only be used by experts.
779.It Cd options TCP_COMPAT_42
780TCP bug compatibility with 4.2BSD.  In 4.2BSD, TCP sequence numbers
781were 32-bit signed values.  Modern implementations of TCP use unsigned
782values.  This option clamps the initial sequence number to start in
783the range 2^31 rather than the full unsigned range of 2^32.  Also,
784under 4.2BSD, keepalive packets must contain at least one byte or else
785the remote end would not respond.
786.It Cd options PFIL_HOOKS
787This option turns on the packet filter interface hooks.  See
788.Xr pfil 9
789for details.
790.It Cd options IPFILTER_LOG
791This option, in conjunction with
792.Em pseudo-device ipfilter ,
793enables logging of IP packets using ip-filter.
794.It Cd options IPFILTER_DEFAULT_BLOCK
795This option sets the default policy of ip-filter.  If it is set,
796ip-filter will block packets by default.
797.It Cd options PPP_FILTER
798This option turns on
799.Xr pcap 3
800based filtering for ppp connections. This option is used by
801.Xr pppd 8
802which needs to be compiled with
803.Em PPP_FILTER
804defined (the current default).
805.El
806.Ss System V IPC Options
807.Bl -ohang
808.It Cd options SYSVMSG
809Includes support for
810.At V
811style message queues.  See
812.Xr msgctl 2 ,
813.Xr msgget 2 ,
814.Xr msgrcv 2 ,
815.Xr msgsnd 2 .
816.It Cd options SYSVSEM
817Includes support for
818.At V
819style semaphores. See
820.Xr semctl 2 ,
821.Xr semget 2 ,
822.Xr semop 2 .
823.It Cd options SYSVSHM
824Includes support for
825.At V
826style shared memory.  See
827.Xr shmat 2 ,
828.Xr shmctl 2 ,
829.Xr shmdt 2 ,
830.Xr shmget 2 .
831.It Cd options SHMPAXPGS=value
832Sets the maximum number of
833.At V
834style shared memory pages that are available through the
835.Xr shmget 2
836system call. Default value is 1024 on most ports. See
837.Pa /usr/include/machine/vmparam.h
838for the default.
839.El
840.Ss VM Related Options
841.Bl -ohang
842.It Cd options SWAPPAGER
843Turns on paging.  (To be specific, this enables the virtual memory
844module responsible for handling page faults for
845.Dq anonymous
846objects (i.e. BSS pages)).
847.Em MANDATORY
848-- you cannot actually run without
849this
850.Dq option .
851.It Cd options VNODEPAGER
852Support for mmap()ing of files. (Specifically, this enables the
853virtual memory module responsible for handling page faults on mapped
854files (
855.Dq plain file
856vnodes)).
857.Em MANDATORY
858-- you cannot actually run without
859this
860.Dq option .
861.It Cd options DEVPAGER
862Support for mmap()ing of devices.  (Specifically, this enables the
863virtual memory module responsible for handling page faults on mapped
864devices (
865.Dq cdev
866vnodes)).
867.Em MANDATORY
868-- you cannot actually run without
869this
870.Dq option .
871.It Cd options NMBCLUSTERS=value
872Size of kernel mbuf cluster map,
873.Em mb_map ,
874in CLBYTES-sized logical
875pages.  Default on most ports is 256 (512 with
876.Dq options GATEWAY ).
877See
878.Pa /usr/include/machine/param.h
879for exact default information.  Increase this value if you get
880.Dq mb_map full
881messages.
882.It Cd options NKMEMCLUSTERS=value
883Size of kernel malloc arena in CLBYTES-sized logical pages.  This area
884is covered by the kernel submap
885.Em kmem_map .
886See
887.Pa /usr/include/machine/param.h
888for the default value, which is port specific.  Increase this value if
889you get
890.Dq out of space in kmem_map
891panics.
892.\" , which mean you have run out of mallocable kernel memory.
893.It Cd options NBUF=value
894.It Cd options BUFPAGES=value
895These option set the number of pages available for the buffer cache.
896Their default value is a machine dependent value, often calculated as
897between 5% and 10% of total available RAM.
898.El
899.Ss atari-specific Options
900.Bl -ohang
901.It Cd options DISKLABEL_AHDI
902Include support for AHDI (native Atari) disklabels.
903.It Cd options DISKLABEL_NBDA
904Include support for NetBSD-atari labels. If you don't set this option, it
905will be set automatically. NetBSD/atari will not work without it.
906.It Cd options FALCON_SCSI
907Include support for the 5380-SCSI configuration as found on the Falcon.
908.It Cd options RELOC_KERNEL
909If set, the kernel will relocate itself to TT-ram, if possible. This
910will give you a slightly faster system. Bewarned that on some TT030 systems,
911the system will frequently dump with MMU-faults with this option enabled.
912.It Cd options SERCONSOLE
913Allow the modem1-port to act as the system-console. A carier should be active
914on modem1 during system boot to active the console functionality.
915.It Cd options TT_SCSI
916Include support for the 5380-SCSI configuration as found on the TT030
917and Hades.
918.El
919.Ss i386-specific Options
920.Bl -ohang
921.It Cd options I386_CPU,I486_CPU,I586_CPU,I686_CPU
922Include support for a particular class of CPU (i386, i486, Pentium, or
923Pentium Pro).  If the appropriate class for your CPU is not configured, the
924kernel will use the highest class available that will work.  In general, using
925the correct CPU class will result in the best performance.  At least one of
926these options must be present.
927.It Cd options MATH_EMULATE
928Include the floating point emulator.  This is useful only for CPUs that lack an
929internal floating point unit or coprocessor.
930.It Cd options VM86
931Include support for virtual 8086 mode, used by DOS emulators.
932.It Cd options USER_LDT
933Include i386-specific system calls for modifying the local descriptor table,
934used by Windows emulators.
935.It Cd options REALBASEMEM
936Overrides the base memory size passed in from the boot block.  Use this option
937only if the boot block reports the size incorrectly.  (Note that some BIOSes
938put the extended BIOS data area at the top of base memory, and therefore report
939a smaller base memory size to prevent programs overwriting it.  This is correct
940behavior, and you should not use the
941.Em REALBASEMEM
942option to access this memory.)
943.It Cd options REALEXTMEM
944Overrides the extended memory size passed in from the boot block.  Use this
945option only if the boot block reports the size incorrectly.
946.El
947.Ss m68k-specific Options
948.Bl -ohang
949.It Cd options FPU_EMULATE
950Include support for MC68881/MC68882 emulator.
951.It Cd options FPSP
952Include support for 68040 floating point.
953.It Cd options M68030,M68040,M68060
954Include support for a specific cpu, at least one (the one you are using)
955should be specified.
956.It Cd options M060SP
957Include support for 68060 floating point.
958.El
959.\" The following requests should be uncommented and used where appropriate.
960.\" .Sh FILES
961.\" .Sh EXAMPLES
962.Sh SEE ALSO
963.Xr config 8 ,
964.Xr init 8 ,
965.Xr gettimeofday 2 ,
966.Xr sysctl 8 ,
967.Xr sysctl 3 ,
968.Xr xntpd 8 ,
969.Xr ntp_adjtime 2 ,
970.Xr ntp_gettime 2 ,
971.Xr i386_iopl 2 ,
972.Xr msgctl 2 ,
973.Xr msgget 2 ,
974.Xr msgrcv 2 ,
975.Xr msgsnd 2 ,
976.Xr semctl 2 ,
977.Xr semget 2 ,
978.Xr semop 2 ,
979.Xr shmat 2 ,
980.Xr shmctl 2 ,
981.Xr shmdt 2 ,
982.Xr shmget 2 ,
983.Xr ddb 4 ,
984.Xr lkm 4 ,
985.Xr inet 4 ,
986.Xr ns 4 ,
987.Xr iso 4 ,
988.Xr mrouted 8 ,
989.Xr mount_lfs 8 ,
990.Xr newlfs 8 ,
991.Xr mount_mfs 8 ,
992.Xr mount_nfs 8 ,
993.Xr mount_cd9660 8 ,
994.Xr mount_msdos 8 ,
995.Xr mount_fdesc 8 ,
996.Xr mount_kernfs 8 ,
997.Xr mount_null 8 ,
998.Xr mount_portal 8 ,
999.Xr mount_procfs 8 ,
1000.Xr mount_umap 8 ,
1001.Xr mount_union 8 ,
1002.Xr edquota 8 ,
1003.Xr quotaon 8 ,
1004.Xr quota 1 ,
1005.Xr rpc.rquotad 8 ,
1006.Xr ktrace 1 ,
1007.Xr gdb 1
1008.Sh HISTORY
1009The
1010.Nm
1011man page first appeared in
1012.Nx 1.3 .
1013.Sh BUGS
1014The
1015.Em INET
1016and the
1017.Em VNODEPAGER
1018options should not be required.
1019