IPTEST(1)                  OpenBSD Reference Manual                  IPTEST(1)

NAME
     iptest - automatically generate packets to test IP functionality

SYNOPSIS
     iptest [-1234567] [-d device] [-g gateway] [-m mtu] [-p pointtest] [-s
            src] destination

DESCRIPTION
     iptest generates a series of IP packets to destination via gateway using
     the interface device. The packets generated test various aspects of IP
     functionality.

     By default all tests are done, using the interface `lan0'. This interface
     does not normally exist on OpenBSD so an existing interface must be spec-
     ified with the -d option.  To limit the tests to a single group or to a
     single test within a group the -1234567 and -p options are available. It
     is not possible to specify more than one test group or point test at a
     time.

     iptest must be run as root.

   Options

     -1   IP header tests. This group of tests generates packets with the IP
          header fields set to invalid values given other packet characteris-
          tics.  The point tests are:

                1    ip_hl < ip_len
                2    ip_hl > ip_len
                3    ip_v < 4
                4    ip_v > 4
                5    ip_len < packetsize, long packets
                6    ip_len > packet size, short packets
                7    Zero length fragments
                8    packet > 64k after reassembly
                9    IP offset with MSB set
                10   ttl variations

     -2   IP options tests. This group of tests generates packets with the IP
          options constructed with invalid values given other packet charac-
          teristics.  The point tests are:

                1    option length > packet length
                2    option length = 0

     -3   ICMP tests. This group of tests generates packets with the ICMP
          header fields set to non-standard values.  The point tests are:

                1    ICMP types 0-31 & 255
                2    type 3 & codes 0-31
                3    type 4 & codes 0, 127, 128, 255
                4    type 5 & codes 0, 127, 128, 255
                5    types 8-10, 13-18 with codes 0, 127, 128 and 255
                6    type 12 & codes 0, 127, 128, 129, 255
                7    type 3 & codes 9-10, 13-14 and 17-18 - shortened packets

     -4   UDP tests. This group of tests generates packets with the UDP header
          fields set to non-standard values. The point tests are:

                1    UDP length > packet size
                2    UDP length < packetsize


                3    sport = 0, 1, 32767, 32768, 65535
                4    dport = 0, 1, 32767, 32768, 65535
                5    sizeof(struct ip) <= MTU <= sizeof(struct udphdr) + size-
                     of(struct ip)

     -5   TCP tests. This group of tests generates packets with the TCP header
          fields set to non-standard values. The point tests are:

                1    TCP flags variations, all combinations
                2    seq = 0, 0x7fffffff, 0x8000000, 0xa0000000, 0xffffffff
                3    ack = 0, 0x7fffffff, 0x8000000, 0xa0000000, 0xffffffff
                4    SYN packet with window of 0, 32768, 65535
                5    set urgent pointer to 1, 0x7fff, 0x8000, 0xffff
                6    data offset
                7    sport = 0, 1, 32767, 32768, 65535
                8    dport = 0, 1, 32767, 32768, 65535

     -6   Overlapping fragments test. This test generates a large number of
          fragments in an attempt to exhaust the network buffers used for
          holding packets for later reassembly.

          WARNING: this may crash or cause serious performance degradation to
          the target host.

     -7   Random packets. This test generates 1024 random IP packets with only
          the IP version, checksum, length and IP offset field correct.

     -d device
          Set the interface name to be the name supplied.

     -g gateway
          Specify the hostname of the gateway through which to route packets.
          This is required whenever the destination host isn't directly at-
          tached to the same network as the host from which you're sending.

     -m mtu
          Set the MTU used when sending out packets to mtu. This option lets
          you set a fake MTU, allowing the simulation of network interfaces
          with small MTU's.

     -p pointtest
          Run point test pointtest of the test group.

     -s src
          Specify the source address of the IP packets as src

SEE ALSO
     ipsend(1), ipresend(1), bpf(4)

BUGS
     If you find any, please send email to me at darrenr@cyber.com.au

OpenBSD 2.8                     October 8, 1999                              2
