net: Documentation: RFC 2553bis is now RFC 3493
[linux-2.6.git] / Documentation / networking / ip-sysctl.txt
index ff3f219..8154699 100644 (file)
@@ -2,7 +2,7 @@
 
 ip_forward - BOOLEAN
        0 - disabled (default)
-       not 0 - enabled 
+       not 0 - enabled
 
        Forward Packets between interfaces.
 
@@ -11,7 +11,9 @@ ip_forward - BOOLEAN
        for routers)
 
 ip_default_ttl - INTEGER
-       default 64
+       Default value of TTL field (Time To Live) for outgoing (but not
+       forwarded) IP packets. Should be between 1 and 255 inclusive.
+       Default: 64 (as recommended by RFC1700)
 
 ip_no_pmtu_disc - BOOLEAN
        Disable Path MTU Discovery.
@@ -20,6 +22,15 @@ ip_no_pmtu_disc - BOOLEAN
 min_pmtu - INTEGER
        default 562 - minimum discovered Path MTU
 
+route/max_size - INTEGER
+       Maximum number of routes allowed in the kernel.  Increase
+       this when using large numbers of interfaces and/or routes.
+
+neigh/default/gc_thresh3 - INTEGER
+       Maximum number of neighbor entries allowed.  Increase this
+       when using large numbers of interfaces and when communicating
+       with large numbers of directly-connected peers.
+
 mtu_expires - INTEGER
        Time, in seconds, that cached PMTU information is kept.
 
@@ -36,49 +47,49 @@ rt_cache_rebuild_count - INTEGER
 IP Fragmentation:
 
 ipfrag_high_thresh - INTEGER
-       Maximum memory used to reassemble IP fragments. When 
+       Maximum memory used to reassemble IP fragments. When
        ipfrag_high_thresh bytes of memory is allocated for this purpose,
        the fragment handler will toss packets until ipfrag_low_thresh
        is reached.
-       
+
 ipfrag_low_thresh - INTEGER
-       See ipfrag_high_thresh  
+       See ipfrag_high_thresh
 
 ipfrag_time - INTEGER
-       Time in seconds to keep an IP fragment in memory.       
+       Time in seconds to keep an IP fragment in memory.
 
 ipfrag_secret_interval - INTEGER
-       Regeneration interval (in seconds) of the hash secret (or lifetime 
+       Regeneration interval (in seconds) of the hash secret (or lifetime
        for the hash secret) for IP fragments.
        Default: 600
 
 ipfrag_max_dist - INTEGER
-       ipfrag_max_dist is a non-negative integer value which defines the 
-       maximum "disorder" which is allowed among fragments which share a 
-       common IP source address. Note that reordering of packets is 
-       not unusual, but if a large number of fragments arrive from a source 
-       IP address while a particular fragment queue remains incomplete, it 
-       probably indicates that one or more fragments belonging to that queue 
-       have been lost. When ipfrag_max_dist is positive, an additional check 
-       is done on fragments before they are added to a reassembly queue - if 
-       ipfrag_max_dist (or more) fragments have arrived from a particular IP 
-       address between additions to any IP fragment queue using that source 
-       address, it's presumed that one or more fragments in the queue are 
-       lost. The existing fragment queue will be dropped, and a new one 
+       ipfrag_max_dist is a non-negative integer value which defines the
+       maximum "disorder" which is allowed among fragments which share a
+       common IP source address. Note that reordering of packets is
+       not unusual, but if a large number of fragments arrive from a source
+       IP address while a particular fragment queue remains incomplete, it
+       probably indicates that one or more fragments belonging to that queue
+       have been lost. When ipfrag_max_dist is positive, an additional check
+       is done on fragments before they are added to a reassembly queue - if
+       ipfrag_max_dist (or more) fragments have arrived from a particular IP
+       address between additions to any IP fragment queue using that source
+       address, it's presumed that one or more fragments in the queue are
+       lost. The existing fragment queue will be dropped, and a new one
        started. An ipfrag_max_dist value of zero disables this check.
 
        Using a very small value, e.g. 1 or 2, for ipfrag_max_dist can
        result in unnecessarily dropping fragment queues when normal
-       reordering of packets occurs, which could lead to poor application 
-       performance. Using a very large value, e.g. 50000, increases the 
-       likelihood of incorrectly reassembling IP fragments that originate 
+       reordering of packets occurs, which could lead to poor application
+       performance. Using a very large value, e.g. 50000, increases the
+       likelihood of incorrectly reassembling IP fragments that originate
        from different IP datagrams, which could result in data corruption.
        Default: 64
 
 INET peer storage:
 
 inet_peer_threshold - INTEGER
-       The approximate size of the storage.  Starting from this threshold      
+       The approximate size of the storage.  Starting from this threshold
        entries will be thrown aggressively.  This threshold also determines
        entries' time-to-live and time intervals between garbage collection
        passes.  More entries, less time-to-live, less GC interval.
@@ -95,17 +106,7 @@ inet_peer_maxttl - INTEGER
        when the number of entries in the pool is very small).
        Measured in seconds.
 
