summaryrefslogtreecommitdiff
path: root/ecos/packages/net/common/current/doc/running_nc_tests
blob: f6cbbb2ba49e2f7a89599861ef4a6b038014a88a (plain)
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
The network performance tests are split into two parts, one
[nc6_test_master] which runs on a host (like Linux or FreeBSD) and the
other [nc6_test_slave] which runs on the target platform.  Note that
these tests supplant older versions (nc_test_XXX) which did not
support IPv6 addressing.

To run the tests, start the slave part first.  On the target hardware,
run the program "nc6_test_slave".  It will display a set of information
on the console (use serial console only as using a network console
would severely impact the numbers) similar to this:

    RedBoot> lo ipv6.test;g
    Entry point: 0x00040040, address range: 0x00040000-0x000ae56c
    [cyg_net_init] Init: mbinit(0x00000000)
    [cyg_net_init] Init: cyg_net_init_devs(0x00000000)
    Init device 'cs8900a_eth0'
    [cyg_net_init] Init: loopattach(0x00000000)
    [cyg_net_init] Init: ifinit(0x00000000)
    IFP: 0x000acf1c, next: 0x00117a00
    IFP: 0x00117a00, next: 0x00000000
    eth0 XXX: driver didn't set ifq_maxlen
    [cyg_net_init] Init: domaininit(0x00000000)
    [cyg_net_init] Init: cyg_net_add_domain(0x000ad7f8)
    New domain internet6 at 0x00000000
    [cyg_net_init] Init: cyg_net_add_domain(0x000adfbc)
    New domain internet at 0x00000000
    [cyg_net_init] Init: cyg_net_add_domain(0x000ad314)
    New domain route at 0x00000000
    [cyg_net_init] Init: cyg_route_init(0x00000000)
    [cyg_net_init] Init: ip6_init2(0x00000000)
    [cyg_net_init] Done
    Start Network Characterization - SLAVE
    BOOTP[eth0] op: REQUEST
           htype: Ethernet
            hlen: 6
            hops: 0
             xid: 0xe194048b
            secs: 0
           flags: 0x80
           hw_addr: 00:30:d3:03:04:8b
         client IP: 0.0.0.0
             my IP: 192.168.1.52
         server IP: 192.168.1.101
        gateway IP: 0.0.0.0
            server: hermes.chez-thomas.org
              file: /tftpboot/192.168.1.52/zImage
      options:
            DHCP message: 3 REQUEST
            DHCP server id: 63.225.98.241
            DHCP time 51: -1
            DHCP time 58: 0
            DHCP time 59: 0
            subnet mask: 255.255.255.0
                gateway: 192.168.1.101
          domain server: 63.225.98.241, 206.196.128.1, 205.180.230.20, 205.180.230.21
            domain name: chez-thomas.org
           IP broadcast: 192.168.1.255
            DHCP option: 37/55.9: 54 51 58 59 1 3 6 15 28
            DHCP option: 39/57.2: 576
            DHCP requested ip: 192.168.1.52
    No load = 248826
    Set background load = 20% 
    Set background load = 0% 
    High Load[20] = 192089 => 23% 
    Set background load = 20% 
    Set background load = 0% 
    Load[10] = 220394 => 12% 
    Set background load = 20% 
    Set background load = 0% 
    Load[15] = 206082 => 18% 
    Set background load = 20% 
    Set background load = 0% 
    Final load[16] = 203142 => 19% 
    Start test for eth0
    Family: 2, Socket: 2, Addr: 0.0.0.0
    Family: 28, Socket: 2, Addr: ::

At this point, the slave is ready to accept commands.  The section with
lines like "Set background load = 20%" are the slave test self-calibrating
a background load level which is used later.

Once the slave is started, then on your host system (Linux), run the
'nc6_test_master' program like this:

    [root@ebsa2 gthomas]# ./nc6_test_master 3ffe:302:11:2::192.168.1.52

