Pivoting (or rather missing pivot)

Gary E. Miller gem at rellim.com
Fri Apr 28 08:09:36 UTC 2017

Yo Hal!

On Thu, 27 Apr 2017 13:07:58 -0700
Hal Murray <hmurray at megapathdsl.net> wrote:

> >> Which problem do you think we are discussing?  
> > The bad reversion is what I am discussing.   
>  OK.

And yet your next comment is out of that scope.

> >> step_system works as you describe it.  The problem is that it is
> >> being fed bad data.  
> > Really?  Can you detail your assertion?   
> How about an example?
> System time is 1970.  Server time is 2037, which gets truncated and
> turns into 1901
> Subtract gives an offset of -69

Yes, but that happens way before step_systime() and local_loop(),
thus out of scope for this discussion: the bad reversion.

> > No.  It thinks it does a pivot, but you never pivot an offset, only
> > a timestaamp.   
> Get the currect system time.  Add the offset.  Now you have a
> timestamp for the new system time.  Pivot that.

That is what step_systime() does, minus the pivot.  Best not to pivot
in step_systime() because it is passed an offset, not an l_fp, and
the offset may have been calculated from GPS that never saw an NTP_EPOCH.

> Using the above example, the new time would be 1901 which is before
> the build date so add 136 years to get 2037, the server time that we
> want.

Which is why the pivot should have happened long before local_loop)(
got called.

> >                    When you subtract one timestamp (with the
> > implicit term NTP_EPOCH) from another timestamp (with th eimplicit
> > NTP_EPOCH) then you have removed the term NTP_EPOCH.   
> Right.  But in the l_fp case, one or both of the timestamps may have
> been truncated.

And since you don't know one or both, or none, that has to be done
where that knowledge still exists.  Before local_loop().

> The nasty cases are one truncation and no overflow or overflow with
> no truncation.

Yes, nasty, so need to be taken care of, in the proper place.  Before

> > See above.  No pivot needed.  Subtracting one timestamp from
> > another removes any constant that is in both terms.   
> Right.  But it doesn't magically fix unmatched truncations or
> overflows in the subtract.

Not did I ever claim it did, I claim that should be handled before
local_loop() which is before step_systime().

We'll have to table this for a week, I'm now at Penguicon...

I'm giving up that we can intellectualize this, people can't stay
focused on one issue, we keepp going around in circles.  We need to
figure out a way to wrap local_loop() and what it calls, so tests
can be run.

Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97703
	gem at rellim.com  Tel:+1 541 382 8588

	    Veritas liberabit vos. -- Quid est veritas?
    "If you can’t measure it, you can’t improve it." - Lord Kelvin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ntpsec.org/pipermail/devel/attachments/20170428/d7864786/attachment.bin>

More information about the devel mailing list