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