This command would test against the IPv6 slave.  You can also use an IPv4
address.

The master program will then run a sequence of tests.  Each test is accomplished
by sending a command "packet" to the slave which initiates a sequence of
I/O requests.  These are requests for UDP and TCP traffic patterns, adjusting
the slave background load, etc.  The results are displayed by the master
program as they are obtained.  For example:

    ================== No load, master at 100% ========================
    Start UDP echo [640,1024] - no delays
    UDP echo - 1280 bufs of 1024 bytes in 2.03 seconds - 630.54 KB/S - 5.1654 Mbit/S (M = 10^6)
       slave sent 640, recvd 640
    Start UDP send [640,1024] - no delays
    Packets out of sequence - recvd: 51, expected: 50
    Packets out of sequence - recvd: 103, expected: 102
    Packets out of sequence - recvd: 155, expected: 154
    Packets out of sequence - recvd: 207, expected: 206
    Packets out of sequence - recvd: 259, expected: 258
    Packets out of sequence - recvd: 311, expected: 310
    Packets out of sequence - recvd: 363, expected: 362
    Packets out of sequence - recvd: 415, expected: 414
    Packets out of sequence - recvd: 467, expected: 466
    Packets out of sequence - recvd: 519, expected: 518
    Packets out of sequence - recvd: 571, expected: 570
    Packets out of sequence - recvd: 623, expected: 622
    UDP send - 628 bufs of 1024 bytes in 1.46 seconds - 430.14 KB/S - 3.5237 Mbit/S (M = 10^6), 12 out of sequence
       slave sent 628, recvd 0
    Start UDP recv [640,1024] - no delays
    UDP recv - 640 bufs of 1024 bytes in 0.05 seconds - 12800.00 KB/S - 104.8576 Mbit/S (M = 10^6)
       slave sent 0, recvd 495
    Start TCP echo [640,1024] - no delays
    TCP echo - 1280 bufs of 1024 bytes in 2.16 seconds - 592.59 KB/S - 4.8545 Mbit/S (M = 10^6)
       slave sent 640, recvd 640
    Start TCP send [640,1024] - no delays
    TCP send - 640 bufs of 1024 bytes in 0.80 seconds - 800.00 KB/S - 6.5536 Mbit/S (M = 10^6)
       slave sent 640, recvd 0
    Start TCP recv [640,1024] - no delays
    TCP recv - 640 bufs of 1024 bytes in 0.65 seconds - 984.62 KB/S - 8.0660 Mbit/S (M = 10^6)
       slave sent 0, recvd 640
    Start TCP echo [64,10240] - no delays
    TCP echo - 128 bufs of 10240 bytes in 3.80 seconds - 336.84 KB/S - 2.7594 Mbit/S (M = 10^6)
       slave sent 64, recvd 64
    
    ====================== Various slave compute loads ===================
    >>>>>>>>>>>> slave processing load at 0%
    Start UDP echo [2048,1024] - no delays
    UDP echo - 4096 bufs of 1024 bytes in 6.51 seconds - 629.19 KB/S - 5.1543 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    Start TCP echo [2048,1024] - no delays
    TCP echo - 4096 bufs of 1024 bytes in 6.90 seconds - 593.62 KB/S - 4.8630 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    >>>>>>>>>>>> slave processing load at 10%
    Start UDP echo [2048,1024] - no delays
    UDP echo - 4096 bufs of 1024 bytes in 6.81 seconds - 601.47 KB/S - 4.9272 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    Start TCP echo [2048,1024] - no delays
    TCP echo - 4096 bufs of 1024 bytes in 7.00 seconds - 585.14 KB/S - 4.7935 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    >>>>>>>>>>>> slave processing load at 20%
    Start UDP echo [2048,1024] - no delays
    UDP echo - 4096 bufs of 1024 bytes in 6.81 seconds - 601.47 KB/S - 4.9272 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    Start TCP echo [2048,1024] - no delays
    TCP echo - 4096 bufs of 1024 bytes in 7.32 seconds - 559.56 KB/S - 4.5839 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    >>>>>>>>>>>> slave processing load at 30%
    Start UDP echo [2048,1024] - no delays
    UDP echo - 4096 bufs of 1024 bytes in 8.04 seconds - 509.45 KB/S - 4.1734 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    Start TCP echo [2048,1024] - no delays
    TCP echo - 4096 bufs of 1024 bytes in 8.78 seconds - 466.51 KB/S - 3.8217 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    >>>>>>>>>>>> slave processing load at 40%
    Start UDP echo [2048,1024] - no delays
    UDP echo - 4096 bufs of 1024 bytes in 10.22 seconds - 400.78 KB/S - 3.2832 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    Start TCP echo [2048,1024] - no delays
    TCP echo - 4096 bufs of 1024 bytes in 10.24 seconds - 400.00 KB/S - 3.2768 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    >>>>>>>>>>>> slave processing load at 50%
    Start UDP echo [2048,1024] - no delays
    UDP echo - 4096 bufs of 1024 bytes in 10.22 seconds - 400.78 KB/S - 3.2832 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    Start TCP echo [2048,1024] - no delays
    TCP echo - 4096 bufs of 1024 bytes in 10.24 seconds - 400.00 KB/S - 3.2768 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    
    ====================== Various master loads ===================
    Testing IDLE for 10 seconds
    IDLE - ticks: 1003, count: 1367315
    Start UDP echo [2048,1024] - no delays
    UDP echo - 4096 bufs of 1024 bytes in 10.22 seconds - 400.78 KB/S - 3.2832 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    IDLE - ticks: 1028, count: 641138, 45% idle
    Start TCP echo [2048,1024] - no delays
    TCP echo - 4096 bufs of 1024 bytes in 10.24 seconds - 400.00 KB/S - 3.2768 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    IDLE - ticks: 1330, count: 1004010, 55% idle
    Start UDP echo [2048,1024] - 10ms delay after 10 packets
    UDP echo - 4096 bufs of 1024 bytes in 13.01 seconds - 314.83 KB/S - 2.5791 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    IDLE - ticks: 1307, count: 1015862, 56% idle
    Start TCP echo [2048,1024] - 10ms delay after 10 packets
    TCP echo - 4096 bufs of 1024 bytes in 13.26 seconds - 308.90 KB/S - 2.5305 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    IDLE - ticks: 1633, count: 1410624, 63% idle
    Start UDP echo [2048,1024] - 50ms delay after 10 packets
    UDP echo - 4096 bufs of 1024 bytes in 21.00 seconds - 195.05 KB/S - 1.5978 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    IDLE - ticks: 2106, count: 2105817, 73% idle
    Start TCP echo [2048,1024] - 50ms delay after 10 packets
    TCP echo - 4096 bufs of 1024 bytes in 21.26 seconds - 192.66 KB/S - 1.5783 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    IDLE - ticks: 2434, count: 2471814, 74% idle
    Start UDP echo [2048,1024] - 100ms delay after 10 packets
    UDP echo - 4096 bufs of 1024 bytes in 31.28 seconds - 130.95 KB/S - 1.0727 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    IDLE - ticks: 3135, count: 3508880, 82% idle
    Start TCP echo [2048,1024] - 100ms delay after 10 packets
    TCP echo - 4096 bufs of 1024 bytes in 31.43 seconds - 130.32 KB/S - 1.0676 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    IDLE - ticks: 3451, count: 3859323, 82% idle
    Start UDP echo [2048,1024] - 10ms delay after 1 packet
    UDP echo - 4096 bufs of 1024 bytes in 40.94 seconds - 100.05 KB/S - 0.8196 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    IDLE - ticks: 4102, count: 4789770, 85% idle
    Start TCP echo [2048,1024] - 10ms delay after 1 packet
    TCP echo - 4096 bufs of 1024 bytes in 40.96 seconds - 100.00 KB/S - 0.8192 Mbit/S (M = 10^6)
       slave sent 2048, recvd 2048
    IDLE - ticks: 4407, count: 5147211, 85% idle
    ... Done

