linux-old/Documentation/proc.txt
<<
>>
Prefs
   1
   2-----------------------------------------------------------------------
   3
   4                T H E  /proc   F I L E S Y S T E M
   5
   6-----------------------------------------------------------------------
   7/proc/sys      Terrehon Bowden <terrehon@wpi.com>       January 27 1999
   8               Bodo Bauer <bb@ricochet.net>                
   9-----------------------------------------------------------------------
  10Version 1.1                                         Kernel version 2.2
  11-----------------------------------------------------------------------
  12Contents
  13
  141   Introduction/Credits
  15
  161.1  Legal Issues
  17
  182   The /proc file system
  19
  202.1  Process specific subdirectories
  212.2  Kernel data
  222.3  IDE devices in /proc/ide
  232.4  Networking info in /proc/net
  242.5  SCSI info
  252.6  Parallel port info in /proc/parport
  262.7  TTY info in /proc/tty
  27
  283   Reading and modifying kernel parameters
  29
  303.1  /proc/sys/debug and /proc/sys/proc
  313.2  /proc/fs - File system data
  323.3  /proc/fs/binfmt_misc - Miscellaneous binary formats
  333.4  /proc/sys/kernel - General kernel parameters
  343.5  /proc/sys/vm - The virtual memory subsystem
  353.6  /proc/sys/dev - Device specific parameters
  363.7  /proc/sys/sunrpc - Remote procedure calls
  373.8  /proc/sys/net - Networking stuff
  383.9  /proc/sys/net/ipv4 - IPV4 settings=20
  393.10 Appletalk
  403.11 IPX
  41
  42-----------------------------------------------------------------------
  43
  441   Introduction/Credits
  45
  46This documentation is part of a soon to be released book published by
  47IDG Books on the SuSE Linux distribution. As there is no complete
  48documentation for the /proc file system and we've used many freely
  49available sources to write this chapter, it seems only fair to give
  50the work back to the Linux community. This work is based on the
  512.1.132 and 2.2.0-pre-kernel versions. I'm afraid it's still far from
  52complete, but we hope it will be useful. As far as we know, it is the
  53first 'all-in-one' document about the /proc file system. It is
  54focused on the Intel x86 hardware, so if you are looking for PPC, ARM,
  55SPARC, APX, etc., features, you probably won't find what you are
  56looking for. It also only covers IPv4 networking, not IPv6 nor other
  57protocols - sorry.
  58
  59We'd like to thank Alan Cox, Rik van Riel, and Alexey Kuznetsov.  We'd
  60also like to extend a special thank you to Andi Kleen for
  61documentation, which we relied on heavily to create this document, as
  62well as the additional information he provided. Thanks to everybody
  63else who contributed source or docs to the Linux kernel and helped
  64create a great piece of software... :)
  65
  66If you have any comments, corrections or additions, please don't
  67hesitate to contact Bodo Bauer at bb@ricochet.net. We'll be happy to
  68add them to this document.
  69
  70The latest version of this document is available online at
  71http://www.suse.com/~bb/Docs/proc.html in HTML, ASCII, and as 
  72Postscript file. 
  73
  741.1  Legal Stuff
  75
  76We don't guarantee the correctness of this document, and if you come
  77to us complaining about how you screwed up your system because of
  78incorrect documentation, we won't feel responsible...
  79
  80-----------------------------------------------------------------------
  81
  822   The /proc file system
  83
  84The proc file system acts as an interface to internal data structures
  85in the kernel. It can be used to obtain information about the system
  86and to change certain kernel parameters at runtime.  It contains
  87(among other things) one subdirectory for each process running on the
  88system which is named after the process id (PID) of the process. The
  89link self points to the process reading the file system.
  90
  912.1  Process specific subdirectories
  92
  93Each process subdirectory has the in table 1.1 listed entries.
  94
  95      _________________________________________________
  96      cmdline Command line arguments
  97      environ Values of environment variables
  98      fd    Directory, which contains all file descriptors
  99      mem   Memory held by this process
 100      stat   Process status
 101      status  Process status in human readable form
 102      cwd   Link to the current working directory
 103      exe   Link to the executable of this process
 104      maps   Memory maps
 105      root   Link to the root directory of this process
 106      statm  Process memory status information
 107     _________________________________________________
 108      Table 1.1: Process specific entries in /proc
 109
 110For example, to get the status information of a process, all you have
 111to do is read the file /proc/PID/status:
 112
 113> cat /proc/self/status
 114Name:   cat
 115State:  R (running)
 116Pid:    5633
 117PPid:   5609
 118Uid:    501     501     501     501
 119Gid:    100     100     100     100
 120Groups: 100 16 
 121VmSize:      804 kB
 122VmLck:         0 kB
 123VmRSS:       344 kB
 124VmData:       68 kB
 125VmStk:        20 kB
 126VmExe:        12 kB
 127VmLib:       660 kB
 128SigPnd: 0000000000000000
 129SigBlk: 0000000000000000
 130SigIgn: 0000000000000000
 131SigCgt: 0000000000000000
 132CapInh: 00000000fffffeff
 133CapPrm: 0000000000000000
 134CapEff: 0000000000000000
 135
 136This shows you almost the same information as you would get if you
 137viewed it with the ps command. In fact, ps uses the proc file system
 138to obtain its information.
 139
 140The statm file contains more detailed information about the process
 141memory usage. It contains seven values with the following meanings:
 142
 143size       total program size
 144resident   size of in memory portions
 145shared     number of the pages that are shared
 146trs        number of pages that are 'code'
 147drs        number of pages of data/stack
 148lrs        number of pages of library
 149dt         number of dirty pages
 150
 151The ratio text/data/library is approximate only by heuristics.
 152
 1532.2  Kernel data
 154
 155Similar to the process entries, these are files which give information
 156about the running kernel. The files used to obtain this information
 157are contained in /proc and are listed in table 1.2. Not all of these
 158will be present in your system. It depends on the kernel configuration
 159and the loaded modules, which files are there, and which are missing.
 160
 161      ________________________________________________
 162      apm           Advanced power management info
 163      cmdline       Kernel command line
 164      cpuinfo       Info about the CPU
 165      devices       Available devices (block and character)
 166      dma           Used DMS channels
 167      filesystems   Supported filesystems
 168      interrupts    Interrupt usage
 169      ioports       I/O port usage
 170      kcore         Kernel core image
 171      kmsg          Kernel messages
 172      ksyms         Kernel symbol table
 173      loadavg       Load average
 174      locks         Kernel locks
 175      meminfo       Memory info
 176      misc          Miscellaneous
 177      modules       List of loaded modules
 178      mounts        Mounted filesystems
 179      partitions    Table of partitions known to the system
 180      rtc           Real time clock
 181      slabinfo      Slab pool info
 182      stat          Overall statistics
 183      swaps         Swap space utilization
 184      uptime        System uptime
 185      version       Kernel version
 186      ________________________________________________
 187           Table 1.2: Kernel info in /proc
 188
 189You can, for example, check which interrupts are currently in use and
 190what they are used for by looking in the file /proc/interrupts:
 191
 192> cat /proc/interrupts
 193           CPU0       
 194  0:    8728810          XT-PIC  timer
 195  1:        895          XT-PIC  keyboard
 196  2:          0          XT-PIC  cascade
 197  3:     531695          XT-PIC  aha152x
 198  4:    2014133          XT-PIC  serial
 199  5:      44401          XT-PIC  pcnet_cs
 200  8:          2          XT-PIC  rtc
 201 11:          8          XT-PIC  i82365
 202 12:     182918          XT-PIC  PS/2 Mouse
 203 13:          1          XT-PIC  fpu
 204 14:    1232265          XT-PIC  ide0
 205 15:          7          XT-PIC  ide1
 206NMI:          0
 207
 208There three more important subdirectories in /proc: net, scsi and
 209sys. The general rule is that the contents, or even the existence of
 210these directories, depends on your kernel configuration. If SCSI is
 211not enabled, the directory scsi may not exist. The same is true with
 212the net, which is only there when networking support is present in the
 213running kernel.
 214
 215The slabinfo file gives information about memory usage on the slab
 216level.  Linux uses slab pools for memory management above page level
 217in version 2.2. Commonly used objects have their own slab pool (like
 218network buffers, directory cache, etc.).
 219
 2202.3  IDE devices in /proc/ide
 221
 222This subdirectory contains information about all IDE devices that the
 223kernel is aware of.  There is one subdirectory for each device
 224(i.e. hard disk) containing the following files:
 225
 226       cache             The cache
 227       capacity          Capacity of the medium
 228       driver            Driver and version
 229       geometry          Physical and logical geometry
 230       identify          Device identify block
 231       media             Media type
 232       model             Device identifier
 233       settings          Device setup
 234       smart_thresholds  IDE disk management thresholds
 235       smart_values      IDE disk management values
 236
 2372.4  Networking info in /proc/net
 238
 239This directory follows the usual pattern. Table 1.3 lists the files
 240and their meaning.
 241
 242     ____________________________________________________
 243     arp             Kernel ARP table
 244     dev             network devices with statistics
 245     dev_mcast       Lists the Layer2 multicast groups a
 246                     device is listening to (interface index,
 247                     label, number of references, number of
 248                     bound addresses).
 249     dev_stat        network device status
 250     ip_fwchains     Firewall chain linkage
 251     ip_fwnames      Firewall chains
 252     ip_masq         Directory containing the masquerading
 253                     tables.
 254     ip_masquerade   Major masquerading table
 255     netstat         Network statistics
 256     raw             Raw device statistics
 257     route           Kernel routing table
 258     rpc             Directory containing rpc info
 259     rt_cache        Routing cache
 260     snmp            SNMP data
 261     sockstat        Socket statistics
 262     tcp             TCP sockets
 263     tr_rif          Token ring RIF routing table
 264     udp             UDP sockets
 265     unix            UNIX domain sockets
 266     wireless        Wireless interface data (Wavelan etc)
 267     igmp            IP multicast addresses, which this host joined
 268     psched          Global packet scheduler parameters.
 269     netlink         List of PF_NETLINK sockets.
 270     ip_mr_vifs      List of multicast virtual interfaces.
 271     ip_mr_cache     List of multicast routing cache.
 272     udp6            UDP sockets (IPv6)
 273     tcp6            TCP sockets (IPv6)
 274     raw6            Raw device statistics (IPv6)
 275     igmp6           IP multicast addresses, which this host joineed (IPv6)
 276     if_inet6        List of IPv6 interface addresses.
 277     ipv6_route      Kernel routing table for IPv6
 278     rt6_stats       global IPv6 routing tables statistics.
 279     sockstat6       Socket statistics (IPv6)
 280     snmp6           Snmp data (IPv6)
 281     ____________________________________________________
 282         Table 1.3: Network info in /proc/net
 283
 284You can use this information to see which network devices are
 285available in your system and how much traffic was routed over those
 286devices:
 287
 288> cat /proc/net/dev
 289Inter-|Receive                                                   |[...
 290 face |bytes    packets errs drop fifo frame compressed multicast|[...
 291    lo:  908188   5596     0    0    0     0          0         0 [...        
 292  ppp0:15475140  20721   410    0    0   410          0         0 [... 
 293  eth0:  614530   7085     0    0    0     0          0         1 [...
 294
 295...] Transmit
 296...] bytes    packets errs drop fifo colls carrier compressed
 297...]  908188     5596    0    0    0     0       0          0
 298...] 1375103    17405    0    0    0     0       0          0
 299...] 1703981     5535    0    0    0     3       0          0
 300
 3012.5  SCSI info
 302
 303If you have a SCSI host adapter in your system, you'll find a
 304subdirectory named after the driver for this adapter in /proc/scsi. 
 305You'll also see a list of all recognized SCSI devices in /proc/scsi:
 306
 307>cat /proc/scsi/scsi
 308Attached devices: 
 309Host: scsi0 Channel: 00 Id: 00 Lun: 00
 310  Vendor: QUANTUM  Model: XP34550W         Rev: LXY4
 311  Type:   Direct-Access                    ANSI SCSI revision: 02
 312Host: scsi0 Channel: 00 Id: 01 Lun: 00
 313  Vendor: SEAGATE  Model: ST34501W         Rev: 0018
 314  Type:   Direct-Access                    ANSI SCSI revision: 02
 315Host: scsi0 Channel: 00 Id: 02 Lun: 00
 316  Vendor: SEAGATE  Model: ST34501W         Rev: 0017
 317  Type:   Direct-Access                    ANSI SCSI revision: 02
 318Host: scsi0 Channel: 00 Id: 04 Lun: 00
 319  Vendor: ARCHIVE  Model: Python 04106-XXX Rev: 703b
 320  Type:   Sequential-Access                ANSI SCSI revision: 02
 321
 322The directory named after the driver has one file for each adapter
 323found in the system. These files contain information about
 324the controller, including the used IRQ and the IO address range:
 325
 326>cat /proc/scsi/ncr53c8xx/0
 327General information:
 328 Chip NCR53C875, device id 0xf, revision id 0x4
 329 IO port address 0xec00, IRQ number 11
 330 Synchronous period factor 12, max commands per lun 4
 331
 3322.6  Parallel port info in /proc/parport
 333
 334The directory /proc/parport contains information about the parallel
 335ports of your system. It has one subdirectory for each port, named
 336after the port number (0,1,2,...).
 337
 338This directory contains four files:
 339
 340    autoprobe   Autoprobe results of this port
 341    devices     Connected device modules
 342    hardware    Hardware info (port type, io-port, DMA, IRQ, etc.)
 343    irq         Used interrupt, if any
 344
 3452.7  TTY info in /proc/tty
 346
 347Information about the available and the actually used tty's can be
 348found in /proc/tty. You'll find entries for drivers and line
 349disciplines in this directory, as shown in the table below:
 350
 351     drivers       List of drivers and their usage
 352     ldiscs        Registered line disciplines
 353     driver/serial Usage statistic and status of single tty lines
 354
 355To see which tty's are currently in use, you can simply look into the
 356file /proc/tty/drivers:
 357
 358>cat /proc/tty/drivers
 359pty_slave            /dev/pts      136   0-255 pty:slave
 360pty_master           /dev/ptm      128   0-255 pty:master
 361pty_slave            /dev/ttyp       3   0-255 pty:slave
 362pty_master           /dev/pty        2   0-255 pty:master
 363serial               /dev/cua        5   64-67 serial:callout
 364serial               /dev/ttyS       4   64-67 serial
 365/dev/tty0            /dev/tty0       4       0 system:vtmaster
 366/dev/ptmx            /dev/ptmx       5       2 system
 367/dev/console         /dev/console    5       1 system:console
 368/dev/tty             /dev/tty        5       0 system:/dev/tty
 369unknown              /dev/tty        4    1-63 console
 370
 371-----------------------------------------------------------------------
 372
 3733   Reading and modifying kernel parameters
 374
 375A very interesting part of /proc is the directory /proc/sys. This not
 376only provides information, it also allows you to change parameters
 377within the kernel. Be very careful when trying this. You can optimize
 378your system, but you also can crash it. Never play around with kernel
 379parameters on a production system. Set up a development machine and
 380test to make sure that everything works the way you want it to.  You
 381may have no alternative but to reboot the machine once an error has
 382been made.
 383
 384To change a value, simply echo the new value into the file. An example
 385is given below in the section on the file system data. You need to be
 386root to do this. You can create your own boot script to get this done
 387every time your system boots. 
 388
 389The files in /proc/sys can be used to tune and monitor miscellaneous
 390and general things in the operation of the Linux kernel.  Since some
 391of the files can inadvertently disrupt your system, it is advisable to
 392read both documentation and source before actually making
 393adjustments. In any case, be very careful when writing to any of these
 394files. The entries in /proc may change slightly between the 2.1.* and
 395the 2.2 kernel, so review the kernel documentation if there is any
 396doubt. You'll find the documentation in the directory
 397/usr/src/linux/Documentation/sys. This chapter is heavily based on the
 398documentation included in the pre 2.2 kernels. Thanks to Rick van Riel
 399for providing this information.
 400
 4013.1  /proc/sys/debug and /proc/sys/proc
 402
 403These two subdirectories are empty.
 404
 4053.2  /proc/fs - File system data
 406
 407This subdirectory contains specific file system, file handle, inode,
 408dentry and quota information.
 409
 410Currently, these files are in /proc/sys/fs:
 411
 412dentry-state
 413   Status of the directory cache. Since directory entries are
 414   dynamically allocated and deallocated, this file gives information
 415   about the current status. It holds six values, in which the last
 416   two are not used and are always zero. The other four mean:
 417
 418       nr_dentry   Seems to be zero all the time
 419       nr_unused   Number of unused cache entries
 420       age_limit   Age in seconds after the entry may be
 421                   reclaimed, when memory is short
 422       want_pages  internal
 423
 424dquot-nr and dquot-max
 425   The file dquot-max shows the maximum number of cached disk quota
 426   entries.
 427
 428   The file dquot-nr shows the number of allocated disk quota
 429   entries and the number of free disk quota entries.
 430
 431   If the number of free cached disk quotas is very low and you have
 432   a large number of simultaneous system users, you might want
 433   to raise the limit.
 434
 435file-nr and file-max
 436   The kernel allocates file handles dynamically, but as yet
 437   doesn't free them again.
 438
 439   The value in file-max denotes the maximum number of file handles
 440   that the Linux kernel will allocate. When you get a lot of error
 441   messages about running out of file handles, you might want to raise
 442   this limit. The default value is 4096. To change it, just write the
 443   new number into the file:
 444
 445   # cat /proc/sys/fs/file-max
 446   4096
 447   # echo 8192 > /proc/sys/fs/file-max
 448   # cat /proc/sys/fs/file-max
 449   8192
 450
 451   This method of revision is useful for all customizable parameters
 452   of the kernel - simply echo the new value to the corresponding
 453   file.
 454  
 455   The three values in file-nr denote the number of allocated file
 456   handles, the number of used file handles, and the maximum number of
 457   file handles. When the allocated file handles come close to the
 458   maximum, but the number of actually used ones is far behind, you've
 459   encountered a peak in your usage of file handles and you don't need
 460   to increase the maximum.
 461
 462   However, there is still a per process limit of open files, which
 463   unfortunatly can't be changed that easily. It is set to 1024 by
 464   default. To change this you have to edit the files limits.h and
 465   fs.h in the directory /usr/src/linux/include/linux. Change the
 466   definition of NR_OPEN and recompile the kernel.
 467
 468inode-state, inode-nr and inode-max
 469   As with file handles, the kernel allocates the inode structures
 470   dynamically, but can't free them yet.
 471
 472   The value in inode-max denotes the maximum number of inode
 473   handlers. This value should be 3 to 4 times larger than the value
 474   in file-max, since stdin, stdout, and network sockets also need an
 475   inode struct to handle them. If you regularly run out of inodes,
 476   you should increase this value.
 477
 478   The file inode-nr contains the first two items from inode-state, so
 479   we'll skip to that file...
 480
 481   inode-state contains three actual numbers and four dummy values. The 
 482   actual numbers are (in order of appearance) nr_inodes, nr_free_inodes,
 483   and preshrink.
 484
 485   nr_inodes 
 486     Denotes the number of inodes the system has allocated. This can
 487     be slightly more than inode-max because Linux allocates them one
 488     pageful at a time.
 489
 490   nr_free_inodes 
 491     Represents the number of free inodes and pre shrink is nonzero
 492     when the nr_inodes > inode-max and the system needs to prune the
 493     inode list instead of allocating more.
 494
 495super-nr and super-max
 496   Again, super block structures are allocated by the kernel,
 497   but not freed. The file super-max contains the maximum number of
 498   super block handlers, where super-nr shows the number of
 499   currently allocated ones.
 500
 501   Every mounted file system needs a super block, so if you plan to
 502   mount lots of file systems, you may want to increase these
 503   numbers.
 504
 5053.3  /proc/fs/binfmt_misc - Miscellaneous binary formats
 506
 507Besides these files, there is the subdirectory
 508/proc/sys/fs/binfmt_misc. This handles the kernel support for
 509miscellaneous binary formats.
 510
 511Binfmt_misc provides the ability to register additional binary formats
 512to the Kernel without compiling an additional module/kernel. Therefore
 513binfmt_misc needs to know magic numbers at the beginning or the
 514filename extension of the binary.
 515
 516It works by maintaining a linked list of structs, that contain a
 517description of a binary format, including a magic with size (or the
 518filename extension), offset and mask, and the interpreter name. On
 519request it invokes the given interpreter with the original program as
 520argument, as binfmt_java and binfmt_em86 and binfmt_mz do.
 521Since binfmt_misc does not define any default binary-formats, you have to
 522register an additional binary-format.
 523
 524There are two general files in binfmt_misc and one file per registered
 525format. The two general files are register and status.
 526
 527Registering a new binary format
 528
 529echo :name:type:offset:magic:mask:interpreter: > /proc/sys/fs/binfmt_misc/register 
 530
 531with appropriate name (the name for the /proc-dir entry), offset
 532(defaults to 0, if omitted), magic and mask (which can be omitted,
 533defaults to all 0xff) and last but not least, the interpreter that is
 534to be invoked (for example and testing '/bin/echo'). Type can be M for
 535usual magic matching or E for filename extension matching (give
 536extension in place of magic).
 537
 538To check or reset the status of the binary format handler:
 539
 540If you do a cat on the file /proc/sys/fs/binfmt_misc/status, you will
 541get the current status (enabled/disabled) of binfmt_misc. Change the
 542status by echoing 0 (disables) or 1 (enables) or -1 (caution: this
 543clears all previously registered binary formats) to status. For
 544example echo 0 > status to disable binfmt_misc (temporarily).
 545
 546Status of a single handler
 547
 548Each registered handler has an entry in /proc/sys/fs/binfmt_misc.
 549These files perform the same function as status, but their scope is
 550limited to the actual binary format. By cating this file, you also
 551receive all related information about the interpreter/magic of the
 552binfmt.
 553
 554Example usage of binfmt_misc (emulate binfmt_java)
 555
 556cd /proc/sys/fs/binfmt_misc
 557echo ':Java:M::\xca\xfe\xba\xbe::/usr/local/java/bin/javawrapper:' > register
 558echo ':HTML:E::html::/usr/local/java/bin/appletviewer:' > register
 559echo ':Applet:M::<!--applet::/usr/local/java/bin/appletviewer:' > register
 560echo ':DEXE:M::\x0eDEX::/usr/bin/dosexec:' > register
 561
 562These three lines add support for Java executables and Java applets
 563(like binfmt_java, additionally recognizing the .html extension with
 564no need to put <!--applet> to every applet file). You have to install
 565the JDK and the shell-script /usr/local/java/bin/javawrapper too. It
 566works around the brokenness of the Java filename handling. To add a
 567Java binary, just create a link to the class-file somewhere in the
 568path.
 569
 5703.4  /proc/sys/kernel - general kernel parameters
 571
 572This directory reflects general kernel behaviors. As I've said before,
 573the contents are depend on your configuration. I'll list the most
 574important files, along with descriptions of what they mean and how to
 575use them.
 576
 577acct
 578   The file contains three values; highwater, lowwater, and
 579   frequency.
 580
 581   It exists only when BSD-style process accounting is enabled. These
 582   values control its behavior. If the free space on the file system
 583   where the log lives goes below lowwater%, accounting suspends. If
 584   it goes above highwater%, accounting resumes. Frequency determines
 585   how often you check the amount of free space (value is in
 586   seconds). Default settings are: 4, 2, and 30. That is, suspend
 587   accounting if there left <= 2% free; resume it if we have a value
 588   >=3%; consider information about the amount of free space valid
 589   for 30 seconds
 590
 591ctrl-alt-del
 592   When the value in this file is 0, ctrl-alt-del is trapped and sent
 593   to the init(1) program to handle a graceful restart. However, when
 594   the value is > 0, Linux's reaction to this key combination will be
 595   an immediate reboot, without syncing its dirty buffers.
 596
 597   Note: when a program (like dosemu) has the keyboard in raw mode,
 598   the ctrl-alt-del is intercepted by the program before it ever
 599   reaches the kernel tty layer, and it is up to the program to decide
 600   what to do with it.
 601
 602domainname and hostname
 603   These files can be controlled to set the NIS domainname and
 604   hostname of your box. For the classic darkstar.frop.org a simple:
 605
 606   # echo "darkstar" > /proc/sys/kernel/hostname
 607   # echo "frop.org" > /proc/sys/kernel/domainname
 608
 609   would suffice to set your hostname and NIS domainname.
 610
 611osrelease, ostype and version
 612
 613   The names make it pretty obvious what these fields contain:
 614
 615   >cat /proc/sys/kernel/osrelease
 616   2.1.131
 617   >cat /proc/sys/kernel/ostype
 618   Linux
 619   >cat /proc/sys/kernel/version
 620   #8 Mon Jan 25 19:45:02 PST 1999
 621 
 622   The files osrelease and ostype should be clear enough. Version
 623   needs a little more clarification however. The #8 means that this
 624   is the 8th kernel built from this source base and the date behind
 625   it indicates the time the kernel was built. The only way to tune
 626   these values is to rebuild the kernel.
 627
 628panic 
 629   The value in this file represents the number of seconds the kernel
 630   waits before rebooting on a panic. When you use the software
 631   watchdog, the recommended setting is 60. If set to 0, the auto
 632   reboot after a kernel panic is disabled, this is the default
 633   setting.
 634
 635printk
 636   The four values in printk denote console_loglevel,
 637   default_message_loglevel, minimum_console_level, and
 638   default_console_loglevel respectively.
 639
 640   These values influence printk() behavior when printing or logging
 641   error messages, which come from inside the kernel. See syslog(2)
 642   for more information on the different log levels.
 643
 644   console_loglevel
 645     Messages with a higher priority than this will be printed to
 646     the console.
 647
 648   default_message_level
 649     Messages without an explicit priority will be printed with
 650     this priority.
 651
 652   minimum_console_loglevel
 653     Minimum (highest) value to which the console_loglevel can be set.
 654
 655   default_console_loglevel
 656     Default value for console_loglevel.
 657
 658sg-big-buff
 659   This file shows the size of the generic SCSI (sg) buffer. At this
 660   point, you can't tune it yet, but you can change it at compile time
 661   by editing include/scsi/sg.h and changing the value of
 662   SG_BIG_BUFF.
 663
 664   If you use a scanner with SANE (Scanner Access now easy) you
 665   might want to set this to a higher value. Look into the SANE
 666   documentation on this issue.
 667
 668modprobe
 669   The location where the modprobe binary is located. The kernel
 670   uses this program to load modules on demand.
 671
 6723.5  /proc/sys/vm - The virtual memory subsystem
 673
 674The files in this directory can be used to tune the operation of the
 675virtual memory (VM) subsystem of the Linux kernel. In addition, one of
 676the files (bdflush) has a little influence on disk usage.
 677
 678bdflush
 679   This file controls the operation of the bdflush kernel daemon. It
 680   currently contains 9 integer values, 6 of which are actually used
 681   by the kernel:
 682
 683    nfract      Percentage of buffer cache dirty to
 684                activate bdflush
 685    ndirty      Maximum number of dirty blocks to
 686                write out per-wake-cycle
 687    nrefill     Number of clean buffers to try to obtain
 688                each time we call refill
 689    nref_dirt   Dirty buffer threshold for activating bdflush
 690                when trying to refill buffers.
 691    dummy       unused
 692    age_buffer  Time for normal buffer to age before you flush it
 693    age_super   Time for superblock to age before you flush it
 694    dummy       unused
 695    dummy       unused
 696
 697   nfract
 698     This parameter governs the maximum number of dirty buffers
 699     in the buffer cache. Dirty means that the contents of the
 700     buffer still have to be written to disk (as opposed to a
 701     clean buffer, which can just be forgotten about). Setting
 702     this to a high value means that Linux can delay disk writes
 703     for a long time, but it also means that it will have to do a
 704     lot of I/O at once when memory becomes short. A low value
 705     will spread out disk I/O more evenly.
 706
 707   ndirty
 708     Ndirty gives the maximum number of dirty buffers that
 709     bdflush can write to the disk at one time. A high value will
 710     mean delayed, bursty I/O, while a small value can lead to
 711     memory shortage when bdflush isn't woken up often enough.
 712
 713   nrefill
 714     This the number of buffers that bdflush will add to the list
 715     of free buffers when refill_freelist() is called. It is
 716     necessary to allocate free buffers beforehand, since the
 717     buffers are often different sizes than the memory pages
 718     and some bookkeeping needs to be done beforehand. The
 719     higher the number, the more memory will be wasted and the
 720     less often refill_freelist() will need to run.
 721
 722   nref_dirt
 723     When refill_freelist() comes across more than nref_dirt
 724     dirty buffers, it will wake up bdflush.
 725
 726   age_buffer and age_super
 727     Finally, the age_buffer and age_super parameters govern the
 728     maximum time Linux waits before writing out a dirty buffer
 729     to disk. The value is expressed in jiffies (clockticks), the
 730     number of jiffies per second is 100. Age_buffer is the
 731     maximum age for data blocks, while age_super is for
 732     filesystems meta data.
 733
 734buffermem
 735   The three values in this file control how much memory should be
 736   used for buffer memory. The percentage is calculated as a
 737   percentage of total system memory.
 738
 739   The values are:
 740
 741   min_percent
 742     This is the minimum percentage of memory that should be
 743     spent on buffer memory.
 744
 745   borrow_percent
 746     When Linux is short on memory, and the buffer cache uses more
 747     than it has been allotted, the memory mangement (MM) subsystem
 748     will prune the buffer cache more heavily than other memory to
 749     compensate.
 750
 751   max_percent
 752     This is the maximum amount of memory that can be used for
 753     buffer memory.
 754
 755freepages
 756   This file contains three values: min, low and high:
 757
 758   min
 759     When the number of free pages in the system reaches this number,
 760     only the kernel can allocate more memory.
 761
 762   low
 763     If the number of free pages gets below this point, the kernel
 764     starts swapping aggressively.
 765
 766   high
 767     The kernel tries to keep up to this amount of memory free; if
 768     memory comes below this point, the kernel gently starts swapping
 769     in the hopes that it never has to do really aggressive swapping.
 770
 771kswapd
 772   Kswapd is the kernel swap out daemon. That is, kswapd is that piece
 773   of the kernel that frees memory when it gets fragmented or
 774   full. Since every system is different, you'll probably want some
 775   control over this piece of the system.
 776
 777   The file contains three numbers:
 778
 779   tries_base
 780     The maximum number of pages kswapd tries to free in one round is
 781     calculated from this number. Usually this number will be divided
 782     by 4 or 8 (see mm/vmscan.c), so it isn't as big as it looks.
 783
 784     When you need to increase the bandwidth to/from swap, you'll want
 785     to increase this number.
 786
 787   tries_min
 788     This is the minimum number of times kswapd tries to free a page
 789     each time it is called. Basically it's just there to make sure
 790     that kswapd frees some pages even when it's being called with
 791     minimum priority.
 792
 793
 794  swap_cluster
 795     This is probably the greatest influence on system
 796     performance. swap_cluster is the number of pages kswapd writes in
 797     one turn. You'll want this value to be large so that kswapd does
 798     its I/O in large chunks and the disk doesn't have to seek as
 799     often., but you don't want it to be too large since that would
 800     flood the request queue.
 801
 802overcommit_memory
 803   This file contains one value. The following algorithm is used to
 804   decide if there's enough memory: if the value of overcommit_memory
 805   is positive, then there's always enough memory. This is a useful
 806   feature, since programs often malloc() huge amounts of memory 'just
 807   in case', while they only use a small part of it. Leaving this
 808   value at 0 will lead to the failure of such a huge malloc(), when
 809   in fact the system has enough memory for the program to run.
 810
 811   On the other hand, enabling this feature can cause you to run out
 812   of memory and thrash the system to death, so large and/or important
 813   servers will want to set this value to 0.
 814
 815pagecache
 816   This file does exactly the same as buffermem, only this file
 817   controls the amount of memory allowed for memory mapping and
 818   generic caching of files.
 819
 820   You don't want the minimum level to be too low, otherwise your
 821   system might thrash when memory is tight or fragmentation is
 822   high.
 823
 824pagetable_cache
 825   The kernel keeps a number of page tables in a per-processor cache
 826   (this helps a lot on SMP systems). The cache size for each
 827   processor will be between the low and the high value.
 828
 829   On a low-memory, single CPU system, you can safely set these values
 830   to 0 so you don't waste memory. It is used on SMP systems so that
 831   the system can perform fast pagetable allocations without having to
 832   aquire the kernel memory lock.
 833
 834   For large systems, the settings are probably fine. For normal
 835   systems they won't hurt a bit. For small systems (<16MB ram) it
 836   might be advantageous to set both values to 0.
 837
 838swapctl
 839   This file contains no less than 8 variables. All of these values
 840   are used by kswapd.
 841
 842   The first four variables sc_max_page_age, sc_page_advance,
 843   sc_page_decline and sc_page_initial_age are used to keep track of
 844   Linux's page aging. Page aging is a bookkeeping method to track
 845   which pages of memory are often used, and which pages can be
 846   swapped out without consequences.
 847
 848   When a page is swapped in, it starts at sc_page_initial_age
 849   (default 3) and when the page is scanned by kswapd, its age is
 850   adjusted according to the following scheme:
 851
 852    o If the page was used since the last time we scanned, its age
 853      is increased by sc_page_advance (default 3) up to a
 854      maximum of sc_max_page_age (default 20).
 855
 856    o Else (meaning it wasn't used) its age is decreased by
 857      sc_page_decline (default 1).
 858
 859   When a page reaches age 0, it's ready to be swapped out.
 860
 861   The next four variables sc_age_cluster_fract, sc_age_cluster_min,
 862   sc_pageout_weight and sc_bufferout_weight, can be used to control
 863   kswapd's aggressiveness in swapping out pages.
 864
 865   Sc_age_cluster_fract is used to calculate how many pages from a
 866   process are to be scanned by kswapd. The formula used is
 867
 868           sc_age_cluster_fract
 869           -------------------- * resident set size
 870              1024   =20
 871
 872   So if you want kswapd to scan the whole process,
 873   sc_age_cluster_fract needs to have a value of 1024. The minimum
 874   number of pages kswapd will scan is represented by
 875   sc_age_cluster_min, this is done so kswapd will also scan small
 876   processes.
 877
 878   The values of sc_pageout_weight and sc_bufferout_weight are used
 879   to control how many tries kswapd will make in order to swap out
 880   one page/buffer. These values can be used to fine-tune the ratio
 881   between user pages and buffer/cache memory. When you find that
 882   your Linux system is swapping out too many process pages in order
 883   to satisfy buffer memory demands, you might want to either
 884   increase sc_bufferout_weight, or decrease the value of
 885   sc_pageout_weight.
 886
 8873.6  /proc/sys/dev - Device specific parameters
 888
 889Currently there is only support for CDROM drives, and for those, there
 890is only one read only file containing information about the CD-ROM
 891drives attached to the system:
 892
 893>cat /proc/sys/dev/cdrom/info
 894CD-ROM information
 895
 896drive name:           sr0  hdc
 897drive speed:           0    6
 898drive # of slots:      1    0
 899Can close tray:        1    1
 900Can open tray:         1    1
 901Can lock tray:         1    1
 902Can change speed:      1    1
 903Can select disk:       0    1
 904Can read multisession: 1    1
 905Can read MCN:          1    1
 906Reports media changed: 1    1
 907Can play audio:        1    1
 908
 909You see two drives, sr0 and hdc, and their lists of features.
 910
 9113.7  /proc/sys/sunrpc - Remote procedure calls
 912
 913This directory contains four files, which enable or disable debugging
 914for the RPC functions NFS, NFS-daemon, RPC and NLM. The default values
 915are 0. They can be set to one, to turn debugging on.  (The default
 916value is 0 for each)
 917
 9183.8  /proc/sys/net - Networking stuff
 919
 920The interface to the networking parts of the kernel is located in
 921/proc/sys/net. The table below shows all possible subdirectories. You
 922may see only some of them, depending on the configuration of your
 923kernel:
 924
 925+-------------------------------------------------------------+
 926| core     General parameter   |appletalk  Appletalk protocol |
 927| unix     Unix domain sockets |netrom     NET/ROM            |
 928| 802      E802 protocol       |ax25       AX25               |
 929| ethernet Ethernet protocol   |rose       X.25 PLP layer     |
 930| ipv4     IP version 4        |x25        X.25 protocol      |
 931| ipx      IPX                 |token-ring IBM token ring     |
 932| bridge   Bridging            |decnet     DEC net            |
 933| ipv6     IP version 6        |                              |
 934+-------------------------------------------------------------+
 935
 936We will concentrate on IP networking here. As AX15, X.25, and DEC Net
 937are only minor players in the Linux world, we'll skip them in this
 938chapter. You'll find some short info to Appletalk and IPX further down
 939in section 3.10 and 3.11. Please look in the online documentation and
 940the kernel source to get a detailed view of the parameters for those
 941protocols. In this section we'll discuss the subdirectories printed in
 942bold letters in the table above. As default values are suitable for
 943most needs, there is no need to change these values.
 944
 945/proc/sys/net/core - Network core options
 946
 947rmem_default
 948   The default setting of the socket receive buffer in bytes.
 949
 950rmem_max
 951   The maximum receive socket buffer size in bytes.
 952
 953wmem_default
 954   The default setting (in bytes) of the socket send buffer.
 955
 956wmem_max
 957   The maximum send socket buffer size in bytes.
 958
 959message_burst and message_cost
 960   These parameters are used to limit the warning messages written to
 961   the kernel log from the networking code. They enforce a rate limit
 962   to make a denial-of-service attack impossible. The higher the
 963   message_cost factor is, the less messages will be
 964   written. Message_burst controls when messages will be dropped. The
 965   default settings limit warning messages to one every five seconds.
 966
 967netdev_max_backlog
 968   Maximal number of packets, queued on INPUT side, when the interface
 969   receives packets faster than kernel can process them.
 970
 971optmem_max
 972   Maximum ancillary buffer size allowed per socket. Ancillary data is
 973   a sequence of struct cmsghdr structures with appended data.
 974
 975/proc/sys/net/unix - Parameters for UNIX domain sockets
 976
 977There are only two files in this subdirectory. They control the delays
 978for deleting and destroying socket descriptors.
 979
 9803.9  /proc/sys/net/ipv4 - IPV4 settings
 981
 982IP version 4 is still the most used protocol in Unix networking. It
 983will be replaced by IP version 6 in the next couple of years, but for
 984the moment it's the de facto standard for the internet and is used in
 985most networking environments around the world. Because of the
 986importance of this protocol, we'll have a deeper look into the subtree
 987controlling the behavior of the IPv4 subsystem of the Linux kernel.
 988
 989Let's start with the entries in /proc/sys/net/ipv4 itself.
 990
 991ICMP settings
 992
 993icmp_echo_ignore_all and icmp_echo_ignore_broadcasts
 994   Turn on (1) or off (0), if the kernel should ignore all ICMP ECHO
 995   requests, or just those to broadcast and multicast addresses.
 996
 997   Please note that if you accept ICMP echo requests with a
 998   broadcast/multicast destination address your network may be used
 999   as an exploder for denial of service packet flooding attacks to
1000   other hosts.
1001
1002icmp_destunreach_rate, icmp_echoreply_rate,
1003icmp_paramprob_rate and icmp_timeexeed_rate
1004   Sets limits for sending ICMP packets to specific targets. A value of
1005   zero disables all limiting. Any positive value sets the maximum
1006   package rate in hundredths of a second (on Intel systems).
1007
1008IP settings
1009
1010ip_autoconfig
1011   This file contains one, if the host got its IP configuration by
1012   RARP, BOOTP, DHCP or a similar mechanism. Otherwise it is zero.
1013
1014ip_default_ttl
1015   TTL (Time To Live) for IPv4 interfaces. This is simply the
1016   maximum number of hops a packet may travel.
1017
1018ip_dynaddr
1019   Enable dynamic socket address rewriting on interface address change. This
1020   is useful for dialup interface with changing IP addresses.
1021
1022ip_forward
1023   Enable or disable forwarding of IP packages between interfaces. A
1024   change of this value resets all other parameters to their default
1025   values. They differ if the kernel is configured as host or router.
1026
1027ip_local_port_range
1028   Range of ports used by TCP and UDP to choose the local
1029   port. Contains two numbers, the first number is the lowest port,
1030   the second number the highest local port. Default is 1024-4999.
1031   Should be changed to 32768-61000 for high-usage systems.
1032
1033ip_no_pmtu_disc
1034   Global switch to turn path MTU discovery off. It can also be set
1035   on a per socket basis by the applications or on a per route
1036   basis.
1037
1038ip_masq_debug
1039   Enable/disable debugging of IP masquerading.
1040
1041
1042IP fragmentation settings
1043
1044ip_always_defrag
1045   Replaces the former Kernel-Configuration option:
1046        CONFIG_IP_ALWAYS_DEFRAG
1047   All incoming fragments (parts of IP packets
1048   that arose when some host between origin and destination decided
1049   that the packets were too large and cut them into pieces) will be
1050   reassembled (defragmented) before being processed, even if they are
1051   about to be forwarded.
1052
1053   Only say Y here if running either a firewall that is the sole link
1054   to your network or a transparent proxy; never ever say Y here for a
1055   normal router or host.
1056
1057   This is automagically enabled when enabling masquerading.
1058
1059ipfrag_high_trash and ipfrag_low_trash
1060   Maximum memory used to reassemble IP fragments. When
1061   ipfrag_high_thresh bytes of memory is allocated for this purpose,
1062   the fragment handler will toss packets until ipfrag_low_thresh is
1063   reached.
1064
1065
1066ipfrag_time
1067   Time in seconds to keep an IP fragment in memory.
1068
1069TCP settings
1070
1071tcp_retrans_collapse
1072   Bug-to-bug compatibility with some broken printers. On retransmit
1073   try to send bigger packets to work around bugs in certain TCP
1074   stacks. Can be turned off by setting it to zero.
1075
1076tcp_keepalive_probes
1077   Number of keep alive probes TCP sends out, until it decides that the
1078   connection is broken.
1079
1080tcp_keepalive_time
1081   How often TCP sends out keep alive messages, when keep alive is
1082   enabled. The default is 2 hours.
1083
1084tcp_syn_retries
1085   Number of times initial SYNs for a TCP connection attempt will be
1086   retransmitted. Should not be higher than 255. This is only the
1087   timeout for outgoing connections, for incoming connections the
1088   number of retransmits is defined by tcp_retries1.
1089
1090tcp_sack
1091   Enable select acknowledgments after RFC2018.
1092
1093tcp_timestamps
1094   Enable timestamps as defined in RFC1323.
1095
1096tcp_stdurg
1097   Enable the strict RFC793 interpretation of the TCP urgent pointer
1098   field. The default is to use the BSD compatible interpretation
1099   of the urgent pointer pointing to the first byte after the urgent
1100   data. The RFC793 interpretation is to have it point to the last
1101   byte of urgent data. Enabling this option may lead to
1102   interoperatibility problems. Disabled by default.
1103
1104tcp_syncookies
1105   Only valid when the kernel was compiled with
1106   CONFIG_SYNCOOKIES. Send out syncookies when the syn backlog queue
1107   of a socket overflows. This is to prevent against the common 'syn
1108   flood attack'. Disabled by default.
1109
1110   Note that the concept of a socket backlog is abandoned, this
1111   means the peer may not receive reliable error messages from an
1112   over loaded server with syncookies enabled.
1113
1114tcp_window_scaling
1115   Enable window scaling as defined in RFC1323.
1116
1117tcp_fin_timeout
1118   How many seconds to wait for a final FIN before the socket is
1119   always closed. This is strictly a violation of the TCP
1120   specification, but required to prevent denial-of-service attacks.
1121
1122tcp_max_ka_probes
1123   How many keepalive probes are sent per slow timer run. Shouldn't be
1124   set too high to prevent bursts.
1125
1126tcp_max_syn_backlog
1127   Length of the per socket backlog queue. Since Linux 2.2 the backlog
1128   specified in listen(2) only specifies the length of the backlog
1129   queue of already established sockets. When more connection requests
1130   arrive Linux starts to drop packets. When syncookies are enabled
1131   the packets are still answered and the maximum queue is effectively
1132   ignored.
1133
1134tcp_retries1
1135   Defines how often an answer to a TCP connection request is
1136   retransmitted before giving up.
1137
1138tcp_retries2
1139   Defines how often a TCP packet is retransmitted before giving up.
1140
1141Interface specific settings
1142
1143In the directory /proc/sys/net/ipv4/conf you'll find one subdirectory
1144for each interface the system knows about and one directory calls
1145all. Changes in the all subdirectory affect all interfaces, where
1146changes in the other subdirectories affect only one interface.
1147
1148All directories have the same entries:
1149
1150accept_redirects
1151   This switch decides if the kernel accepts ICMP redirect messages
1152   or not. The default is 'yes', if the kernel is configured for a
1153   regular host; and 'no' for a router configuration.
1154
1155accept_source_route
1156   Should source routed packages be accepted or declined. The
1157   default is dependent on the kernel configuration. It's 'yes' for
1158   routers and 'no' for hosts.
1159
1160bootp_relay
1161   Accept packets with source address 0.b.c.d destined not to this
1162   host as local ones. It is supposed that BOOTP relay daemon will
1163   catch and forward such packets.
1164
1165   The default is 'no', as this feature is not implemented yet
1166   (kernel version 2.2.0-pre?).
1167
1168forwarding
1169   Enable or disable IP forwarding on this interface.
1170
1171log_martians
1172   Log packets with source addresses with no known route to kernel log.
1173
1174mc_forwarding
1175   Do multicast routing. The kernel needs to be compiled with
1176   CONFIG_MROUTE and a multicast routing daemon is required.
1177
1178proxy_arp
1179   Do (1) or don't (0) do proxy ARP.
1180
1181rp_filter
1182   Integer value deciding if source validation should be made. 
1183   1 means yes, 0 means no. Disabled by default, but 
1184   local/broadcast address spoofing is always on.
1185
1186   If you set this to 1 on a router that is the only connection
1187   for a network to the net , it evidently prevents spoofing attacks
1188   against your internal networks (external addresses can still be
1189   spoofed), without the need for additional firewall rules.
1190
1191secure_redirects
1192   Accept ICMP redirect messages only for gateways, listed in
1193   default gateway list. Enabled by default.
1194
1195hidden
1196   Hide addresses attached to this device from another devices.
1197   Such addresses will never be selected by source address autoselection
1198   mechanism, host does not answer broadcast ARP requests for them,
1199   does not announce it as source address of ARP requests,      but they
1200   are still reachable via IP. This flag is activated only if it is
1201   enabled both in specific device section and in "all" section.
1202
1203shared_media
1204   If it is not set the kernel does not assume that different subnets
1205   on this device can communicate directly. Default setting is 'yes'.  
1206
1207send_redirects
1208   Determines if or if not to send ICMP redirects to other hosts.
1209
1210
1211Routing settings
1212
1213The directory /proc/sys/net/ipv4/route contains several file to
1214control routing issues.
1215
1216error_burst and error_cost
1217   These parameters are used to limit the warning messages written to
1218   the kernel log from the routing code. The higher the error_cost
1219   factor is, the fewer messages will be written. Error_burst controls
1220   when messages will be dropped. The default settings limit warning
1221   messages to one every five seconds.
1222
1223flush
1224   Writing to this file results in a flush of the routing cache.
1225
1226gc_elastic, gc_interval, gc_min_interval, gc_tresh, gc_timeout
1227   Values to control the frequency and behavior of the garbage
1228   collection algorithm for the routing cache.
1229
1230max_size
1231   Maximum size of the routing cache. Old entries will be purged
1232   once the cache has this size.
1233
1234max_delay, min_delay
1235   Delays for flushing the routing cache.
1236
1237redirect_load, redirect_number
1238   Factors which determine if more ICPM redirects should be sent to
1239   a specific host. No redirects will be sent once the load limit or
1240   the maximum number of redirects has been reached.
1241
1242redirect_silence
1243
1244   Timeout for redirects. After this period redirects will be sent
1245   again, even if this has been stopped, because the load or number
1246   limit has been reached.
1247
1248Network Neighbor handling
1249
1250Settings about how to handle connections with direct neighbors (nodes
1251attached to the same link) can be found in the directory
1252/proc/sys/net/ipv4/neigh.
1253
1254As we saw it in the conf directory, there is a default subdirectory
1255which holds the default values, and one directory for each
1256interface. The contents of the directories are identical, with the
1257single exception that the default settings contain additional options
1258to set garbage collection parameters.
1259
1260In the interface directories you'll find the following entries:
1261
1262base_reachable_time
1263   A base value used for computing the random reachable time value
1264   as specified in RFC2461.
1265
1266retrans_time
1267   The time, expressed in jiffies (1/100 sec), between retransmitted
1268   Neighbor Solicitation messages. Used for address resolution and to
1269   determine if a neighbor is unreachable.
1270
1271unres_qlen
1272   Maximum queue length for a pending arp request - how many packets
1273   are accepted from other layers while the arp address is still
1274   resolved.
1275
1276anycast_delay
1277   Maximum for random delay of answers to neighbor solicitation
1278   messages in jiffies (1/100 sec). Not yet implemented (Linux does
1279   not have anycast support yet).
1280
1281ucast_solicit
1282   Maximum number of retries for unicast solicitation.
1283
1284mcast_solicit
1285   Maximum number of retries for multicast solicitation.
1286
1287delay_first_probe_time
1288   Delay for the first time probe if the neighbor is reachable. (see
1289   gc_stale_time).
1290
1291locktime
1292   An ARP/neighbor entry is only replaced with a new one if the old
1293   is at least locktime old. This prevents ARP cache thrashing.
1294
1295proxy_delay
1296   Maximum time (real time is random [0..proxytime]) before
1297   answering to an arp request for which we have an proxy arp entry.
1298   In some cases, this is used to prevent network flooding.
1299
1300proxy_qlen
1301   Maximum queue length of the delayed proxy arp timer (see
1302   proxy_delay).
1303
1304app_solcit
1305   Determines the number of requests to send to the user level arp
1306   daemon. 0 to turn off.
1307
1308gc_stale_time
1309   Determines how often to check for stale ARP entries. After an ARP
1310   entry is stale it will be resolved again (useful when an IP address
1311   migrates to another machine). When ucast_solicit is > 0 it first
1312   tries to send an ARP packet directly to the known host, when that
1313   fails and mcast_solicit is > 0, an ARP request is broadcasted.
1314
13153.10  Appletalk
1316
1317The /proc/sys/net/appletalk directory holds the Appletalk
1318configuration data when Appletalk is loaded. The configurable
1319parameters are:
1320
1321aarp-expiry-time
1322   The amount of time we keep an AARP entry before expiring
1323   it. Used to age out old hosts.
1324
1325aarp-resolve-time
1326   The amount of time we will spend trying to resolve an Appletalk
1327   address.
1328
1329aarp-retransmit-limit
1330   The number of times we will retransmit a query before giving up.
1331
1332aarp-tick-time
1333   Controls the rate at which expiries are checked.
1334
1335
1336The directory /proc/net/appletalk holds the list of active appletalk
1337sockets on a machine.
1338
1339The fields indicate the DDP type, the local address (in network:node
1340format) the remote address, the size of the transmit pending queue,
1341the size of the received queue (bytes waiting for applications to
1342read) the state and the uid owning the socket.
1343
1344/proc/net/atalk_iface lists all the interfaces configured for
1345appletalk.It shows the name of the interface, its appletalk address,
1346the network range on that ad- dress (or network number for phase 1
1347networks), and the status of the interface.
1348
1349/proc/net/atalk_route lists each known network route. It lists the
1350target (network) that the route leads to, the router (may be directly
1351connected), the route flags, and the device the route is via.
1352
13533.11  IPX
1354
1355The IPX protocol has no tunable values in /proc/sys/net.
1356
1357The IPX protocol does, however, provide /proc/net/ipx. This lists each
1358IPX socket giving the local and remote addresses in Novell format
1359(that is network:node:port). In accordance with the strange Novell
1360tradition, everything but the port is in hex. Not_Connected is
1361displayed for sockets that are not tied to a specific remote
1362address. The Tx and Rx queue sizes indicate the number of bytes
1363pending for transmit and receive. The state indicates the state the
1364socket is in and the uid is the owning uid of the socket.
1365
1366The /proc/net/ipx_interface file lists all IPX interfaces. For each
1367interface it gives the network number, the node number, and indicates
1368if the network is the primary network. It also indicates which device it is bound to (or
1369Internal for internal networks) and the Frame Type if
1370appropriate. Linux supports 802.3, 802.2, 802.2 SNAP and DIX (Blue
1371Book) ethernet framing for IPX.
1372
1373The /proc/net/ipx_route table holds a list of IPX routes. For each
1374route it gives the destination network, the router node (or Directly)
1375and the network address of the router (or Connected) for internal
1376networks.
1377
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.