diff options
Diffstat (limited to '')
-rw-r--r-- | doc/networking/testing.t | 175 |
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. + + + |