E.4 Solaris 2.2

E.4 Solaris 2.2

Solaris 2.2 is typical of the newer Unix systems that provide a program for the administrator to run to change the configuration options of the TCP/IP system. This allows reconfiguration without having to modify source files and rebuild a kernel.

The configuration program is ndd (1). We can run the program to see what parameters we can examine or modify in the UDP module:

 solaris %  ndd /dev/udp \?  udp_wroff_extra               (read and write)    udp_def_ttl                   (read and write)    udp_first_anon_port           (read and write)    udp_trust_optlen              (read and write)    udp_do_checksum               (read and write)    udp_status                    (read only) 

There are five modules we can specify: /dev/ip, /dev/icmp, /dev/arp, /dev/udp, and /dev/tcp. The question mark argument (which we have to prevent the shell from interpreting by preceding it with a backslash) tells the program to list all the parameters for that module. An example that queries the value of a variable is:

 solaris %  ndd /dev/tcp tcp_mss_def  536 

To change the value of a variable we need superuser privilege and type:

 solaris #  ndd -set /dev/ip ip_forwarding 0  

These variables can be divided into three categories:

  1. Configuration variables that a system administrator can change (e.g., ip_forwarding ).

  2. Status variables that can only be displayed (e.g., the ARP cache). Normally this information is provided in an easier to understand format by the commands ifconfig, netstat, and arp.

  3. Debugging variables intended for those with kernel source code. Enabling some of these generates kernel debug output at runtime, which can degrade performance.

We now describe the parameters in each module. All parameters are read-write, unless marked "(Read only)." The read-only parameters are the status variables from case 2 above. We also mark the "(Debug)" variables from case 3. Unless otherwise noted, all the timing variables are specified in milliseconds , which differs from the other systems that normally specify times as some number of 500-ms clock ticks .

/dev/ip

ip_cksum_choice

(Debug) Selects between two independent implementations of the IP checksum algorithm.

ip_debug

(Debug) Enables printing of debug output by the kernel, if greater than 0. Larger values generate more output. Default is 0.

ip_def_ttl

Default TTL for outgoing IP datagrams, if not specified by transport layer. Default is 255.

ip_forward_directed_broadcasts

If 1 (default), received datagrams whose destination address is the directed broadcast address of an attached interface are forwarded as a link-layer broadcast. If 0, these datagrams are silently discarded.

ip_forward_src_routed

If 1 (default), received datagrams containing a source route option are forwarded. If 0, these datagrams are discarded.

ip_forwarding

Specifies whether the system forwards incoming IP datagrams: 0 means never forward, 1 means always forward, and 2 (default) means only forward when two or more interfaces are up.

ip_icmp_return_data_bytes

The number of bytes of data beyond the IP header that are returned in an ICMP error. Default is 64.

ip_ignore_delete_time

(Debug) Minimum lifetime of an IP routing table entry (IRE). Default is 30 seconds. (This parameter is in seconds, not milliseconds.)

ip_ill_status

(Read only) Displays the status of each IP lower layer data structure. There is one lower layer structure for each interface.

ip_ipif_status

(Read only) Displays the status of each IP interface data structure (IP address, subnet mask, etc.). There is one of these structures for each interface.

ip_ire_cleanup_interval

(Debug) The interval at which the IP routing table entries are scanned for possible deletions. Default is 30000 ms (30 seconds).

ip_ire_flush_interval

The interval at which ARP information in unconditionally flushed from the IP routing table. Default is 1200000 ms (20 minutes).

ip_ire_pathmtu_interval

The interval at which the path MTU discovery algorithm tries to increase the MTU. Default is 30000 ms (30 seconds).

ip_ire_redirect_interval

The interval at which IP routing table entries that are from ICMP redirects are deleted. Default is 60000 ms (60 seconds).

ip_ire_status

(Read only) Displays all the IP routing table entries.

ip_local_cksum

If 0 (default), IP does not calculate the IP checksum or the higher layer protocol checksum (i.e., TCP, UDP, ICMP, or IGMP) for datagrams sent or received through the loopback interface. If 1, these checksums are calculated.

