ntp: compare receive timestamp when checking for duplicate
Compare both receive and transmit timestamps in the NTP test number 1. This prevents a client from dropping a valid response in the interleaved mode if it follows a response in the basic mode and the server did not have a kernel/hardware transmit timestamp, and the random bits of the two timestamps happen to be the same (chance of 1 in 2^(32-precision)).
This commit is contained in:
parent
2c7ab98370
commit
666ece122e
1 changed files with 2 additions and 1 deletions
|
@ -1495,7 +1495,8 @@ receive_packet(NCR_Instance inst, NTP_Local_Address *local_addr,
|
|||
The test values are 1 when passed and 0 when failed. */
|
||||
|
||||
/* Test 1 checks for duplicate packet */
|
||||
test1 = !!UTI_CompareNtp64(&message->transmit_ts, &inst->remote_ntp_tx);
|
||||
test1 = UTI_CompareNtp64(&message->receive_ts, &inst->remote_ntp_rx) ||
|
||||
UTI_CompareNtp64(&message->transmit_ts, &inst->remote_ntp_tx);
|
||||
|
||||
/* Test 2 checks for bogus packet in the basic and interleaved modes. This
|
||||
ensures the source is responding to the latest packet we sent to it. */
|
||||
|
|
Loading…
Reference in a new issue