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 your HOST system) cd to the tests source directory in the eCos repository and type “make -f make.host” - this should build tcp_source and tcp_sink.
The host program “tcp_source” sends data to the target. On the target, “tcp_echo” sends it onwards to “tcp_sink” running on your host. 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 host 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 host 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 184.108.40.206” to run the test with no additional target CPU load, or “tcp_source 220.127.116.11 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 18.104.22.168: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 host 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 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 host computer, 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.