| <refentry id="ping"> |
| |
| <refmeta> |
| <refentrytitle>ping</refentrytitle> |
| <manvolnum>8</manvolnum> |
| <refmiscinfo>iputils-&snapshot;</refmiscinfo> |
| </refmeta> |
| |
| <refnamediv> |
| <refname>ping, ping6</refname> |
| <refpurpose>send ICMP ECHO_REQUEST to network hosts</refpurpose> |
| </refnamediv> |
| |
| <refsynopsisdiv> |
| <cmdsynopsis> |
| <command>ping</command> |
| <arg choice="opt"><option>-aAbBdDfhLnOqrRUvV</option></arg> |
| <arg choice="opt">-c <replaceable/count/</arg> |
| <arg choice="opt">-F <replaceable/flowlabel/</arg> |
| <arg choice="opt">-i <replaceable/interval/</arg> |
| <arg choice="opt">-I <replaceable/interface/</arg> |
| <arg choice="opt">-l <replaceable/preload/</arg> |
| <arg choice="opt">-m <replaceable/mark/</arg> |
| <arg choice="opt">-M <replaceable/pmtudisc_option/</arg> |
| <arg choice="opt">-N <replaceable/nodeinfo_option/</arg> |
| <arg choice="opt">-w <replaceable/deadline/</arg> |
| <arg choice="opt">-W <replaceable/timeout/</arg> |
| <arg choice="opt">-p <replaceable/pattern/</arg> |
| <arg choice="opt">-Q <replaceable/tos/</arg> |
| <arg choice="opt">-s <replaceable/packetsize/</arg> |
| <arg choice="opt">-S <replaceable/sndbuf/</arg> |
| <arg choice="opt">-t <replaceable/ttl/</arg> |
| <arg choice="opt">-T <replaceable/timestamp option/</arg> |
| <arg choice="opt" rep="repeat"><replaceable/hop/</arg> |
| <arg choice="req"><replaceable/destination/</arg> |
| </cmdsynopsis> |
| </refsynopsisdiv> |
| |
| <refsect1><title>DESCRIPTION</title> |
| <para> |
| <command/ping/ uses the ICMP protocol's mandatory ECHO_REQUEST |
| datagram to elicit an ICMP ECHO_RESPONSE from a host or gateway. |
| ECHO_REQUEST datagrams (``pings'') have an IP and ICMP |
| header, followed by a <structname/struct timeval/ and then an arbitrary |
| number of ``pad'' bytes used to fill out the packet. |
| </para> |
| <para> |
| <command/ping6/ is IPv6 version of <command/ping/, and can also send Node Information Queries (RFC4620). |
| Intermediate <replaceable/hop/s may not be allowed, because IPv6 source routing was deprecated (RFC5095). |
| </para> |
| </refsect1> |
| |
| <refsect1><title>OPTIONS</title> |
| |
| <variablelist> |
| <varlistentry> |
| <term><option/-a/</term> |
| <listitem><para> |
| Audible ping. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-A/</term> |
| <listitem><para> |
| Adaptive ping. Interpacket interval adapts to round-trip time, so that |
| effectively not more than one (or more, if preload is set) unanswered probe |
| is present in the network. Minimal interval is 200msec for not super-user. |
| On networks with low rtt this mode is essentially equivalent to flood mode. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-b/</term> |
| <listitem><para> |
| Allow pinging a broadcast address. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-B/</term> |
| <listitem><para> |
| Do not allow <command/ping/ to change source address of probes. |
| The address is bound to one selected when <command/ping/ starts. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option><anchor id="ping.count">-c <replaceable/count/</option></term> |
| <listitem><para> |
| Stop after sending <replaceable/count/ ECHO_REQUEST |
| packets. With |
| <link linkend="ping.deadline"><replaceable/deadline/</link> |
| option, <command/ping/ waits for |
| <replaceable/count/ ECHO_REPLY packets, until the timeout expires. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-d/</term> |
| <listitem><para> |
| Set the <constant/SO_DEBUG/ option on the socket being used. |
| Essentially, this socket option is not used by Linux kernel. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-D/</term> |
| <listitem><para> |
| Print timestamp (unix time + microseconds as in gettimeofday) before |
| each line. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-f/</term> |
| <listitem><para> |
| Flood ping. For every ECHO_REQUEST sent a period ``.'' is printed, |
| while for ever ECHO_REPLY received a backspace is printed. |
| This provides a rapid display of how many packets are being dropped. |
| If interval is not given, it sets interval to zero and |
| outputs packets as fast as they come back or one hundred times per second, |
| whichever is more. |
| Only the super-user may use this option with zero interval. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-F <replaceable/flow label/</option></term> |
| <listitem><para> |
| <command/ping6/ only. |
| Allocate and set 20 bit flow label (in hex) on echo request packets. |
| If value is zero, kernel allocates random flow label. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-h/</term> |
| <listitem><para> |
| Show help. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-i <replaceable/interval/</option></term> |
| <listitem><para> |
| Wait <replaceable/interval/ seconds between sending each packet. |
| The default is to wait for one second between each packet normally, |
| or not to wait in flood mode. Only super-user may set interval |
| to values less 0.2 seconds. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-I <replaceable/interface/</option></term> |
| <listitem><para> |
| <replaceable/interface/ is either an address, or an interface name. |
| If <replaceable/interface/ is an address, it sets source address |
| to specified interface address. |
| If <replaceable/interface/ in an interface name, it sets |
| source interface to specified interface. |
| For <command/ping6/, when doing ping to a link-local scope |
| address, link specification (by the '%'-notation in |
| <replaceable/destination/, or by this option) is required. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-l <replaceable/preload/</option></term> |
| <listitem><para> |
| If <replaceable/preload/ is specified, |
| <command/ping/ sends that many packets not waiting for reply. |
| Only the super-user may select preload more than 3. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-L/</term> |
| <listitem><para> |
| Suppress loopback of multicast packets. This flag only applies if the ping |
| destination is a multicast address. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-m <replaceable/mark/</option></term> |
| <listitem><para> |
| use <replaceable/mark/ to tag the packets going out. This is useful |
| for variety of reasons within the kernel such as using policy |
| routing to select specific outbound processing. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-M <replaceable/pmtudisc_opt/</option></term> |
| <listitem><para> |
| Select Path MTU Discovery strategy. |
| <replaceable/pmtudisc_option/ may be either <replaceable/do/ |
| (prohibit fragmentation, even local one), |
| <replaceable/want/ (do PMTU discovery, fragment locally when packet size |
| is large), or <replaceable/dont/ (do not set DF flag). |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-N <replaceable/nodeinfo_option/</option></term> |
| <listitem><para> |
| <command/ping6/ only. |
| Send ICMPv6 Node Information Queries (RFC4620), instead of Echo Request. |
| <variablelist> |
| <varlistentry> |
| <term><option>help</option></term> |
| <listitem><para>Show help for NI support.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| <variablelist> |
| <varlistentry> |
| <term><option>name</option></term> |
| <listitem><para>Queries for Node Names.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| <variablelist> |
| <varlistentry> |
| <term><option>ipv6</option></term> |
| <listitem><para>Queries for IPv6 Addresses. There are several IPv6 specific flags. |
| <variablelist> |
| <varlistentry> |
| <term><option>ipv6-global</option></term> |
| <listitem><para>Request IPv6 global-scope addresses.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| <variablelist> |
| <varlistentry> |
| <term><option>ipv6-sitelocal</option></term> |
| <listitem><para>Request IPv6 site-local addresses.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| <variablelist> |
| <varlistentry> |
| <term><option>ipv6-linklocal</option></term> |
| <listitem><para>Request IPv6 link-local addresses.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| <variablelist> |
| <varlistentry> |
| <term><option>ipv6-all</option></term> |
| <listitem><para>Request IPv6 addresses on other interfaces.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| </para></listitem> |
| </varlistentry> |
| </variablelist> |
| <variablelist> |
| <varlistentry> |
| <term><option>ipv4</option></term> |
| <listitem><para>Queries for IPv4 Addresses. There is one IPv4 specific flag. |
| <variablelist> |
| <varlistentry> |
| <term><option>ipv4-all</option></term> |
| <listitem><para>Request IPv4 addresses on other interfaces.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| </para></listitem> |
| </varlistentry> |
| </variablelist> |
| <variablelist> |
| <varlistentry> |
| <term><option>subject-ipv6=<replaceable/ipv6addr/</option></term> |
| <listitem><para>IPv6 subject address.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| <variablelist> |
| <varlistentry> |
| <term><option>subject-ipv4=<replaceable/ipv4addr/</option></term> |
| <listitem><para>IPv4 subject address.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| <variablelist> |
| <varlistentry> |
| <term><option>subject-name=<replaceable/nodename/</option></term> |
| <listitem><para>Subject name. If it contains more than one dot, |
| fully-qualified domain name is assumed.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| <variablelist> |
| <varlistentry> |
| <term><option>subject-fqdn=<replaceable/nodename/</option></term> |
| <listitem><para>Subject name. Fully-qualified domain name is |
| always assumed.</para></listitem> |
| </varlistentry> |
| </variablelist> |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-n/</term> |
| <listitem><para> |
| Numeric output only. |
| No attempt will be made to lookup symbolic names for host addresses. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-O/</term> |
| <listitem><para> |
| Report outstanding ICMP ECHO reply before sending next packet. |
| This is useful together with the timestamp <option>-D</option> to |
| log output to a diagnostic file and search for missing answers. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-p <replaceable/pattern/</option></term> |
| <listitem><para> |
| You may specify up to 16 ``pad'' bytes to fill out the packet you send. |
| This is useful for diagnosing data-dependent problems in a network. |
| For example, <option>-p ff</option> will cause the sent packet |
| to be filled with all ones. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-q/</term> |
| <listitem><para> |
| Quiet output. |
| Nothing is displayed except the summary lines at startup time and |
| when finished. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-Q <replaceable/tos/</option></term> |
| <listitem><para> |
| Set Quality of Service -related bits in ICMP datagrams. |
| <replaceable/tos/ can be decimal (<command/ping/ only) or hex number. |
| </para> |
| <para> |
| In RFC2474, these fields are interpreted as 8-bit Differentiated |
| Services (DS), consisting of: bits 0-1 (2 lowest bits) of separate |
| data, and bits 2-7 (highest 6 bits) of Differentiated Services |
| Codepoint (DSCP). In RFC2481 and RFC3168, bits 0-1 are used for ECN. |
| </para> |
| <para> |
| Historically (RFC1349, obsoleted by RFC2474), these were interpreted |
| as: bit 0 (lowest bit) for reserved (currently being redefined as |
| congestion control), 1-4 for Type of Service and bits 5-7 |
| (highest bits) for Precedence. |
| </para> |
| </listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-r/</term> |
| <listitem><para> |
| Bypass the normal routing tables and send directly to a host on an attached |
| interface. |
| If the host is not on a directly-attached network, an error is returned. |
| This option can be used to ping a local host through an interface |
| that has no route through it provided the option <option/-I/ is also |
| used. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-R/</term> |
| <listitem><para> |
| <command/ping/ only. |
| Record route. |
| Includes the RECORD_ROUTE option in the ECHO_REQUEST |
| packet and displays the route buffer on returned packets. |
| Note that the IP header is only large enough for nine such routes. |
| Many hosts ignore or discard this option. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-s <replaceable/packetsize/</option></term> |
| <listitem><para> |
| Specifies the number of data bytes to be sent. |
| The default is 56, which translates into 64 ICMP |
| data bytes when combined with the 8 bytes of ICMP header data. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-S <replaceable/sndbuf/</option></term> |
| <listitem><para> |
| Set socket sndbuf. If not specified, it is selected to buffer |
| not more than one packet. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-t <replaceable/ttl/</option></term> |
| <listitem><para> |
| <command/ping/ only. |
| Set the IP Time to Live. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-T <replaceable/timestamp option/</option></term> |
| <listitem><para> |
| Set special IP timestamp options. |
| <replaceable/timestamp option/ may be either |
| <replaceable/tsonly/ (only timestamps), |
| <replaceable/tsandaddr/ (timestamps and addresses) or |
| <replaceable/tsprespec host1 [host2 [host3 [host4]]]/ |
| (timestamp prespecified hops). |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-U/</term> |
| <listitem><para> |
| Print full user-to-user latency (the old behaviour). Normally |
| <command/ping/ |
| prints network round trip time, which can be different |
| f.e. due to DNS failures. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-v/</term> |
| <listitem><para> |
| Verbose output. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option/-V/</term> |
| <listitem><para> |
| Show version and exit. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option><anchor id="ping.deadline">-w <replaceable/deadline/</option></term> |
| <listitem><para> |
| Specify a timeout, in seconds, before |
| <command/ping/ |
| exits regardless of how many |
| packets have been sent or received. In this case |
| <command/ping/ |
| does not stop after |
| <link linkend="ping.count"><replaceable/count/</link> |
| packet are sent, it waits either for |
| <link linkend="ping.deadline"><replaceable/deadline/</link> |
| expire or until |
| <link linkend="ping.count"><replaceable/count/</link> |
| probes are answered or for some error notification from network. |
| </para></listitem> |
| </varlistentry> |
| <varlistentry> |
| <term><option>-W <replaceable/timeout/</option></term> |
| <listitem><para> |
| Time to wait for a response, in seconds. The option affects only timeout |
| in absence of any responses, otherwise <command/ping/ waits for two RTTs. |
| </para></listitem> |
| </varlistentry> |
| </variablelist> |
| |
| <para> |
| When using <command/ping/ for fault isolation, it should first be run |
| on the local host, to verify that the local network interface is up |
| and running. Then, hosts and gateways further and further away should be |
| ``pinged''. Round-trip times and packet loss statistics are computed. |
| If duplicate packets are received, they are not included in the packet |
| loss calculation, although the round trip time of these packets is used |
| in calculating the minimum/average/maximum round-trip time numbers. |
| When the specified number of packets have been sent (and received) or |
| if the program is terminated with a |
| <constant/SIGINT/, a brief summary is displayed. Shorter current statistics |
| can be obtained without termination of process with signal |
| <constant/SIGQUIT/. |
| </para> |
| |
| <para> |
| If <command/ping/ does not receive any reply packets at all it will |
| exit with code 1. If a packet |
| <link linkend="ping.count"><replaceable/count/</link> |
| and |
| <link linkend="ping.deadline"><replaceable/deadline/</link> |
| are both specified, and fewer than |
| <link linkend="ping.count"><replaceable/count/</link> |
| packets are received by the time the |
| <link linkend="ping.deadline"><replaceable/deadline/</link> |
| has arrived, it will also exit with code 1. |
| On other error it exits with code 2. Otherwise it exits with code 0. This |
| makes it possible to use the exit code to see if a host is alive or |
| not. |
| </para> |
| |
| |
| <para> |
| This program is intended for use in network testing, measurement and |
| management. |
| Because of the load it can impose on the network, it is unwise to use |
| <command/ping/ during normal operations or from automated scripts. |
| </para> |
| |
| </refsect1> |
| |
| |
| <refsect1><title>ICMP PACKET DETAILS</title> |
| |
| <para> |
| An IP header without options is 20 bytes. |
| An ICMP ECHO_REQUEST packet contains an additional 8 bytes worth |
| of ICMP header followed by an arbitrary amount of data. |
| When a <replaceable/packetsize/ is given, this indicated the size of this |
| extra piece of data (the default is 56). Thus the amount of data received |
| inside of an IP packet of type ICMP ECHO_REPLY will always be 8 bytes |
| more than the requested data space (the ICMP header). |
| </para> |
| |
| <para> |
| If the data space is at least of size of <structname/struct timeval/ |
| <command/ping/ uses the beginning bytes of this space to include |
| a timestamp which it uses in the computation of round trip times. |
| If the data space is shorter, no round trip times are given. |
| </para> |
| |
| </refsect1> |
| |
| <refsect1><title>DUPLICATE AND DAMAGED PACKETS</title> |
| |
| <para> |
| <command/ping/ will report duplicate and damaged packets. |
| Duplicate packets should never occur, and seem to be caused by |
| inappropriate link-level retransmissions. |
| Duplicates may occur in many situations and are rarely (if ever) a |
| good sign, although the presence of low levels of duplicates may not |
| always be cause for alarm. |
| </para> |
| |
| <para> |
| Damaged packets are obviously serious cause for alarm and often |
| indicate broken hardware somewhere in the |
| <command/ping/ packet's path (in the network or in the hosts). |
| </para> |
| |
| </refsect1> |
| |
| <refsect1><title>TRYING DIFFERENT DATA PATTERNS</title> |
| |
| <para> |
| The (inter)network layer should never treat packets differently depending |
| on the data contained in the data portion. |
| Unfortunately, data-dependent problems have been known to sneak into |
| networks and remain undetected for long periods of time. |
| In many cases the particular pattern that will have problems is something |
| that doesn't have sufficient ``transitions'', such as all ones or all |
| zeros, or a pattern right at the edge, such as almost all zeros. |
| It isn't necessarily enough to specify a data pattern of all zeros (for |
| example) on the command line because the pattern that is of interest is |
| at the data link level, and the relationship between what you type and |
| what the controllers transmit can be complicated. |
| </para> |
| |
| <para> |
| This means that if you have a data-dependent problem you will probably |
| have to do a lot of testing to find it. |
| If you are lucky, you may manage to find a file that either can't be sent |
| across your network or that takes much longer to transfer than other |
| similar length files. |
| You can then examine this file for repeated patterns that you can test |
| using the <option/-p/ option of <command/ping/. |
| </para> |
| |
| </refsect1> |
| |
| <refsect1><title>TTL DETAILS</title> |
| |
| <para> |
| The TTL value of an IP packet represents the maximum number of IP routers |
| that the packet can go through before being thrown away. |
| In current practice you can expect each router in the Internet to decrement |
| the TTL field by exactly one. |
| </para> |
| |
| <para> |
| The TCP/IP specification states that the TTL field for TCP |
| packets should be set to 60, but many systems use smaller values |
| (4.3 BSD uses 30, 4.2 used 15). |
| </para> |
| |
| <para> |
| The maximum possible value of this field is 255, and most Unix systems set |
| the TTL field of ICMP ECHO_REQUEST packets to 255. |
| This is why you will find you can ``ping'' some hosts, but not reach them |
| with |
| <citerefentry><refentrytitle/telnet/<manvolnum/1/</citerefentry> |
| or |
| <citerefentry><refentrytitle/ftp/<manvolnum/1/</citerefentry>. |
| </para> |
| |
| <para> |
| In normal operation ping prints the TTL value from the packet it receives. |
| When a remote system receives a ping packet, it can do one of three things |
| with the TTL field in its response: |
| </para> |
| |
| <itemizedlist> |
| <listitem><para> |
| Not change it; this is what Berkeley Unix systems did before the |
| 4.3BSD Tahoe release. In this case the TTL value in the received packet |
| will be 255 minus the number of routers in the round-trip path. |
| </para></listitem> |
| <listitem><para> |
| Set it to 255; this is what current Berkeley Unix systems do. |
| In this case the TTL value in the received packet will be 255 minus the |
| number of routers in the path <emphasis/from/ |
| the remote system <emphasis/to/ the <command/ping/ing host. |
| </para></listitem> |
| <listitem><para> |
| Set it to some other value. Some machines use the same value for |
| ICMP packets that they use for TCP packets, for example either 30 or 60. |
| Others may use completely wild values. |
| </para></listitem> |
| </itemizedlist> |
| |
| </refsect1> |
| |
| <refsect1><title>BUGS</title> |
| |
| <itemizedlist> |
| <listitem><para> |
| Many Hosts and Gateways ignore the RECORD_ROUTE option. |
| </para></listitem> |
| <listitem><para> |
| The maximum IP header length is too small for options like |
| RECORD_ROUTE to be completely useful. |
| There's not much that can be done about this, however. |
| </para></listitem> |
| <listitem><para> |
| Flood pinging is not recommended in general, and flood pinging the |
| broadcast address should only be done under very controlled conditions. |
| </para></listitem> |
| </itemizedlist> |
| |
| </refsect1> |
| |
| <refsect1><title>SEE ALSO</title> |
| <para> |
| <citerefentry><refentrytitle/netstat/<manvolnum/1/</citerefentry>, |
| <citerefentry><refentrytitle/ifconfig/<manvolnum/8/</citerefentry>. |
| </para> |
| </refsect1> |
| |
| <refsect1><title>HISTORY</title> |
| <para> |
| The <command/ping/ command appeared in 4.3BSD. |
| </para> |
| <para> |
| The version described here is its descendant specific to Linux. |
| </para> |
| </refsect1> |
| |
| <refsect1><title>SECURITY</title> |
| <para> |
| <command/ping/ requires <constant/CAP_NET_RAW/ capability |
| to be executed. It may be used as set-uid root. |
| </para> |
| </refsect1> |
| |
| <refsect1><title>AVAILABILITY</title> |
| <para> |
| <command/ping/ is part of <filename/iputils/ package |
| and the latest versions are available in source form at |
| <ulink url="http://www.skbuff.net/iputils/iputils-current.tar.bz2"> |
| http://www.skbuff.net/iputils/iputils-current.tar.bz2</ulink>. |
| </para> |
| </refsect1> |
| |
| <![IGNORE[ |
| <refsect1><title>COPYING</title> |
| <para> |
| <literallayout> |
| Copyright (c) 1989 The Regents of the University of California. |
| All rights reserved. |
| |
| This code is derived from software contributed to Berkeley by |
| Mike Muuss. |
| |
| Redistribution and use in source and binary forms, with or without |
| modification, are permitted provided that the following conditions |
| are met: |
| 1. Redistributions of source code must retain the above copyright |
| notice, this list of conditions and the following disclaimer. |
| 2. Redistributions in binary form must reproduce the above copyright |
| notice, this list of conditions and the following disclaimer in the |
| documentation and/or other materials provided with the distribution. |
| 3. All advertising materials mentioning features or use of this software |
| must display the following acknowledgement: |
| This product includes software developed by the University of |
| California, Berkeley and its contributors. |
| 4. Neither the name of the University nor the names of its contributors |
| may be used to endorse or promote products derived from this software |
| without specific prior written permission. |
| |
| THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
| ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
| FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| SUCH DAMAGE. |
| </literallayout> |
| </para> |
| </refsect1> |
| ]]> |
| |
| |
| </refentry> |
| |