In symmetric mode, don't send a packet in interleaved mode unless it is the first response to the last valid request received from the peer and there was just one response to the previous valid request. This prevents the peer from matching the transmit timestamp with an older response if it can't detect missed responses.
37 lines
808 B
Bash
Executable file
37 lines
808 B
Bash
Executable file
#!/bin/bash
|
|
|
|
. ./test.common
|
|
test_start "interleaved mode"
|
|
|
|
client_server_options="xleave"
|
|
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_source_selection || test_fail
|
|
check_packet_interval || test_fail
|
|
check_sync || test_fail
|
|
|
|
clients=2
|
|
peers=2
|
|
max_sync_time=500
|
|
base_delay="(+ 1e-4 (* -1 (equal 0.1 from 2) (equal 0.1 to 1)))"
|
|
|
|
client_lpeer_options="xleave minpoll 5 maxpoll 5"
|
|
client_rpeer_options="minpoll 5 maxpoll 5"
|
|
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
# These checks are expected to fail
|
|
check_source_selection && test_fail
|
|
check_sync && test_fail
|
|
|
|
for rpoll in 4 5 6; do
|
|
client_rpeer_options="xleave minpoll $rpoll maxpoll $rpoll"
|
|
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_source_selection || test_fail
|
|
check_sync || test_fail
|
|
done
|
|
|
|
test_pass
|