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