-inet_peer_gc_mintime - INTEGER
-       Minimum interval between garbage collection passes.  This interval is
-       in effect under high memory pressure on the pool.
-       Measured in seconds.
-
-inet_peer_gc_maxtime - INTEGER
-       Minimum interval between garbage collection passes.  This interval is
-       in effect under low (or absent) memory pressure on the pool.
-       Measured in seconds.
-
-TCP variables: 
+TCP variables:
 
 somaxconn - INTEGER
        Limit of socket listen() backlog, known in userspace as SOMAXCONN.
@@ -135,6 +136,7 @@ tcp_adv_win_scale - INTEGER
        Count buffering overhead as bytes/2^tcp_adv_win_scale
        (if tcp_adv_win_scale > 0) or bytes-bytes/2^(-tcp_adv_win_scale),
        if it is <= 0.
+       Possible values are [-31, 31], inclusive.
        Default: 2
 
 tcp_allowed_congestion_control - STRING
@@ -164,11 +166,28 @@ tcp_congestion_control - STRING
        additional choices may be available based on kernel configuration.
        Default is set as part of kernel configuration.
 
+tcp_cookie_size - INTEGER
+       Default size of TCP Cookie Transactions (TCPCT) option, that may be
+       overridden on a per socket basis by the TCPCT socket option.
+       Values greater than the maximum (16) are interpreted as the maximum.
+       Values greater than zero and less than the minimum (8) are interpreted
+       as the minimum.  Odd values are interpreted as the next even value.
+       Default: 0 (off).
+
 tcp_dsack - BOOLEAN
        Allows TCP to send "duplicate" SACKs.
 
-tcp_ecn - BOOLEAN
-       Enable Explicit Congestion Notification in TCP.
+tcp_ecn - INTEGER
+       Enable Explicit Congestion Notification (ECN) in TCP. ECN is only
+       used when both ends of the TCP flow support it. It is useful to
+       avoid losses due to congestion (when the bottleneck router supports
+       ECN).
+       Possible values are:
+               0 disable ECN
+               1 ECN enabled
+               2 Only server-side ECN enabled. If the other end does
+                 not support ECN, behavior is like with ECN disabled.
+       Default: 2
 
 tcp_fack - BOOLEAN
        Enable FACK congestion avoidance and fast retransmission.
@@ -251,6 +270,17 @@ tcp_max_orphans - INTEGER
        more aggressively. Let me to remind again: each orphan eats
        up to ~64K of unswappable memory.
 
+tcp_max_ssthresh - INTEGER
+       Limited Slow-Start for TCP with large congestion windows (cwnd) defined in
+       RFC3742. Limited slow-start is a mechanism to limit growth of the cwnd
+       on the region where cwnd is larger than tcp_max_ssthresh. TCP increases cwnd
+       by at most tcp_max_ssthresh segments, and by at least tcp_max_ssthresh/2
+       segments per RTT when the cwnd is above tcp_max_ssthresh.
+       If TCP connection increased cwnd to thousands (or tens of thousands) segments,
+       and thousands of packets were being dropped during slow-start, you can set
+       tcp_max_ssthresh to improve performance for new TCP connection.
+       Default: 0 (off)
+
 tcp_max_syn_backlog - INTEGER
        Maximal number of remembered connection requests, which are
        still did not receive an acknowledgment from connecting client.
