1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; I; Linux 2.2.14 ppc) [Netscape]">
</head>
<body>
<center>
<h1>
eCos TCP/IP Networking Tests and Examples</h1></center>
A number of test/example programs are currently provided with the TCP/IP
networking package. These are not "tests" in the traditional eCos
test suite sense, but rather simple programs which exercise various parts
of the networking stack. Also included are a set of performance tests,
used to measure throughput and latency in an embedded eCos system.
<p>The following paragraphs list the various tests and how they might be
used. They are enumerated in the order in which they should
be run to verify a system configuration.
<p>Note: none of these tests are built by default. The user must
enable the <b><tt>CYGPKG_NET_BUILD_TESTS </tt></b>option and then "<tt>make
tests</tt>" to create them for the target environment. Also, these
tests require that the hardware interfaces be configured to use either
BOOTP or static initialization methods.
<h3>
mbuf_test.c</h3>
This should be the first test run on a new system. It simply tests
that the networking system can be initialized and that the internal memory
management (used by the stack) is functioning.
<h3>
socket_test.c</h3>
This test exercises some of the basic library interfaces.
<h3>
server_test.c</h3>
This test creates a server process on the target hardware which listens
on port TCP/7734. To verify that it is working, try to connect to
this port from some other [host] system. E.g. on Linux, use the command
"<tt>telnet <i>eCos</i> 7734</tt>", where "<i><tt>eCos</tt></i>" is the
name associated with the target hardware. Once connected, the eCos
application will respond with a "Hello" message and wait for a single line
of input text, which will be displayed on the diagnostic channel of the
target system.
<h3>
ping_test.c</h3>
This tests attempts to issue an ICMP "echo" request to the "server" host
(provided as part of the BOOTP or static configuration information).
The output will be similar to the analogous Linux program, "<tt>ping</tt>".
The test program also attempts to ping an additional host whose IP address
is the server IP+32. This second test is present to verify that the
ICMP (actually <tt>receive</tt>) time-out mechanism is working (assuming
that the second host is non-existent).
<h3>
ftp_test.c</h3>
This test attempts to make a connection to an FTP server, assuming the
default server host. This is an additional test which verifies that
the basic TCP functionality is working.
<h3>
nc_test_master.c</h3>
<h3>
nc_test_slave.c</h3>
This pair of programs can be used to measure throughput and latencies in
the target system. While both programs have been written in such
a way that they can be built and used on either Linux or eCos, the primary
use will be to run the "<tt>nc_test_master</tt>" program on a Linux host
and the "<tt>nc_test_slave</tt>" on the target hardware. If run in
this configuration, the master program will attempt to connect to the slave
and make various measurements using both UDP and TCP protocols. Additionally,
measurements will be made on an eCos slave of the actual CPU utilization
by the networking stack.
<p>To build the Linux versions, simply execute (in the eCos source tree,
not the install tree):
<blockquote><tt>make -f make.linux</tt></blockquote>
<h3>
tcp_echo.c</h3>
<h3>
tcp_sink.c</h3>
<h3>
tcp_source.c</h3>
This set of programs is similar to the <i><tt>nc_test_XXX</tt></i> programs
described above. However, they are designed to measure overall throughput
of the eCos system. The setup allows for one Linux host to run "<tt>tcp_source
<i>eCos</i></tt>" and another Linux host to run "<tt>tcp_sink <i>eCos</i></tt>".
The "<tt>tcp_echo</tt>" program is run on the target hardware. The
tests then measure the throughput and latency of sending TCP data from
one host, though the eCos target system and on to another host. Note:
the two Linux host systems may be the same computer in which case this
becomes a single wire echo test. This test suite is unique in that
it attempts to load the target system down with additional background processing
at various levels. This is done to simulate a real world environment
where the networking is ancillary to the main processing on the target
system.
<br>
</body>
</html>
|