Miroslav Lichvar
a646cf7923
logging: convert rate limited messages to debug messages
2014-06-04 12:26:27 +02:00
Miroslav Lichvar
3f3ebd3b3b
ntp: update comment in get_transmit_delay()
2014-06-03 18:10:27 +02:00
Miroslav Lichvar
3ebebac695
ntp: reset NCR instance thoroughly when switching to offline
2014-06-02 16:46:53 +02:00
Miroslav Lichvar
779e40ed66
ntp: delay initial transmission until first resolving ends
...
This will be needed to prevent loading of dump files after sources have
already accumulated samples and possibly reference was already updated
when async resolving of sources is implemented.
2014-04-29 12:42:45 +02:00
Miroslav Lichvar
08faca03b7
ntp: close client socket when offline
2014-04-10 18:02:29 +02:00
Miroslav Lichvar
3217421797
ntp: close only client socket when destroying NCR instance
2014-04-10 17:50:24 +02:00
Miroslav Lichvar
8671002bd7
sources: add flag that source is active
...
When source is set as active, it's receiving reachability updates (e.g.
offline NTP sources are not active).
Also add function to count active sources.
2014-04-10 17:48:58 +02:00
Miroslav Lichvar
bc6b40568d
ntp: reduce burst timeout to 2.0
...
With the new special mode ending it can be now equal to the burst
polling interval.
2014-04-10 17:16:30 +02:00
Miroslav Lichvar
60d8586b6d
ntp: reduce burst timeout to 2.5 seconds
...
This reduces the maximum time initstepslew can take.
2014-04-09 09:59:58 +02:00
Miroslav Lichvar
70928dba52
ntp: set maximum number of iburst samples to size of reach register
...
Explicitly set the number of iburst samples to the size of the register
to make sure there are at least 7 reachability updates and the
initstepslew mode can be ended.
2014-04-09 09:59:57 +02:00
Miroslav Lichvar
0094128ca6
sources: split source selection from sample accumulation
...
This will allow postponing source selection and reference update, which
could be useful in burst modes.
2014-04-08 17:00:47 +02:00
Miroslav Lichvar
73e4986866
ntp: fix comment on NCR_ProcessUnknown
2014-03-26 11:24:25 +01:00
Miroslav Lichvar
91e74c704b
ntp: accept packets from unknown sources only from server sockets
2014-03-26 11:18:18 +01:00
Miroslav Lichvar
cf12d72f21
ntp: use separate connected sockets for each server
...
If acquisitionport is set to 0 (default), create and connect a new
socket for each server instead of using one socket per address family
for all servers.
2014-03-25 15:27:18 +01:00
Miroslav Lichvar
f2c4ab09a8
ntp: check if packet was received by right socket
2014-03-25 15:24:38 +01:00
Miroslav Lichvar
9a657cd4a3
ntp: store socket in NTP instance
...
This is preparation for separate client sockets.
2014-03-25 15:22:59 +01:00
Miroslav Lichvar
308de81221
ntp: split local_ip_addr from NTP_Remote_Address struct
2014-03-25 11:34:35 +01:00
Miroslav Lichvar
7aa4bbf621
ntp: set minpoll from received KoD RATE at most to 10
...
Limit changing minpoll to a reasonable maximum in case the server is
broken or temporarily misconfigured.
2014-03-21 15:32:14 +01:00
Miroslav Lichvar
5afddad0d2
ntp: print warning when source is added with unknown key
2014-03-21 14:36:51 +01:00
Miroslav Lichvar
0380cf0c76
ntp: reset negative minpoll or maxpoll to default values
2014-03-21 13:25:14 +01:00
Miroslav Lichvar
8d02e5f680
ntp: make use of NCR_ProcessUnknown in NCR_ProcessKnown
...
After recent changes the code in NCR_ProcessKnown is now identical and
can be replaced with NCR_ProcessUnknown call.
2014-03-21 13:20:34 +01:00
Miroslav Lichvar
f9e2213afd
ntp: don't store tx time stamp when replying to known source
2014-03-21 13:20:31 +01:00
Miroslav Lichvar
8b362ba3e7
ntp: don't reply to known source if missing key or invalid auth
...
This is now similar to replying to unknown sources.
2014-03-21 13:20:29 +01:00
Miroslav Lichvar
a26058d425
ntp: don't send requests with unknown key
...
There is no point in sending a request if the configured key is missing.
A reply would be ignored anyway.
2014-03-21 13:20:27 +01:00
Miroslav Lichvar
c14b81f3a9
ntp: remove unnecessary KEY_KeyKnown calls
2014-03-21 13:20:25 +01:00
Miroslav Lichvar
54211f0f6e
Update comment on setting poll in reply packet
2014-01-17 18:10:32 +01:00
Miroslav Lichvar
4b5f465026
Don't allow maxpoll to be set shorter than minpoll
2014-01-17 17:37:07 +01:00
Miroslav Lichvar
8df1bedb1b
Remove forgotten macros
2013-11-27 16:11:19 +01:00
Miroslav Lichvar
1c3aff37de
Convert TRACEON LOG messages to DEBUG_LOG
2013-11-27 14:35:41 +01:00
Miroslav Lichvar
0731cd6950
Fix log messages
2013-11-26 18:41:51 +01:00
Miroslav Lichvar
922e2fe23b
Fix Clang static analyzer warnings about never read values
2013-10-07 17:50:27 +02:00
Miroslav Lichvar
d5b737cce8
Update copyright years
2013-06-19 12:50:26 +02:00
Miroslav Lichvar
9666831818
Use UTI_DiffTimevalsToDouble to calculate theta
2013-06-12 15:30:28 +02:00
Miroslav Lichvar
ff8e04f9ba
Fix fabs use on delay
2013-06-12 15:30:28 +02:00
Miroslav Lichvar
8aa9eb19c8
Remove unnecessary adjtimex calls
2013-06-06 19:38:36 +02:00
Miroslav Lichvar
2ceb3c89ca
Move NTP_int32 conversion functions to util.c
2013-06-05 12:49:47 +02:00
Miroslav Lichvar
32bf32e7d5
Don't use uninitialized value in receive_packet()
2013-06-05 09:56:37 +02:00
Miroslav Lichvar
cce7a5f15e
Improve peer polling in symmetric mode
...
If the remote stratum is higher than ours, try to lock on the peer's
polling to minimize our response time by slightly extending our delay or
waiting for the peer to catch up with us as the random part in the
actual interval is reduced. If the remote stratum is equal to ours, try
to interleave evenly with the peer.
2013-06-05 09:32:20 +02:00
Miroslav Lichvar
288043c13b
Save remote poll only with valid packets
2013-06-04 15:43:59 +02:00
Miroslav Lichvar
78ae4ebfaa
Fix peer polling with shorter remote poll
...
If the remote peer uses a polling interval shorter than the local
minimum, the local peer will be unable to send any packets as the
timeout will be updated on every received valid packet and will never
expire.
Modify the delay calculation to aim at poll interval away since the last
transmit.
Also, share the delay calculation code with transmit_timeout().
2013-06-04 12:52:49 +02:00
Miroslav Lichvar
cf700a0084
Requeue transmit timeout only with valid packets
2013-06-04 12:45:47 +02:00
Miroslav Lichvar
60a25f6e71
Ignore packets from offline sources
...
Rework the logic in transmit_timeout() to change the online status on
the following timeout to allow ignoring packets from offline sources.
2013-06-03 18:57:55 +02:00
Miroslav Lichvar
030e3b2dab
Make receive_packet() more readable
2013-06-03 16:03:07 +02:00
Miroslav Lichvar
5079f6bbff
In burst count only accumulated samples as good
2013-06-03 16:03:07 +02:00
Miroslav Lichvar
afceb9d24e
Slew only non-zero local timestamps in ntp core
2013-06-03 16:03:07 +02:00
Miroslav Lichvar
a2656a20bc
Fix poll timeout with symmetric peer and poll 0
2013-06-03 16:03:05 +02:00
Miroslav Lichvar
359d444343
Remove unncessary return statements
2013-05-21 15:08:34 +02:00
Miroslav Lichvar
ebae435398
Log online/offline status change for burst sources too.
2013-05-15 11:03:18 +02:00
Miroslav Lichvar
73d4eaafbb
Reply to NTPv1 and NTPv2 packets with same version
2013-05-02 11:10:48 +02:00
Miroslav Lichvar
cf00179964
Reply to NTPv1 packets
2013-05-02 11:10:25 +02:00
Miroslav Lichvar
0bb772c575
Fix delta calculation with extreme frequency offsets
...
This should prevent chronyd from getting stuck and refusing new samples
due to failing test4 when the current measured frequency offset is close
to 1.0. That can happen when the system clock is stepped forward behind
chronyd's back.
2013-03-08 14:39:13 +01:00
Miroslav Lichvar
df6c2a432f
Fuzz transmit timestamp
...
Add random bits below clock precision to the timestamp to make
it less predictable.
2012-05-23 12:06:16 +02:00
Miroslav Lichvar
0c738d84af
Update copyright years
2012-02-28 13:11:56 +01:00
Miroslav Lichvar
777303f130
Add support for different authentication hashes
...
Allow different hash functions to be used in the NTP and cmdmon
protocols. This breaks the cmdmon protocol compatibility. Extended key
file format is used to specify the hash functions for chronyd and new
authhash command is added to chronyc. MD5 is the default and the only
function included in the chrony source code, other functions will be
available from libraries.
2011-11-02 13:53:00 +01:00
Miroslav Lichvar
cc3f5962b8
Merge NCR_Process functions
2011-09-01 16:25:13 +02:00
Miroslav Lichvar
5c36342958
Use initial delay also for burst samples
2011-08-26 18:34:00 +02:00
Miroslav Lichvar
27b0b5824a
Disable maxdelayratio test by default
...
Change default maxdelayratio from 16384.0 to 0.0. A value larger
than 1.0 is required to enable the test.
2011-08-12 15:38:05 +02:00
Miroslav Lichvar
1d72d22bc5
Match skew in ntp_core to sourcestats skew
2011-08-12 15:38:05 +02:00
Miroslav Lichvar
1b8547059a
Set leap status by enum
2011-06-13 17:02:42 +02:00
Miroslav Lichvar
91279a0f28
Store reference IDs in uint32_t
2011-06-13 15:34:16 +02:00
Miroslav Lichvar
8cc7ebffa9
Accept packets with compatible NTP versions
...
All incoming NTP packets are now required to have version 2, 3 or 4.
2011-05-25 16:59:40 +02:00
Miroslav Lichvar
da2c8d9076
Use config.h
2011-05-24 18:07:06 +02:00
Miroslav Lichvar
896dad9224
Fix warnings produced by latest gcc
2011-02-15 18:55:34 +01:00
Miroslav Lichvar
e8c5d15690
Remove CVS headers
2011-01-28 12:56:09 +01:00
Miroslav Lichvar
e63cba05b2
Update copyright
2011-01-27 13:05:26 +01:00
Miroslav Lichvar
930a41b845
Don't send packet in last auto_offline transmit timeout
2010-12-17 18:09:10 +01:00
Miroslav Lichvar
323f0d187e
Fix switching offline auto_offline source to online
2010-12-17 18:09:10 +01:00
Miroslav Lichvar
0c4968ec51
Track reachability in sources module
...
Add new flag to source struct to indicate when source is selectable
(packets with good headers are received) and use a reachability
register for last 8 samples instead of the reachable flag. Source
drivers now provide only reachability updates.
2010-12-17 13:22:29 +01:00
Miroslav Lichvar
833022b745
Add small randomness to spacing between samples for one server
2010-12-09 16:06:42 +01:00
Miroslav Lichvar
d1b820e7e3
Shorten initial delay and sampling separation to 0.2 seconds
2010-12-09 15:14:05 +01:00
Miroslav Lichvar
8b93e1a780
Slowly back off sampling rate when selected source loses connectivity
2010-12-07 16:47:57 +01:00
Miroslav Lichvar
4e318c1abc
Require valid_header before accumulating sample
...
Split test7 into two and to accumulate the sample require that all tests
pass, except the one which checks packet stratum is not higher than ours.
Also, don't mark the source as unreachable when only test4c fails.
2010-12-07 16:47:57 +01:00
Miroslav Lichvar
6ed5a65064
Add maxdelaydevratio command
2010-12-07 16:47:57 +01:00
Miroslav Lichvar
b977c95be4
Add test for ratio of increase in delay to stddev
...
Require that the ratio of the increase in delay from the minimum one in
the stats data register to the standard deviation of the offsets in the
register is less than maxdelaydevratio or the difference between
measured offset and predicted offset is larger than the increase in
delay. In the allowed delay increase is included also skew and maximum
clock frequency error.
maxdelaydevratio is 10.0 by default.
2010-12-07 16:47:57 +01:00
Miroslav Lichvar
bed5b72cbe
Add polltarget command
2010-10-14 15:08:35 +02:00
Miroslav Lichvar
7a6ee1d729
Base poll adjustment on number of sourcestats samples
...
Instead of following skew changes, adjust polling interval so that the
number of measurements used in the regression algorithm remains close to
a target value. It can be configured with a new polltarget option
(6 by default).
2010-10-13 16:49:28 +02:00
Miroslav Lichvar
f924862e89
Add prefer and noselect options
2010-08-25 18:32:40 +02:00
Miroslav Lichvar
78300d018a
Add minstratum command
2010-08-25 17:43:17 +02:00
Benny Lyne Amorsen
c8fe69c956
Add minstratum option
...
Stratum in received packets is raised to the configured minimum.
2010-08-25 12:46:14 +02:00
Miroslav Lichvar
6b0198c2d7
Replace all CROAK calls with assert or LOG_FATAL
...
Remove croak() and use assert() or LOG_FATAL() everywhere. Hopefully
the problems with debugging mentioned in the croak() comment are long gone.
2010-08-12 14:30:05 +02:00
Miroslav Lichvar
40d82675bd
Make use of UTI_AdjustTimeval in slew handlers
2010-05-07 18:52:05 +02:00
Miroslav Lichvar
2458325c09
Merge NSR/NCR server and peer functions
2010-04-27 14:35:27 +02:00
Miroslav Lichvar
93b5b08bed
Add iburst server option
2010-04-27 14:35:27 +02:00
Miroslav Lichvar
74cb1c877c
Mark source unreachable after offline burst
2010-04-27 14:35:27 +02:00
Miroslav Lichvar
a949ab6935
Increase burst polling interval
...
To avoid getting KoD RATE from NTP server (triggering discard minimum 1)
when burst sampling, increase polling interval to 2 seconds.
2010-04-27 14:35:27 +02:00
Miroslav Lichvar
f0fd7099c0
Stop burst sampling when received KoD RATE
2010-04-27 14:35:27 +02:00
Miroslav Lichvar
e78e65ef22
Refactor file logging
2010-04-13 15:16:41 +02:00
Miroslav Lichvar
2ea87490f4
Mark offline sources unreachable
2010-04-02 15:55:58 +02:00
Miroslav Lichvar
8cb6fcad7e
Include offset correction error in dispersion
2010-02-16 18:38:46 +01:00
Miroslav Lichvar
20d898d182
Prepare for handling offset correction error
2010-02-16 17:46:42 +01:00
Miroslav Lichvar
032ac800aa
Limit rate of syslog messages
...
Error messages caused by incoming packets need to be rate limited
to avoid filling up disk space.
2010-02-04 13:07:19 +01:00
Miroslav Lichvar
a6e532442b
Initialize local_ntp_tx in ntp_core
...
This fixes another valgrind error.
2010-02-04 12:42:48 +01:00
Miroslav Lichvar
e88af337cd
Don't set NTP source as reachable when reply doesn't have valid data
...
This fixes using uninitialized sourcestats values when selecting source.
2009-11-12 15:07:36 +01:00
Miroslav Lichvar
8e23110aec
Update COPYING and FSF address
2009-10-28 17:53:33 +01:00
Miroslav Lichvar
f7e08d0c30
Update copyrights
2009-10-28 17:53:10 +01:00
Miroslav Lichvar
48b6c2aa6b
Reduce size of NTP sources hash table
...
IPv6 addressing significantly increased size of the table,
keep only pointers to get it back.
2009-10-13 17:16:41 +02:00
Miroslav Lichvar
8265ff2890
Add IPv6 support
2009-10-13 14:44:33 +02:00
Miroslav Lichvar
183d56fd40
Don't use uninitialized values
...
This fixes a bunch or valgrind errors.
2009-10-13 14:43:47 +02:00
Miroslav Lichvar
923c58485f
Add client support for Kiss-of-Death RATE
...
This adds support for RATE code which can be used in reply from NTP
server to reduce client's polling.
2009-06-30 18:01:55 +02:00
Miroslav Lichvar
ac30bb06ef
Add support for reference clocks
2009-05-05 23:05:59 +02:00