@@ -302,15 +332,18 @@ tcp_no_metrics_save - BOOLEAN
        connections.
 
 tcp_orphan_retries - INTEGER
-       How may times to retry before killing TCP connection, closed
-       by our side. Default value 7 corresponds to ~50sec-16min
-       depending on RTO. If you machine is loaded WEB server,
+       This value influences the timeout of a locally closed TCP connection,
+       when RTO retransmissions remain unacknowledged.
+       See tcp_retries2 for more details.
+
+       The default value is 8.
+       If your machine is a loaded WEB server,
        you should think about lowering this value, such sockets
        may consume significant resources. Cf. tcp_max_orphans.
 
 tcp_reordering - INTEGER
        Maximal reordering of packets in a TCP stream.
-       Default: 3      
+       Default: 3
 
 tcp_retrans_collapse - BOOLEAN
        Bug-to-bug compatibility with some broken printers.
@@ -318,16 +351,28 @@ tcp_retrans_collapse - BOOLEAN
        certain TCP stacks.
 
 tcp_retries1 - INTEGER
-       How many times to retry before deciding that something is wrong
-       and it is necessary to report this suspicion to network layer.
-       Minimal RFC value is 3, it is default, which corresponds
-       to ~3sec-8min depending on RTO.
+       This value influences the time, after which TCP decides, that
+       something is wrong due to unacknowledged RTO retransmissions,
+       and reports this suspicion to the network layer.
+       See tcp_retries2 for more details.
+
+       RFC 1122 recommends at least 3 retransmissions, which is the
+       default.
 
 tcp_retries2 - INTEGER
-       How may times to retry before killing alive TCP connection.
-       RFC1122 says that the limit should be longer than 100 sec.
-       It is too small number. Default value 15 corresponds to ~13-30min
-       depending on RTO.
+       This value influences the timeout of an alive TCP connection,
+       when RTO retransmissions remain unacknowledged.
+       Given a value of N, a hypothetical TCP connection following
+       exponential backoff with an initial RTO of TCP_RTO_MIN would
+       retransmit N times before killing the connection at the (N+1)th RTO.
+
+       The default value of 15 yields a hypothetical timeout of 924.6
+       seconds and is a lower bound for the effective timeout.
+       TCP will effectively time out at the first RTO which exceeds the
+       hypothetical timeout.
+
+       RFC 1122 recommends at least 100 seconds for the timeout,
+       which corresponds to a value of at least 8.
 
 tcp_rfc1337 - BOOLEAN
        If set, the TCP stack behaves conforming to RFC1337. If unset,
@@ -339,7 +384,7 @@ tcp_rmem - vector of 3 INTEGERs: min, default, max
        min: Minimal size of receive buffer used by TCP sockets.
        It is guaranteed to each TCP socket, even under moderate memory
        pressure.
-       Default: 8K
+       Default: 1 page
 
        default: initial size of receive buffer used by TCP sockets.
        This value overrides net.core.rmem_default used by other protocols.
@@ -428,7 +473,7 @@ tcp_window_scaling - BOOLEAN
 tcp_wmem - vector of 3 INTEGERs: min, default, max
        min: Amount of memory reserved for send buffers for TCP sockets.
        Each TCP socket has rights to use it due to fact of its birth.
-       Default: 4K
+       Default: 1 page
 
        default: initial size of send buffer used by TCP sockets.  This
        value overrides net.core.wmem_default used by other protocols.
@@ -455,6 +500,30 @@ tcp_dma_copybreak - INTEGER
        and CONFIG_NET_DMA is enabled.
        Default: 4096
 