The slave will display lines like:
    UDP echo - 640 buffers, 1024 bytes
    UDP send - 640 buffers, 1024 bytes
    sendto UDP data: No buffer space available
    sendto UDP data: No buffer space available
    sendto UDP data: No buffer space available
    sendto UDP data: No buffer space available
    sendto UDP data: No buffer space available
    sendto UDP data: No buffer space available
    sendto UDP data: No buffer space available
    sendto UDP data: No buffer space available
    sendto UDP data: No buffer space available
    sendto UDP data: No buffer space available
    sendto UDP data: No buffer space available
    sendto UDP data: No buffer space available
    UDP recv - 640 buffers, 1024 bytes
    Packets out of sequence - recvd: 508, expected: 492
    Packets out of sequence - recvd: 528, expected: 510
    recvfrom timeout, expecting seq #529
    recvfrom timeout, expecting seq #530
    recvfrom timeout, expecting seq #531
    recvfrom timeout, expecting seq #532
    recvfrom timeout, expecting seq #533
    recvfrom timeout, expecting seq #534
    ... giving up
    TCP echo - 640 buffers, 1024 bytes
    TCP - listen on IPv6/8770
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1085)
    TCP send - 640 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1086)
    TCP recv - 640 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1087)
    TCP echo - 64 buffers, 10240 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1088)
    Set background load = 0% 
    Set background load = 0% 
    UDP echo - 2048 buffers, 1024 bytes
    TCP echo - 2048 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1089)
    Set background load = 10% 
    UDP echo - 2048 buffers, 1024 bytes
    TCP echo - 2048 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1090)
    Set background load = 20% 
    UDP echo - 2048 buffers, 1024 bytes
    TCP echo - 2048 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1091)
    Set background load = 30% 
    UDP echo - 2048 buffers, 1024 bytes
    TCP echo - 2048 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1092)
    Set background load = 40% 
    UDP echo - 2048 buffers, 1024 bytes
    TCP echo - 2048 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1093)
    Set background load = 50% 
    UDP echo - 2048 buffers, 1024 bytes
    TCP echo - 2048 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1094)
    Start IDLE thread
    Stop IDLE thread
    Start IDLE thread
    UDP echo - 2048 buffers, 1024 bytes
    Stop IDLE thread
    Start IDLE thread
    TCP echo - 2048 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1095)
    Stop IDLE thread
    Start IDLE thread
    UDP echo - 2048 buffers, 1024 bytes
    Stop IDLE thread
    Start IDLE thread
    TCP echo - 2048 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1096)
    Stop IDLE thread
    Start IDLE thread
    UDP echo - 2048 buffers, 1024 bytes
    Stop IDLE thread
    Start IDLE thread
    TCP echo - 2048 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1097)
    Stop IDLE thread
    Start IDLE thread
    UDP echo - 2048 buffers, 1024 bytes
    Stop IDLE thread
    Start IDLE thread
    TCP echo - 2048 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1098)
    Stop IDLE thread
    Start IDLE thread
    UDP echo - 2048 buffers, 1024 bytes
    Stop IDLE thread
    Start IDLE thread
    TCP echo - 2048 buffers, 1024 bytes
    connection from 3ffe:302:11:2:290:27ff:fe8b:8e1d(1099)
    Stop IDLE thread

Notice that if the host and target are not well balanced (in this example,
the host is a fairly fast P-II running with a very good 10/100Mb ethernet
controller and the slave is a reasonable [not fast!] ARM board with a very
simplistic [read "slow"] network adaptor), then the UDP tests can have
synchronization problems.  This is the nature of UDP and is to be expected.