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 211
|
2013-11-22 George Neville-Neil <gnn@neville-neil.com>, Wojciech Owczarek <wojciech@owczarek.co.uk>
* 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 <gnn@neville-neil.com>
* 2.2.2 release
* Leap second fix
2012-01-05 George Neville-Neil <gnn@neville-neil.com>
* 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 <gnn@neville-neil.com>
* 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 <gnn@neville-neil.com>
* 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.
|