]>
Commit | Line | Data |
---|---|---|
3ed497fc BP |
1 | AT_BANNER([reconnect library]) |
2 | ||
d1b680c6 BP |
3 | m4_define([__RECONNECT_CHECK], |
4 | [AT_SETUP([$1]) | |
5 | AT_KEYWORDS([reconnect]) | |
1ca0323e BP |
6 | AT_DATA([input], [$2]) |
7 | AT_CHECK([$3], [0], [$4]) | |
d1b680c6 BP |
8 | AT_CLEANUP]) |
9 | ||
10 | m4_define([RECONNECT_CHECK], | |
99155935 BP |
11 | [__RECONNECT_CHECK( |
12 | [$1 - C], | |
99155935 | 13 | [$2], |
eadd1644 | 14 | [ovstest test-reconnect < input], |
99155935 | 15 | [$3]) |
9a4d919a RB |
16 | __RECONNECT_CHECK( |
17 | [$1 - Python3], | |
9a4d919a RB |
18 | [$2], |
19 | [$PYTHON3 $srcdir/test-reconnect.py < input], | |
99155935 | 20 | [$3])]) |
d1b680c6 | 21 | |
3ed497fc | 22 | ###################################################################### |
d1b680c6 BP |
23 | RECONNECT_CHECK([nothing happens if not enabled], |
24 | [run | |
3ed497fc | 25 | timeout |
d1b680c6 | 26 | ], |
3ed497fc BP |
27 | [### t=1000 ### |
28 | run | |
29 | timeout | |
30 | no timeout | |
31 | ]) | |
3ed497fc BP |
32 | |
33 | ###################################################################### | |
d1b680c6 BP |
34 | RECONNECT_CHECK([quick connect, idle disconnect], |
35 | [enable | |
3ed497fc BP |
36 | |
37 | # Connection succeeds. | |
38 | run | |
39 | connected | |
40 | ||
fcf281b0 BP |
41 | # Try timeout without noting that we tried to receive. |
42 | # (This does nothing since we never timeout in this case.) | |
43 | timeout | |
44 | ||
45 | # Now disable the receive-attempted feature and timeout again. | |
46 | receive-attempted LLONG_MAX | |
3ed497fc BP |
47 | timeout |
48 | run | |
49 | ||
50 | # Idle timeout kills connection. | |
51 | timeout | |
52 | run | |
53 | disconnected | |
d1b680c6 | 54 | ], |
3ed497fc BP |
55 | [### t=1000 ### |
56 | enable | |
57 | in BACKOFF for 0 ms (0 ms backoff) | |
58 | ||
59 | # Connection succeeds. | |
60 | run | |
61 | should connect | |
62 | connected | |
63 | in ACTIVE for 0 ms (0 ms backoff) | |
a6f639f8 | 64 | created 1000, last activity 1000, last connected 1000 |
3ed497fc | 65 | 1 successful connections out of 1 attempts, seqno 1 |
5eda645e AE |
66 | connected |
67 | last connected 0 ms ago, connected 0 ms total | |
3ed497fc | 68 | |
fcf281b0 BP |
69 | # Try timeout without noting that we tried to receive. |
70 | # (This does nothing since we never timeout in this case.) | |
71 | timeout | |
72 | no timeout | |
73 | ||
74 | # Now disable the receive-attempted feature and timeout again. | |
75 | receive-attempted LLONG_MAX | |
3ed497fc BP |
76 | timeout |
77 | advance 5000 ms | |
78 | ||
79 | ### t=6000 ### | |
80 | in ACTIVE for 5000 ms (0 ms backoff) | |
3ed497fc BP |
81 | run |
82 | should send probe | |
83 | in IDLE for 0 ms (0 ms backoff) | |
84 | ||
85 | # Idle timeout kills connection. | |
86 | timeout | |
87 | advance 5000 ms | |
88 | ||
89 | ### t=11000 ### | |
90 | in IDLE for 5000 ms (0 ms backoff) | |
3ed497fc BP |
91 | run |
92 | should disconnect | |
93 | disconnected | |
94 | in BACKOFF for 0 ms (1000 ms backoff) | |
95 | 1 successful connections out of 1 attempts, seqno 2 | |
5eda645e | 96 | disconnected |
eba18f00 | 97 | disconnected at 11000 ms (0 ms ago) |
3ed497fc | 98 | ]) |
3ed497fc BP |
99 | |
100 | ###################################################################### | |
d1b680c6 BP |
101 | RECONNECT_CHECK([slow connect, idle disconnect], |
102 | [enable | |
3ed497fc BP |
103 | |
104 | # Start connecting. | |
105 | run | |
106 | connecting | |
107 | ||
108 | # Connect after 500 ms. | |
109 | advance 500 | |
110 | run | |
111 | connected | |
112 | ||
fcf281b0 BP |
113 | # Try timeout without noting that we tried to receive. |
114 | # (This does nothing since we never timeout in this case.) | |
115 | timeout | |
116 | ||
117 | # Now disable the receive-attempted feature and timeout again. | |
118 | receive-attempted LLONG_MAX | |
3ed497fc BP |
119 | timeout |
120 | run | |
121 | ||
122 | # Idle timeout kills connection. | |
123 | timeout | |
124 | run | |
125 | disconnected | |
d1b680c6 | 126 | ], |
3ed497fc BP |
127 | [### t=1000 ### |
128 | enable | |
129 | in BACKOFF for 0 ms (0 ms backoff) | |
130 | ||
131 | # Start connecting. | |
132 | run | |
133 | should connect | |
134 | connecting | |
c36cf65e | 135 | in CONNECTING for 0 ms (0 ms backoff) |
3ed497fc BP |
136 | |
137 | # Connect after 500 ms. | |
138 | advance 500 | |
139 | ||
140 | ### t=1500 ### | |
c36cf65e | 141 | in CONNECTING for 500 ms (0 ms backoff) |
3ed497fc | 142 | run |
3ed497fc BP |
143 | connected |
144 | in ACTIVE for 0 ms (0 ms backoff) | |
a6f639f8 | 145 | created 1000, last activity 1000, last connected 1500 |
3ed497fc | 146 | 1 successful connections out of 1 attempts, seqno 1 |
5eda645e AE |
147 | connected |
148 | last connected 0 ms ago, connected 0 ms total | |
3ed497fc | 149 | |
fcf281b0 BP |
150 | # Try timeout without noting that we tried to receive. |
151 | # (This does nothing since we never timeout in this case.) | |
152 | timeout | |
153 | no timeout | |
154 | ||
155 | # Now disable the receive-attempted feature and timeout again. | |
156 | receive-attempted LLONG_MAX | |
3ed497fc BP |
157 | timeout |
158 | advance 5000 ms | |
159 | ||
160 | ### t=6500 ### | |
161 | in ACTIVE for 5000 ms (0 ms backoff) | |
3ed497fc BP |
162 | run |
163 | should send probe | |
164 | in IDLE for 0 ms (0 ms backoff) | |
165 | ||
166 | # Idle timeout kills connection. | |
167 | timeout | |
168 | advance 5000 ms | |
169 | ||
170 | ### t=11500 ### | |
171 | in IDLE for 5000 ms (0 ms backoff) | |
3ed497fc BP |
172 | run |
173 | should disconnect | |
174 | disconnected | |
175 | in BACKOFF for 0 ms (1000 ms backoff) | |
176 | 1 successful connections out of 1 attempts, seqno 2 | |
5eda645e | 177 | disconnected |
eba18f00 | 178 | disconnected at 11500 ms (0 ms ago) |
3ed497fc | 179 | ]) |
3ed497fc BP |
180 | |
181 | ###################################################################### | |
d1b680c6 BP |
182 | RECONNECT_CHECK([connect backs off], |
183 | [enable | |
3ed497fc BP |
184 | |
185 | # First connection attempt fails after 1000 ms. | |
186 | run | |
187 | connecting | |
188 | run | |
189 | timeout | |
190 | run | |
191 | connect-failed | |
192 | ||
193 | # Back off for 1000 ms. | |
194 | timeout | |
195 | run | |
196 | ||
197 | # Second connection attempt fails after 1000 ms. | |
198 | connecting | |
199 | timeout | |
200 | run | |
201 | connect-failed | |
202 | ||
203 | # Back off for 2000 ms. | |
204 | timeout | |
205 | run | |
206 | ||
207 | # Third connection attempt fails after 2000 ms. | |
208 | connecting | |
209 | timeout | |
210 | run | |
211 | connect-failed | |
212 | ||
213 | # Back off for 4000 ms. | |
214 | timeout | |
215 | run | |
216 | ||
217 | # Third connection attempt fails after 4000 ms. | |
218 | connecting | |
219 | timeout | |
220 | run | |
221 | connect-failed | |
222 | ||
223 | # Back off for 8000 ms. | |
224 | timeout | |
225 | run | |
226 | ||
227 | # Third connection attempt fails after 8000 ms. | |
228 | connecting | |
229 | timeout | |
230 | run | |
231 | connect-failed | |
232 | ||
233 | # Back off for 8000 ms. | |
234 | timeout | |
235 | run | |
236 | ||
237 | # Fourth connection attempt fails after 8000 ms. | |
238 | connecting | |
239 | timeout | |
240 | run | |
241 | connect-failed | |
d1b680c6 | 242 | ], |
3ed497fc BP |
243 | [### t=1000 ### |
244 | enable | |
245 | in BACKOFF for 0 ms (0 ms backoff) | |
246 | ||
247 | # First connection attempt fails after 1000 ms. | |
248 | run | |
249 | should connect | |
250 | connecting | |
c36cf65e | 251 | in CONNECTING for 0 ms (0 ms backoff) |
3ed497fc | 252 | run |
3ed497fc BP |
253 | timeout |
254 | advance 1000 ms | |
255 | ||
256 | ### t=2000 ### | |
c36cf65e | 257 | in CONNECTING for 1000 ms (0 ms backoff) |
3ed497fc BP |
258 | run |
259 | should disconnect | |
260 | connect-failed | |
261 | in BACKOFF for 0 ms (1000 ms backoff) | |
262 | 0 successful connections out of 1 attempts, seqno 0 | |
263 | ||
264 | # Back off for 1000 ms. | |
265 | timeout | |
266 | advance 1000 ms | |
267 | ||
268 | ### t=3000 ### | |
269 | in BACKOFF for 1000 ms (1000 ms backoff) | |
270 | run | |
271 | should connect | |
272 | ||
273 | # Second connection attempt fails after 1000 ms. | |
274 | connecting | |
c36cf65e | 275 | in CONNECTING for 0 ms (1000 ms backoff) |
3ed497fc BP |
276 | timeout |
277 | advance 1000 ms | |
278 | ||
279 | ### t=4000 ### | |
c36cf65e | 280 | in CONNECTING for 1000 ms (1000 ms backoff) |
3ed497fc BP |
281 | run |
282 | should disconnect | |
283 | connect-failed | |
284 | in BACKOFF for 0 ms (2000 ms backoff) | |
285 | 0 successful connections out of 2 attempts, seqno 0 | |
286 | ||
287 | # Back off for 2000 ms. | |
288 | timeout | |
289 | advance 2000 ms | |
290 | ||
291 | ### t=6000 ### | |
292 | in BACKOFF for 2000 ms (2000 ms backoff) | |
293 | run | |
294 | should connect | |
295 | ||
296 | # Third connection attempt fails after 2000 ms. | |
297 | connecting | |
c36cf65e | 298 | in CONNECTING for 0 ms (2000 ms backoff) |
3ed497fc BP |
299 | timeout |
300 | advance 2000 ms | |
301 | ||
302 | ### t=8000 ### | |
c36cf65e | 303 | in CONNECTING for 2000 ms (2000 ms backoff) |
3ed497fc BP |
304 | run |
305 | should disconnect | |
306 | connect-failed | |
307 | in BACKOFF for 0 ms (4000 ms backoff) | |
308 | 0 successful connections out of 3 attempts, seqno 0 | |
309 | ||
310 | # Back off for 4000 ms. | |
311 | timeout | |
312 | advance 4000 ms | |
313 | ||
314 | ### t=12000 ### | |
315 | in BACKOFF for 4000 ms (4000 ms backoff) | |
316 | run | |
317 | should connect | |
318 | ||
319 | # Third connection attempt fails after 4000 ms. | |
320 | connecting | |
c36cf65e | 321 | in CONNECTING for 0 ms (4000 ms backoff) |
3ed497fc BP |
322 | timeout |
323 | advance 4000 ms | |
324 | ||
325 | ### t=16000 ### | |
c36cf65e | 326 | in CONNECTING for 4000 ms (4000 ms backoff) |
3ed497fc BP |
327 | run |
328 | should disconnect | |
329 | connect-failed | |
330 | in BACKOFF for 0 ms (8000 ms backoff) | |
331 | 0 successful connections out of 4 attempts, seqno 0 | |
332 | ||
333 | # Back off for 8000 ms. | |
334 | timeout | |
335 | advance 8000 ms | |
336 | ||
337 | ### t=24000 ### | |
338 | in BACKOFF for 8000 ms (8000 ms backoff) | |
339 | run | |
340 | should connect | |
341 | ||
342 | # Third connection attempt fails after 8000 ms. | |
343 | connecting | |
c36cf65e | 344 | in CONNECTING for 0 ms (8000 ms backoff) |
3ed497fc BP |
345 | timeout |
346 | advance 8000 ms | |
347 | ||
348 | ### t=32000 ### | |
c36cf65e | 349 | in CONNECTING for 8000 ms (8000 ms backoff) |
3ed497fc BP |
350 | run |
351 | should disconnect | |
352 | connect-failed | |
353 | in BACKOFF for 0 ms (8000 ms backoff) | |
354 | 0 successful connections out of 5 attempts, seqno 0 | |
355 | ||
356 | # Back off for 8000 ms. | |
357 | timeout | |
358 | advance 8000 ms | |
359 | ||
360 | ### t=40000 ### | |
361 | in BACKOFF for 8000 ms (8000 ms backoff) | |
362 | run | |
363 | should connect | |
364 | ||
365 | # Fourth connection attempt fails after 8000 ms. | |
366 | connecting | |
c36cf65e | 367 | in CONNECTING for 0 ms (8000 ms backoff) |
3ed497fc BP |
368 | timeout |
369 | advance 8000 ms | |
370 | ||
371 | ### t=48000 ### | |
c36cf65e | 372 | in CONNECTING for 8000 ms (8000 ms backoff) |
3ed497fc BP |
373 | run |
374 | should disconnect | |
375 | connect-failed | |
376 | in BACKOFF for 0 ms (8000 ms backoff) | |
377 | 0 successful connections out of 6 attempts, seqno 0 | |
378 | ]) | |
3ed497fc BP |
379 | |
380 | ###################################################################### | |
d1b680c6 | 381 | RECONNECT_CHECK([connections with no data preserve backoff], |
fcf281b0 BP |
382 | [receive-attempted LLONG_MAX |
383 | enable | |
3ed497fc BP |
384 | |
385 | # First connect, then idle timeout kills connection. | |
386 | run | |
387 | connected | |
388 | timeout | |
389 | run | |
390 | timeout | |
391 | run | |
392 | disconnected | |
393 | ||
394 | # Back off for 1000 ms. | |
395 | timeout | |
396 | run | |
397 | ||
398 | # Second connect, then idle timeout kills connection. | |
399 | run | |
400 | connected | |
401 | timeout | |
402 | run | |
403 | timeout | |
404 | run | |
405 | disconnected | |
406 | ||
407 | # Back off for 2000 ms. | |
408 | timeout | |
409 | run | |
410 | ||
411 | # Third connect, then idle timeout kills connection. | |
412 | run | |
413 | connected | |
414 | timeout | |
415 | run | |
416 | timeout | |
417 | run | |
418 | disconnected | |
419 | ||
420 | # Back off for 4000 ms. | |
421 | timeout | |
422 | ], [### t=1000 ### | |
fcf281b0 | 423 | receive-attempted LLONG_MAX |
3ed497fc BP |
424 | enable |
425 | in BACKOFF for 0 ms (0 ms backoff) | |
426 | ||
427 | # First connect, then idle timeout kills connection. | |
428 | run | |
429 | should connect | |
430 | connected | |
431 | in ACTIVE for 0 ms (0 ms backoff) | |
a6f639f8 | 432 | created 1000, last activity 1000, last connected 1000 |
3ed497fc | 433 | 1 successful connections out of 1 attempts, seqno 1 |
5eda645e AE |
434 | connected |
435 | last connected 0 ms ago, connected 0 ms total | |
3ed497fc BP |
436 | timeout |
437 | advance 5000 ms | |
438 | ||
439 | ### t=6000 ### | |
440 | in ACTIVE for 5000 ms (0 ms backoff) | |
3ed497fc BP |
441 | run |
442 | should send probe | |
443 | in IDLE for 0 ms (0 ms backoff) | |
444 | timeout | |
445 | advance 5000 ms | |
446 | ||
447 | ### t=11000 ### | |
448 | in IDLE for 5000 ms (0 ms backoff) | |
3ed497fc BP |
449 | run |
450 | should disconnect | |
451 | disconnected | |
452 | in BACKOFF for 0 ms (1000 ms backoff) | |
453 | 1 successful connections out of 1 attempts, seqno 2 | |
5eda645e | 454 | disconnected |
eba18f00 | 455 | disconnected at 11000 ms (0 ms ago) |
3ed497fc BP |
456 | |
457 | # Back off for 1000 ms. | |
458 | timeout | |
459 | advance 1000 ms | |
460 | ||
461 | ### t=12000 ### | |
462 | in BACKOFF for 1000 ms (1000 ms backoff) | |
5eda645e | 463 | last connected 11000 ms ago, connected 10000 ms total |
3ed497fc BP |
464 | run |
465 | should connect | |
466 | ||
467 | # Second connect, then idle timeout kills connection. | |
468 | run | |
469 | should connect | |
470 | connected | |
471 | in ACTIVE for 0 ms (1000 ms backoff) | |
a6f639f8 | 472 | created 1000, last activity 1000, last connected 12000 |
3ed497fc | 473 | 2 successful connections out of 2 attempts, seqno 3 |
5eda645e AE |
474 | connected |
475 | last connected 0 ms ago, connected 10000 ms total | |
3ed497fc BP |
476 | timeout |
477 | advance 5000 ms | |
478 | ||
479 | ### t=17000 ### | |
480 | in ACTIVE for 5000 ms (1000 ms backoff) | |
3ed497fc BP |
481 | run |
482 | should send probe | |
483 | in IDLE for 0 ms (1000 ms backoff) | |
484 | timeout | |
485 | advance 5000 ms | |
486 | ||
487 | ### t=22000 ### | |
488 | in IDLE for 5000 ms (1000 ms backoff) | |
3ed497fc BP |
489 | run |
490 | should disconnect | |
491 | disconnected | |
492 | in BACKOFF for 0 ms (2000 ms backoff) | |
493 | 2 successful connections out of 2 attempts, seqno 4 | |
5eda645e | 494 | disconnected |
eba18f00 | 495 | disconnected at 22000 ms (0 ms ago) |
3ed497fc BP |
496 | |
497 | # Back off for 2000 ms. | |
498 | timeout | |
499 | advance 2000 ms | |
500 | ||
501 | ### t=24000 ### | |
502 | in BACKOFF for 2000 ms (2000 ms backoff) | |
5eda645e | 503 | last connected 12000 ms ago, connected 20000 ms total |
3ed497fc BP |
504 | run |
505 | should connect | |
506 | ||
507 | # Third connect, then idle timeout kills connection. | |
508 | run | |
509 | should connect | |
510 | connected | |
511 | in ACTIVE for 0 ms (2000 ms backoff) | |
a6f639f8 | 512 | created 1000, last activity 1000, last connected 24000 |
3ed497fc | 513 | 3 successful connections out of 3 attempts, seqno 5 |
5eda645e AE |
514 | connected |
515 | last connected 0 ms ago, connected 20000 ms total | |
3ed497fc BP |
516 | timeout |
517 | advance 5000 ms | |
518 | ||
519 | ### t=29000 ### | |
520 | in ACTIVE for 5000 ms (2000 ms backoff) | |
3ed497fc BP |
521 | run |
522 | should send probe | |
523 | in IDLE for 0 ms (2000 ms backoff) | |
524 | timeout | |
525 | advance 5000 ms | |
526 | ||
527 | ### t=34000 ### | |
528 | in IDLE for 5000 ms (2000 ms backoff) | |
3ed497fc BP |
529 | run |
530 | should disconnect | |
531 | disconnected | |
532 | in BACKOFF for 0 ms (4000 ms backoff) | |
533 | 3 successful connections out of 3 attempts, seqno 6 | |
5eda645e | 534 | disconnected |
eba18f00 | 535 | disconnected at 34000 ms (0 ms ago) |
3ed497fc BP |
536 | |
537 | # Back off for 4000 ms. | |
538 | timeout | |
539 | advance 4000 ms | |
540 | ||
541 | ### t=38000 ### | |
542 | in BACKOFF for 4000 ms (4000 ms backoff) | |
5eda645e | 543 | last connected 14000 ms ago, connected 30000 ms total |
3ed497fc | 544 | ]) |
3ed497fc BP |
545 | |
546 | ###################################################################### | |
d1b680c6 BP |
547 | RECONNECT_CHECK([brief connection preserves backoff], |
548 | [enable | |
3ed497fc BP |
549 | |
550 | # First connection attempt fails after 1000 ms. | |
551 | run | |
552 | connecting | |
553 | run | |
554 | timeout | |
555 | run | |
556 | connect-failed | |
557 | ||
558 | # Back off for 1000 ms. | |
559 | timeout | |
560 | run | |
561 | ||
562 | # Second connection attempt fails after 1000 ms. | |
563 | connecting | |
564 | timeout | |
565 | run | |
566 | connect-failed | |
567 | ||
568 | # Back off for 2000 ms. | |
569 | timeout | |
570 | run | |
571 | ||
572 | # Third connection attempt succeeds after 500 ms. | |
573 | connecting | |
574 | advance 500 | |
575 | run | |
576 | connected | |
577 | ||
578 | # Connection drops after another 250 ms. | |
579 | advance 250 | |
580 | disconnected | |
581 | run | |
582 | ||
583 | # Back off for 4000 ms. | |
584 | timeout | |
585 | run | |
d1b680c6 | 586 | ], [### t=1000 ### |
3ed497fc BP |
587 | enable |
588 | in BACKOFF for 0 ms (0 ms backoff) | |
589 | ||
590 | # First connection attempt fails after 1000 ms. | |
591 | run | |
592 | should connect | |
593 | connecting | |
c36cf65e | 594 | in CONNECTING for 0 ms (0 ms backoff) |
3ed497fc | 595 | run |
3ed497fc BP |
596 | timeout |
597 | advance 1000 ms | |
598 | ||
599 | ### t=2000 ### | |
c36cf65e | 600 | in CONNECTING for 1000 ms (0 ms backoff) |
3ed497fc BP |
601 | run |
602 | should disconnect | |
603 | connect-failed | |
604 | in BACKOFF for 0 ms (1000 ms backoff) | |
605 | 0 successful connections out of 1 attempts, seqno 0 | |
606 | ||
607 | # Back off for 1000 ms. | |
608 | timeout | |
609 | advance 1000 ms | |
610 | ||
611 | ### t=3000 ### | |
612 | in BACKOFF for 1000 ms (1000 ms backoff) | |
613 | run | |
614 | should connect | |
615 | ||
616 | # Second connection attempt fails after 1000 ms. | |
617 | connecting | |
c36cf65e | 618 | in CONNECTING for 0 ms (1000 ms backoff) |
3ed497fc BP |
619 | timeout |
620 | advance 1000 ms | |
621 | ||
622 | ### t=4000 ### | |
c36cf65e | 623 | in CONNECTING for 1000 ms (1000 ms backoff) |
3ed497fc BP |
624 | run |
625 | should disconnect | |
626 | connect-failed | |
627 | in BACKOFF for 0 ms (2000 ms backoff) | |
628 | 0 successful connections out of 2 attempts, seqno 0 | |
629 | ||
630 | # Back off for 2000 ms. | |
631 | timeout | |
632 | advance 2000 ms | |
633 | ||
634 | ### t=6000 ### | |
635 | in BACKOFF for 2000 ms (2000 ms backoff) | |
636 | run | |
637 | should connect | |
638 | ||
639 | # Third connection attempt succeeds after 500 ms. | |
640 | connecting | |
c36cf65e | 641 | in CONNECTING for 0 ms (2000 ms backoff) |
3ed497fc BP |
642 | advance 500 |
643 | ||
644 | ### t=6500 ### | |
c36cf65e | 645 | in CONNECTING for 500 ms (2000 ms backoff) |
3ed497fc | 646 | run |
3ed497fc BP |
647 | connected |
648 | in ACTIVE for 0 ms (2000 ms backoff) | |
a6f639f8 | 649 | created 1000, last activity 1000, last connected 6500 |
3ed497fc | 650 | 1 successful connections out of 3 attempts, seqno 1 |
5eda645e AE |
651 | connected |
652 | last connected 0 ms ago, connected 0 ms total | |
3ed497fc BP |
653 | |
654 | # Connection drops after another 250 ms. | |
655 | advance 250 | |
656 | ||
657 | ### t=6750 ### | |
658 | in ACTIVE for 250 ms (2000 ms backoff) | |
3ed497fc BP |
659 | disconnected |
660 | in BACKOFF for 0 ms (4000 ms backoff) | |
661 | 1 successful connections out of 3 attempts, seqno 2 | |
5eda645e | 662 | disconnected |
eba18f00 | 663 | disconnected at 6750 ms (0 ms ago) |
3ed497fc BP |
664 | run |
665 | ||
666 | # Back off for 4000 ms. | |
667 | timeout | |
668 | advance 4000 ms | |
669 | ||
670 | ### t=10750 ### | |
671 | in BACKOFF for 4000 ms (4000 ms backoff) | |
5eda645e | 672 | last connected 4250 ms ago, connected 250 ms total |
3ed497fc BP |
673 | run |
674 | should connect | |
675 | ]) | |
3ed497fc BP |
676 | |
677 | ###################################################################### | |
d1b680c6 BP |
678 | RECONNECT_CHECK([brief connection with data preserves backoff], |
679 | [enable | |
3ed497fc BP |
680 | |
681 | # First connection attempt fails after 1000 ms. | |
682 | run | |
683 | connecting | |
684 | run | |
685 | timeout | |
686 | run | |
687 | connect-failed | |
688 | ||
689 | # Back off for 1000 ms. | |
690 | timeout | |
691 | run | |
692 | ||
693 | # Second connection attempt fails after 1000 ms. | |
694 | connecting | |
695 | timeout | |
696 | run | |
697 | connect-failed | |
698 | ||
699 | # Back off for 2000 ms. | |
700 | timeout | |
701 | run | |
702 | ||
703 | # Third connection attempt succeeds after 500 ms. | |
704 | connecting | |
705 | advance 500 | |
706 | run | |
707 | connected | |
708 | ||
709 | # Connection receives 3 chunks of data spaced 250 ms apart. | |
710 | advance 250 | |
711 | run | |
a6f639f8 | 712 | activity |
3ed497fc BP |
713 | advance 250 |
714 | run | |
a6f639f8 | 715 | activity |
3ed497fc BP |
716 | advance 250 |
717 | run | |
a6f639f8 | 718 | activity |
3ed497fc BP |
719 | |
720 | # Connection drops. | |
721 | disconnected | |
722 | run | |
723 | ||
724 | # Back off for 4000 ms. | |
725 | timeout | |
726 | run | |
d1b680c6 | 727 | ], |
3ed497fc BP |
728 | [### t=1000 ### |
729 | enable | |
730 | in BACKOFF for 0 ms (0 ms backoff) | |
731 | ||
732 | # First connection attempt fails after 1000 ms. | |
733 | run | |
734 | should connect | |
735 | connecting | |
c36cf65e | 736 | in CONNECTING for 0 ms (0 ms backoff) |
3ed497fc | 737 | run |
3ed497fc BP |
738 | timeout |
739 | advance 1000 ms | |
740 | ||
741 | ### t=2000 ### | |
c36cf65e | 742 | in CONNECTING for 1000 ms (0 ms backoff) |
3ed497fc BP |
743 | run |
744 | should disconnect | |
745 | connect-failed | |
746 | in BACKOFF for 0 ms (1000 ms backoff) | |
747 | 0 successful connections out of 1 attempts, seqno 0 | |
748 | ||
749 | # Back off for 1000 ms. | |
750 | timeout | |
751 | advance 1000 ms | |
752 | ||
753 | ### t=3000 ### | |
754 | in BACKOFF for 1000 ms (1000 ms backoff) | |
755 | run | |
756 | should connect | |
757 | ||
758 | # Second connection attempt fails after 1000 ms. | |
759 | connecting | |
c36cf65e | 760 | in CONNECTING for 0 ms (1000 ms backoff) |
3ed497fc BP |
761 | timeout |
762 | advance 1000 ms | |
763 | ||
764 | ### t=4000 ### | |
c36cf65e | 765 | in CONNECTING for 1000 ms (1000 ms backoff) |
3ed497fc BP |
766 | run |
767 | should disconnect | |
768 | connect-failed | |
769 | in BACKOFF for 0 ms (2000 ms backoff) | |
770 | 0 successful connections out of 2 attempts, seqno 0 | |
771 | ||
772 | # Back off for 2000 ms. | |
773 | timeout | |
774 | advance 2000 ms | |
775 | ||
776 | ### t=6000 ### | |
777 | in BACKOFF for 2000 ms (2000 ms backoff) | |
778 | run | |
779 | should connect | |
780 | ||
781 | # Third connection attempt succeeds after 500 ms. | |
782 | connecting | |
c36cf65e | 783 | in CONNECTING for 0 ms (2000 ms backoff) |
3ed497fc BP |
784 | advance 500 |
785 | ||
786 | ### t=6500 ### | |
c36cf65e | 787 | in CONNECTING for 500 ms (2000 ms backoff) |
3ed497fc | 788 | run |
3ed497fc BP |
789 | connected |
790 | in ACTIVE for 0 ms (2000 ms backoff) | |
a6f639f8 | 791 | created 1000, last activity 1000, last connected 6500 |
3ed497fc | 792 | 1 successful connections out of 3 attempts, seqno 1 |
5eda645e AE |
793 | connected |
794 | last connected 0 ms ago, connected 0 ms total | |
3ed497fc BP |
795 | |
796 | # Connection receives 3 chunks of data spaced 250 ms apart. | |
797 | advance 250 | |
798 | ||
799 | ### t=6750 ### | |
800 | in ACTIVE for 250 ms (2000 ms backoff) | |
3ed497fc | 801 | run |
a6f639f8 BP |
802 | activity |
803 | created 1000, last activity 6750, last connected 6500 | |
3ed497fc BP |
804 | advance 250 |
805 | ||
806 | ### t=7000 ### | |
807 | in ACTIVE for 500 ms (2000 ms backoff) | |
3ed497fc | 808 | run |
a6f639f8 BP |
809 | activity |
810 | created 1000, last activity 7000, last connected 6500 | |
3ed497fc BP |
811 | advance 250 |
812 | ||
813 | ### t=7250 ### | |
814 | in ACTIVE for 750 ms (2000 ms backoff) | |
3ed497fc | 815 | run |
a6f639f8 BP |
816 | activity |
817 | created 1000, last activity 7250, last connected 6500 | |
3ed497fc BP |
818 | |
819 | # Connection drops. | |
820 | disconnected | |
821 | in BACKOFF for 0 ms (4000 ms backoff) | |
822 | 1 successful connections out of 3 attempts, seqno 2 | |
5eda645e | 823 | disconnected |
eba18f00 | 824 | disconnected at 7250 ms (0 ms ago) |
3ed497fc BP |
825 | run |
826 | ||
827 | # Back off for 4000 ms. | |
828 | timeout | |
829 | advance 4000 ms | |
830 | ||
831 | ### t=11250 ### | |
832 | in BACKOFF for 4000 ms (4000 ms backoff) | |
5eda645e | 833 | last connected 4750 ms ago, connected 750 ms total |
3ed497fc BP |
834 | run |
835 | should connect | |
836 | ]) | |
3ed497fc BP |
837 | |
838 | ###################################################################### | |
d1b680c6 BP |
839 | RECONNECT_CHECK([long connection resets backoff], |
840 | [enable | |
3ed497fc BP |
841 | |
842 | # First connection attempt fails after 1000 ms. | |
843 | run | |
844 | connecting | |
845 | run | |
846 | timeout | |
847 | run | |
848 | connect-failed | |
849 | ||
850 | # Back off for 1000 ms. | |
851 | timeout | |
852 | run | |
853 | ||
854 | # Second connection attempt fails after 1000 ms. | |
855 | connecting | |
856 | timeout | |
857 | run | |
858 | connect-failed | |
859 | ||
860 | # Back off for 2000 ms. | |
861 | timeout | |
862 | run | |
863 | ||
864 | # Third connection attempt succeeds after 500 ms. | |
865 | connecting | |
866 | advance 500 | |
867 | run | |
868 | connected | |
869 | ||
870 | # Connection receives 3 chunks of data spaced 2000 ms apart. | |
871 | advance 2000 | |
872 | run | |
a6f639f8 | 873 | activity |
3ed497fc BP |
874 | advance 2000 |
875 | run | |
a6f639f8 | 876 | activity |
3ed497fc BP |
877 | advance 2000 |
878 | run | |
a6f639f8 | 879 | activity |
3ed497fc BP |
880 | |
881 | # Connection drops. | |
882 | disconnected | |
883 | run | |
884 | ||
885 | # Back off for 1000 ms. | |
886 | timeout | |
887 | run | |
d1b680c6 | 888 | ], |
3ed497fc BP |
889 | [### t=1000 ### |
890 | enable | |
891 | in BACKOFF for 0 ms (0 ms backoff) | |
892 | ||
893 | # First connection attempt fails after 1000 ms. | |
894 | run | |
895 | should connect | |
896 | connecting | |
c36cf65e | 897 | in CONNECTING for 0 ms (0 ms backoff) |
3ed497fc | 898 | run |
3ed497fc BP |
899 | timeout |
900 | advance 1000 ms | |
901 | ||
902 | ### t=2000 ### | |
c36cf65e | 903 | in CONNECTING for 1000 ms (0 ms backoff) |
3ed497fc BP |
904 | run |
905 | should disconnect | |
906 | connect-failed | |
907 | in BACKOFF for 0 ms (1000 ms backoff) | |
908 | 0 successful connections out of 1 attempts, seqno 0 | |
909 | ||
910 | # Back off for 1000 ms. | |
911 | timeout | |
912 | advance 1000 ms | |
913 | ||
914 | ### t=3000 ### | |
915 | in BACKOFF for 1000 ms (1000 ms backoff) | |
916 | run | |
917 | should connect | |
918 | ||
919 | # Second connection attempt fails after 1000 ms. | |
920 | connecting | |
c36cf65e | 921 | in CONNECTING for 0 ms (1000 ms backoff) |
3ed497fc BP |
922 | timeout |
923 | advance 1000 ms | |
924 | ||
925 | ### t=4000 ### | |
c36cf65e | 926 | in CONNECTING for 1000 ms (1000 ms backoff) |
3ed497fc BP |
927 | run |
928 | should disconnect | |
929 | connect-failed | |
930 | in BACKOFF for 0 ms (2000 ms backoff) | |
931 | 0 successful connections out of 2 attempts, seqno 0 | |
932 | ||
933 | # Back off for 2000 ms. | |
934 | timeout | |
935 | advance 2000 ms | |
936 | ||
937 | ### t=6000 ### | |
938 | in BACKOFF for 2000 ms (2000 ms backoff) | |
939 | run | |
940 | should connect | |
941 | ||
942 | # Third connection attempt succeeds after 500 ms. | |
943 | connecting | |
c36cf65e | 944 | in CONNECTING for 0 ms (2000 ms backoff) |
3ed497fc BP |
945 | advance 500 |
946 | ||
947 | ### t=6500 ### | |
c36cf65e | 948 | in CONNECTING for 500 ms (2000 ms backoff) |
3ed497fc | 949 | run |
3ed497fc BP |
950 | connected |
951 | in ACTIVE for 0 ms (2000 ms backoff) | |
a6f639f8 | 952 | created 1000, last activity 1000, last connected 6500 |
3ed497fc | 953 | 1 successful connections out of 3 attempts, seqno 1 |
5eda645e AE |
954 | connected |
955 | last connected 0 ms ago, connected 0 ms total | |
3ed497fc BP |
956 | |
957 | # Connection receives 3 chunks of data spaced 2000 ms apart. | |
958 | advance 2000 | |
959 | ||
960 | ### t=8500 ### | |
961 | in ACTIVE for 2000 ms (2000 ms backoff) | |
3ed497fc | 962 | run |
a6f639f8 BP |
963 | activity |
964 | created 1000, last activity 8500, last connected 6500 | |
3ed497fc BP |
965 | advance 2000 |
966 | ||
967 | ### t=10500 ### | |
968 | in ACTIVE for 4000 ms (2000 ms backoff) | |
3ed497fc | 969 | run |
a6f639f8 BP |
970 | activity |
971 | created 1000, last activity 10500, last connected 6500 | |
3ed497fc BP |
972 | advance 2000 |
973 | ||
974 | ### t=12500 ### | |
975 | in ACTIVE for 6000 ms (2000 ms backoff) | |
3ed497fc | 976 | run |
a6f639f8 BP |
977 | activity |
978 | created 1000, last activity 12500, last connected 6500 | |
3ed497fc BP |
979 | |
980 | # Connection drops. | |
981 | disconnected | |
982 | in BACKOFF for 0 ms (1000 ms backoff) | |
983 | 1 successful connections out of 3 attempts, seqno 2 | |
5eda645e | 984 | disconnected |
eba18f00 | 985 | disconnected at 12500 ms (0 ms ago) |
3ed497fc BP |
986 | run |
987 | ||
988 | # Back off for 1000 ms. | |
989 | timeout | |
990 | advance 1000 ms | |
991 | ||
992 | ### t=13500 ### | |
993 | in BACKOFF for 1000 ms (1000 ms backoff) | |
5eda645e | 994 | last connected 7000 ms ago, connected 6000 ms total |
3ed497fc BP |
995 | run |
996 | should connect | |
997 | ]) | |
3ed497fc BP |
998 | |
999 | ###################################################################### | |
d1b680c6 BP |
1000 | RECONNECT_CHECK([connection attempt fails quickly], |
1001 | [enable | |
3ed497fc BP |
1002 | |
1003 | # Connection fails quickly. | |
1004 | run | |
1005 | connect-failed ECONNREFUSED | |
1006 | ||
1007 | # Back off for 1000 ms. | |
1008 | run | |
1009 | timeout | |
1010 | ||
1011 | # Connection fails quickly again. | |
1012 | run | |
1013 | connect-failed ECONNREFUSED | |
1014 | ||
1015 | # Back off for 2000 ms. | |
1016 | run | |
1017 | timeout | |
d1b680c6 BP |
1018 | ], |
1019 | [### t=1000 ### | |
3ed497fc BP |
1020 | enable |
1021 | in BACKOFF for 0 ms (0 ms backoff) | |
1022 | ||
1023 | # Connection fails quickly. | |
1024 | run | |
1025 | should connect | |
1026 | connect-failed ECONNREFUSED | |
1027 | in BACKOFF for 0 ms (1000 ms backoff) | |
1028 | 0 successful connections out of 1 attempts, seqno 0 | |
1029 | ||
1030 | # Back off for 1000 ms. | |
1031 | run | |
1032 | timeout | |
1033 | advance 1000 ms | |
1034 | ||
1035 | ### t=2000 ### | |
1036 | in BACKOFF for 1000 ms (1000 ms backoff) | |
1037 | ||
1038 | # Connection fails quickly again. | |
1039 | run | |
1040 | should connect | |
1041 | connect-failed ECONNREFUSED | |
1042 | in BACKOFF for 0 ms (2000 ms backoff) | |
1043 | 0 successful connections out of 2 attempts, seqno 0 | |
1044 | ||
1045 | # Back off for 2000 ms. | |
1046 | run | |
1047 | timeout | |
1048 | advance 2000 ms | |
1049 | ||
1050 | ### t=4000 ### | |
1051 | in BACKOFF for 2000 ms (2000 ms backoff) | |
1052 | ]) | |
3ed497fc | 1053 | |
5ee527e2 BP |
1054 | ###################################################################### |
1055 | RECONNECT_CHECK([backoff-free tries work], | |
1056 | [set-backoff-free-tries 2 | |
1057 | enable | |
1058 | ||
1059 | # Connection fails quickly. | |
1060 | run | |
1061 | connect-failed ECONNREFUSED | |
1062 | ||
1063 | # No backoff. | |
1064 | run | |
1065 | timeout | |
1066 | ||
1067 | # Connection fails quickly again. | |
1068 | run | |
1069 | connect-failed ECONNREFUSED | |
1070 | ||
1071 | # Back off for 1000 ms. | |
1072 | run | |
1073 | timeout | |
1074 | ], | |
1075 | [### t=1000 ### | |
1076 | set-backoff-free-tries 2 | |
1077 | enable | |
1078 | in BACKOFF for 0 ms (0 ms backoff) | |
1079 | ||
1080 | # Connection fails quickly. | |
1081 | run | |
1082 | should connect | |
1083 | connect-failed ECONNREFUSED | |
1084 | 0 successful connections out of 1 attempts, seqno 0 | |
1085 | ||
1086 | # No backoff. | |
1087 | run | |
1088 | should connect | |
1089 | timeout | |
1090 | advance 0 ms | |
1091 | ||
1092 | # Connection fails quickly again. | |
1093 | run | |
1094 | should connect | |
1095 | connect-failed ECONNREFUSED | |
1096 | in BACKOFF for 0 ms (1000 ms backoff) | |
1097 | 0 successful connections out of 2 attempts, seqno 0 | |
1098 | ||
1099 | # Back off for 1000 ms. | |
1100 | run | |
1101 | timeout | |
1102 | advance 1000 ms | |
1103 | ||
1104 | ### t=2000 ### | |
1105 | in BACKOFF for 1000 ms (1000 ms backoff) | |
1106 | ]) | |
1107 | ||
a85c0bbc | 1108 | ###################################################################### |
d1b680c6 | 1109 | RECONNECT_CHECK([max-tries of 1 honored], |
fcf281b0 BP |
1110 | [receive-attempted LLONG_MAX |
1111 | set-max-tries 1 | |
a85c0bbc BP |
1112 | enable |
1113 | ||
1114 | # Connection succeeds. | |
1115 | run | |
1116 | connected | |
1117 | ||
1118 | # Send inactivity probe. | |
1119 | timeout | |
1120 | run | |
1121 | ||
1122 | # Idle timeout kills connection. | |
1123 | timeout | |
1124 | run | |
1125 | disconnected | |
d1b680c6 | 1126 | ], |
a85c0bbc | 1127 | [### t=1000 ### |
fcf281b0 | 1128 | receive-attempted LLONG_MAX |
a85c0bbc BP |
1129 | set-max-tries 1 |
1130 | 1 tries left | |
1131 | enable | |
1132 | in BACKOFF for 0 ms (0 ms backoff) | |
1133 | 0 tries left | |
1134 | ||
1135 | # Connection succeeds. | |
1136 | run | |
1137 | should connect | |
1138 | connected | |
1139 | in ACTIVE for 0 ms (0 ms backoff) | |
a6f639f8 | 1140 | created 1000, last activity 1000, last connected 1000 |
a85c0bbc | 1141 | 1 successful connections out of 1 attempts, seqno 1 |
5eda645e AE |
1142 | connected |
1143 | last connected 0 ms ago, connected 0 ms total | |
a85c0bbc BP |
1144 | |
1145 | # Send inactivity probe. | |
1146 | timeout | |
1147 | advance 5000 ms | |
1148 | ||
1149 | ### t=6000 ### | |
1150 | in ACTIVE for 5000 ms (0 ms backoff) | |
a85c0bbc BP |
1151 | run |
1152 | should send probe | |
1153 | in IDLE for 0 ms (0 ms backoff) | |
1154 | ||
1155 | # Idle timeout kills connection. | |
1156 | timeout | |
1157 | advance 5000 ms | |
1158 | ||
1159 | ### t=11000 ### | |
1160 | in IDLE for 5000 ms (0 ms backoff) | |
a85c0bbc BP |
1161 | run |
1162 | should disconnect | |
1163 | disconnected | |
5ee527e2 | 1164 | in VOID for 0 ms (0 ms backoff) |
a85c0bbc | 1165 | 1 successful connections out of 1 attempts, seqno 2 |
5eda645e | 1166 | disconnected |
eba18f00 | 1167 | disconnected at 11000 ms (0 ms ago) |
a85c0bbc | 1168 | ]) |
a85c0bbc BP |
1169 | |
1170 | ###################################################################### | |
d1b680c6 BP |
1171 | RECONNECT_CHECK([max-tries of 0 honored], |
1172 | [set-max-tries 0 | |
a85c0bbc BP |
1173 | enable |
1174 | run | |
1175 | timeout | |
d1b680c6 | 1176 | ], |
a85c0bbc BP |
1177 | [### t=1000 ### |
1178 | set-max-tries 0 | |
1179 | 0 tries left | |
1180 | enable | |
1181 | run | |
1182 | timeout | |
1183 | no timeout | |
1184 | ]) | |
19df7f51 BP |
1185 | |
1186 | ###################################################################### | |
d1b680c6 BP |
1187 | RECONNECT_CHECK([passive mode], |
1188 | [passive | |
19df7f51 BP |
1189 | enable |
1190 | ||
1191 | # Start listening. | |
1192 | timeout | |
1193 | run | |
1194 | listening | |
1195 | ||
1196 | # Listening never times out. | |
1197 | timeout | |
1198 | run | |
1199 | ||
1200 | # Listening failed (accept() returned funny error?). Back off and try again. | |
1201 | listen-error 0 | |
1202 | timeout | |
1203 | run | |
1204 | listening | |
1205 | ||
1206 | # Connection accepted. | |
1207 | connected | |
a6f639f8 | 1208 | activity |
19df7f51 | 1209 | advance 1000 |
a6f639f8 | 1210 | activity |
19df7f51 BP |
1211 | |
1212 | # Connection times out. | |
1213 | timeout | |
fcf281b0 BP |
1214 | receive-attempted LLONG_MAX |
1215 | timeout | |
19df7f51 BP |
1216 | run |
1217 | timeout | |
1218 | run | |
1219 | disconnected | |
1220 | ||
1221 | # Start listening again. | |
1222 | timeout | |
1223 | run | |
1224 | listening | |
d1b680c6 | 1225 | ], |
19df7f51 BP |
1226 | [### t=1000 ### |
1227 | passive | |
1228 | enable | |
1229 | in BACKOFF for 0 ms (0 ms backoff) | |
1230 | ||
1231 | # Start listening. | |
1232 | timeout | |
1233 | advance 0 ms | |
1234 | run | |
1235 | should connect | |
1236 | listening | |
1237 | in LISTENING for 0 ms (0 ms backoff) | |
1238 | ||
1239 | # Listening never times out. | |
1240 | timeout | |
1241 | no timeout | |
1242 | run | |
1243 | ||
1244 | # Listening failed (accept() returned funny error?). Back off and try again. | |
1245 | listen-error 0 | |
1246 | in BACKOFF for 0 ms (1000 ms backoff) | |
1247 | timeout | |
1248 | advance 1000 ms | |
1249 | ||
1250 | ### t=2000 ### | |
1251 | in BACKOFF for 1000 ms (1000 ms backoff) | |
1252 | run | |
1253 | should connect | |
1254 | listening | |
1255 | in LISTENING for 0 ms (1000 ms backoff) | |
1256 | ||
1257 | # Connection accepted. | |
1258 | connected | |
1259 | in ACTIVE for 0 ms (1000 ms backoff) | |
a6f639f8 | 1260 | created 1000, last activity 1000, last connected 2000 |
19df7f51 | 1261 | 1 successful connections out of 1 attempts, seqno 1 |
5eda645e AE |
1262 | connected |
1263 | last connected 0 ms ago, connected 0 ms total | |
a6f639f8 BP |
1264 | activity |
1265 | created 1000, last activity 2000, last connected 2000 | |
19df7f51 BP |
1266 | advance 1000 |
1267 | ||
1268 | ### t=3000 ### | |
1269 | in ACTIVE for 1000 ms (1000 ms backoff) | |
a6f639f8 BP |
1270 | activity |
1271 | created 1000, last activity 3000, last connected 2000 | |
19df7f51 BP |
1272 | |
1273 | # Connection times out. | |
fcf281b0 BP |
1274 | timeout |
1275 | no timeout | |
1276 | receive-attempted LLONG_MAX | |
19df7f51 BP |
1277 | timeout |
1278 | advance 5000 ms | |
1279 | ||
1280 | ### t=8000 ### | |
1281 | in ACTIVE for 6000 ms (1000 ms backoff) | |
19df7f51 BP |
1282 | run |
1283 | should send probe | |
1284 | in IDLE for 0 ms (1000 ms backoff) | |
1285 | timeout | |
1286 | advance 5000 ms | |
1287 | ||
1288 | ### t=13000 ### | |
1289 | in IDLE for 5000 ms (1000 ms backoff) | |
19df7f51 BP |
1290 | run |
1291 | should disconnect | |
1292 | disconnected | |
1293 | in BACKOFF for 0 ms (0 ms backoff) | |
1294 | 1 successful connections out of 1 attempts, seqno 2 | |
5eda645e | 1295 | disconnected |
eba18f00 | 1296 | disconnected at 13000 ms (0 ms ago) |
19df7f51 BP |
1297 | |
1298 | # Start listening again. | |
1299 | timeout | |
1300 | advance 0 ms | |
1301 | run | |
1302 | should connect | |
1303 | listening | |
1304 | in LISTENING for 0 ms (0 ms backoff) | |
1305 | ]) |