-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog
211 lines (174 loc) · 9.6 KB
/
ChangeLog
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
2013-11-22 George Neville-Neil <[email protected]>, Wojciech Owczarek <[email protected]>
* 2.3.0 release
* New Features:
- IEEE 802.3 Support
- Support for reading from the Berkeley Packet Filter, resulting in lower jitter
- Configuration file support, multiple previously unsupported options
- Rewritten command line parameter handling, new parameters
- Command line options to print default configuration, print lock file, check configuration and more,
- Full help (-H) for all configuration options,
- Configuration reload support with SIGHUP,
- Rewritten logging subsystem,
- Separate log file and statistics file, SIGHUP reprints the headers
- Support for mode and interface specific lock files
- Network interface checks before startup and during config reload
- Added ./configure --sigusr2=counters - will dump PTP engine countersto current log target when SIGUSR2 received
- Support for presets - groups of PTP protocol options defining ptpd behaviour
presets available: slaveonly, masteronly, masterslave
- Support for tick adjustment as well as frequency
maximum frequency offset is now configurable and can be above 512 ppm - tick is used above 512 ppm,
- Added a compatibility option to always honour the UTC offset announced by a GM when in slave state
- Added an announce receipt timeout "grace period" for slave state
slave can wait n times timeout without fully resetting
allows a seamless failover without resetting delay values etc.,
- Added support for DELAY_DISABLED delay mode - syntonisation only
- Initial support for informing the clock subsystem about the sync status
STA_UNSYNC is unset when adjusting the clock (allows syncing hardware RTC clocks with the system clock)
also maxerror and esterror are set,
- Support for RTC clock control on Linux
- Support for legacy command line switches from previous versions
- Configurable log level for normal logs, not only debug logs.
- Generic log file handler mechanism with a simple built-in logrotate implementation
for each log file container you can specify max size and max number of files
- Extensive support for realtime statistics
online long term statistics and moving statistics
mean and std dev.
Some new features included depend on statistics support, enabled with the --enable-statistics
configure switch. Statistics rely on double precision so may be disabled for simple embedded systems
- Outlier filters based on Peirce's criterion
blocks / filters spikes from delayMS and delaySM
- Generic PI controler model
- P and I components changed from attenuations to gains
- Double precision servo allows for tighter clock control
- Clock stabilisation detection based on the standard dev of observed drift
- Clock "calibration delay"
allows a configurable delay between seeing a GM for the first time and enabling clock control
- Realtime statistics - mean and std dev of one-way delay, ofm and observed drift
- Status file: one-screen dump of information about the current state of ptpd, updated in configurable intervals.
- Support for "panic mode"
if ptpd sees offset from master above 1 second, it will pause clock updates for a given amount of time
- NTPd integration and failover
ptpd can now connect to local ntpd using mode 7 packets (code derived from ntpdc)
and using authenticated requests can enable/disable ntpd clock control.
Enable with configure --enable-ntpdc
- Dump counters + clear counters using a SIGUSR2 handler to dump all counters to the log file
configure --enable-sigusr2=counters
- Support for ACLs for management and timing messages
- Basic support for SO_TIMESTAMPING (RX, TX) on Linux
- Support for non-Ethernet interfaces on Linux (Infiniband, GRE etc.)
- Support for offset / delay asymmetry correction
- Ptpd can now prefer or require GMs with valid UTC time
- Support for setting IP DSCP values
- Periodic IGMP joins also in master mode - improved robustness against network port failures
- Support for binding PTPd to a CPU core
- Control over tick rate on Linux, allowing faster clock slewing if needed
* Bug fixes:
- TTL no longer defaults to 64 in P2P mode - in P2P it's set to 1,
- Fixed an issue whereby observed drift would be reset to 0 if it
could not be read from the drift file (empty or nonexistent drift file),
now the kernel value is used if read from file fails.
- Support for updating utmp/wtmp when stepping the clock (FR #38)
- Mean Path Delay filtering now done in float (patch #49)
- Multiple other SourceForge bugs closed: Bugs closed:
#25, #34, #26, #42, #39, #33, #46, #45, #28,
#27, #48, #54, #47, #40, #37, #53, #50, #52, #59, #60
* Cleanups and other changes:
- Major startup.c cleanup, removed the parallel daemon checks,
in favour of better lock handling and the automatic lock file
name support,
- Some minor refactoring,
- Added a TimePropertiesDS structure and removed its fields
from PtpClock
- Improved log file format with full date and interface name,
removed the "===" indents
- Delay Request interval no longer mandatory in hybrid mode,
but a warning will be issued if it's not explicitly defined -
default of 0 is used,
- Removed the experimental status of hybrid mode,
- Manual stepping of the clock no longer just resets the observed
drift: resets it or restores it based on the drift handling setting,
and sets the time immediately before writing any logs - this allows
to re-sync and stabilise time almost instantly
- Up to date man pages written
2012-06-20 George Neville-Neil <[email protected]>
* 2.2.2 release
* Leap second fix
2012-01-05 George Neville-Neil <[email protected]>
* 2.2.0 release
* Patches: 3134556, 3296405
* Added support for Mac OS X (tested on Snow Leopard and Lion)
* Protocol implementation Fixes:
* Bugs Fixed
- Client now correctly accepts the Master DelayReq rate
- DelayMS and delaySM now correctly show the sign when negative
- Sanity Flags: client now requires -g or -G for slave/master operation.
- Client can print the MAC address of its master (instead of EEUI)
- master now sends ARB timescale only with utc_offset of zero
- slave now only uses the last UTC_Offset if UTC_Valid bit is on.
- passive masters no longer become active every 12s,
- first delayreq is postponed until we receive the first sync
- -G (master with ntpd) now announces a better clock class of 13
- delayReq period is now uniformly randomized from range
- updated to the PTPv2 messages rates (sync / delayreq / announce )
- operator is warned once when the we slew the clock at maximum speed
- and several others too minor too mention
* System fixes and new features
- Frequency adjustment is now calculated in double precision
- Kernel timestamps are now in nanoseconds precision
- Timer system overhead was reduced to 16 alarms per second (was 1000)
- each reset now generates an IGMP leave/join operation to
the multicast group
- Log file is now appended, with the right permissions
- Debug messages show a timestamp
- Signals are now processed synchronously (to avoid race conditions)
- Configurable amount of logging (to avoid filling up /var/log)
- client now checks own filelock, $0 and well-known daemons.
- unicast messages can use DNS
- syslog support (-S)
- quality file can be generated with received syncs (-R)
- messages can be dumped for debug (-P)
- gnore packets that result in large deltas (-M)
- SIGUSR1 now steps the clock to the current PTP offset
- SIGUSR2 now cycles the domain number (useful for testing)
- reverted R135 timer change from integer back to floating point
- rand() is now seeded with last digits of our own mac address
- IGMP_refresh waits 100ms between drop() and add()
- checked to run without leaks inside valgrind 3.5.0
- last message received is identified by a column on the statistics log
- messages are sent to Syslog by default. reversed -S flag
- statistcs file now display /etc/ethers names (besides mac address)
- option -C is console mode with full verbosity
- startup warnings are also duplicated in stdout
- startup: lockfile is checked twice: once at init, to return
correct errorlevel, and a second time after deaemon()
- check for root uid()
- improvements in parallel daemons checking
- command line parameters are dumped at init
- Set the unicast flag when sending unicast packets
(experimental, hybrid mode only).
- Reimplemented integer64_to_internalTime not to use doubles
- Replaced divTime by div2Time
- Replaced all time.seconds = time.nanoseconds = 0 by clearTime(&time)
- Replaced all hex values by named flags
- Optimized comparison of clockIdentity in bmc.c
- Resolved issue of comparison of offsetScaledLogVariance
- Optimized bmcStateDecision not to call bmcDataSetComparison so often with the same parameters
- displayStats now uses getTime instead of gettimeofday
2011-02-01 George Neville-Neil <[email protected]>
* Add support for DNS lookup of timeserver for unicast.
* Add support for unicasting delay requests.
* Add code to dump packets on demand via the -P flag as well as in
response to updates that violate either the -M or -O flags.
2010-10-12 George Neville-Neil <[email protected]>
* 2.1.0 First main line release of PTPv2 code base
(IEEE-1588-2008)
* Add code to limit how much of an offset or delay the client is
willing to tolerate.
* Add support for BINTIME on FreeBSD which gives more accurate
packet timestamps.
* Add quality file support
* Fix significant bugs that prevented correct operation in
End-to-End mode.
* Add support for syslog.
* Add support for user configurable TTL.
* Clean up code formatting, headers, comments etc.