summaryrefslogtreecommitdiffstats
path: root/doc/networking/testing.t
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/networking/testing.t175
1 files changed, 175 insertions, 0 deletions
diff --git a/doc/networking/testing.t b/doc/networking/testing.t
new file mode 100644
index 0000000000..af1460ad2d
--- /dev/null
+++ b/doc/networking/testing.t
@@ -0,0 +1,175 @@
+@c
+@c Written by Eric Norum
+@c
+@c COPYRIGHT (c) 1988-1998.
+@c On-Line Applications Research Corporation (OAR).
+@c All rights reserved.
+@c
+@c $Id$
+@c
+
+
+@chapter Testing the Driver
+
+@section Preliminary Setup
+
+The network used to test the driver should include at least:
+
+@itemize @bullet
+
+@item The hardware on which the driver is to run.
+It makes testing much easier if you can run a debugger to control
+the operation of the target machine.
+
+@item An Ethernet network analyzer or a workstation with an
+`Ethernet snoop' program such as @code{ethersnoop} or
+@code{tcpdump}.
+
+@item A workstation.
+
+@end itemize
+
+During early debug, you should consider putting the target, workstation,
+and snooper on a small network by themselves. This offers a few
+advantages:
+
+@itemize @bullet
+
+@item There is less traffic to look at on the snooper and for the target
+to process while bringing the driver up.
+
+@item Any serious errors will impact only your small network not a building
+or campus network. You want to avoid causing any unnecessary problems.
+
+@item Test traffic is easier to repeatably generate.
+
+@item Performance measurements are not impacted by other systems on
+the network.
+
+@end itemize
+
+@section Driver basic operation
+
+The network demonstration program @code{netdemo} may be used for these tests.
+
+@itemize @bullet
+
+@item Edit @code{networkconfig.h} to reflect the values for your network.
+
+@item Start with @code{RTEMS_USE_BOOTP} not defined.
+
+@item Edit @code{networkconfig.h} to configure the driver
+with an
+explicit Ethernet and Internet address and with reception of
+broadcast packets disabled:
+
+Verify that the program continues to run once the driver has been attached.
+
+@item Issue a @samp{u} command to send UDP
+packets to the `discard' port.
+Verify that the packets appear on the network.
+
+@item Issue a @samp{s} command to print the network and driver statistics.
+
+@item On a workstation, add a static route to the target system.
+
+@item On that same workstation try to `ping' the target system.
+Verify that the ICMP echo request and reply packets appear on the net.
+
+@item Remove the static route to the target system.
+Modify @code{networkconfig.h} to attach the driver
+with reception of broadcast packets enabled.
+Try to `ping' the target system again.
+Verify that ARP request/reply and ICMP echo request/reply packets appear
+on the net.
+
+@item Issue a @samp{t} command to send TCP
+packets to the `discard' port.
+Verify that the packets appear on the network.
+
+@item Issue a @samp{s} command to print the network and driver statistics.
+
+@item Verify that you can telnet to ports 24742
+and 24743 on the target system from one or more
+workstations on your network.
+
+@end itemize
+
+@section BOOTP operation
+
+Set up a BOOTP server on the network.
+Set define @code{RTEMS USE_BOOT} in @code{networkconfig.h}.
+Run the @code{netdemo} test program.
+Verify that the target system configures itself from the BOOTP server and
+that all the above tests succeed.
+
+@section Stress Tests
+
+Once the driver passes the tests described in the previous section it should
+be subjected to conditions which exercise it more
+thoroughly and which test its error handling routines.
+
+@subsection Giant packets
+
+@itemize @bullet
+@item Recompile the driver with @code{MAXIMUM_FRAME_SIZE} set to
+a smaller value, say 514.
+
+@item `Ping' the driver from another workstation and verify
+that frames larger than 514 bytes are correctly rejected.
+
+@item Recompile the driver with @code{MAXIMUM_FRAME_SIZE} restored to 1518.
+@end itemize
+
+@subsection Resource Exhaustion
+
+@itemize @bullet
+@item Edit @code{networkconfig.h}
+so that the driver is configured with just two receive and transmit descriptors.
+
+@item Compile and run the @code{netdemo} program.
+
+@item Verify that the program operates properly and that you can
+still telnet to both the ports.
+
+@item Display the driver statistics (Console `@code{s}' command or telnet
+`control-G' character) and verify that:
+
+@enumerate
+
+@item The number of transmit interrupts is non-zero.
+This indicates that all transmit descriptors have been in use at some time.
+
+@item The number of missed packets is non-zero.
+This indicates that all receive descriptors have been in use at some time.
+
+@end enumerate
+
+@end itemize
+
+@subsection Cable Faults
+
+@itemize @bullet
+@item Run the @code{netdemo} program.
+
+@item Issue a `@code{u}' console command to make the target machine transmit
+a bunch of UDP packets.
+
+@item While the packets are being transmitted, disconnect and reconnect the
+network cable.
+
+@item Display the network statistics and verify that the driver has
+detected the loss of carrier.
+
+@item Verify that you can still telnet to both ports on the target machine.
+
+@end itemize
+
+@subsection Throughput
+
+Run the @code{ttcp} network benchmark program.
+Transfer large amounts of data (100's of megabytes) to and from the target
+system.
+
+
+