You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: test/test_data_blaster/README.md
+10-8Lines changed: 10 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
1
# Test Data Blaster
2
2
3
-
The Test Data Blaster (T-DB) is an application suite that performs distributed testing, both TCP and UDP (currently the UDP portion is not implemented). There are multiple binaries in the suite:
3
+
The Test Data Blaster (T-DB) is a set of binaries that performs both TCP and UDP distributed testing (currently the UDP portion is not implemented). There are multiple binaries in the suite:
4
4
- Data sender / receiver (DSR), a TCP and (future) UDP version
5
5
- Statistics and logging monitor, a C++ and (future) Python version
6
6
7
-
A single instance of the monitor shows statistics from the DSR instances. The monitor is also responsible for shutting down the DSRs. Multiple DSR instances are typically running at the same time. Each TCP DSR instance can be configured for multiple TCP connectors and multiple TCP acceptors at the same time. Each (future) UDP DSR can be configured for multiple senders and receivers at the same time.
7
+
Multiple data sender / receiver (DSR) instances are running at the same time (at least two must be running for sending and receiving data). Each TCP DSR instance can be configured for multiple TCP connectors and multiple TCP acceptors at the same time. Each (future) UDP DSR can be configured for multiple senders and receivers at the same time.
8
8
9
-
The same monitor instance can be run for both TCP and UDP (the messages sent to the monitor from the DSRs specify whether the test data is being sent over TCP or UDP).
9
+
A single instance of the monitor shows statistics from the DSR instances. The monitor is also responsible for shutting down the DSRs. The same monitor instance can be running for both TCP and UDP (the messages sent to the monitor from the DSRs specify whether the test data is being sent over TCP or UDP).
10
10
11
11
While the DSRs are written in C++, the monitor app can be written in any language (and both a C++ and Python version is expected, with the Python version having a simple GUI display). The monitor message definition is text only, so binary endianness is not a factor.
12
12
@@ -26,19 +26,19 @@ All of the C++ components can be built using CMake.
26
26
27
27
## Internals and Design
28
28
29
-
Having separate code bases (and executables) for the TCP and UDP DSRs simplifies the command line parameters as well as the internal logic. There is no specific technical reason why the DSR couldn't handle both TCP and UDP, but the DSR command line is complicated enough as is
29
+
Having separate code bases (and executables) for the TCP and UDP DSRs simplifies the command line parameters as well as the internal logic. There is no specific technical reason why the DSR couldn't handle both TCP and UDP, but the DSR command line is already complicated enough.
30
30
31
-
There is (obviously) common code between all of the T-DB C++ components, some from the `shared_test` directory (i.e. shared with the Chops Net IP unit tests), and some factored out in this (`test_data_blaster`) directory.
31
+
There is (obviously) common code between all of the T-DB C++ components, some from the `shared_test` directory (i.e. code that is shared with the Chops Net IP unit tests), and some factored out in this (`test_data_blaster`) directory.
32
32
33
33
### Monitor Process
34
34
35
-
The T-DB Monitor is run as a server (only). It accepts TCP connections on one port, each connection corresponding to one instance of either a TCP DSR or a UDP DSR.
35
+
The T-DB Monitor is run as a TCP acceptor (server) only. It accepts TCP connections on one port, each connection corresponding to one instance of either a TCP DSR or a UDP DSR.
36
36
37
37
There are no "begin" or "end" data messages that the monitor has to process, a new incoming TCP connection is the indication that a new DSR instance has started, and the end of the TCP connection is the indication that the DSR instance has ended.
38
38
39
39
The DSR will not send a monitor message for every test message sent between DSR instances. A "modulo" command line parameter specifies how often a monitor message will be sent (for each test data set). (A modulo of 1 would generate one monitor message per test data set message.)
40
40
41
-
The monitor process will notify all DSR processes to shutdown by sending a shutdown message through each monitor connection. The monitor process will have a user initiated way to send the shutdown messages and end the monitor process.
41
+
The monitor process will notify all DSR processes to shutdown by sending a shutdown message through each monitor connection. The monitor process will have a user initiated mechanism to send the shutdown messages and end the monitor process.
42
42
43
43
#### Monitor Message Definition
44
44
@@ -65,7 +65,9 @@ The shutdown message is the only message sent from the monitor to the DSRs and h
65
65
66
66
Each DSR instance can start multiple TCP connectors and multiple TCP acceptors as provided via the command line arguments.
67
67
68
-
If the DSR instance is configured to send messages (send count > 0), messages are sent when a connection is made. For TCP connectors this is when the connect succeeds. For acceptors it is when each incoming connection is made. Each connection will send out the full set of test messages.
68
+
If the DSR instance is configured to send messages (send count > 0), messages are sent when a connection is made. For TCP connectors this is when the connect succeeds. For acceptors it is when each incoming connection is made. Each connection will send out the full set of test messages with a delay between each message (the delay can be 0 for full message blasting).
69
+
70
+
If the "reply" command line parameter is set, an incoming message is reflected back to the sender.
69
71
70
72
Degenerate configurations are possible, with infinite message loops or where connection and shutdown timing is not clear. No special coding is in the T-DB to protect for bad configurations.
0 commit comments