<$Eroman pkt.hostport~<<-~roman peer.peerport>;
<$Eroman pkt.leap~<<-~roman sys.leap>;
<$Eroman pkt.version~<<-~roman NTP.VERSION>;
<$Eroman pkt.mode~<<-~roman peer.mode>;
<$Eroman pkt.stratum~<<-~roman sys.stratum>;
<$Eroman pkt.poll~<<-~roman peer.hostpoll>;
<$Eroman pkt.precision~<<-~roman sys.precision>;
<$Eroman pkt.rootdelay~<<-~roman sys.rootdelay>;
if (sys.leap = 112 or (sys.clock <196> sys.reftime) >>
NTP.MAXAGE)
<$Eskew~<<-~roman NTP.MAXSKEW>;
else
<$Eskew~<<-~phi roman {(sys.clock~-~sys.reftime)}>;
<$Eroman {pkt.rootdispersion~<<-~roman
sys.rootdispersion~+~(1~<< <<~sys.precision)}~+~skew>;
<$Eroman pkt.refid~<<-~roman sys.refid>;
<$Eroman pkt.reftime~<<-~roman sys.reftime>;
The transmit timestamp pkt.xmt will be used later in order to validate
the reply; thus, implementations must save the exact value transmitted.
In addition, the order of copying the timestamps should be designed so
that the time to format and copy the data does not degrade accuracy.
<$Eroman pkt.org~<<-~roman peer.org>;
/* copy timestamps */
<$Eroman pkt.rec~<<-~roman peer.rec>;
<$Eroman pkt.xmt~<<-~roman sys.clock>;
<$Eroman peer.xmt~<<-~roman pkt.xmt>;
The call to encrypt is implemented only if authentication is
implemented. If authentication is enabled, the delay to encrypt the
authenticator may degrade accuracy. Therefore, implementations should
include a system state variable (not mentioned elsewhere in this
specification) which contains an offset calculated to match the expected
encryption delay and correct the transmit timestamp as obtained from the
local clock.
#ifdef (authentication implemented) /* see Appendix C */
call encrypt;
#endef
send packet;
The reachability register is shifted one position to the left, with zero
replacing the vacated bit. If all bits of this register are zero, the
clear procedure is called to purge the clock filter and reselect the
synchronization source, if necessary. If the association was not
configured by the initialization procedure, the association is