+tcp_thin_linear_timeouts - BOOLEAN
+       Enable dynamic triggering of linear timeouts for thin streams.
+       If set, a check is performed upon retransmission by timeout to
+       determine if the stream is thin (less than 4 packets in flight).
+       As long as the stream is found to be thin, up to 6 linear
+       timeouts may be performed before exponential backoff mode is
+       initiated. This improves retransmission latency for
+       non-aggressive thin streams, often found to be time-dependent.
+       For more information on thin streams, see
+       Documentation/networking/tcp-thin.txt
+       Default: 0
+
+tcp_thin_dupack - BOOLEAN
+       Enable dynamic triggering of retransmissions after one dupACK
+       for thin streams. If set, a check is performed upon reception
+       of a dupACK to determine if the stream is thin (less than 4
+       packets in flight). As long as the stream is found to be thin,
+       data is retransmitted on the first received dupACK. This
+       improves retransmission latency for non-aggressive thin
+       streams, often found to be time-dependent.
+       For more information on thin streams, see
+       Documentation/networking/tcp-thin.txt
+       Default: 0
+
 UDP variables:
 
 udp_mem - vector of 3 INTEGERs: min, pressure, max
@@ -474,13 +543,13 @@ udp_rmem_min - INTEGER
        Minimal size of receive buffer used by UDP sockets in moderation.
        Each UDP socket is able to use the size for receiving data, even if
        total pages of UDP sockets exceed udp_mem pressure. The unit is byte.
-       Default: 4096
+       Default: 1 page
 
 udp_wmem_min - INTEGER
        Minimal size of send buffer used by UDP sockets in moderation.
        Each UDP socket is able to use the size for sending data, even if
        total pages of UDP sockets exceed udp_mem pressure. The unit is byte.
-       Default: 4096
+       Default: 1 page
 
 CIPSOv4 Variables:
 
@@ -521,7 +590,7 @@ IP Variables:
 
 ip_local_port_range - 2 INTEGERS
        Defines the local port range that is used by TCP and UDP to
-       choose the local port. The first number is the first, the 
+       choose the local port. The first number is the first, the
        second the last local port number. Default value depends on
        amount of memory available on the system:
        > 128Mb 32768-61000
@@ -532,6 +601,37 @@ ip_local_port_range - 2 INTEGERS
        (i.e. by default) range 1024-4999 is enough to issue up to
        2000 connections per second to systems supporting timestamps.
 
+ip_local_reserved_ports - list of comma separated ranges
+       Specify the ports which are reserved for known third-party
+       applications. These ports will not be used by automatic port
+       assignments (e.g. when calling connect() or bind() with port
+       number 0). Explicit port allocation behavior is unchanged.
+
+       The format used for both input and output is a comma separated
+       list of ranges (e.g. "1,2-4,10-10" for ports 1, 2, 3, 4 and
+       10). Writing to the file will clear all previously reserved
+       ports and update the current list with the one given in the
+       input.
+
+       Note that ip_local_port_range and ip_local_reserved_ports
+       settings are independent and both are considered by the kernel
+       when determining which ports are available for automatic port
+       assignments.
+
+       You can reserve ports which are not in the current
+       ip_local_port_range, e.g.:
+
+       $ cat /proc/sys/net/ipv4/ip_local_port_range
+       32000   61000
+       $ cat /proc/sys/net/ipv4/ip_local_reserved_ports
+       8080,9148
+
+       although this is redundant. However such a setting is useful
+       if later the port range is changed to a value that will
+       include the reserved ports.
+
+       Default: Empty
+
 ip_nonlocal_bind - BOOLEAN
        If set, allows processes to bind() to non-local IP addresses,
        which can be quite useful - but may break some applications.
@@ -594,12 +694,12 @@ icmp_errors_use_inbound_ifaddr - BOOLEAN
 
        If zero, icmp error messages are sent with the primary address of
        the exiting interface.
+
        If non-zero, the message will be sent with the primary address of
        the interface that received the packet that caused the icmp error.
        This is the behaviour network many administrators will expect from
        a router. And it can make debugging complicated network layouts
-       much easier. 
+       much easier.
 
        Note that if no primary address exists for the interface selected,
        then the primary address of the first non-loopback interface that
@@ -611,10 +711,28 @@ igmp_max_memberships - INTEGER
        Change the maximum number of multicast groups we can subscribe to.
        Default: 20
 