ip_mrtdebug

(Debug) Enables printing of debug output concerning multicast routing by the kernel, if 1. Default is 0.

ip_path_mtu_discovery

If 1 (default), path MTU discovery is performed by IP. If 0, IP never sets the "don't fragment" bit in outgoing datagrams.

ip_respond_to_address_mask

If 0 (default), the host does not respond to ICMP address mask requests . If 1, it does respond.

ip_respond_to_echo_broadcast

If 1 (default), the host responds to ICMP echo requests that are sent to a broadcast address. If 0, it does not respond.

ip_respond_to_timestamp

If 0 (default), the host does not respond to ICMP timestamp requests. If 1, the host responds.

ip_respond_to_timestamp_broadcast

If 0 (default), the host does not respond to ICMP timestamp requests that are sent to a broadcast address. If 1, it responds if ip_respond_to_timestamp is also set.

ip_rput_pullups

(Debug) Count of number of buffers from the network interface driver that needed to be pulled up to access the full IP header. Initialized to 0 at bootstrap time, and can be reset to 0.

ip_send_redirects

If 1 (default), the host sends ICMP redirects when acting as a router. If 0, these are not sent.

ip_send_source_quench

If 1 (default), the host generates ICMP source quench errors when incoming datagrams are discarded. If 0, these are not generated.

ip_wroff_extra

(Debug) Number of bytes of extra space to allocate in buffers for IP headers. Default is 32.

/dev/icmp

icmp_bsd_compat

(Debug) If 1 (default), the length field in the IP header of received datagrams is adjusted to exclude the length of the IP header. This is compatible with Berkeley-derived implementations and is for applications reading raw IP or raw ICMP packets. If 0, the length field is not changed.

icmp_def_ttl

The default TTL for outgoing ICMP messages. Default is 255.

icmp_wroff_extra

(Debug) Number of bytes of extra space to allocate in buffers for IP options and data-link headers. Default is 32.

/dev/arp

arp_cache_report

(Read only) The ARP cache.

arp_cleanup_interval

The interval after which ARP entries are discarded from ARP's cache. Default is 300000 ms (5 minutes). (IP maintains its own cache of completed ARP translations; see ip_ire_flush_interval. )

arp_debug

(Debug) If 1, enables printing of debug output by the ARP driver. Default is 0.

/dev/udp

udp_def_ttl

The default TTL for outgoing UDP datagrams. Default value is 255.

udp_do_checksum

If 1 (default), UDP checksums are calculated for outgoing UDP datagrams. If 0, outgoing UDP datagrams do not contain a checksum. (Unlike most other implementations, this UDP checksum flag does not affect incoming datagrams. If a received datagram has a nonzero checksum, it is always verified .)

udp_largest_anon_port

Largest port number to allocate for UDP ephemeral ports. Default is 65535.

udp_smallest_anon_port

Starting port number to allocate for UDP ephemeral ports. Default is 32768.

udp_smallest_nonpriv_port

A process requires superuser privilege to assign itself a port number less than this. Default is 1024.

udp_status

(Read only) The status of all local UDP end points: local IP address and port, foreign IP address and port.

udp_trust_optlen

(Debug) No longer used.

udp_wroff_extra

(Debug) Number of bytes of extra space to allocate in buffers for IP options and data-link headers. Default is 32.

/dev/tcp

tcp_close_wait_interval

The 2MSL value: the time spent in the TIME_WAIT state. Default is 240000 ms (4 minutes).

tcp_conn_grace_period

(Debug) Additional time added to the timer interval when sending a SYN. Default is 500 ms.

tcp_conn_req_max

The maximum number of pending connection requests queued for any listening end point. Default is 5.

tcp_cwnd_max

The maximum value of the congestion window. Default is 32768.

tcp_debug

(Debug) If 1, enables printing of debug output by TCP. Default is 0.

tcp_deferred_ack_interval

The time to wait before sending a delayed ACK. Default is 50 ms.

tcp_dupack_fast_retransmit

