xref: /openbsd-src/share/man/man4/options.4 (revision 3a3fbb3f2e2521ab7c4a56b7ff7462ebd9095ec5)
1.\"	$OpenBSD: options.4,v 1.92 2001/12/07 02:35:06 kjc Exp $
2.\"	$NetBSD: options.4,v 1.21 1997/06/25 03:13:00 thorpej Exp $
3.\"
4.\" Copyright (c) 1998 Theo de Raadt
5.\" Copyright (c) 1998 Todd Miller
6.\" Copyright (c) 1998 Gene Skonicki
7.\" Copyright (c) 1996
8.\" 	Perry E. Metzger.  All rights reserved.
9.\"
10.\" Redistribution and use in source and binary forms, with or without
11.\" modification, are permitted provided that the following conditions
12.\" are met:
13.\" 1. Redistributions of source code must retain the above copyright
14.\"    notice, this list of conditions and the following disclaimer.
15.\" 2. Redistributions in binary form must reproduce the above copyright
16.\"    notice, this list of conditions and the following disclaimer in the
17.\"    documentation and/or other materials provided with the distribution.
18.\" 3. All advertising materials mentioning features or use of this software
19.\"    must display the following acknowledgment:
20.\"	This product includes software developed for the NetBSD Project
21.\"	by Perry E. Metzger.
22.\" 4. The name of the author may not be used to endorse or promote products
23.\"    derived from this software without specific prior written permission.
24.\"
25.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
26.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
27.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
28.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
29.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
30.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
34.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35.\"
36.\"
37.Dd August 17, 1997
38.Dt OPTIONS 4
39.Os
40.Sh NAME
41.Nm options
42.Nd miscellaneous kernel configuration options
43.Sh SYNOPSIS
44.Cd option ...
45.Sh DESCRIPTION
46This manual page describes a number of miscellaneous kernel
47configuration options that may be specified in a kernel config file.
48See
49.Xr config 8
50for information on how to configure and build kernels.
51.Em Note:
52options are passed to the compile process as
53.Fl D
54flags to the C compiler.
55.Ss Compatibility Options
56.Bl -ohang
57.It Cd option COMPAT_23
58Enables compatibility with
59.Ox 2.3 .
60This makes it possible to run binaries that use old versions of the
61.Xr msgctl 2 ,
62.Xr shmctl 2
63and
64.Xr semctl 2
65system calls which changed semantics in
66.Ox 2.4 .
67.It Cd option COMPAT_25
68Enables compatibility with
69.Ox 2.5 .
70This makes it possible to run binaries that use old versions of the
71.Xr statfs 2 ,
72.Xr fstatfs 2
73and
74.Xr getfsstat 2
75system calls which were replaced in
76.Ox 2.6
77when
78.Li struct stat
79was expanded.
80.It Cd option COMPAT_SVR4
81On those architectures that support it, this enables binary
82compatibility with
83.At V.4
84binaries built for the same architecture.
85This currently includes the sparc and i386.
86Possibly the most widely known operating system
87based on this binary architecture is Sun's Solaris 2.x.
88See
89.Xr compat_svr4 8 .
90.It Cd option COMPAT_BSDOS
91On those architectures that support it, this enables binary
92compatibility with
93.Em BSD/OS
94applications.
95This option is supported on the i386 architecture.
96See
97.Xr compat_bsdos 8 .
98Requires
99.Cm option COMPAT_43
100also be used for proper operation.
101.It Cd option COMPAT_LINUX
102On those architectures that support it, this enables binary
103compatibility with
104.Em Linux
105ELF and a.out
106applications built for the same architecture.
107This option is supported on the i386 architecture.
108See
109.Xr compat_linux 8 .
110.It Cd option COMPAT_SUNOS
111On those architectures that support it, this enables binary
112compatibility with
113.Em SunOS 4.x
114applications built for the same architecture.
115This option is supported on the sparc and most m68k platforms.
116See
117.Xr compat_sunos 8 .
118.It Cd option COMPAT_ULTRIX
119On those architectures that support it, this enables binary
120compatibility with
121.Tn Ultrix
122applications built for the same architecture.
123This option is available on the little-endian MIPS platforms like the
124pmax and arc.
125See
126.Xr compat_ultrix 8 .
127.It Cd option COMPAT_FREEBSD
128On those architectures that support it, this enables binary
129compatibility with
130.Em FreeBSD
131applications built for the same architecture.
132This option is available on the i386 architecture.
133See
134.Xr compat_freebsd 8 .
135.It Cd option COMPAT_HPUX
136On those architectures that support it, this enables binary
137compatibility with
138.Em HP/UX
139applications built for the same architecture.
140This option is available on some m68k architectures.
141See
142.Xr compat_hpux 8 .
143.It Cd option COMPAT_IBCS2
144On those architectures that support it, this enables binary
145compatibility with
146.Em iBCS2
147applications built for the same architecture.
148This option is available on the i386 architecture.
149See
150.Xr compat_ibcs2 8 .
151.It Cd option COMPAT_NETBSD
152On those architectures that support it, this enables binary
153compatibility with
154.Em NetBSD
155applications built for the same architecture.
156See
157.Xr compat_freebsd 8 .
158.It Cd option COMPAT_OSF1
159On those architectures that support it, this enables binary
160compatibility with
161.Em Digital UNIX
162(formerly
163.Em OSF/1 )
164applications built for the same architecture.
165This option is available on the alpha architecture.
166See
167.Xr compat_osf1 8 .
168.It Cd option COMPAT_NOMID
169Enables compatibility with a.out executables that lack a machine ID.
170On the i386, this includes
171.Nx
1720.8's ZMAGIC format, 386BSD and BSDI's
173QMAGIC, NMAGIC, and OMAGIC a.out formats.
174On the hp300 and other m68k architectures this permits certain old
175.Bx 4.3
176binaries to work, though its use is discouraged now.
177.It Cd option COMPAT_43
178Use of this option is discouraged.
179It enables compatibility with
180.Bx 4.3 .
181It adds an old syscall for
182.Fn lseek
183as well as ioctls for
184.Dv TIOCGETP
185and
186.Dv TIOCSETP .
187The return values for the
188.Xr getpid 2 ,
189.Xr getgid 2 ,
190and
191.Xr getuid 2
192system calls are modified as well, to return the parent's PID and UID as well
193as the current process's.
194It also enables the deprecated
195.Dv NTTYDISC
196terminal line discipline.
197It provides backwards compatibility with the
198.Dq old
199SIOC[GS]IF{ADDR,DSTADDR,BRDADDR,NETMASK} interface ioctls, including
200binary compatibility for code written before the introduction of the
201.Li sa_len
202field in sockaddrs.
203It also enables support for some older pre BSD 4.4 socket calls.
204.El
205.Ss Debugging Options
206.Bl -ohang
207.It Cd option DDB
208Compiles in a kernel debugger for diagnosing kernel problems.
209See
210.Xr ddb 4
211for details.
212.Em Note:
213not available on all architectures.
214.It Cd option DDB_SAFE_CONSOLE
215Allows a break into the kernel debugger during boot.
216Useful when debugging problems that can cause init(8) to fail.
217.It Cd option KGDB
218Compiles in a remote kernel debugger stub for diagnosing kernel problems
219using the
220.Dq remote target
221feature of gdb.
222See
223.Xr kgdb 7
224for details.
225.Em Note:
226not available on all architectures.
227.It Cd makeoptions DEBUG="-g"
228The
229.Fl g
230flag causes
231.Pa bsd.gdb
232to be built in addition to
233.Pa bsd .
234.Pa bsd.gdb
235is useful for debugging kernels and their crashdumps with gdb.
236Note that
237.Xr gdb Ns 's
238.Fl k
239flag is obsolete and should not be used.
240Instead, a crashdump can be debugged by starting
241.Xr gdb
242with the kernel name as an argument (no core file) and then use the
243.Xr gdb 1
244command
245.Dq target kcore COREFILE .
246.It Cd option DEBUG
247Turns on miscellaneous kernel debugging.
248Since options are turned into preprocessor defines (see above),
249.Cm option DEBUG
250is equivalent to doing a
251.Em #define DEBUG
252throughout the kernel.
253Much of the kernel has
254.Em #ifdef DEBUG
255conditional debugging code.
256Note that many parts of the kernel (typically device drivers) include their own
257.Em #ifdef XXX_DEBUG
258conditionals instead.
259This option also turns on certain other options, notably
260.Cm option KMEMSTATS ,
261which may decrease system performance.
262.It Cd option DIAGNOSTIC
263Adds code to the kernel that does internal consistency checks.
264This code will cause the kernel to panic if corruption of internal data
265structures is detected.
266.It Cd option SMALL_KERNEL
267Removes some optimizations from the kernel to reduce the size of the
268resulting kernel binary.
269This option can decrease system performance.
270.It Cd option GPROF
271Adds code to the kernel for kernel profiling with
272.Xr kgmon 8 .
273.It Cd makeoptions PROF="-pg"
274The
275.Fl pg
276flag causes the kernel to be compiled with support for profiling.
277The
278.Cm option GPROF
279is required for the kernel compile to succeed.
280.It Cd option KTRACE
281Adds hooks for the system call tracing facility, which allows users to
282watch the system call invocation behavior of processes.
283See
284.Xr ktrace 1
285for details.
286.El
287.Ss File Systems
288.Bl -ohang
289.It Cd option FFS
290Includes code implementing the Berkeley Fast File System
291.Em ( FFS ) .
292Most machines need this if they are not running diskless.
293.It Cd option ADOSFS
294Includes code implementing the AmigaDOS Fast File System
295.Em ( ADOSFS ) .
296Note that the Professional and Smart File Systems are
297.Em not
298supported.
299See
300.Xr mount_ados 8
301for details.
302.It Cd option EXT2FS
303Includes code implementing the Second Extended File System
304.Em ( EXT2FS ) .
305This is the most commonly used file system on the Linux operating system,
306and is provided here for compatibility.
307Some specific features of
308.Em EXT2FS
309like the "behavior on errors" are not implemented.
310This file system
311can't be used with
312.Li uid_t
313or
314.Li gid_t
315values greater than 65535.
316Also, the filesystem will not function correctly on architectures with
317differing byte-orders.
318That is, a big-endian machine will not be able to read an
319ext2fs filesystem created on an i386 or other little-endian machine.
320See
321.Xr mount_ext2fs 8
322for details.
323.It Cd option MFS
324Include the memory file system
325.Em ( MFS ) .
326This file system stores files in swappable memory, and produces
327notable performance improvements when it is used as the file store
328for
329.Pa /tmp
330or similar mount points.
331See
332.Xr mount_mfs 8
333for details.
334.It Cd option NFSCLIENT
335Include the client side of the
336.Em NFS
337(Network File System) remote file sharing protocol.
338Although the bulk of the code implementing
339.Em NFS
340is kernel based, several user level daemons are needed for it to work.
341See
342.Xr mount_nfs 8
343for details on NFS.
344.It Cd option CD9660
345Includes code for the ISO 9660 + Rock Ridge file system, which is the
346standard file system used on many CD-ROMs.
347It also supports Joliet extensions.
348See
349.Xr mount_cd9660 8
350for details.
351.It Cd option MSDOSFS
352Includes support for the
353.Tn MS-DOS
354FAT file system.
355The kernel also implements the
356.Tn Windows 95
357extensions which permit the use of longer, mixed-case file names.
358See
359.Xr mount_msdos 8
360and
361.Xr fsck_msdos 8
362for details.
363.It Cd option FDESC
364Includes code for a file system which can be mounted on
365.Pa /dev/fd .
366This filesystem permits access to the per-process file descriptor
367space via special files in the file system.
368See
369.Xr mount_fdesc 8
370for details.
371Note that this facility is redundant, and thus unneeded on most
372.Ox
373systems, since the
374.Xr fd 4
375pseudodevice driver already provides identical functionality.
376On most systems, instances of
377.Xr fd 4
378are mknoded under
379.Pa /dev/fd/
380and on
381.Pa /dev/stdin ,
382.Pa /dev/stdout ,
383and
384.Pa /dev/stderr .
385.It Cd option KERNFS
386Includes code which permits the mounting of a special file system
387(normally mounted on
388.Pa /kern )
389in which files representing various kernel variables and parameters
390may be found.
391See
392.Xr mount_kernfs 8
393for details.
394.It Cd option NULLFS
395Includes code for a loopback file system.
396This permits portions of the file hierarchy to be re-mounted in other places.
397The code really exists to provide an example of a stackable file system layer.
398See
399.Xr mount_null 8
400for details.
401.It Cd option PORTAL
402Includes the (experimental) portal filesystem.
403This permits interesting tricks like opening TCP sockets by opening files in
404the file system.
405The portal file system is conventionally mounted on
406.Pa /p
407and is partially implemented by a special daemon.
408See
409.Xr mount_portal 8
410for details.
411.It Cd option PROCFS
412Includes code for a special file system (conventionally mounted on
413.Pa /proc )
414in which the process space becomes visible in the file system.
415Among other things, the memory spaces of processes running on the system are
416visible as files, and signals may be sent to processes by writing to
417.Pa ctl
418files in the procfs namespace.
419See
420.Xr mount_procfs 8
421for details.
422.It Cd option UMAPFS
423Includes a loopback file system in which user and group IDs may be
424remapped -- this can be useful when mounting alien file systems with
425different uids and gids than the local system (eg, remote NFS).
426See
427.Xr mount_umap 8
428for details.
429.It Cd option UNION
430Includes code for the union file system, which permits directories to
431be mounted on top of each other in such a way that both file systems
432remain visible -- this permits tricks like allowing writing (and the
433deleting of files) on a read-only file system like a CD-ROM by
434mounting a local writable file system on top of the read-only file
435system.
436This filesystem is still experimental and is known to be somewhat unstable.
437See
438.Xr mount_union 8
439for details.
440.It Cd option XFS
441Includes the kernel support for the AFS-compatible Arla filesystem.
442Since the xfs interface is simple and generic it can be used for other
443filesystems as well.
444See
445.Xr mount_xfs 8
446for details.
447.El
448.Ss File System Options
449.Bl -ohang
450.It Cd option FFS_SOFTUPDATES
451Enables a scheme that uses partial ordering of buffer cache operations
452to allow metadata updates in FFS to happen asynchronously, increasing write
453performance significantly.
454Normally, the FFS filesystem writes metadata updates synchronously which exacts
455a performance penalty in favor of filesystem integrity.
456With soft updates, you gain the performance of asynchronous writes while
457retaining the safety of synchronous metadata updates.
458.Pp
459Soft updates must be enabled on a per-filesystem basis.
460See
461.Xr mount 8
462for details.
463.Pp
464Processors with a small kernel address space, such as the sun4 and sun4c, do
465not have enough kernel memory to support soft updates.
466Attempts to use this option with these CPUs will cause a kernel hang or panic
467after a short period of use as the kernel will quickly run out of memory.
468This is not related to the amount of physical memory present in the machine --
469it is a limitation of the CPU architecture itself.
470.It Cd option BUFCACHEPERCENT=integer
471Percentage of RAM to use as a file system buffer.
472It defaults to 5.
473.It Cd option NFSSERVER
474Include the server side of the
475.Em NFS
476(Network File System) remote file sharing protocol.
477Although the bulk of the code implementing
478.Em NFS
479is kernel based, several user level daemons are needed for it to
480work.
481See
482.Xr mountd 8
483and
484.Xr nfsd 8
485for details.
486.It Cd option QUOTA
487Enables kernel support for file system quotas.
488See
489.Xr quotaon 8 ,
490.Xr edquota 8 ,
491.Xr repquota 8 ,
492and
493.Xr quota 1
494for details.
495Note that quotas only work on
496.Dq ffs
497file systems, although
498.Xr rpc.rquotad 8
499permits them to be accessed over
500.Em NFS .
501.It Cd option FIFO
502Adds support for
503.At V
504style FIFOs (i.e.,
505.Dq named pipes ) .
506This option is recommended in almost all cases as many programs use these.
507.It Cd option EXT2FS_SYSTEM_FLAGS
508This option changes the behavior of the APPEND and IMMUTABLE flags
509for a file on an
510.Em EXT2FS
511filesystem.
512Without this option, the superuser or owner of the file can set and clear them.
513With this option, only the superuser can set them, and they can't be cleared
514if the securelevel is greater than 0.
515See also
516.Xr chflags 1 .
517.El
518.Ss Miscellaneous Options
519.Bl -ohang
520.It Cd option PCIVERBOSE
521Makes the boot process more verbose for PCI peripherals
522(vendor names and other information is printed, etc.).
523.It Cd option EISAVERBOSE
524Makes the boot process more verbose for EISA peripherals.
525.It Cd option PCMCIAVERBOSE
526Makes the boot process more verbose for PCMCIA peripherals.
527.It Cd option MACOBIOVERBOSE
528Makes the boot process more verbose for Mac OBIO peripherals.
529.It Cd option APERTURE
530Provide in-kernel support for VGA framebuffer mapping by user-processes
531(such as an X windows server).
532This option is supported in the i386 architecture.
533.It Cd option XSERVER
534Support for X windows in the console driver.
535.It Cd option LKM
536Enables support for loadable kernel modules.
537See
538.Xr lkm 4
539for details.
540.Em Note:
541This option is not yet available on all architectures.
542.It Cd option CRYPTO
543Enables support for the kernel cryptographic framework.
544See
545.Xr crypto 9
546for details.
547While not IP specific, this option is usually used in conjunction with option
548.Em IPSEC .
549.It Cd option INSECURE
550Hardwires the kernel security level at \-1.
551This means that the system always runs in securelevel 0 mode, even when
552running multiuser.
553See
554.Xr init 8
555for details on the implications of this.
556The kernel secure level may be manipulated by the superuser by altering the
557.Em kern.securelevel
558sysctl variable.
559(It should be noted that the securelevel may only be lowered by a call from
560process ID 1, i.e.,
561.Xr init 8 . )
562See also
563.Xr sysctl 8
564and
565.Xr sysctl 3 .
566.It Cd option CCDNBUF=integer
567The
568.Xr ccd 4
569device driver uses
570.Dq component buffers
571to distribute I/O requests to the components of a concatenated disk.
572It keeps a freelist of buffer
573headers in order to reduce use of the kernel memory allocator.
574.Em CCDNBUF
575is the number of buffer headers allocated on the freelist for
576each component buffer.
577It defaults to 8.
578.It Cd option KMEMSTATS
579The kernel memory allocator,
580.Xr malloc 9 ,
581will keep statistics on its performance if this option is enabled.
582Unfortunately, this option therefore essentially disables
583.Fn MALLOC
584and
585.Fn FREE
586forms of the memory allocator, which are used to enhance the
587performance of certain critical sections of code in the kernel.
588This option therefore can lead to a significant decrease in the performance
589of certain code in the kernel if enabled.
590Examples of such code include the
591.Fn namei
592routine, the
593.Xr ccd 4
594driver,
595the
596.Xr ncr 4
597driver, and much of the networking code.
598Note that this option is silently turned on by the
599.Em DEBUG
600option.
601.It Cd option BOOT_CONFIG
602Adds support for the
603.Fl c
604boot option (User Kernel Config).
605Allows modification of kernel settings (e.g., device parameters) before
606booting the system.
607.It Cd option UVM_SWAP_ENCRYPT
608Enables kernel support for encrypting pages that are written out to
609swap storage.
610Swap encryption prevents sensitive data from remaining
611on the disk even after the operating system has been shut down.
612This option should be turned on if cryptographic filesystems are used.
613The sysctl variable
614.Em vm.swapencrypt.enable
615controls its behaviour.
616See
617.Xr sysctl 8
618and
619.Xr sysctl 3
620for details.
621.It Cd option USER_PCICONF
622Enables the user level acces to the PCI bus configuration space
623through ioctls on the
624.Pa /dev/pci
625device.
626It's used by the
627.Xr XFree86 1
628server on some architectures.
629See
630.Xr pci 4
631for details.
632.El
633.Ss Networking Options
634.Bl -ohang
635.It Cd option GATEWAY
636Enables
637.Em IPFORWARDING
638and (on most ports) increases the size of
639.Em NMBCLUSTERS .
640In general,
641.Em GATEWAY
642is used to indicate that a system should act as a router, and
643.Em IPFORWARDING
644is not invoked directly.
645(Note that
646.Em GATEWAY
647has no impact on protocols other than IP, such as CLNP or XNS.)
648.It Cd option IPFORWARDING
649Enables IP routing behavior.
650With this option enabled, the machine
651will forward IP datagrams between its interfaces that are destined for
652other machines.
653Note that even without this option, the kernel will
654still forward some packets (such as source routed packets) -- removing
655.Em GATEWAY
656and
657.Em IPFORWARDING
658is insufficient to stop all routing through a bastion host on a
659firewall -- source routing is controlled independently.
660Note that IP
661forwarding may be turned on and off independently of the setting of the
662.Em IPFORWARDING
663option through the use of the
664.Em net.inet.ip.forwarding
665sysctl variable.
666If
667.Em net.inet.ip.forwarding
668is 1, IP forwarding is on.
669See
670.Xr sysctl 8
671and
672.Xr sysctl 3
673for details.
674.It Cd option MROUTING
675Includes support for IP multicast routers.
676.Em INET
677should be set along with this.
678Multicast routing is controlled by the
679.Xr mrouted 8
680daemon.
681.It Cd option INET
682Includes support for the TCP/IP protocol stack.
683This option is currently required.
684See
685.Xr inet 4
686for details.
687.It Cd options INET6
688Includes support for the
689.Tn IPv6
690protocol stack.
691See
692.Xr inet6 4
693for details.
694Unlike
695.Em INET ,
696.Em INET6
697enables multicast routing code as well.
698This option requires
699.Em INET
700at this moment, but it should not.
701.It Cd options ND6_DEBUG
702The option sets the default value of net.inet6.icmp6.nd6_debug to 1,
703for debugging IPv6 neighbor discovery protocol handling.
704See
705.Xr sysctl 3
706for details.
707.It Cd option NS
708Include support for the Xerox XNS protocol stack.
709See
710.Xr ns 4
711for details.
712.It Cd option ISO,TPIP
713Include support for the ubiquitous OSI protocol stack.
714See
715.Xr iso 4
716for details.
717.It Cd option EON
718Include support for OSI tunneling over IP.
719.It Cd option CCITT,LLC,HDLC
720Include support for the X.25 protocol stack.
721The state of this code is currently unknown.
722It probably contains bugs.
723.It Cd option IPX, IPXIP
724Include support for Internetwork Packet Exchange protocol commonly in
725use by
726.Tn Novell NetWare .
727.It Cd option NETATALK
728Include kernel support for the AppleTalk family of protocols.
729This suite of supporting code is sometimes called
730.Em netatalk
731support.
732.It Cd option TCP_COMPAT_42
733Use of this option is
734.Em extremely
735discouraged, so it should not be enabled.
736If any other machines on the network require enabling this, it's
737recommended that
738.Em they
739be disconnected from the network.
740.Pp
741TCP bug compatibility with
742.Bx 4.2 .
743In
744.Bx 4.2 ,
745TCP sequence numbers
746were 32-bit signed values.
747Modern implementations of TCP use unsigned values.
748This option clamps the initial sequence number to start in
749the range 2^31 rather than the full unsigned range of 2^32.
750Also, under
751.Bx 4.2 ,
752keepalive packets must contain at least one byte or else
753the remote end will not respond.
754.It Cd option TCP_SACK
755Turns on selective acknowledgements.
756Additional information about
757segments already received can be transmitted back to the sender,
758thus indicating segments that have been lost and allowing for
759a swifter recovery.
760Both communication endpoints need to support
761.Em SACK .
762The fallback behaviour is NewReno fast recovery phase, which allows
763one lost segment to be recovered per round trip time.
764When more than one segment has been dropped per window, the transmission can
765continue without waiting for a retransmission timeout.
766.It Cd option TCP_FACK
767Turns on forward acknowledgements allowing a more precise estimate of
768outstanding data during the fast recovery phase by using
769.Em SACK
770information.
771This option can only be used together with
772.Em TCP_SACK .
773.It Cd option TCP_SIGNATURE
774Turns on support for the TCP MD5 Signature option (RFC 2385).
775This is used by
776Internet backbone routers to provide per-packet authentication for the TCP
777packets used to communicate BGP routing information.
778You will also need a
779routing daemon that supports this option in order to actually use it.
780.It Cd option PPP_FILTER
781This option turns on
782.Xr pcap 3
783based filtering for ppp connections.
784This option is used by
785.Xr pppd 8
786which needs to be compiled with
787.Em PPP_FILTER
788defined (the current default).
789.It Cd option PPP_BSDCOMP
790Enables BSD compressor for PPP connections.
791.It Cd option PPP_DEFLATE
792For use in conjunction with PPP_BSDCOMP; provides an interface to zlib for PPP
793for deflate compression/decompression.
794.It Cd option IPSEC
795This option enables IP security protocol support.
796See
797.Xr ipsec 4
798for more details.
799.It Cd option ENCDEBUG
800This option enables debugging information to be conditionally logged
801in case IPSEC encounters errors.
802The option
803.Em IPSEC
804is required along with this option.
805Debug logging can be turned on/off through the use of the
806.Em net.inet.ip.encdebug
807sysctl variable.
808If
809.Em net.ipsec.encap.encdebug
810is 1, debug logging is on.
811See
812.Xr sysctl 8
813and
814.Xr sysctl 3
815for details.
816.It Cd option KEY
817Enables PFKEYv2 (RFC 2367) support.
818While not IP specific, this option is usually used in conjunction with option
819.Em IPSEC .
820.It Cd option ALTQ
821Enables ALTQ (Alternate Queueing).
822For simple rate-limiting, use
823.Xr tbrconfig 8
824to set up the interface transmission rate.
825To use queueing disciplines, their options should also be defined.
826.Em ALTQ_CBQ
827and
828.Em ALTQ_RED
829are enabled by default with option
830.Em ALTQ
831in
832.Ox .
833Queueing disciplines are managed by
834.Xr altqd 8 .
835See
836.Xr altq 9
837for details on ALTQ.
838.It Cd option ALTQ_HFSC
839Enables ALTQ's HFSC (Hierarchical Fair Service Curve) module.
840HFSC supports both link-sharing and guaranteed real-time services.
841H-FSC employs a service curve based QoS model, and its unique feature
842is an ability to decouple delay and bandwidth allocation.
843.It Cd option ALTQ_PRIQ
844Enables ALTQ's PRIQ (Priority Queueing) module.
845PRIQ implements a simple priority-based queueing.
846A higher priority class is always served first.
847.It Cd option ALTQ_WFQ
848Enables ALTQ's WFQ (Weighted Fair Queueing) module.
849WFQ implements a weighted-round robin scheduler for a set of queues.
850A weight can be assigned to each queue to give a different proportion
851of the link capacity.
852A hash function is used to map a flow to one of a set of queues.
853.It Cd option ALTQ_FIFOQ
854Enables ALTQ's FIFO queue module.
855FIFOQ is a simple drop-tail FIFO queue.
856.It Cd option ALTQ_RIO
857Enables ALTQ's RIO (RED with In/Oout) module.
858The original RIO has 2 sets of RED parameters; one for in-profile
859packets and the other for out-of-profile packets.
860At the ingress of the network, profile meters tag packets as IN or
861OUT based on contracted profiles for customers.
862Inside the network, IN packets receive preferential treatment by
863the RIO dropper.
864ALTQ/RIO has 3 drop precedence levels defined for the Assured Forwarding
865PHB of DiffServ (RFC2597).
866.It Cd option ALTQ_BLUE
867Enables ALTQ's Blue module.
868Blue is another active buffer management mechanism.
869.It Cd option ALTQ_FLOWVALVE
870Enables ALTQ's Flowvalve module.
871Flowvalve is a simple implementation of a RED penalty box that identifies
872and punishes misbehaving flows.
873.It Cd option ALTQ_CDNR
874Enables ALTQ's CDNR (diffserfv traffic conditioner) module.
875Traffic conditioners are components to meter, mark, or drop incoming
876packets according to some rules.
877As opposed to queueing disciplines, traffic conditioners handle incoming
878packets at an input interface.
879.It Cd option ALTQ_NOPCC
880Disables use of processor cycle counter (e.g., Pentium TSC on i386 and
881PCC on alpha) to measure time in ALTQ.
882This option should be defined for a non-Pentium i386 CPU which does not
883have TSC, SMP (per-CPU counters are not in sync), or power management
884which affects processor cycle counter.
885.El
886.Ss SCSI Subsystem Options
887.Bl -ohang
888.It Cd option SCSITERSE
889Terser SCSI error messages.
890This omits the table for decoding ASC/ASCQ info, saving about 8 bytes or so.
891.It Cd option SCSIDEBUG
892Prints extra debugging info for the SCSI subsystem to the console.
893.El
894.Ss System V IPC Options
895.Bl -ohang
896.It Cd option SYSVMSG
897Includes support for
898.At V
899style message queues.
900See
901.Xr msgctl 2 ,
902.Xr msgget 2 ,
903.Xr msgrcv 2 ,
904.Xr msgsnd 2 .
905.It Cd option SYSVSEM
906Includes support for
907.At V
908style semaphores.
909See
910.Xr semctl 2 ,
911.Xr semget 2 ,
912.Xr semop 2 .
913.It Cd option SYSVSHM
914Includes support for
915.At V
916style shared memory.
917See
918.Xr shmat 2 ,
919.Xr shmctl 2 ,
920.Xr shmdt 2 ,
921.Xr shmget 2 .
922.It Cd option SHMMAXPGS=value
923Sets the maximum number of
924.At V
925style shared memory pages that are available through the
926.Xr shmget 2
927system call.
928Default value is 1024 on most ports.
929See
930.Pa /usr/include/machine/vmparam.h
931for the default.
932.It Cd option SEMMNI=value
933Number of semaphore identifiers (also called semaphore handles
934and semaphore sets) available in the system.
935Default value is 10.
936The kernel allocates memory for the control structures at startup,
937so you should avoid arbitrarily large values.
938.It Cd option SEMMNS=value
939Maximum number of semaphores in all sets in the system.
940Default value is 60.
941.It Cd option SEMMNU=value
942Maximum number of semaphore undo structures in the system.
943Default value is 30.
944.It Cd option SEMUME=value
945Maximum number of per-process undo operation entries in the
946system.
947Semaphore undo operations are invoked by the kernel when
948.Xr semop 2
949is called with the SEM_UNDO flag and the process holding
950the semaphores terminates unexpectedly.
951Default value is 10.
952.El
953.Ss Operation Related Options
954.Bl -ohang
955.It Cd option NMBCLUSTERS=value
956Size of kernel mbuf cluster map,
957.Em mb_map ,
958in CLBYTES-sized logical pages.
959Default on most ports is 256 (512 with
960.Dq option GATEWAY ) .
961See
962.Pa /usr/include/machine/param.h
963for exact default information.
964Increase this value if
965.Dq mclpool limit reached
966messages appear.
967.It Cd option NKMEMPAGES=value
968.It Cd option NKMEMPAGES_MIN=value
969.It Cd option NKMEMPAGES_MAX=value
970Size of kernel malloc area in PAGE_SIZE-sized logical pages.
971This area is covered by the kernel submap
972.Em kmem_map .
973The kernel attempts to auto-size this map based on the amount of
974physical memory in the system.  Platform-specific code may place
975bounds on this computed size, which may be viewed with the
976.Xr sysctl 8
977variable
978.Em vm.nkmempages .
979See
980.Pa /usr/include/machine/param.h
981for the default upper and lower bounds.
982The related options
983.Sq NKMEMPAGES_MIN
984and
985.Sq NKMEMPAGES_MAX
986allow the bounds to be overridden in the kernel configuration file.
987These options are provided in the event the computed value is
988insufficient resulting in an
989.Dq out of space in kmem_map
990panic.
991.It Cd option NBUF=value
992.It Cd option BUFPAGES=value
993These options set the number of pages available for the buffer cache.
994Their default value is a machine dependent value, often calculated as
995between 5% and 10% of total available RAM.
996.It Cd option NTP
997Modify the scheduler code to add hooks necessary for running an NTP daemon.
998.Em ntpd
999is available as part of the port collection.
1000.It Cd option APM_NOPRINT
1001This option is supported on the i386 architecture.
1002When enabled kernel messages regarding the status of the automatic power
1003management system
1004.Tn ( APM )
1005are suppressed.
1006.Tn APM
1007status can still be obtained using
1008.Xr apm 8
1009and/or
1010.Xr apmd 8 .
1011.It Cd option RFORK_FDSHARE
1012This option enables sharing of file descriptor tables between processes that
1013request it.
1014It is needed for the
1015.Xr rfork
1016system call to work properly and for some programs to run under Linux emulation.
1017It's disabled by default for security reasons, because it allows any malicious
1018user to crash the system.
1019.El
1020.\" The following requests should be uncommented and used where appropriate.
1021.\" .Sh FILES
1022.\" .Sh EXAMPLES
1023.Sh SEE ALSO
1024.Xr X 1 ,
1025.Xr gdb 1 ,
1026.Xr ktrace 1 ,
1027.Xr quota 1 ,
1028.Xr gettimeofday 2 ,
1029.Xr i386_iopl 2 ,
1030.Xr msgctl 2 ,
1031.Xr msgget 2 ,
1032.Xr msgrcv 2 ,
1033.Xr msgsnd 2 ,
1034.Xr semctl 2 ,
1035.Xr semget 2 ,
1036.Xr semop 2 ,
1037.Xr shmat 2 ,
1038.Xr shmctl 2 ,
1039.Xr shmdt 2 ,
1040.Xr shmget 2 ,
1041.Xr sysctl 3 ,
1042.Xr ddb 4 ,
1043.Xr inet 4 ,
1044.Xr ipsec 4 ,
1045.Xr iso 4 ,
1046.Xr lkm 4 ,
1047.Xr ns 4 ,
1048.Xr pci 4 ,
1049.Xr xf86 4 ,
1050.Xr apm 8 ,
1051.Xr apmd 8 ,
1052.Xr config 8 ,
1053.Xr edquota 8 ,
1054.Xr init 8 ,
1055.Xr mount_cd9660 8 ,
1056.Xr mount_fdesc 8 ,
1057.Xr mount_kernfs 8 ,
1058.Xr mount_mfs 8 ,
1059.Xr mount_msdos 8 ,
1060.Xr mount_nfs 8 ,
1061.Xr mount_null 8 ,
1062.Xr mount_portal 8 ,
1063.Xr mount_procfs 8 ,
1064.Xr mount_umap 8 ,
1065.Xr mount_union 8 ,
1066.Xr mrouted 8 ,
1067.Xr quotaon 8 ,
1068.Xr rpc.rquotad 8 ,
1069.Xr sysctl 8 ,
1070.Xr xntpd 8 ,
1071.Xr altq 9
1072.Sh HISTORY
1073The
1074.Nm
1075man page first appeared in
1076.Ox 2.3 .
1077.Sh BUGS
1078The
1079.Em INET
1080option should not be required.
1081