xref: /freebsd/contrib/ntp/ntpq/invoke-ntpq.texi (revision fe75646a0234a261c0013bf1840fdac4acaf0cec)
1@node ntpq Invocation
2@section Invoking ntpq
3@pindex ntpq
4@cindex standard NTP query program
5@ignore
6#
7# EDIT THIS FILE WITH CAUTION  (invoke-ntpq.texi)
8#
9# It has been AutoGen-ed  June  6, 2023 at 04:38:12 AM by AutoGen 5.18.16
10# From the definitions    ntpq-opts.def
11# and the template file   agtexi-cmd.tpl
12@end ignore
13
14
15The
16@code{ntpq}
17utility program is used to query NTP servers to monitor NTP operations
18and performance, requesting
19information about current state and/or changes in that state.
20The program may be run either in interactive mode or controlled using
21command line arguments.
22Requests to read and write arbitrary
23variables can be assembled, with raw and pretty-printed output
24options being available.
25The
26@code{ntpq}
27utility can also obtain and print a
28list of peers in a common format by sending multiple queries to the
29server.
30
31If one or more request options is included on the command line
32when
33@code{ntpq}
34is executed, each of the requests will be sent
35to the NTP servers running on each of the hosts given as command
36line arguments, or on localhost by default.
37If no request options
38are given,
39@code{ntpq}
40will attempt to read commands from the
41standard input and execute these on the NTP server running on the
42first host given on the command line, again defaulting to localhost
43when no other host is specified.
44The
45@code{ntpq}
46utility will prompt for
47commands if the standard input is a terminal device.
48
49@code{ntpq}
50uses NTP mode 6 packets to communicate with the
51NTP server, and hence can be used to query any compatible server on
52the network which permits it.
53Note that since NTP is a UDP protocol
54this communication will be somewhat unreliable, especially over
55large distances in terms of network topology.
56The
57@code{ntpq}
58utility makes
59one attempt to retransmit requests, and will time requests out if
60the remote host is not heard from within a suitable timeout
61time.
62
63Note that in contexts where a host name is expected, a
64@code{-4}
65qualifier preceding the host name forces resolution to the IPv4
66namespace, while a
67@code{-6}
68qualifier forces resolution to the IPv6 namespace.
69For examples and usage, see the
70@quotedblleft{}NTP Debugging Techniques@quotedblright{}
71page.
72
73Specifying a
74command line option other than
75@code{-i}
76or
77@code{-n}
78will
79cause the specified query (queries) to be sent to the indicated
80host(s) immediately.
81Otherwise,
82@code{ntpq}
83will attempt to read
84interactive format commands from the standard input.
85
86@subsubsection Internal Commands
87
88Interactive format commands consist of a keyword followed by zero
89to four arguments.
90Only enough characters of the full keyword to
91uniquely identify the command need be typed.
92
93A
94number of interactive format commands are executed entirely within
95the
96@code{ntpq}
97utility itself and do not result in NTP
98requests being sent to a server.
99These are described following.
100@table @asis
101@item @code{?} @code{[@kbd{command}]}
102@item @code{help} @code{[@kbd{command}]}
103A
104@quoteleft{}?@quoteright{}
105by itself will print a list of all the commands
106known to
107@code{ntpq}
108A
109@quoteleft{}?@quoteright{}
110followed by a command name will print function and usage
111information about the command.
112@item @code{addvars} @kbd{name}@code{[=@kbd{value}]}@code{[,...]}
113@item @code{rmvars} @kbd{name}@code{[,...]}
114@item @code{clearvars}
115@item @code{showvars}
116The arguments to this command consist of a list of
117items of the form
118@kbd{name}@code{[=@kbd{value}]},
119where the
120.No = Ns Ar value
121is ignored, and can be omitted,
122in requests to the server to read variables.
123The
124@code{ntpq}
125utility maintains an internal list in which data to be included in
126messages can be assembled, and displayed or set using the
127@code{readlist}
128and
129@code{writelist}
130commands described below.
131The
132@code{addvars}
133command allows variables and their optional values to be added to
134the list.
135If more than one variable is to be added, the list should
136be comma-separated and not contain white space.
137The
138@code{rmvars}
139command can be used to remove individual variables from the list,
140while the
141@code{clearvars}
142command removes all variables from the
143list.
144The
145@code{showvars}
146command displays the current list of optional variables.
147@item @code{authenticate} @code{[@code{yes}|@code{no}]}
148Normally
149@code{ntpq}
150does not authenticate requests unless
151they are write requests.
152The command
153@code{authenticate} @code{yes}
154causes
155@code{ntpq}
156to send authentication with all requests it
157makes.
158Authenticated requests causes some servers to handle
159requests slightly differently.
160The command
161@code{authenticate}
162causes
163@code{ntpq}
164to display whether or not
165it is currently authenticating requests.
166@item @code{cooked}
167Causes output from query commands to be "cooked", so that
168variables which are recognized by
169@code{ntpq}
170will have their
171values reformatted for human consumption.
172Variables which
173@code{ntpq}
174could not decode completely are
175marked with a trailing
176@quoteleft{}?@quoteright{}.
177@item @code{debug} @code{[@code{more}|@code{less}|@code{off}]}
178With no argument, displays the current debug level.
179Otherwise, the debugging level is changed as indicated.
180@item @code{delay} @code{[@kbd{milliseconds}]}
181Specify a time interval to be added to timestamps included in
182requests which require authentication.
183This is used to enable
184(unreliable) server reconfiguration over long delay network paths
185or between machines whose clocks are unsynchronized.
186Actually the
187server does not now require timestamps in authenticated requests,
188so this command may be obsolete.
189Without any arguments, displays the current delay.
190@item @code{drefid} @code{[@code{hash}|@code{ipv4}]}
191Display refids as IPv4 or hash.
192Without any arguments, displays whether refids are shown as IPv4
193addresses or hashes.
194@item @code{exit}
195Exit
196@code{ntpq}
197@item @code{host} @code{[@kbd{name}]}
198Set the host to which future queries will be sent.
199The
200@kbd{name}
201may be either a host name or a numeric address.
202Without any arguments, displays the current host.
203@item @code{hostnames} @code{[@code{yes}|@code{no}]}
204If
205@code{yes}
206is specified, host names are printed in
207information displays.
208If
209@code{no}
210is specified, numeric
211addresses are printed instead.
212The default is
213@code{yes},
214unless
215modified using the command line
216@code{-n}
217switch.
218Without any arguments, displays whether host names or numeric addresses
219are shown.
220@item @code{keyid} @code{[@kbd{keyid}]}
221This command allows the specification of a key number to be
222used to authenticate configuration requests.
223This must correspond
224to the
225@code{controlkey}
226key number the server has been configured to use for this
227purpose.
228Without any arguments, displays the current
229@kbd{keyid}.
230@item @code{keytype} @code{[@kbd{digest}]}
231Specify the digest algorithm to use for authenticating requests, with default
232@code{MD5}.
233If
234@code{ntpq}
235was built with OpenSSL support, and OpenSSL is installed,
236@kbd{digest}
237can be any message digest algorithm supported by OpenSSL.
238If no argument is given, the current
239@code{keytype} @kbd{digest}
240algorithm used is displayed.
241@item @code{ntpversion} @code{[@code{1}|@code{2}|@code{3}|@code{4}]}
242Sets the NTP version number which
243@code{ntpq}
244claims in
245packets.
246Defaults to 3, and note that mode 6 control messages (and
247modes, for that matter) didn't exist in NTP version 1.
248There appear
249to be no servers left which demand version 1.
250With no argument, displays the current NTP version that will be used
251when communicating with servers.
252@item @code{passwd}
253This command prompts you to type in a password (which will not
254be echoed) which will be used to authenticate configuration
255requests.
256The password must correspond to the key configured for
257use by the NTP server for this purpose if such requests are to be
258successful.
259@item @code{poll} @code{[@kbd{n}]} @code{[@code{verbose}]}
260Poll an NTP server in client mode
261@kbd{n}
262times.
263Poll not implemented yet.
264@item @code{quit}
265Exit
266@code{ntpq}
267@item @code{raw}
268Causes all output from query commands is printed as received
269from the remote server.
270The only formating/interpretation done on
271the data is to transform nonascii data into a printable (but barely
272understandable) form.
273@item @code{timeout} @code{[@kbd{milliseconds}]}
274Specify a timeout period for responses to server queries.
275The
276default is about 5000 milliseconds.
277Without any arguments, displays the current timeout period.
278Note that since
279@code{ntpq}
280retries each query once after a timeout, the total waiting time for
281a timeout will be twice the timeout value set.
282@item @code{version}
283Display the version of the
284@code{ntpq}
285program.
286@end table
287
288@subsubsection Control Message Commands
289Association ids are used to identify system, peer and clock variables.
290System variables are assigned an association id of zero and system name
291space, while each association is assigned a nonzero association id and
292peer namespace.
293Most control commands send a single message to the server and expect a
294single response message.
295The exceptions are the
296@code{peers}
297command, which sends a series of messages,
298and the
299@code{mreadlist}
300and
301@code{mreadvar}
302commands, which iterate over a range of associations.
303@table @asis
304@item @code{apeers}
305Display a list of peers in the form:
306@example
307[tally]remote refid assid st t when pool reach delay offset jitter
308@end example
309where the output is just like the
310@code{peers}
311command except that the
312@code{refid}
313is displayed in hex format and the association number is also displayed.
314@item @code{associations}
315Display a list of mobilized associations in the form:
316@example
317ind assid status conf reach auth condition last_event cnt
318@end example
319@table @asis
320@item Sy Variable Ta Sy Description
321@item @code{ind} @code{Ta} @code{index} @code{on} @code{this} @code{list}
322@item @code{assid} @code{Ta} @code{association} @code{id}
323@item @code{status} @code{Ta} @code{peer} @code{status} @code{word}
324@item @code{conf} @code{Ta} @code{yes}: @code{No} @code{persistent,} @code{no}: @code{No} @code{ephemeral}
325@item @code{reach} @code{Ta} @code{yes}: @code{No} @code{reachable,} @code{no}: @code{No} @code{unreachable}
326@item @code{auth} @code{Ta} @code{ok}, @code{yes}, @code{bad} @code{No} @code{and} @code{none}
327@item @code{condition} @code{Ta} @code{selection} @code{status} @code{(see} @code{the} @code{select} @code{No} @code{field} @code{of} @code{the} @code{peer} @code{status} @code{word)}
328@item @code{last_event} @code{Ta} @code{event} @code{report} @code{(see} @code{the} @code{event} @code{No} @code{field} @code{of} @code{the} @code{peer} @code{status} @code{word)}
329@item @code{cnt} @code{Ta} @code{event} @code{count} @code{(see} @code{the} @code{count} @code{No} @code{field} @code{of} @code{the} @code{peer} @code{status} @code{word)}
330@end table
331@item @code{authinfo}
332Display the authentication statistics counters:
333time since reset, stored keys, free keys, key lookups, keys not found,
334uncached keys, expired keys, encryptions, decryptions.
335@item @code{clocklist} @code{[@kbd{associd}]}
336@item @code{cl} @code{[@kbd{associd}]}
337Display all clock variables in the variable list for those associations
338supporting a reference clock.
339@item @code{clockvar} @code{[@kbd{associd}]} @code{[@kbd{name}@code{[=@kbd{value}]}]}@code{[,...]}
340@item @code{cv} @code{[@kbd{associd}]} @code{[@kbd{name}@code{[=@kbd{value}]}]}@code{[,...]}
341Display a list of clock variables for those associations supporting a
342reference clock.
343@item @code{:config} @kbd{configuration command line}
344Send the remainder of the command line, including whitespace, to the
345server as a run-time configuration command in the same format as a line
346in the configuration file.
347This command is experimental until further notice and clarification.
348Authentication is of course required.
349@item @code{config-from-file} @kbd{filename}
350Send each line of
351@kbd{filename}
352to the server as run-time configuration commands in the same format as
353lines in the configuration file.
354This command is experimental until further notice and clarification.
355Authentication is required.
356@item @code{ifstats}
357Display status and statistics counters for each local network interface address:
358interface number, interface name and address or broadcast, drop, flag,
359ttl, mc, received, sent, send failed, peers, uptime.
360Authentication is required.
361@item @code{iostats}
362Display network and reference clock I/O statistics:
363time since reset, receive buffers, free receive buffers, used receive buffers,
364low water refills, dropped packets, ignored packets, received packets,
365packets sent, packet send failures, input wakeups, useful input wakeups.
366@item @code{kerninfo}
367Display kernel loop and PPS statistics:
368associd, status, pll offset, pll frequency, maximum error,
369estimated error, kernel status, pll time constant, precision,
370frequency tolerance, pps frequency, pps stability, pps jitter,
371calibration interval, calibration cycles, jitter exceeded,
372stability exceeded, calibration errors.
373As with other ntpq output, times are in milliseconds; very small values
374may be shown as exponentials.
375The precision value displayed is in milliseconds as well, unlike the
376precision system variable.
377@item @code{lassociations}
378Perform the same function as the associations command, except display
379mobilized and unmobilized associations, including all clients.
380@item @code{lopeers} @code{[@code{-4}|@code{-6}]}
381Display a list of all peers and clients showing
382@code{dstadr}
383(associated with the given IP version).
384@item @code{lpassociations}
385Display the last obtained list of associations, including all clients.
386@item @code{lpeers} @code{[@code{-4}|@code{-6}]}
387Display a list of all peers and clients (associated with the given IP version).
388@item @code{monstats}
389Display monitor facility status, statistics, and limits:
390enabled, addresses, peak addresses, maximum addresses,
391reclaim above count, reclaim older than, kilobytes, maximum kilobytes.
392@item @code{mreadlist} @kbd{associdlo} @kbd{associdhi}
393@item @code{mrl} @kbd{associdlo} @kbd{associdhi}
394Perform the same function as the
395@code{readlist}
396command for a range of association ids.
397@item @code{mreadvar} @kbd{associdlo} @kbd{associdhi} @code{[@kbd{name}]}@code{[,...]}
398This range may be determined from the list displayed by any
399command showing associations.
400@item @code{mrv} @kbd{associdlo} @kbd{associdhi} @code{[@kbd{name}]}@code{[,...]}
401Perform the same function as the
402@code{readvar}
403command for a range of association ids.
404This range may be determined from the list displayed by any
405command showing associations.
406@item @code{mrulist} @code{[@code{limited} | @code{kod} | @code{mincount}=@kbd{count} | @code{laddr}=@kbd{localaddr} | @code{sort}=@code{[-]}@kbd{sortorder} | @code{resany}=@kbd{hexmask} | @code{resall}=@kbd{hexmask}]}
407Display traffic counts of the most recently seen source addresses
408collected and maintained by the monitor facility.
409With the exception of
410@code{sort}=@code{[-]}@kbd{sortorder},
411the options filter the list returned by
412@code{ntpd(8)}.
413The
414@code{limited}
415and
416@code{kod}
417options return only entries representing client addresses from which the
418last packet received triggered either discarding or a KoD response.
419The
420@code{mincount}=@kbd{count}
421option filters entries representing less than
422@kbd{count}
423packets.
424The
425@code{laddr}=@kbd{localaddr}
426option filters entries for packets received on any local address other than
427@kbd{localaddr}.
428@code{resany}=@kbd{hexmask}
429and
430@code{resall}=@kbd{hexmask}
431filter entries containing none or less than all, respectively, of the bits in
432@kbd{hexmask},
433which must begin with
434@code{0x}.
435The
436@kbd{sortorder}
437defaults to
438@code{lstint}
439and may be
440@code{addr},
441@code{avgint},
442@code{count},
443@code{lstint},
444or any of those preceded by
445@quoteleft{}-@quoteright{}
446to reverse the sort order.
447The output columns are:
448@table @asis
449@item Column
450Description
451@item @code{lstint}
452Interval in seconds between the receipt of the most recent packet from
453this address and the completion of the retrieval of the MRU list by
454@code{ntpq}
455@item @code{avgint}
456Average interval in s between packets from this address.
457@item @code{rstr}
458Restriction flags associated with this address.
459Most are copied unchanged from the matching
460@code{restrict}
461command, however 0x400 (kod) and 0x20 (limited) flags are cleared unless
462the last packet from this address triggered a rate control response.
463@item @code{r}
464Rate control indicator, either
465a period,
466@code{L}
467or
468@code{K}
469for no rate control response,
470rate limiting by discarding, or rate limiting with a KoD response, respectively.
471@item @code{m}
472Packet mode.
473@item @code{v}
474Packet version number.
475@item @code{count}
476Packets received from this address.
477@item @code{rport}
478Source port of last packet from this address.
479@item @code{remote} @code{address}
480host or DNS name, numeric address, or address followed by
481claimed DNS name which could not be verified in parentheses.
482@end table
483@item @code{opeers} @code{[@code{-4} | @code{-6}]}
484Obtain and print the old-style list of all peers and clients showing
485@code{dstadr}
486(associated with the given IP version),
487rather than the
488@code{refid}.
489@item @code{passociations}
490Perform the same function as the
491@code{associations}
492command,
493except that it uses previously stored data rather than making a new query.
494@item @code{peers}
495Display a list of peers in the form:
496@example
497[tally]remote refid st t when pool reach delay offset jitter
498@end example
499@table @asis
500@item Variable
501Description
502@item @code{[tally]}
503single-character code indicating current value of the
504@code{select}
505field of the
506.Lk decode.html#peer "peer status word"
507@item @code{remote}
508host name (or IP number) of peer.
509The value displayed will be truncated to 15 characters unless the
510@code{ntpq}
511@code{-w}
512option is given, in which case the full value will be displayed
513on the first line, and if too long,
514the remaining data will be displayed on the next line.
515@item @code{refid}
516source IP address or
517.Lk decode.html#kiss "'kiss code"
518@item @code{st}
519stratum: 0 for local reference clocks, 1 for servers with local
520reference clocks, ..., 16 for unsynchronized server clocks
521@item @code{t}
522@code{u}:
523unicast or manycast client,
524@code{b}:
525broadcast or multicast client,
526@code{p}:
527pool source,
528@code{l}:
529local (reference clock),
530@code{s}:
531symmetric (peer),
532@code{A}:
533manycast server,
534@code{B}:
535broadcast server,
536@code{M}:
537multicast server
538@item @code{when}
539time in seconds, minutes, hours, or days since the last packet
540was received, or
541@quoteleft{}-@quoteright{}
542if a packet has never been received
543@item @code{poll}
544poll interval (s)
545@item @code{reach}
546reach shift register (octal)
547@item @code{delay}
548roundtrip delay
549@item @code{offset}
550offset of server relative to this host
551@item @code{jitter}
552offset RMS error estimate.
553@end table
554@item @code{pstats} @kbd{associd}
555Display the statistics for the peer with the given
556@kbd{associd}:
557associd, status, remote host, local address, time last received,
558time until next send, reachability change, packets sent,
559packets received, bad authentication, bogus origin, duplicate,
560bad dispersion, bad reference time, candidate order.
561@item @code{readlist} @code{[@kbd{associd}]}
562@item @code{rl} @code{[@kbd{associd}]}
563Display all system or peer variables.
564If the
565@kbd{associd}
566is omitted, it is assumed to be zero.
567@item @code{readvar} @code{[@kbd{associd} @kbd{name}@code{[=@kbd{value}]} @code{[, ...]}]}
568@item @code{rv} @code{[@kbd{associd} @kbd{name}@code{[=@kbd{value}]} @code{[, ...]}]}
569Display the specified system or peer variables.
570If
571@kbd{associd}
572is zero, the variables are from the
573@ref{System Variables}
574name space, otherwise they are from the
575@ref{Peer Variables}
576name space.
577The
578@kbd{associd}
579is required, as the same name can occur in both spaces.
580If no
581@kbd{name}
582is included, all operative variables in the name space are displayed.
583In this case only, if the
584@kbd{associd}
585is omitted, it is assumed to be zero.
586Multiple names are specified with comma separators and without whitespace.
587Note that time values are represented in milliseconds
588and frequency values in parts-per-million (PPM).
589Some NTP timestamps are represented in the format
590@kbd{YYYY}@kbd{MM} @kbd{DD} @kbd{TTTT},
591where
592@kbd{YYYY}
593is the year,
594@kbd{MM}
595the month of year,
596@kbd{DD}
597the day of month and
598@kbd{TTTT}
599the time of day.
600@item @code{reslist}
601Display the access control (restrict) list for
602@code{ntpq}
603Authentication is required.
604@item @code{saveconfig} @kbd{filename}
605Save the current configuration,
606including any runtime modifications made by
607@code{:config}
608or
609@code{config-from-file},
610to the NTP server host file
611@kbd{filename}.
612This command will be rejected by the server unless
613.Lk miscopt.html#saveconfigdir "saveconfigdir"
614appears in the
615@code{ntpd(8)}
616configuration file.
617@kbd{filename}
618can use
619@code{date(1)}
620format specifiers to substitute the current date and time, for
621example,
622@example
623@code{saveconfig} @file{ntp-%Y%m%d-%H%M%S.conf}.
624@end example
625The filename used is stored in system variable
626@code{savedconfig}.
627Authentication is required.
628@item @code{sysinfo}
629Display system operational summary:
630associd, status, system peer, system peer mode, leap indicator,
631stratum, log2 precision, root delay, root dispersion,
632reference id, reference time, system jitter, clock jitter,
633clock wander, broadcast delay, symm. auth. delay.
634@item @code{sysstats}
635Display system uptime and packet counts maintained in the
636protocol module:
637uptime, sysstats reset, packets received, current version,
638older version, bad length or format, authentication failed,
639declined, restricted, rate limited, KoD responses,
640processed for time.
641@item @code{timerstats}
642Display interval timer counters:
643time since reset, timer overruns, calls to transmit.
644@item @code{writelist} @kbd{associd}
645Set all system or peer variables included in the variable list.
646@item @code{writevar} @kbd{associd} @kbd{name}=@kbd{value} @code{[, ...]}
647Set the specified variables in the variable list.
648If the
649@kbd{associd}
650is zero, the variables are from the
651@ref{System Variables}
652name space, otherwise they are from the
653@ref{Peer Variables}
654name space.
655The
656@kbd{associd}
657is required, as the same name can occur in both spaces.
658Authentication is required.
659@end table
660
661@subsubsection Status Words and Kiss Codes
662The current state of the operating program is shown
663in a set of status words
664maintained by the system.
665Status information is also available on a per-association basis.
666These words are displayed by the
667@code{readlist}
668and
669@code{associations}
670commands both in hexadecimal and in decoded short tip strings.
671The codes, tips and short explanations are documented on the
672.Lk decode.html "Event Messages and Status Words"
673page.
674The page also includes a list of system and peer messages,
675the code for the latest of which is included in the status word.
676
677Information resulting from protocol machine state transitions
678is displayed using an informal set of ASCII strings called
679.Lk decode.html#kiss "kiss codes" .
680The original purpose was for kiss-o'-death (KoD) packets
681sent by the server to advise the client of an unusual condition.
682They are now displayed, when appropriate,
683in the reference identifier field in various billboards.
684
685@subsubsection System Variables
686The following system variables appear in the
687@code{readlist}
688billboard.
689Not all variables are displayed in some configurations.
690
691@table @asis
692@item Variable
693Description
694@item @code{status}
695.Lk decode.html#sys "system status word"
696@item @code{version}
697NTP software version and build time
698@item @code{processor}
699hardware platform and version
700@item @code{system}
701operating system and version
702@item @code{leap}
703leap warning indicator (0-3)
704@item @code{stratum}
705stratum (1-15)
706@item @code{precision}
707precision (log2 s)
708@item @code{rootdelay}
709total roundtrip delay to the primary reference clock
710@item @code{rootdisp}
711total dispersion to the primary reference clock
712@item @code{refid}
713reference id or
714.Lk decode.html#kiss "kiss code"
715@item @code{reftime}
716reference time
717@item @code{clock}
718date and time of day
719@item @code{peer}
720system peer association id
721@item @code{tc}
722time constant and poll exponent (log2 s) (3-17)
723@item @code{mintc}
724minimum time constant (log2 s) (3-10)
725@item @code{offset}
726combined offset of server relative to this host
727@item @code{frequency}
728frequency drift (PPM) relative to hardware clock
729@item @code{sys_jitter}
730combined system jitter
731@item @code{clk_wander}
732clock frequency wander (PPM)
733@item @code{clk_jitter}
734clock jitter
735@item @code{tai}
736TAI-UTC offset (s)
737@item @code{leapsec}
738NTP seconds when the next leap second is/was inserted
739@item @code{expire}
740NTP seconds when the NIST leapseconds file expires
741@end table
742The jitter and wander statistics are exponentially-weighted RMS averages.
743The system jitter is defined in the NTPv4 specification;
744the clock jitter statistic is computed by the clock discipline module.
745
746When the NTPv4 daemon is compiled with the OpenSSL software library,
747additional system variables are displayed,
748including some or all of the following,
749depending on the particular Autokey dance:
750@table @asis
751@item Variable
752Description
753@item @code{host}
754Autokey host name for this host
755@item @code{ident}
756Autokey group name for this host
757@item @code{flags}
758host flags  (see Autokey specification)
759@item @code{digest}
760OpenSSL message digest algorithm
761@item @code{signature}
762OpenSSL digest/signature scheme
763@item @code{update}
764NTP seconds at last signature update
765@item @code{cert}
766certificate subject, issuer and certificate flags
767@item @code{until}
768NTP seconds when the certificate expires
769@end table
770@subsubsection Peer Variables
771The following peer variables appear in the
772@code{readlist}
773billboard for each association.
774Not all variables are displayed in some configurations.
775
776@table @asis
777@item Variable
778Description
779@item @code{associd}
780association id
781@item @code{status}
782.Lk decode.html#peer "peer status word"
783@item @code{srcadr}
784source (remote) IP address
785@item @code{srcport}
786source (remote) port
787@item @code{dstadr}
788destination (local) IP address
789@item @code{dstport}
790destination (local) port
791@item @code{leap}
792leap indicator (0-3)
793@item @code{stratum}
794stratum (0-15)
795@item @code{precision}
796precision (log2 s)
797@item @code{rootdelay}
798total roundtrip delay to the primary reference clock
799@item @code{rootdisp}
800total root dispersion to the primary reference clock
801@item @code{refid}
802reference id or
803.Lk decode.html#kiss "kiss code"
804@item @code{reftime}
805reference time
806@item @code{rec}
807last packet received time
808@item @code{reach}
809reach register (octal)
810@item @code{unreach}
811unreach counter
812@item @code{hmode}
813host mode (1-6)
814@item @code{pmode}
815peer mode (1-5)
816@item @code{hpoll}
817host poll exponent (log2 s) (3-17)
818@item @code{ppoll}
819peer poll exponent (log2 s) (3-17)
820@item @code{headway}
821headway (see
822.Lk rate.html "Rate Management and the Kiss-o'-Death Packet" )
823@item @code{flash}
824.Lk decode.html#flash "flash status word"
825@item @code{keyid}
826symmetric key id
827@item @code{offset}
828filter offset
829@item @code{delay}
830filter delay
831@item @code{dispersion}
832filter dispersion
833@item @code{jitter}
834filter jitter
835@item @code{bias}
836unicast/broadcast bias
837@item @code{xleave}
838interleave delay (see
839.Lk xleave.html "NTP Interleaved Modes" )
840@end table
841The
842@code{bias}
843variable is calculated when the first broadcast packet is received
844after the calibration volley.
845It represents the offset of the broadcast subgraph relative to the
846unicast subgraph.
847The
848@code{xleave}
849variable appears only for the interleaved symmetric and interleaved modes.
850It represents the internal queuing, buffering and transmission delays
851for the preceding packet.
852
853When the NTPv4 daemon is compiled with the OpenSSL software library,
854additional peer variables are displayed, including the following:
855@table @asis
856@item Variable
857Description
858@item @code{flags}
859peer flags (see Autokey specification)
860@item @code{host}
861Autokey server name
862@item @code{flags}
863peer flags (see Autokey specification)
864@item @code{signature}
865OpenSSL digest/signature scheme
866@item @code{initsequence}
867initial key id
868@item @code{initkey}
869initial key index
870@item @code{timestamp}
871Autokey signature timestamp
872@item @code{ident}
873Autokey group name for this association
874@end table
875
876@subsubsection Clock Variables
877The following clock variables appear in the
878@code{clocklist}
879billboard for each association with a reference clock.
880Not all variables are displayed in some configurations.
881@table @asis
882@item Variable
883Description
884@item @code{associd}
885association id
886@item @code{status}
887.Lk decode.html#clock "clock status word"
888@item @code{device}
889device description
890@item @code{timecode}
891ASCII time code string (specific to device)
892@item @code{poll}
893poll messages sent
894@item @code{noreply}
895no reply
896@item @code{badformat}
897bad format
898@item @code{baddata}
899bad date or time
900@item @code{fudgetime1}
901fudge time 1
902@item @code{fudgetime2}
903fudge time 2
904@item @code{stratum}
905driver stratum
906@item @code{refid}
907driver reference id
908@item @code{flags}
909driver flags
910@end table
911
912This section was generated by @strong{AutoGen},
913using the @code{agtexi-cmd} template and the option descriptions for the @code{ntpq} program.
914This software is released under the NTP license, <http://ntp.org/license>.
915
916@menu
917* ntpq usage::                  ntpq help/usage (@option{--help})
918* ntpq ipv4::                   ipv4 option (-4)
919* ntpq ipv6::                   ipv6 option (-6)
920* ntpq command::                command option (-c)
921* ntpq interactive::            interactive option (-i)
922* ntpq numeric::                numeric option (-n)
923* ntpq old-rv::                 old-rv option
924* ntpq peers::                  peers option (-p)
925* ntpq refid::                  refid option (-r)
926* ntpq unconnected::            unconnected option (-u)
927* ntpq wide::                   wide option (-w)
928* ntpq config::                 presetting/configuring ntpq
929* ntpq exit status::            exit status
930@end menu
931
932@node ntpq usage
933@subsection ntpq help/usage (@option{--help})
934@cindex ntpq help
935
936This is the automatically generated usage text for ntpq.
937
938The text printed is the same whether selected with the @code{help} option
939(@option{--help}) or the @code{more-help} option (@option{--more-help}).  @code{more-help} will print
940the usage text by passing it through a pager program.
941@code{more-help} is disabled on platforms without a working
942@code{fork(2)} function.  The @code{PAGER} environment variable is
943used to select the program, defaulting to @file{more}.  Both will exit
944with a status code of 0.
945
946@exampleindent 0
947@example
948ntpq - standard NTP query program - Ver. 4.2.8p17
949Usage:  ntpq [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...]
950  Flg Arg Option-Name    Description
951   -4 no  ipv4           Force IPv4 name resolution
952                                - prohibits the option 'ipv6'
953   -6 no  ipv6           Force IPv6 name resolution
954                                - prohibits the option 'ipv4'
955   -c Str command        run a command and exit
956                                - may appear multiple times
957   -d no  debug-level    Increase debug verbosity level
958                                - may appear multiple times
959   -D Num set-debug-level Set the debug verbosity level
960                                - may appear multiple times
961   -i no  interactive    Force ntpq to operate in interactive mode
962                                - prohibits these options:
963                                command
964                                peers
965   -n no  numeric        numeric host addresses
966      no  old-rv         Always output status line with readvar
967   -p no  peers          Print a list of the peers
968                                - prohibits the option 'interactive'
969   -r KWd refid          Set default display type for S2+ refids
970   -u no  unconnected    Use unconnected UDP to communicate with ntpd (default on Windows)
971   -w no  wide           Display the full 'remote' value
972      opt version        output version information and exit
973   -? no  help           display extended usage information and exit
974   -! no  more-help      extended usage information passed thru pager
975   -> opt save-opts      save the option state to a config file
976   -< Str load-opts      load options from a config file
977                                - disabled as '--no-load-opts'
978                                - may appear multiple times
979
980Options are specified by doubled hyphens and their name or by a single
981hyphen and the flag character.
982
983The following option preset mechanisms are supported:
984 - reading file $HOME/.ntprc
985 - reading file ./.ntprc
986 - examining environment variables named NTPQ_*
987
988The valid "refid" option keywords are:
989  hash ipv4
990  or an integer from 0 through 1
991
992Please send bug reports to:  <https://bugs.ntp.org, bugs@@ntp.org>
993@end example
994@exampleindent 4
995
996@node ntpq ipv4
997@subsection ipv4 option (-4)
998@cindex ntpq-ipv4
999
1000This is the ``force ipv4 name resolution'' option.
1001
1002@noindent
1003This option has some usage constraints.  It:
1004@itemize @bullet
1005@item
1006must not appear in combination with any of the following options:
1007ipv6.
1008@end itemize
1009
1010Force resolution of following host names on the command line
1011to the IPv4 namespace.
1012@node ntpq ipv6
1013@subsection ipv6 option (-6)
1014@cindex ntpq-ipv6
1015
1016This is the ``force ipv6 name resolution'' option.
1017
1018@noindent
1019This option has some usage constraints.  It:
1020@itemize @bullet
1021@item
1022must not appear in combination with any of the following options:
1023ipv4.
1024@end itemize
1025
1026Force resolution of following host names on the command line
1027to the IPv6 namespace.
1028@node ntpq command
1029@subsection command option (-c)
1030@cindex ntpq-command
1031
1032This is the ``run a command and exit'' option.
1033This option takes a string argument @file{cmd}.
1034
1035@noindent
1036This option has some usage constraints.  It:
1037@itemize @bullet
1038@item
1039may appear an unlimited number of times.
1040@end itemize
1041
1042The following argument is interpreted as an interactive format command
1043and is added to the list of commands to be executed on the specified
1044host(s).
1045@node ntpq interactive
1046@subsection interactive option (-i)
1047@cindex ntpq-interactive
1048
1049This is the ``force ntpq to operate in interactive mode'' option.
1050
1051@noindent
1052This option has some usage constraints.  It:
1053@itemize @bullet
1054@item
1055must not appear in combination with any of the following options:
1056command, peers.
1057@end itemize
1058
1059Force @code{ntpq} to operate in interactive mode.
1060Prompts will be written to the standard output and
1061commands read from the standard input.
1062@node ntpq numeric
1063@subsection numeric option (-n)
1064@cindex ntpq-numeric
1065
1066This is the ``numeric host addresses'' option.
1067Output all host addresses in dotted-quad numeric format rather than
1068converting to the canonical host names.
1069@node ntpq old-rv
1070@subsection old-rv option
1071@cindex ntpq-old-rv
1072
1073This is the ``always output status line with readvar'' option.
1074By default, @code{ntpq} now suppresses the @code{associd=...}
1075line that precedes the output of @code{readvar}
1076(alias @code{rv}) when a single variable is requested, such as
1077@code{ntpq -c "rv 0 offset"}.
1078This option causes @code{ntpq} to include both lines of output
1079for a single-variable @code{readvar}.
1080Using an environment variable to
1081preset this option in a script will enable both older and
1082newer @code{ntpq} to behave identically in this regard.
1083@node ntpq peers
1084@subsection peers option (-p)
1085@cindex ntpq-peers
1086
1087This is the ``print a list of the peers'' option.
1088
1089@noindent
1090This option has some usage constraints.  It:
1091@itemize @bullet
1092@item
1093must not appear in combination with any of the following options:
1094interactive.
1095@end itemize
1096
1097Print a list of the peers known to the server as well as a summary
1098of their state. This is equivalent to the 'peers' interactive command.
1099@node ntpq refid
1100@subsection refid option (-r)
1101@cindex ntpq-refid
1102
1103This is the ``set default display type for s2+ refids'' option.
1104This option takes a keyword argument.
1105
1106@noindent
1107This option has some usage constraints.  It:
1108@itemize @bullet
1109@item
1110This option takes a keyword as its argument.
1111The argument sets an enumeration value that can be tested by comparing the option value macro (OPT_VALUE_REFID).
1112The available keywords are:
1113@example
1114    hash ipv4
1115@end example
1116
1117or their numeric equivalent.
1118@end itemize
1119
1120Set the default display format for S2+ refids.
1121@node ntpq unconnected
1122@subsection unconnected option (-u)
1123@cindex ntpq-unconnected
1124
1125This is the ``use unconnected udp to communicate with ntpd (default on windows)'' option.
1126Open an unconnected UDP association to ntpd (the default
1127on Windows).
1128@node ntpq wide
1129@subsection wide option (-w)
1130@cindex ntpq-wide
1131
1132This is the ``display the full 'remote' value'' option.
1133Display the full value of the 'remote' value.  If this requires
1134more than 15 characters, display the full value, emit a newline,
1135and continue the data display properly indented on the next line.
1136
1137
1138@node ntpq config
1139@subsection presetting/configuring ntpq
1140
1141Any option that is not marked as @i{not presettable} may be preset by
1142loading values from configuration ("rc" or "ini") files, and values from environment variables named @code{NTPQ} and @code{NTPQ_<OPTION_NAME>}.  @code{<OPTION_NAME>} must be one of
1143the options listed above in upper case and segmented with underscores.
1144The @code{NTPQ} variable will be tokenized and parsed like
1145the command line.  The remaining variables are tested for existence and their
1146values are treated like option arguments.
1147
1148
1149@noindent
1150@code{libopts} will search in 2 places for configuration files:
1151@itemize @bullet
1152@item
1153$HOME
1154@item
1155$PWD
1156@end itemize
1157The environment variables @code{HOME}, and @code{PWD}
1158are expanded and replaced when @file{ntpq} runs.
1159For any of these that are plain files, they are simply processed.
1160For any that are directories, then a file named @file{.ntprc} is searched for
1161within that directory and processed.
1162
1163Configuration files may be in a wide variety of formats.
1164The basic format is an option name followed by a value (argument) on the
1165same line.  Values may be separated from the option name with a colon,
1166equal sign or simply white space.  Values may be continued across multiple
1167lines by escaping the newline with a backslash.
1168
1169Multiple programs may also share the same initialization file.
1170Common options are collected at the top, followed by program specific
1171segments.  The segments are separated by lines like:
1172@example
1173[NTPQ]
1174@end example
1175@noindent
1176or by
1177@example
1178<?program ntpq>
1179@end example
1180@noindent
1181Do not mix these styles within one configuration file.
1182
1183Compound values and carefully constructed string values may also be
1184specified using XML syntax:
1185@example
1186<option-name>
1187   <sub-opt>...&lt;...&gt;...</sub-opt>
1188</option-name>
1189@end example
1190@noindent
1191yielding an @code{option-name.sub-opt} string value of
1192@example
1193"...<...>..."
1194@end example
1195@code{AutoOpts} does not track suboptions.  You simply note that it is a
1196hierarchicly valued option.  @code{AutoOpts} does provide a means for searching
1197the associated name/value pair list (see: optionFindValue).
1198
1199The command line options relating to configuration and/or usage help are:
1200
1201@subsubheading version (-)
1202
1203Print the program version to standard out, optionally with licensing
1204information, then exit 0.  The optional argument specifies how much licensing
1205detail to provide.  The default is to print just the version.  The licensing information may be selected with an option argument.
1206Only the first letter of the argument is examined:
1207
1208@table @samp
1209@item version
1210Only print the version.  This is the default.
1211@item copyright
1212Name the copyright usage licensing terms.
1213@item verbose
1214Print the full copyright usage licensing terms.
1215@end table
1216
1217@node ntpq exit status
1218@subsection ntpq exit status
1219
1220One of the following exit values will be returned:
1221@table @samp
1222@item 0 (EXIT_SUCCESS)
1223Successful program execution.
1224@item 1 (EXIT_FAILURE)
1225The operation failed or the command syntax was not valid.
1226@item 66 (EX_NOINPUT)
1227A specified configuration file could not be loaded.
1228@item 70 (EX_SOFTWARE)
1229libopts had an internal operational error.  Please report
1230it to autogen-users@@lists.sourceforge.net.  Thank you.
1231@end table
1232