1 /* -*- Mode: Text -*- */ 2 3 autogen definitions options; 4 5 #include autogen-version.def 6 #include copyright.def 7 8 prog-name = "ntpdc"; 9 prog-title = "vendor-specific NTPD control program"; 10 argument = '[ host ...]'; 11 12 #include homerc.def 13 14 flag = { 15 name = ipv4; 16 value = 4; 17 flags-cant = ipv6; 18 descrip = "Force IPv4 DNS name resolution"; 19 doc = <<- _EndOfDoc_ 20 Force DNS resolution of following host names on the command line 21 to the IPv4 namespace. 22 _EndOfDoc_; 23 }; 24 25 flag = { 26 name = ipv6; 27 value = 6; 28 flags-cant = ipv4; 29 descrip = "Force IPv6 DNS name resolution"; 30 doc = <<- _EndOfDoc_ 31 Force DNS resolution of following host names on the command line 32 to the IPv6 namespace. 33 _EndOfDoc_; 34 }; 35 36 flag = { 37 name = command; 38 value = c; 39 arg-type = string; 40 descrip = "run a command and exit"; 41 max = NOLIMIT; 42 arg-name = cmd; 43 stack-arg; 44 doc = <<- _EndOfDoc_ 45 The following argument is interpreted as an interactive format command 46 and is added to the list of commands to be executed on the specified 47 host(s). 48 _EndOfDoc_; 49 }; 50 51 #include debug-opt.def 52 53 flag = { 54 name = interactive; 55 value = i; 56 flags-cant = command, listpeers, peers, showpeers; 57 descrip = "Force ntpq to operate in interactive mode"; 58 doc = <<- _EndOfDoc_ 59 Force ntpq to operate in interactive mode. Prompts will be written 60 to the standard output and commands read from the standard input. 61 _EndOfDoc_; 62 }; 63 64 flag = { 65 name = listpeers; 66 value = l; 67 descrip = "Print a list of the peers"; 68 flags-cant = command; 69 doc = <<- _EndOfDoc_ 70 Print a list of the peers known to the server as well as a summary of 71 their state. This is equivalent to the 'listpeers' interactive command. 72 _EndOfDoc_; 73 }; 74 75 flag = { 76 name = numeric; 77 value = n; 78 descrip = "numeric host addresses"; 79 doc = <<- _EndOfDoc_ 80 Output all host addresses in dotted-quad numeric format rather than 81 converting to the canonical host names. 82 _EndOfDoc_; 83 }; 84 85 flag = { 86 name = peers; 87 value = p; 88 descrip = "Print a list of the peers"; 89 flags-cant = command; 90 doc = <<- _EndOfDoc_ 91 Print a list of the peers known to the server as well as a summary 92 of their state. This is equivalent to the 'peers' interactive command. 93 _EndOfDoc_; 94 }; 95 96 flag = { 97 name = showpeers; 98 value = s; 99 descrip = "Show a list of the peers"; 100 flags-cant = command; 101 doc = <<- _EndOfDoc_ 102 Print a list of the peers known to the server as well as a summary 103 of their state. This is equivalent to the 'dmpeers' interactive command. 104 _EndOfDoc_; 105 }; 106 107 flag = { 108 name = unconnected; 109 value = u; 110 descrip = "Use unconnected UDP to communicate with ntpd (default on Windows)"; 111 doc = <<- _EndOfDoc_ 112 Open an unconnected UDP association to ntpd (the default 113 on Windows). 114 _EndOfDoc_; 115 }; 116 117 /* explain: Additional information whenever the usage routine is invoked */ 118 explain = <<- _END_EXPLAIN 119 _END_EXPLAIN; 120 121 doc-section = { 122 ds-type = 'DESCRIPTION'; 123 ds-format = 'mdoc'; 124 ds-text = <<- _END_PROG_MDOC_DESCRIP 125 .Nm 126 is deprecated. 127 Please use 128 .Xr ntpq 1ntpqmdoc instead - it can do everything 129 .Nm 130 used to do, and it does so using a much more sane interface. 131 .Pp 132 .Nm 133 is a utility program used to query 134 .Xr ntpd 1ntpdmdoc 135 about its 136 current state and to request changes in that state. 137 It uses NTP mode 7 control message formats described in the source code. 138 The program may 139 be run either in interactive mode or controlled using command line 140 arguments. 141 Extensive state and statistics information is available 142 through the 143 .Nm 144 interface. 145 In addition, nearly all the 146 configuration options which can be specified at startup using 147 ntpd's configuration file may also be specified at run time using 148 .Nm . 149 _END_PROG_MDOC_DESCRIP; 150 }; 151 152 153 doc-section = { 154 ds-type = 'USAGE'; 155 ds-format = 'mdoc'; 156 ds-text = <<- _END_MDOC_USAGE 157 If one or more request options are included on the command line 158 when 159 .Nm 160 is executed, each of the requests will be sent 161 to the NTP servers running on each of the hosts given as command 162 line arguments, or on localhost by default. 163 If no request options 164 are given, 165 .Nm 166 will attempt to read commands from the 167 standard input and execute these on the NTP server running on the 168 first host given on the command line, again defaulting to localhost 169 when no other host is specified. 170 The 171 .Nm 172 utility will prompt for 173 commands if the standard input is a terminal device. 174 .Pp 175 The 176 .Nm 177 utility uses NTP mode 7 packets to communicate with the 178 NTP server, and hence can be used to query any compatible server on 179 the network which permits it. 180 Note that since NTP is a UDP protocol 181 this communication will be somewhat unreliable, especially over 182 large distances in terms of network topology. 183 The 184 .Nm 185 utility makes 186 no attempt to retransmit requests, and will time requests out if 187 the remote host is not heard from within a suitable timeout 188 time. 189 .Pp 190 The operation of 191 .Nm 192 are specific to the particular 193 implementation of the 194 .Xr ntpd 1ntpdmdoc 195 daemon and can be expected to 196 work only with this and maybe some previous versions of the daemon. 197 Requests from a remote 198 .Nm 199 utility which affect the 200 state of the local server must be authenticated, which requires 201 both the remote program and local server share a common key and key 202 identifier. 203 .Pp 204 Note that in contexts where a host name is expected, a 205 .Fl 4 206 qualifier preceding the host name forces DNS resolution to the IPv4 namespace, 207 while a 208 .Fl 6 209 qualifier forces DNS resolution to the IPv6 namespace. 210 Specifying a command line option other than 211 .Fl i 212 or 213 .Fl n 214 will cause the specified query (queries) to be sent to 215 the indicated host(s) immediately. 216 Otherwise, 217 .Nm 218 will 219 attempt to read interactive format commands from the standard 220 input. 221 .Ss "Interactive Commands" 222 Interactive format commands consist of a keyword followed by zero 223 to four arguments. 224 Only enough characters of the full keyword to 225 uniquely identify the command need be typed. 226 The output of a 227 command is normally sent to the standard output, but optionally the 228 output of individual commands may be sent to a file by appending a 229 .Ql \&> , 230 followed by a file name, to the command line. 231 .Pp 232 A number of interactive format commands are executed entirely 233 within the 234 .Nm 235 utility itself and do not result in NTP 236 mode 7 requests being sent to a server. 237 These are described 238 following. 239 .Bl -tag -width indent 240 .It Ic \&? Ar command_keyword 241 .It Ic help Ar command_keyword 242 A 243 .Sq Ic \&? 244 will print a list of all the command 245 keywords known to this incarnation of 246 .Nm . 247 A 248 .Sq Ic \&? 249 followed by a command keyword will print function and usage 250 information about the command. 251 This command is probably a better 252 source of information about 253 .Xr ntpq 1ntpqmdoc 254 than this manual 255 page. 256 .It Ic delay Ar milliseconds 257 Specify a time interval to be added to timestamps included in 258 requests which require authentication. 259 This is used to enable 260 (unreliable) server reconfiguration over long delay network paths 261 or between machines whose clocks are unsynchronized. 262 Actually the 263 server does not now require timestamps in authenticated requests, 264 so this command may be obsolete. 265 .It Ic host Ar hostname 266 Set the host to which future queries will be sent. 267 Hostname may 268 be either a host name or a numeric address. 269 .It Ic hostnames Op Cm yes | Cm no 270 If 271 .Cm yes 272 is specified, host names are printed in 273 information displays. 274 If 275 .Cm no 276 is specified, numeric 277 addresses are printed instead. 278 The default is 279 .Cm yes , 280 unless 281 modified using the command line 282 .Fl n 283 switch. 284 .It Ic keyid Ar keyid 285 This command allows the specification of a key number to be 286 used to authenticate configuration requests. 287 This must correspond 288 to a key number the server has been configured to use for this 289 purpose. 290 .It Ic quit 291 Exit 292 .Nm . 293 .It Ic passwd 294 This command prompts you to type in a password (which will not 295 be echoed) which will be used to authenticate configuration 296 requests. 297 The password must correspond to the key configured for 298 use by the NTP server for this purpose if such requests are to be 299 successful. 300 .It Ic timeout Ar milliseconds 301 Specify a timeout period for responses to server queries. 302 The 303 default is about 8000 milliseconds. 304 Note that since 305 .Nm 306 retries each query once after a timeout, the total waiting time for 307 a timeout will be twice the timeout value set. 308 .El 309 .Ss "Control Message Commands" 310 Query commands result in NTP mode 7 packets containing requests for 311 information being sent to the server. 312 These are read-only commands 313 in that they make no modification of the server configuration 314 state. 315 .Bl -tag -width indent 316 .It Ic listpeers 317 Obtains and prints a brief list of the peers for which the 318 server is maintaining state. 319 These should include all configured 320 peer associations as well as those peers whose stratum is such that 321 they are considered by the server to be possible future 322 synchronization candidates. 323 .It Ic peers 324 Obtains a list of peers for which the server is maintaining 325 state, along with a summary of that state. 326 Summary information 327 includes the address of the remote peer, the local interface 328 address (0.0.0.0 if a local address has yet to be determined), the 329 stratum of the remote peer (a stratum of 16 indicates the remote 330 peer is unsynchronized), the polling interval, in seconds, the 331 reachability register, in octal, and the current estimated delay, 332 offset and dispersion of the peer, all in seconds. 333 .Pp 334 The character in the left margin indicates the mode this peer 335 entry is operating in. 336 A 337 .Ql \&+ 338 denotes symmetric active, a 339 .Ql \&- 340 indicates symmetric passive, a 341 .Ql \&= 342 means the 343 remote server is being polled in client mode, a 344 .Ql \&^ 345 indicates that the server is broadcasting to this address, a 346 .Ql \&~ 347 denotes that the remote peer is sending broadcasts and a 348 .Ql \&~ 349 denotes that the remote peer is sending broadcasts and a 350 .Ql \&* 351 marks the peer the server is currently synchronizing 352 to. 353 .Pp 354 The contents of the host field may be one of four forms. 355 It may 356 be a host name, an IP address, a reference clock implementation 357 name with its parameter or 358 .Fn REFCLK "implementation_number" "parameter" . 359 On 360 .Ic hostnames 361 .Cm no 362 only IP-addresses 363 will be displayed. 364 .It Ic dmpeers 365 A slightly different peer summary list. 366 Identical to the output 367 of the 368 .Ic peers 369 command, except for the character in the 370 leftmost column. 371 Characters only appear beside peers which were 372 included in the final stage of the clock selection algorithm. 373 A 374 .Ql \&. 375 indicates that this peer was cast off in the falseticker 376 detection, while a 377 .Ql \&+ 378 indicates that the peer made it 379 through. 380 A 381 .Ql \&* 382 denotes the peer the server is currently 383 synchronizing with. 384 .It Ic showpeer Ar peer_address Oo Ar ... Oc 385 Shows a detailed display of the current peer variables for one 386 or more peers. 387 Most of these values are described in the NTP 388 Version 2 specification. 389 .It Ic pstats Ar peer_address Oo Ar ... Oc 390 Show per-peer statistic counters associated with the specified 391 peer(s). 392 .It Ic clockstat Ar clock_peer_address Oo Ar ... Oc 393 Obtain and print information concerning a peer clock. 394 The 395 values obtained provide information on the setting of fudge factors 396 and other clock performance information. 397 .It Ic kerninfo 398 Obtain and print kernel phase-lock loop operating parameters. 399 This information is available only if the kernel has been specially 400 modified for a precision timekeeping function. 401 .It Ic loopinfo Op Cm oneline | Cm multiline 402 Print the values of selected loop filter variables. 403 The loop 404 filter is the part of NTP which deals with adjusting the local 405 system clock. 406 The 407 .Sq offset 408 is the last offset given to the 409 loop filter by the packet processing code. 410 The 411 .Sq frequency 412 is the frequency error of the local clock in parts-per-million 413 (ppm). 414 The 415 .Sq time_const 416 controls the stiffness of the 417 phase-lock loop and thus the speed at which it can adapt to 418 oscillator drift. 419 The 420 .Sq watchdog timer 421 value is the number 422 of seconds which have elapsed since the last sample offset was 423 given to the loop filter. 424 The 425 .Cm oneline 426 and 427 .Cm multiline 428 options specify the format in which this 429 information is to be printed, with 430 .Cm multiline 431 as the 432 default. 433 .It Ic sysinfo 434 Print a variety of system state variables, i.e., state related 435 to the local server. 436 All except the last four lines are described 437 in the NTP Version 3 specification, RFC-1305. 438 .Pp 439 The 440 .Sq system flags 441 show various system flags, some of 442 which can be set and cleared by the 443 .Ic enable 444 and 445 .Ic disable 446 configuration commands, respectively. 447 These are 448 the 449 .Cm auth , 450 .Cm bclient , 451 .Cm monitor , 452 .Cm pll , 453 .Cm pps 454 and 455 .Cm stats 456 flags. 457 See the 458 .Xr ntpd 1ntpdmdoc 459 documentation for the meaning of these flags. 460 There 461 are two additional flags which are read only, the 462 .Cm kernel_pll 463 and 464 .Cm kernel_pps . 465 These flags indicate 466 the synchronization status when the precision time kernel 467 modifications are in use. 468 The 469 .Sq kernel_pll 470 indicates that 471 the local clock is being disciplined by the kernel, while the 472 .Sq kernel_pps 473 indicates the kernel discipline is provided by the PPS 474 signal. 475 .Pp 476 The 477 .Sq stability 478 is the residual frequency error remaining 479 after the system frequency correction is applied and is intended for 480 maintenance and debugging. 481 In most architectures, this value will 482 initially decrease from as high as 500 ppm to a nominal value in 483 the range .01 to 0.1 ppm. 484 If it remains high for some time after 485 starting the daemon, something may be wrong with the local clock, 486 or the value of the kernel variable 487 .Va kern.clockrate.tick 488 may be 489 incorrect. 490 .Pp 491 The 492 .Sq broadcastdelay 493 shows the default broadcast delay, 494 as set by the 495 .Ic broadcastdelay 496 configuration command. 497 .Pp 498 The 499 .Sq authdelay 500 shows the default authentication delay, 501 as set by the 502 .Ic authdelay 503 configuration command. 504 .It Ic sysstats 505 Print statistics counters maintained in the protocol 506 module. 507 .It Ic memstats 508 Print statistics counters related to memory allocation 509 code. 510 .It Ic iostats 511 Print statistics counters maintained in the input-output 512 module. 513 .It Ic timerstats 514 Print statistics counters maintained in the timer/event queue 515 support code. 516 .It Ic reslist 517 Obtain and print the server's restriction list. 518 This list is 519 (usually) printed in sorted order and may help to understand how 520 the restrictions are applied. 521 .It Ic monlist Op Ar version 522 Obtain and print traffic counts collected and maintained by the 523 monitor facility. 524 The version number should not normally need to be 525 specified. 526 .It Ic clkbug Ar clock_peer_address Oo Ar ... Oc 527 Obtain debugging information for a reference clock driver. 528 This 529 information is provided only by some clock drivers and is mostly 530 undecodable without a copy of the driver source in hand. 531 .El 532 .Ss "Runtime Configuration Requests" 533 All requests which cause state changes in the server are 534 authenticated by the server using a configured NTP key (the 535 facility can also be disabled by the server by not configuring a 536 key). 537 The key number and the corresponding key must also be made 538 known to 539 .Nm . 540 This can be done using the 541 .Ic keyid 542 and 543 .Ic passwd 544 commands, the latter of which will prompt at the terminal for a 545 password to use as the encryption key. 546 You will also be prompted 547 automatically for both the key number and password the first time a 548 command which would result in an authenticated request to the 549 server is given. 550 Authentication not only provides verification that 551 the requester has permission to make such changes, but also gives 552 an extra degree of protection again transmission errors. 553 .Pp 554 Authenticated requests always include a timestamp in the packet 555 data, which is included in the computation of the authentication 556 code. 557 This timestamp is compared by the server to its receive time 558 stamp. 559 If they differ by more than a small amount the request is 560 rejected. 561 This is done for two reasons. 562 First, it makes simple 563 replay attacks on the server, by someone who might be able to 564 overhear traffic on your LAN, much more difficult. 565 Second, it makes 566 it more difficult to request configuration changes to your server 567 from topologically remote hosts. 568 While the reconfiguration facility 569 will work well with a server on the local host, and may work 570 adequately between time-synchronized hosts on the same LAN, it will 571 work very poorly for more distant hosts. 572 As such, if reasonable 573 passwords are chosen, care is taken in the distribution and 574 protection of keys and appropriate source address restrictions are 575 applied, the run time reconfiguration facility should provide an 576 adequate level of security. 577 .Pp 578 The following commands all make authenticated requests. 579 .Bl -tag -width indent 580 .It Xo Ic addpeer Ar peer_address 581 .Op Ar keyid 582 .Op Ar version 583 .Op Cm prefer 584 .Xc 585 Add a configured peer association at the given address and 586 operating in symmetric active mode. 587 Note that an existing 588 association with the same peer may be deleted when this command is 589 executed, or may simply be converted to conform to the new 590 configuration, as appropriate. 591 If the optional 592 .Ar keyid 593 is a 594 nonzero integer, all outgoing packets to the remote server will 595 have an authentication field attached encrypted with this key. 596 If 597 the value is 0 (or not given) no authentication will be done. 598 The 599 .Ar version 600 can be 1, 2 or 3 and defaults to 3. 601 The 602 .Cm prefer 603 keyword indicates a preferred peer (and thus will 604 be used primarily for clock synchronisation if possible). 605 The 606 preferred peer also determines the validity of the PPS signal - if 607 the preferred peer is suitable for synchronisation so is the PPS 608 signal. 609 .It Xo Ic addserver Ar peer_address 610 .Op Ar keyid 611 .Op Ar version 612 .Op Cm prefer 613 .Xc 614 Identical to the addpeer command, except that the operating 615 mode is client. 616 .It Xo Ic broadcast Ar peer_address 617 .Op Ar keyid 618 .Op Ar version 619 .Op Cm prefer 620 .Xc 621 Identical to the addpeer command, except that the operating 622 mode is broadcast. 623 In this case a valid key identifier and key are 624 required. 625 The 626 .Ar peer_address 627 parameter can be the broadcast 628 address of the local network or a multicast group address assigned 629 to NTP. 630 If a multicast address, a multicast-capable kernel is 631 required. 632 .It Ic unconfig Ar peer_address Oo Ar ... Oc 633 This command causes the configured bit to be removed from the 634 specified peer(s). 635 In many cases this will cause the peer 636 association to be deleted. 637 When appropriate, however, the 638 association may persist in an unconfigured mode if the remote peer 639 is willing to continue on in this fashion. 640 .It Xo Ic fudge Ar peer_address 641 .Op Cm time1 642 .Op Cm time2 643 .Op Ar stratum 644 .Op Ar refid 645 .Xc 646 This command provides a way to set certain data for a reference 647 clock. 648 See the source listing for further information. 649 .It Xo Ic enable 650 .Oo 651 .Cm auth | Cm bclient | 652 .Cm calibrate | Cm kernel | 653 .Cm monitor | Cm ntp | 654 .Cm pps | Cm stats 655 .Oc 656 .Xc 657 .It Xo Ic disable 658 .Oo 659 .Cm auth | Cm bclient | 660 .Cm calibrate | Cm kernel | 661 .Cm monitor | Cm ntp | 662 .Cm pps | Cm stats 663 .Oc 664 .Xc 665 These commands operate in the same way as the 666 .Ic enable 667 and 668 .Ic disable 669 configuration file commands of 670 .Xr ntpd 1ntpdmdoc . 671 .Bl -tag -width indent 672 .It Cm auth 673 Enables the server to synchronize with unconfigured peers only 674 if the peer has been correctly authenticated using either public key 675 or private key cryptography. 676 The default for this flag is enable. 677 .It Cm bclient 678 Enables the server to listen for a message from a broadcast or 679 multicast server, as in the multicastclient command with 680 default address. 681 The default for this flag is disable. 682 .It Cm calibrate 683 Enables the calibrate feature for reference clocks. 684 The default for this flag is disable. 685 .It Cm kernel 686 Enables the kernel time discipline, if available. 687 The default for this flag is enable if support is available, otherwise disable. 688 .It Cm monitor 689 Enables the monitoring facility. 690 See the documentation here about the 691 .Cm monlist 692 command or further information. 693 The default for this flag is enable. 694 .It Cm ntp 695 Enables time and frequency discipline. 696 In effect, this switch opens and closes the feedback loop, 697 which is useful for testing. 698 The default for this flag is enable. 699 .It Cm pps 700 Enables the pulse-per-second (PPS) signal when frequency 701 and time is disciplined by the precision time kernel modifications. 702 See the 703 .Qq A Kernel Model for Precision Timekeeping 704 (available as part of the HTML documentation 705 provided in 706 .Pa /usr/share/doc/ntp ) 707 page for further information. 708 The default for this flag is disable. 709 .It Cm stats 710 Enables the statistics facility. 711 See the 712 .Sx Monitoring Options 713 section of 714 .Xr ntp.conf 5 715 for further information. 716 The default for this flag is disable. 717 .El 718 .It Xo Ic restrict Ar address Ar mask 719 .Ar flag Oo Ar ... Oc 720 .Xc 721 This command operates in the same way as the 722 .Ic restrict 723 configuration file commands of 724 .Xr ntpd 1ntpdmdoc . 725 .It Xo Ic unrestrict Ar address Ar mask 726 .Ar flag Oo Ar ... Oc 727 .Xc 728 Unrestrict the matching entry from the restrict list. 729 .It Xo Ic delrestrict Ar address Ar mask 730 .Op Cm ntpport 731 .Xc 732 Delete the matching entry from the restrict list. 733 .It Ic readkeys 734 Causes the current set of authentication keys to be purged and 735 a new set to be obtained by rereading the keys file (which must 736 have been specified in the 737 .Xr ntpd 1ntpdmdoc 738 configuration file). 739 This 740 allows encryption keys to be changed without restarting the 741 server. 742 .It Ic trustedkey Ar keyid Oo Ar ... Oc 743 .It Ic untrustedkey Ar keyid Oo Ar ... Oc 744 These commands operate in the same way as the 745 .Ic trustedkey 746 and 747 .Ic untrustedkey 748 configuration file 749 commands of 750 .Xr ntpd 1ntpdmdoc . 751 .It Ic authinfo 752 Returns information concerning the authentication module, 753 including known keys and counts of encryptions and decryptions 754 which have been done. 755 .It Ic traps 756 Display the traps set in the server. 757 See the source listing for 758 further information. 759 .It Xo Ic addtrap Ar address 760 .Op Ar port 761 .Op Ar interface 762 .Xc 763 Set a trap for asynchronous messages. 764 See the source listing 765 for further information. 766 .It Xo Ic clrtrap Ar address 767 .Op Ar port 768 .Op Ar interface 769 .Xc 770 Clear a trap for asynchronous messages. 771 See the source listing 772 for further information. 773 .It Ic reset 774 Clear the statistics counters in various modules of the server. 775 See the source listing for further information. 776 .El 777 _END_MDOC_USAGE; 778 }; 779 780 781 doc-section = { 782 ds-type = 'SEE ALSO'; 783 ds-format = 'mdoc'; 784 ds-text = <<- _END_MDOC_SEEALSO 785 .Xr ntp.conf 5 , 786 .Xr ntpd 1ntpdmdoc 787 .Rs 788 .%A David L. Mills 789 .%T Network Time Protocol (Version 3) 790 .%O RFC1305 791 .Re 792 _END_MDOC_SEEALSO; 793 }; 794 795 796 doc-section = { 797 ds-type = 'AUTHORS'; 798 ds-format = 'mdoc'; 799 ds-text = <<- _END_MDOC_AUTHORS 800 The formatting directives in this document came from FreeBSD. 801 _END_MDOC_AUTHORS; 802 }; 803 804 805 doc-section = { 806 ds-type = 'BUGS'; 807 ds-format = 'mdoc'; 808 ds-text = <<- _END_MDOC_BUGS 809 The 810 .Nm 811 utility is a crude hack. 812 Much of the information it shows is 813 deadly boring and could only be loved by its implementer. 814 The 815 program was designed so that new (and temporary) features were easy 816 to hack in, at great expense to the program's ease of use. 817 Despite 818 this, the program is occasionally useful. 819 .Pp 820 Please report bugs to http://bugs.ntp.org . 821 _END_MDOC_BUGS; 822 }; 823