eCos Reference Manual
Prev | Chapter 36. Tests and Demonstrations | Next

# Performance Test

    tcp_echo      - data forwarding program for performance test

tcp_echo is one part of the standard performance test we use. The other parts are host programs `tcp_source` and `tcp_sink`. To make these (under LINUX) cd to the tests source directory in the eCos repository and type “`make -f make.linux`” - this should build `tcp_source` and `tcp_sink`.

The LINUX program “`tcp_source`” sends data to the target. On the target, “`tcp_echo`” sends it onwards to “`tcp_sink`” running on LINUX. So the target must receive and send on all the data that `tcp_source` sends it; the time taken for this is measured and the data rate is calculated.

To invoke the test, first start `tcp_echo` on the target board and wait for it to become quiescent - it will report work to calibrate a CPU load which can be used to simulate real operating conditions for the stack.

Then on your LINUX machine, in one terminal window, invoke `tcp_sink` giving it the IP address (or hostname) of one interface of the target board. For example “`tcp_sink 10.130.39.66`”. `tcp_echo` on the target will print something like “`SINK connection from 10.130.39.13:1143`” when `tcp_sink` is correctly invoked.

Next, in another LINUX terminal window, invoke `tcp_source`, giving it the IP address (or hostname) of an interface of the target board, and optionally a background load to apply to the target while the test runs. For example, “`tcp_source 194.130.39.66`” to run the test with no additional target CPU load, or “`tcp_source 194.130.39.66 85`” to load it up to 85% used. The target load must be a multiple of 5. `tcp_echo` on the target will print something like “`SOURCE connection from 194.130.39.13:1144`” when tcp_source is correctly invoked.

You can connect tcp_sink to one target interface and tcp_source to another, or both to the same interface. Similarly, you can run `tcp_sink` and `tcp_source` on the same LINUX machine or different ones. TCP/IP and ARP look after them finding one another, as intended.

    nc_test_master - network characterization master
    nc_test_slave - network characterization slave

These tests talk to each other to measure network performance. They can each run on either a test target or a LINUX host computer given some customization to your local environment. As provided, `nc_test_slave` must run on the test target, and `nc_test_master` must be run on a LINUX host, and be given the test target's IP address or hostname.

The tests print network performance for various packet sizes over UDP and TCP, versus various additional CPU loads on the target.

The programs

    nc6_test_slave
    nc6_test_master

are additional forms which support both IPv4 and IPv6 addressing.

Prev | Home | Next
Standalone Tests | Up | Interactive Tests