[][src]Constant nc::types::SHIFT_PLL

pub const SHIFT_PLL: i32

SHIFT_PLL is used as a dampening factor to define how much we adjust the frequency correction for a given offset in PLL mode. It also used in dampening the offset correction, to define how much of the current value in time_offset we correct for each second. Changing this value changes the stiffness of the ntp adjustment code. A lower value makes it more flexible, reducing NTP convergence time. A higher value makes it stiffer, increasing convergence time, but making the clock more stable.

In David Mills' nanokernel reference implementation SHIFT_PLL is 4. However this seems to increase convergence time much too long.

https://lists.ntp.org/pipermail/hackers/2008-January/003487.html

In the above mailing list discussion, it seems the value of 4 was appropriate for other Unix systems with HZ=100, and that SHIFT_PLL should be decreased as HZ increases. However, Linux's clock steering implementation is HZ independent.

Through experimentation, a SHIFT_PLL value of 2 was found to allow for fast convergence (very similar to the NTPv3 code used prior to v2.6.19), with good clock stability.

SHIFT_FLL is used as a dampening factor to define how much we adjust the frequency correction for a given offset in FLL mode. In David Mills' nanokernel reference implementation SHIFT_FLL is 2.

MAXTC establishes the maximum time constant of the PLL. PLL frequency factor (shift)