The number of consecutive duplicate ACKs that triggers the fast retransmit, fast recovery algorithm. Default is 3.

tcp_eager_listeners

(Debug) If 1 (default), TCP completes the three-way handshake before returning a new connection to an application with a pending passive open . This is the way most TCP implementations operate . If 0, TCP passes an incoming connection request (received SYN) to the application, and does not complete the three-way handshake until the application accepts the connection. (Setting this to 0 might break many existing applications.)

tcp_ignore_path_mtu

(Debug) If 1, path MTU discovery ignores received ICMP fragmentation needed messages. If 0 (default), path MTU discovery is enabled for TCP.

tcp_ip_abort_cinterval

The total retransmit timeout value when TCP is performing an active open. Default is 240000 ms (4 minutes).

tcp_ip_abort_interval

The total retransmit timeout value for a TCP connection after it is established. Default is 120000 ms (2 minutes).

tcp_ip_notify_cinterval

The timeout value when TCP is performing an active open after which TCP notifies IP to find a new route. Default is 10000 ms (10 seconds).

tcp_ip_notify_interval

The timeout value for an established connection after which TCP notifies IP to find a new route. Default is 10000 ms (10 seconds).

tcp_ip_ttl

The TTL to use for outgoing TCP segments. Default is 255.

tcp_keepalive_interval

The time that a connection must be idle before a keepalive probe is sent. Default is 7200000 ms (2 hours).

tcp_largest_anon_port

Largest port number to allocate for TCP ephemeral ports. Default is 65535.

tcp_maxpsz_multiplier

(Debug) Specifies the multiple of the MSS into which the stream head packetizes the application's write data. Default is 1.

tcp_mss_def

Default MSS for nonlocal destinations. Default is 536.

tcp_mss_max

The maximum MSS. Default is 65495.

tcp_mss_min

The minimum MSS. Default is 1.

tcp_naglim_def

(Debug) Maximum value of the per-connection Nagle algorithm threshold. Default is 65535. The per-connection value starts out as the minimum of the MSS or this value. The per-connection value is set to 1 by the TCP_NODELAY socket option, which disables the Nagle algorithm.

tcp_old_urp_interpretation

(Debug) If 1 (default), the older (but more common) BSD interpretation of the urgent pointer is used: it points 1 byte beyond the last byte of urgent data. If 0, the Host Requirements RFC interpretation is used: it points to the last byte of urgent data.

tcp_rcv_push_wait

(Debug) Maximum number of bytes received without the PUSH flag set before the data is passed to the application. Default is 16384.

tcp_rexmit_interval_initial

(Debug) Initial retransmit timeout interval. Default is 500 ms.

tcp_rexmit_interval_max

(Debug) Maximum retransmit timeout interval. Default is 60000 ms (60 seconds).

tcp_rexmit_interval_min

(Debug) Minimum retransmit timeout interval. Default is 200 ms.

tcp_rwin_credit_pct

(Debug) Percentage of receive window that must be buffered before flow control is checked on every received segment. Default is 50%.

tcp_smallest_anon_port

Starting port number to allocate for TCP ephemeral ports. Default is 32768.

tcp_smallest_nonpriv_port

A process requires superuser privilege to assign itself a port number less than this. Default is 1024.

tcp_snd_lowat_fraction

(Debug) If nonzero, the send buffer low-water mark is the send buffer size divided by this value. Default is 0 (disabled).

tcp_status

(Read only) Information on all TCP endpoints.

tcp_sth_rcv_hiwat

(Debug) If nonzero, the value to set the stream head high-water mark to. Default is 0.

tcp_sth_rcv_lowat

(Debug) If nonzero, the value to set the stream head low-water mark to. Default is 0.

tcp_wroff_xtra

(Debug) Number of bytes of extra space to allocate in buffers for IP options and data-link headers. Default is 32.



TCP.IP Illustrated, Volume 1. The Protocols
TCP/IP Illustrated, Vol. 1: The Protocols (Addison-Wesley Professional Computing Series)
ISBN: 0201633469
EAN: 2147483647
Year: 1993
Pages: 378

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net