-conf/interface/*  changes special settings per interface (where "interface" is 
-                 the name of your network interface)
-conf/all/*       is special, changes the settings for all interfaces
+       Theoretical maximum value is bounded by having to send a membership
+       report in a single datagram (i.e. the report can't span multiple
+       datagrams, or risk confusing the switch and leaving groups you don't
+       intend to).
+
+       The number of supported groups 'M' is bounded by the number of group
+       report entries you can fit into a single datagram of 65535 bytes.
+
+       M = 65536-sizeof (ip header)/(sizeof(Group record))
+
+       Group records are variable length, with a minimum of 12 bytes.
+       So net.ipv4.igmp_max_memberships should not be set higher than:
 
+       (65536-24) / 12 = 5459
+
+       The value 5459 assumes no IP header options, so in practice
+       this number may be lower.
+
+       conf/interface/*  changes special settings per interface (where
+       "interface" is the name of your network interface)
+
+       conf/all/*        is special, changes the settings for all interfaces
 
 log_martians - BOOLEAN
        Log packets with impossible addresses to kernel log.
@@ -625,11 +743,11 @@ log_martians - BOOLEAN
 accept_redirects - BOOLEAN
        Accept ICMP redirect messages.
        accept_redirects for the interface will be enabled if:
-       - both conf/{all,interface}/accept_redirects are TRUE in the case forwarding
-         for the interface is enabled
+       - both conf/{all,interface}/accept_redirects are TRUE in the case
+         forwarding for the interface is enabled
        or
-       - at least one of conf/{all,interface}/accept_redirects is TRUE in the case
-         forwarding for the interface is disabled
+       - at least one of conf/{all,interface}/accept_redirects is TRUE in the
+         case forwarding for the interface is disabled
        accept_redirects for the interface will be disabled otherwise
        default TRUE (host)
                FALSE (router)
@@ -640,8 +758,8 @@ forwarding - BOOLEAN
 mc_forwarding - BOOLEAN
        Do multicast routing. The kernel needs to be compiled with CONFIG_MROUTE
        and a multicast routing daemon is required.
-       conf/all/mc_forwarding must also be set to TRUE to enable multicast routing
-       for the interface
+       conf/all/mc_forwarding must also be set to TRUE to enable multicast
+       routing for the interface
 
 medium_id - INTEGER
        Integer value used to differentiate the devices by the medium they
@@ -649,7 +767,7 @@ medium_id - INTEGER
        the broadcast packets are received only on one of them.
        The default value 0 means that the device is the only interface
        to its medium, value of -1 means that medium is not known.
-       
+
        Currently, it is used to change the proxy_arp behavior:
        the proxy_arp feature is enabled for packets forwarded between
        two devices attached to different media.
@@ -660,6 +778,25 @@ proxy_arp - BOOLEAN
        conf/{all,interface}/proxy_arp is set to TRUE,
        it will be disabled otherwise
 
+proxy_arp_pvlan - BOOLEAN
+       Private VLAN proxy arp.
+       Basically allow proxy arp replies back to the same interface
+       (from which the ARP request/solicitation was received).
+
+       This is done to support (ethernet) switch features, like RFC
+       3069, where the individual ports are NOT allowed to
+       communicate with each other, but they are allowed to talk to
+       the upstream router.  As described in RFC 3069, it is possible
+       to allow these hosts to communicate through the upstream
+       router by proxy_arp'ing. Don't need to be used together with
+       proxy_arp.
+
+       This technology is known by different names:
+         In RFC 3069 it is called VLAN Aggregation.
+         Cisco and Allied Telesyn call it Private VLAN.
+         Hewlett-Packard call it Source-Port filtering or port-isolation.
+         Ericsson call it MAC-Forced Forwarding (RFC Draft).
+
 shared_media - BOOLEAN
        Send(router) or accept(host) RFC1620 shared media redirects.
        Overrides ip_secure_redirects.
@@ -699,17 +836,29 @@ accept_source_route - BOOLEAN
        default TRUE (router)
                FALSE (host)
 
-rp_filter - BOOLEAN
-       1 - do source validation by reversed path, as specified in RFC1812
-           Recommended option for single homed hosts and stub network
-           routers. Could cause troubles for complicated (not loop free)
-           networks running a slow unreliable protocol (sort of RIP),
-           or using static routes.
+accept_local - BOOLEAN
+       Accept packets with local source addresses. In combination with
+       suitable routing, this can be used to direct packets between two
+       local interfaces over the wire and have them accepted properly.
+       default FALSE
 
+rp_filter - INTEGER
        0 - No source validation.
-
-       conf/all/rp_filter must also be set to TRUE to do source validation
-       on the interface
+       1 - Strict mode as defined in RFC3704 Strict Reverse Path
+           Each incoming packet is tested against the FIB and if the interface
+           is not the best reverse path the packet check will fail.
+           By default failed packets are discarded.
+       2 - Loose mode as defined in RFC3704 Loose Reverse Path
+           Each incoming packet's source address is also tested against the FIB
+           and if the source address is not reachable via any interface
+           the packet check will fail.
+
+       Current recommended practice in RFC3704 is to enable strict mode
+       to prevent IP spoofing from DDos attacks. If using asymmetric routing
+       or other complicated routing, then loose mode is recommended.
+
+       The max value from conf/{all,interface}/rp_filter is used
+       when doing source validation on the {interface}.
 
        Default value is 0. Note that some distributions enable it
        in startup scripts.
@@ -785,13 +934,22 @@ arp_ignore - INTEGER
 arp_notify - BOOLEAN
        Define mode for notification of address and device changes.
        0 - (default): do nothing
-       1 - Generate gratuitous arp replies when device is brought up
+       1 - Generate gratuitous arp requests when device is brought up
            or hardware address changes.
 
 arp_accept - BOOLEAN
-       Define behavior when gratuitous arp replies are received:
-       0 - drop gratuitous arp frames
-       1 - accept gratuitous arp frames
+       Define behavior for gratuitous ARP frames who's IP is not
+       already present in the ARP table:
+       0 - don't create new entries in the ARP table
+       1 - create new entries in the ARP table
+
+       Both replies and requests type gratuitous arp will trigger the
+       ARP table to be updated, if this setting is on.
+
+       If the ARP table already contains the IP address of the
+       gratuitous arp frame, the arp table will be updated regardless
+       if this setting is on or off.
+
 
 app_solicit - INTEGER
        The maximum number of probes to send to the user space ARP daemon
@@ -829,29 +987,29 @@ apply to IPv6 [XXX?].
 
 bindv6only - BOOLEAN
        Default value for IPV6_V6ONLY socket option,
-       which restricts use of the IPv6 socket to IPv6 communication 
+       which restricts use of the IPv6 socket to IPv6 communication
        only.
                TRUE: disable IPv4-mapped address feature
                FALSE: enable IPv4-mapped address feature
 
-       Default: FALSE (as specified in RFC2553bis)
+       Default: FALSE (as specified in RFC3493)
 
 IPv6 Fragmentation:
 
 ip6frag_high_thresh - INTEGER
-       Maximum memory used to reassemble IPv6 fragments. When 
+       Maximum memory used to reassemble IPv6 fragments. When
        ip6frag_high_thresh bytes of memory is allocated for this purpose,
        the fragment handler will toss packets until ip6frag_low_thresh
        is reached.
-       
+
 ip6frag_low_thresh - INTEGER
-       See ip6frag_high_thresh 
+       See ip6frag_high_thresh
 
 ip6frag_time - INTEGER
        Time in seconds to keep an IPv6 fragment in memory.
 
 ip6frag_secret_interval - INTEGER
-       Regeneration interval (in seconds) of the hash secret (or lifetime 
+       Regeneration interval (in seconds) of the hash secret (or lifetime
        for the hash secret) for IPv6 fragments.
        Default: 600
 
@@ -860,17 +1018,17 @@ conf/default/*:
 
 
 conf/all/*:
-       Change all the interface-specific settings.  
+       Change all the interface-specific settings.
 
        [XXX:  Other special features than forwarding?]
 
 conf/all/forwarding - BOOLEAN
-       Enable global IPv6 forwarding between all interfaces.  
+       Enable global IPv6 forwarding between all interfaces.
 
-       IPv4 and IPv6 work differently here; e.g. netfilter must be used 
+       IPv4 and IPv6 work differently here; e.g. netfilter must be used
        to control which interfaces may forward packets and which not.
 
-       This also sets all interfaces' Host/Router setting 
+       This also sets all interfaces' Host/Router setting
        'forwarding' to the specified value.  See below for details.
 
        This referred to as global forwarding.
@@ -881,12 +1039,18 @@ proxy_ndp - BOOLEAN
 conf/interface/*:
        Change special settings per interface.
 
-       The functional behaviour for certain settings is different 
+       The functional behaviour for certain settings is different
        depending on whether local forwarding is enabled or not.
 
 accept_ra - BOOLEAN
        Accept Router Advertisements; autoconfigure using them.
-       
+
+       Possible values are:
+               0 Do not accept Router Advertisements.
+               1 Accept Router Advertisements if forwarding is disabled.
+               2 Overrule forwarding behaviour. Accept Router Advertisements
+                 even if forwarding is enabled.
+
        Functional default: enabled if local forwarding is disabled.
                            disabled if local forwarding is enabled.
 
@@ -932,7 +1096,7 @@ accept_source_route - INTEGER
        Default: 0
 
 autoconf - BOOLEAN
-       Autoconfigure addresses using Prefix Information in Router 
+       Autoconfigure addresses using Prefix Information in Router
        Advertisements.
 
        Functional default: enabled if accept_ra_pinfo is enabled.
@@ -941,35 +1105,46 @@ autoconf - BOOLEAN
 dad_transmits - INTEGER
        The amount of Duplicate Address Detection probes to send.
        Default: 1
-       
+
 forwarding - BOOLEAN
-       Configure interface-specific Host/Router behaviour.  
+       Configure interface-specific Host/Router behaviour.
 
-       Note: It is recommended to have the same setting on all 
+       Note: It is recommended to have the same setting on all
        interfaces; mixed router/host scenarios are rather uncommon.
 
-       FALSE:
+       Possible values are:
+               0 Forwarding disabled
+               1 Forwarding enabled
+               2 Forwarding enabled (Hybrid Mode)
+
+       FALSE (0):
 
        By default, Host behaviour is assumed.  This means:
 
        1. IsRouter flag is not set in Neighbour Advertisements.
        2. Router Solicitations are being sent when necessary.
-       3. If accept_ra is TRUE (default), accept Router 
+       3. If accept_ra is TRUE (default), accept Router
           Advertisements (and do autoconfiguration).
        4. If accept_redirects is TRUE (default), accept Redirects.
 
-       TRUE:
+       TRUE (1):
 
-       If local forwarding is enabled, Router behaviour is assumed. 
+       If local forwarding is enabled, Router behaviour is assumed.
        This means exactly the reverse from the above:
 
        1. IsRouter flag is set in Neighbour Advertisements.
        2. Router Solicitations are not sent.
-       3. Router Advertisements are ignored.
+       3. Router Advertisements are ignored unless accept_ra is 2.
        4. Redirects are ignored.
 
-       Default: FALSE if global forwarding is disabled (default),
-                otherwise TRUE.
+       TRUE (2):
+
+       Hybrid mode. Same behaviour as TRUE, except for:
+
+       2. Router Solicitations are being sent when necessary.
+
+       Default: 0 (disabled) if global forwarding is disabled (default),
+                otherwise 1 (enabled).
 
 hop_limit - INTEGER
        Default Hop Limit to set.
@@ -995,7 +1170,7 @@ router_solicitation_interval - INTEGER
        Default: 4
 
 router_solicitations - INTEGER
-       Number of Router Solicitations to send until assuming no 
+       Number of Router Solicitations to send until assuming no
        routers are present.
        Default: 3
 
@@ -1019,27 +1194,36 @@ temp_prefered_lft - INTEGER
 
 max_desync_factor - INTEGER
        Maximum value for DESYNC_FACTOR, which is a random value
-       that ensures that clients don't synchronize with each 
+       that ensures that clients don't synchronize with each
        other and generate new addresses at exactly the same time.
        value is in seconds.
        Default: 600
-       
+
 regen_max_retry - INTEGER
        Number of attempts before give up attempting to generate
        valid temporary addresses.
        Default: 5
 
 max_addresses - INTEGER
-       Number of maximum addresses per interface.  0 disables limitation.
-       It is recommended not set too large value (or 0) because it would 
-       be too easy way to crash kernel to allow to create too much of 
-       autoconfigured addresses.
+       Maximum number of autoconfigured addresses per interface.  Setting
+       to zero disables the limitation.  It is not recommended to set this
+       value too large (or to zero) because it would be an easy way to
+       crash the kernel by allowing too many addresses to be created.
        Default: 16
 
 disable_ipv6 - BOOLEAN
-       Disable IPv6 operation.
+       Disable IPv6 operation.  If accept_dad is set to 2, this value
+       will be dynamically set to TRUE if DAD fails for the link-local
+       address.
        Default: FALSE (enable IPv6 operation)
 
+       When this value is changed from 1 to 0 (IPv6 is being enabled),
+       it will dynamically create a link-local address on the given
+       interface and start Duplicate Address Detection, if necessary.
+
+       When this value is changed from 0 to 1 (IPv6 is being disabled),
+       it will dynamically delete all address on the given interface.
+
 accept_dad - INTEGER
        Whether to accept DAD (Duplicate Address Detection).
        0: Disable DAD
@@ -1047,6 +1231,24 @@ accept_dad - INTEGER
        2: Enable DAD, and disable IPv6 operation if MAC-based duplicate
           link-local address has been found.
 
+force_tllao - BOOLEAN
+       Enable sending the target link-layer address option even when
+       responding to a unicast neighbor solicitation.
+       Default: FALSE
+
+       Quoting from RFC 2461, section 4.4, Target link-layer address:
+
+       "The option MUST be included for multicast solicitations in order to
+       avoid infinite Neighbor Solicitation "recursion" when the peer node
+       does not have a cache entry to return a Neighbor Advertisements
+       message.  When responding to unicast solicitations, the option can be
+       omitted since the sender of the solicitation has the correct link-
+       layer address; otherwise it would not have be able to send the unicast
+       solicitation in the first place. However, including the link-layer
+       address in this case adds little overhead and eliminates a potential
+       race condition where the sender deletes the cached link-layer address
+       prior to receiving a response to a previous solicitation."
+
 icmp/*:
 ratelimit - INTEGER
        Limit the maximal rates for sending ICMPv6 packets.
@@ -1253,18 +1455,44 @@ sctp_mem - vector of 3 INTEGERs: min, pressure, max
        Default is calculated at boot time from amount of available memory.
 
 sctp_rmem - vector of 3 INTEGERs: min, default, max
-       See tcp_rmem for a description.
+       Only the first value ("min") is used, "default" and "max" are
+       ignored.
+
+       min: Minimal size of receive buffer used by SCTP socket.
+       It is guaranteed to each SCTP socket (but not association) even
+       under moderate memory pressure.
+
+       Default: 1 page
 
 sctp_wmem  - vector of 3 INTEGERs: min, default, max
-       See tcp_wmem for a description.
+       Currently this tunable has no effect.
+
+addr_scope_policy - INTEGER
+       Control IPv4 address scoping - draft-stewart-tsvwg-sctp-ipv4-00
+
+       0   - Disable IPv4 address scoping
+       1   - Enable IPv4 address scoping
+       2   - Follow draft but allow IPv4 private addresses
+       3   - Follow draft but allow IPv4 link local addresses
+
+       Default: 1
 
-UNDOCUMENTED:
 
 /proc/sys/net/core/*
-       dev_weight FIXME
+dev_weight - INTEGER
+       The maximum number of packets that kernel can handle on a NAPI
+       interrupt, it's a Per-CPU variable.
+
+       Default: 64
 
 /proc/sys/net/unix/*
-       max_dgram_qlen FIXME
+max_dgram_qlen - INTEGER
+       The maximum length of dgram socket receive queue
+
+       Default: 10
+
+
+UNDOCUMENTED:
 
 /proc/sys/net/irda/*
        fast_poll_increase FIXME