RFC 1708 INFORMATIONAL NTP · CONFORMANCE · TESTING

NTP PICS PROFORMA - For the Network Time Protocol Version 3

A checklist form for NTP implementations to declare supported features

On rfc-editor.org ↗
PUBLISHED
October 1994
AUTHORS
D. Gowin
STREAM
Legacy
STANDARD REFERENCE
ISO/IEC 9646 conformance testing
PROTOCOL VERSION
NTP v3
DEFAULT NTP PORT
123
MAXIMUM STRATUM
15
DOI
10.17487/RFC1708

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group:                                          D. Gowin
Request for Comments: 1708                                   Vitro Corp.
Category: Informational                                     October 1994


                           NTP PICS PROFORMA
                For the Network Time Protocol Version 3

Status of this Memo

   This memo provides information for the Internet community.  This memo
   does not specify an Internet standard of any kind.  Distribution of
   this memo is unlimited.

Abstract

   This RFC describes a PICS Proforma translated into an Internet
   acceptable form.  The Original document was developed according to
   ISO 9646 for conformance test purposes.  This document is intended
   for both developers and users of the NTP (Network Time Protocol).
   This document contains specific information and performance
   characteristics for the use of NTP within the context of Internet
   usage.  It is suggested, that users wishing to use the
   synchronization capabilities of the Internet abide by the
   characteristics set within this document.

   For more information please contact Dr. David Mills at Mills@udel.edu
   or review RFC 1305 for more information.

1.  INTRODUCTION

   To evaluate conformance of a particular implementation, it is
   necessary to have a statement of the capabilities and options that
   have been implemented for a given protocol.  Such a statement is
   called a Protocol Implementation Conformance Statement (PICS).

2.  SCOPE

   This document provides the PICS proforma for the Network Time
   Protocol (NTP) in compliance with the relevant requirements, and in
   accordance with the relevant guidance, given in ISO/IEC 9646-2.

3.  REFERENCE DOCUMENTS

     ISO/IEC 9646-1 1990, Information technology - Open systems
                    interconnection - Conformance testing
                    methodology and framework - Part 1: General
                    concepts.

     ISO/IEC 9646-2 1990, Information technology - Open systems
                    interconnection - Conformance testing
                    methodology and framework - Part 2: Abstract
                    test suite specification.

     RFC 1305       Network Time Protocol (Version 3) -
                    Specification, Implementation and Analysis -
                    David L. Mills, University of Delaware -
                    March 1992.

4.  DEFINITIONS

   This document uses the following terms defined in ISO/IEC 9646-1:

     a) PICS proforma;

     b) Protocol Implementation Conformance Statement (PICS);

     c) Static conformance review.

4.1 SPECIAL SYMBOLS

   The additional symbols have been identified for use in this document:

          m    Mandatory field/function

          o.#  Optional field/function

          c#   Conditional field/function

          #    Refers to a note # below the table

          x    Prohibited use

          n/a  Not applicable

          Y[]  Indicates the item is implemented

          N[]  Indicates the item is not implemented

5.  INSTRUCTIONS FOR COMPLETION OF PICS

   The supplier of a protocol implementation which is claimed to conform
   to NTP version 3 is required to complete a copy of the PICS proforma
   provided in this document and is required to provide the information
   necessary to identify both the supplier and the implementation.

6.  COPYRIGHT

   Copyright release for PICS proforma.  Users of this RFC may freely
   reproduce the PICS proforma in this document so that it can be used
   for its intended purpose and may further publish the completed PICS.

7.  IMPLEMENTATION IDENTIFICATION

   +=======================================+=======================+
   |           SUPPLIER                    |                       |
   |                                       |                       |
   +---------------------------------------+-----------------------+
   |                                       |                       |
   |      CONTACT POINT FOR                |                       |
   |    QUERIES ABOUT THE PICS             |                       |
   |                                       |                       |
   +---------------------------------------+-----------------------+
   |                                       |                       |
   |     IMPLEMENTATION NAME               |                       |
   |          AND VERSION                  |                       |
   |                                       |                       |
   +---------------------------------------+-----------------------+
   |                                       |                       |
   |      OTHER INFORMATION                |                       |
   |      NECESSARY FOR FULL               |                       |
   |     IDENTIFICATION - e.g.             |                       |
   |       NAME AND VERSION                |                       |
   |      FOR MACHINES AND/OR              |                       |
   |      OPERATING SYSTEMS;               |                       |
   |          SYSTEM NAME                  |                       |
   |                                       |                       |
   |                                       |                       |
   |                                       |                       |
   +=======================================+=======================+

8.  NETWORK TIME PROTOCOL PICS PROFORMA

8.1  DATA FORMATS

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.1.01      64 bit time
               stamp                  3.1           m       Y[] N[]

8.2 STATE VARIABLES AND PARAMETERS

8.2.1 COMMON VARIABLES

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.1.01    Peer Address           3.2.1         m       Y[] N[]
   8.2.1.02    Peer Port              3.2.1         m       Y[] N[]
   8.2.1.03    Host Address           3.2.1         m       Y[] N[]
   8.2.1.04    Host Port              3.2.1         m       Y[] N[]
   8.2.1.05    Leap Indicator         3.2.1         m       Y[] N[]
   8.2.1.06    Mode                   3.2.1         m       Y[] N[]
   8.2.1.07    Stratum                3.2.1         m       Y[] N[]
   8.2.1.08    Poll                   3.2.1         m       Y[] N[]
   8.2.1.09    Precision              3.2.1         m       Y[] N[]
   8.2.1.10    Root Delay             3.2.1         m       Y[] N[]
   8.2.1.11    Root Dispersion        3.2.1         m       Y[] N[]
   8.2.1.12    Reference Clock
               Identifier             3.2.1         m       Y[] N[]
   8.2.1.13    Reference
               Timestamp              3.2.1         m       Y[] N[]
   8.2.1.14    Originate
               Timestamp              3.2.1         m       Y[] N[]
   8.2.1.15    Receive
               Timestamp              3.2.1         m       Y[] N[]
   8.2.1.16    Transmit
               Timestamp              3.2.1         m       Y[] N[]

8.2.2 SYSTEM VARIABLES

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.2.01    Local Clock            3.2.2         m       Y[] N[]
   8.2.2.02    Clock Source           3.2.2         m       Y[] N[]

8.2.3 PEER VARIABLES

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.3.01    Configured Bit         3.2.3         m       Y[] N[]
   8.2.3.02    Update Timestamp       3.2.3         m       Y[] N[]
   8.2.3.03    Reachability
               Register               3.2.3         m       Y[] N[]
   8.2.3.04    Peer Timer             3.2.3         m       Y[] N[]

8.2.4 PACKET VARIABLES

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.4.01    Version Number         3.2.4         m       Y[] N[]

8.2.5 CLOCK FILTER VARIABLES

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.5.01    Filter Register        3.2.5         m       Y[] N[]
   8.2.5.02    Valid Data
               Counter                3.2.5         m       Y[] N[]
   8.2.5.03    Offset                 3.2.5         m       Y[] N[]
   8.2.5.04    Delay                  3.2.5         m       Y[] N[]
   8.2.5.05    Dispersion             3.2.5         m       Y[] N[]

8.2.6 AUTHENTICATION VARIABLES

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.6.01    Authentication
               Enable Bit             3.2.6         c1      Y[] N[]
   8.2.6.02    Authenticated
               Bit                    3.2.6         c1      Y[] N[]
   8.2.6.03    Key Identifier         3.2.6         c1      Y[] N[]
   8.2.6.04    Cryptographic
               Keys                   3.2.6         c1      Y[] N[]
   8.2.6.05    Crypto Checksum        3.2.6         c1      Y[] N[]

     c1:   IF authentication is used THEN m ELSE o.

8.2.7 PARAMETER VALUES

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.7.01    Version Number = 3     3.2.7         c1      Y[] N[]
   8.2.7.02    NTP Port = 123         3.2.7         c1      Y[] N[]
   8.2.7.03    Max Stratum = 15       3.2.7         c1      Y[] N[]
   8.2.7.04    Max Clock Age =
               86,400 sec.            3.2.7         c1      Y[] N[]
   8.2.7.05    Max Skew = 1 sec.      3.2.7         c1      Y[] N[]
   8.2.7.06    Max Distance = 1 sec.  3.2.7         c1      Y[] N[]
   8.2.7.07    Min Polling Interval =
               6(64 sec.)             3.2.7         c1      Y[] N[]
   8.2.7.08    Max Polling Interval =
               10(1024 sec.)          3.2.7         c1      Y[] N[]
   8.2.7.09    Min Select Clock = 1   3.2.7         c1      Y[] N[]
   8.2.7.10    Max Select Clock = 10  3.2.7         c1      Y[] N[]
   8.2.7.11    Min Dispersion =
               0.01 sec.              3.2.7         c1      Y[] N[]
   8.2.7.12    Max Dispersion =
               16 sec.                3.2.7         c1      Y[] N[]
   8.2.7.13    Reachability Reg
               Size = 8               3.2.7         c1      Y[] N[]
   8.2.7.14    Filter Size = 8        3.2.7         c1      Y[] N[]
   8.2.7.15    Filter Weight = 1/2    3.2.7         c1      Y[] N[]
   8.2.7.16    Select Weight = 3/4    3.2.7         c1      Y[] N[]

     c1:   IF implementation is intended for use on the Internet
           THEN m ELSE o.

8.2.8 MODES OF OPERATION

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.8.01    Symmetric Active       3.3           o.1     Y[] N[]
   8.2.8.02    Symmetric Passive      3.3           o.1     Y[] N[]
   8.2.8.03    Client                 3.3           o.1     Y[] N[]
   8.2.8.04    Server                 3.3           o.1     Y[] N[]
   8.2.8.05    Broadcast              3.3           o.1     Y[] N[]

     o.1:At least one mode must be implemented.

8.2.9 EVENT PROCESSING

8.2.9.1 TRANSMIT PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.1.01  Transmit Procedure     3.4.2         m       Y[] N[]
   8.2.9.1.02  Authentication         3.4.2         o       Y[] N[]

8.2.9.2 RECEIVE PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.2.01  Receive Procedure      3.4.3         m       Y[] N[]
   8.2.9.2.02  Control Messages       3.4.3         o.1     Y[] N[]
   8.2.9.2.03  Authentication         3.4.3         o       Y[] N[]

     o.1:If implemented then section 8.6 must be completed.

8.2.9.3 PACKET PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.3.01  Packet Procedure       3.4.4         m       Y[] N[]
   8.2.9.3.02  Authentication         3.4.4         o       Y[] N[]

8.2.9.4 CLOCK UPDATE PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.4.01  Clock Update           3.4.5         m       Y[] N[]

8.2.9.5 PRIMARY CLOCK PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.5.01  Primary Clock          3.4.6         m       Y[] N[]

8.2.9.6 INITIALIZATION PROCEDURES

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.6.01  Initialization         3.4.7.1       m       Y[] N[]
   8.2.9.6.02  Authentication         3.4.7.1       o       Y[] N[]

8.2.9.7 INITIALIZATION INSTANTIATION PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.7.01  Initialization
               Instantiation          3.4.7.2       m       Y[] N[]
   8.2.9.7.02  Authentication         3.4.7.2       o       Y[] N[]

8.2.9.8 RECEIVE INSTANTIATION PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.8.01  Receive Instantiation  3.4.7.3       m       Y[] N[]
   8.2.9.8.02  Authentication         3.4.7.3       o       Y[] N[]

8.2.9.9 PRIMARY CLOCK INSTANTIATION PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.9.01  Clock Instantiation    3.4.7.4       m       Y[] N[]

8.2.9.10 CLEAR PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.10.01 Clear Proc.            3.4.8         m       Y[] N[]

8.2.9.11 POLL UPDATE PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.11.01 Poll Update            3.4.9         m       Y[] N[]

8.2.9.12 SYNCHRONIZATION DISTANCE PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.2.9.12.01 Distance Proc.         3.5           m       Y[] N[]

8.3 FILTERING AND SELECTION ALGORITHMS

8.3.1 CLOCK FILTER PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.3.1.01    Clock Filter           4.1           o       Y[] N[]

8.3.2 CLOCK SELECTION PROCEDURE

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.3.2.01    Clock Selection
               Procedure              4.2           o       Y[] N[]
   8.3.2.02    Intersection Algorithm 4.2.1         c1      Y[] N[]
   8.3.2.03    Clustering Algorithm   4.2.2         c1      Y[] N[]

     c1: IF Clock Selection Procedure implemented THEN m ELSE o.

8.4 LOCAL CLOCKS

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.4.01      Logical Clock          5             m       Y[] N[]

8.4.1 FUZZBALL LOCAL CLOCK IMPLEMENTATIONS

8.4.1.1 CRYSTAL OSCILLATOR BASED IMPLEMENTATION PARAMETER VALUES

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.4.1.1.01  Adjustment Interval =
               4 sec.                 5.1           c1      Y[] N[]
   8.4.1.1.02  PPS Timeout = 60 sec.  5.1           c1      Y[] N[]
   8.4.1.1.02  Step Timeout =
               900 sec.               5.1           c1      Y[] N[]
   8.4.1.1.02  Maximum Aperture =
               q128 ms                5.1           c1      Y[] N[]
   8.4.1.1.03  Frequency Weight = 16  5.1           c1      Y[] N[]
   8.4.1.1.04  Phase Weight = 8       5.1           c1      Y[] N[]
   8.4.1.1.05  Compliance Weight = 13 5.1           c1      Y[] N[]
   8.4.1.1.06  Compliance Maximum = 4 5.1           c1      Y[] N[]
   8.4.1.1.07  Compliance
               Multiplier = 4         5.1           c1      Y[] N[]

     c1:IF implementing a fuzzball using a crystal oscillator
             based local clock THEN m ELSE o.

8.4.1.2 MAIN SYSTEM CLOCK IMPLEMENTATION PARAMETER VALUES

   Item No.    NTP Requirements     Reference     Status    Support
   =================================================================
   8.4.1.2.01  Adjustment
               Interval = 1 sec.      5.1           c1      Y[] N[]
   8.4.1.2.02  PPS Timeout = 60 sec.  5.1           c1      Y[] N[]
   8.4.1.2.02  Step Timeout =
               900 sec.               5.1           c1      Y[] N[]
   8.4.1.2.02  Maximum Aperture =
               q512 ms                5.1           c1      Y[] N[]
   8.4.1.2.03  Frequency Weight = 16  5.1           c1      Y[] N[]
   8.4.1.2.04  Phase Weight = 9       5.1           c1      Y[] N[]
   8.4.1.2.05  Compliance Weight = 13 5.1           c1      Y[] N[]
   8.4.1.2.06  Compliance Maximum = 4 5.1           c1      Y[] N[]
   8.4.1.2.07  Compliance
               Multiplier = 4         5.1           c1      Y[] N[]

     c1:IF implementing a fuzzball using a main system clock
             THEN m ELSE o.

8.4.2 PHASE ADJUSTMENT

   Item No.   NTP Requirements      Reference     Status    Support
   =================================================================
   8.4.2.01   Gradual Phase
              Adjustment              5.2           m      Y[] N[]
   8.4.2.02   Step Phase Adjustment   5.3           m      Y[] N[]

8.5 NTP DATA FORMAT

   Item No.   NTP Requirements      Reference     Status    Support
   =================================================================
   8.5.01     Leap Indicator
              is a 2 bit code       App. A          m       Y[] N[]
   8.5.02     Version Number
              is a 3 bit integer    App. A          m       Y[] N[]
   8.5.03     Mode
              is a 3 bit integer    App. A          m       Y[] N[]
   8.5.04     Stratum is an 8
              bit integer           App. A          m       Y[] N[]
   8.5.05     Poll is an 8 bit
              signed integer        App. A          m       Y[] N[]
   8.5.06     Precision is an
              8 bit signed integer  App. A          m       Y[] N[]
   8.5.07     Root Delay is a 32 bit signed
              fixed-point number    App. A          m       Y[] N[]
   8.5.08     Root Dispersion is a 32 bit
              fixed-point number    App. A          m       Y[] N[]
   8.5.09     Reference Identifier is a 4
              octet, left justified, zero
              padded ASCII string   App. A          m       Y[] N[]
   8.5.10     Reference Timestamp is a 64
              bit timestamp format  App. A          m       Y[] N[]
   8.5.11     Originate Timestamp is a 64
              bit timestamp format  App. A          m       Y[] N[]
   8.5.12     Receive Timestamp is a 64
              bit timestamp format  App. A          m       Y[] N[]
   8.5.13     Transmit Timestamp is a 64
              bit timestamp  format App. A          m       Y[] N[]
   8.5.14     Authenticator 96 bits App. A          o       Y[] N[]

8.6 NTP Control Messages

8.6.1 NTP Control Message Header Format

   Item No.   NTP Requirements      Reference     Status    Support
   =================================================================
   8.6.1.01   Leap Indicator
              is a 2 bit code       App. B.1        c1      Y[] N[]
   8.6.1.02   Version Number
              is a 3 bit integer    App. B.1        c1      Y[] N[]
   8.6.1.03   Mode is a 3 bit
              integer               App. B.1        c1      Y[] N[]
   8.6.1.04   Response bit is
              a 1 Bit field         App. B.1        c1      Y[] N[]
   8.6.1.05   Error bit is a 1
              bit field             App. B.1        c1      Y[] N[]
   8.6.1.06   More bit is a 1
              bit field             App. B.1        c1      Y[] N[]

   Item No.   NTP Requirements      Reference     Status    Support
   =================================================================
   8.6.1.07   Operation Code
              is a 5 bit integer    App. B.1        c1      Y[] N[]
   8.6.1.08   Sequence is a 16
              bit integer           App. B.1        c1      Y[] N[]
   8.6.1.09   Status is a 16
              bit code              App. B.1        c1      Y[] N[]
   8.6.1.10   Association ID
              is a 16 bit integer   App. B.1        c1      Y[] N[]
   8.6.1.11   Offset is a 16
              bit integer           App. B.1        c1      Y[] N[]
   8.6.1.12   Count is a 16
              bit integer           App. B.1        c1      Y[] N[]
   8.6.1.13   Data is a
              maximum of 468 octets App. B.1        c1      Y[] N[]
   8.6.1.14   Authenticator
              96 bits               App. B.1        c1      Y[] N[]

     c1: IF control messages are used THEN m ELSE o.

8.6.1.1 NTP Control Message Required Values

   Item No.   NTP Requirements      Reference     Status    Support
   =================================================================
   8.6.1.1.01 Leap Indicator = 00   App. B.1        c1      Y[] N[]
   8.6.1.1.02 Version Number = 3    App. B.1        c1      Y[] N[]
   8.6.1.1.03 Mode = 6              App. B.1        c1      Y[] N[]

     c1:IF control messages are used THEN m ELSE o.

8.6.2 System Words

8.6.2.1 System Status Word

   Item No.   NTP Requirements      Reference     Status    Support
   =================================================================
   8.6.2.1.01 Leap Indicator
              is a 2 bit code       App.B.2.1       c1      Y[] N[]
   8.6.2.1.02 Clock Source is
              a 6 bit integer       App.B.2.1       c1      Y[] N[]
   8.6.2.1.03 System Event Counter
              is a 4 bit integer    App.B.2.1       c1      Y[] N[]
   8.6.2.1.04 System Event Code
              is a 4 bit integer    App.B.2.1       c1      Y[] N[]

     c1:IF control messages are used THEN m ELSE o.

8.6.2.2 Peer Status Word

   Item No.   NTP Requirements      Reference     Status    Support
   =================================================================
   8.6.2.2.01 Peer Status is a
              5 bit code            App.B.2.2       c1      Y[] N[]
   8.6.2.2.02 Peer Selection
              is a 3 bitinteger     App.B.2.2       c1      Y[] N[]
   8.6.2.2.03 Peer Event Counter
              is a 4 bit integer    App.B.2.2       c1      Y[] N[]
   8.6.2.2.04 Peer Event Code
              is a 4 bit integer    App.B.2.2       c1      Y[] N[]

     c1:IF control messages are used THEN m ELSE o.

8.6.2.3 Clock Status Word

   Item No.   NTP Requirements      Reference     Status    Support
   =================================================================
   8.6.2.3.01 Clock Status is
              an 8 bit integer      App.B.2.3       c1      Y[] N[]
   8.6.2.3.02 Clock Event Code
              is an 8 bit integer   App.B.2.3       c1      Y[] N[]

     c1:IF control messages are used THEN m ELSE o.

8.6.2.4 Error Status Word

   Item No.   NTP Requirements      Reference     Status    Support
   =================================================================
   8.6.2.4.01 Error Status is
              an 8 bit integer      App.B.2.4       c1      Y[] N[]

     c1:IF control messages are used THEN m ELSE o.

9.  Security Considerations

   Security issues are not discussed in this memo

10.  References

   [1] Mills. D., "Network Time Protocol Version 3 - Specification,
       Implementation and Analysis", RFC 1305, UDEL, March 1992.

11.  Author's Address

   Dan R. Gowin
   Vitro a Tracor Company
   5001 N. St. Rd. 37 (BUS)
   Bloomington, IN 47404-1626

   Phone: (812) 336-2299 x379
   Fax: (812) 333-0415
   EMail: drg508@crane-ns.nwscc.sea06.navy.MIL

AI ELI5

On this page
PROBLEMWhen evaluating whether an NTP implementation is compliant with the NTP version 3 specification, there is no standard way to document which features and options a particular implementation supports.
MECHANISMA PICS proforma is a structured form that NTP implementers fill in to declare which features they support, using mandatory (m), optional (o), and conditional (c) entries organized by topic.
WHY IT MATTERSDevelopers, users, and testing organizations can easily understand the capabilities of different NTP implementations and make informed decisions about deployment. The proforma became a reference for conformance evaluation of NTP v3 systems.

§1Introduction

Protocol Implementation Conformance Statements (PICS) are standardized forms used to document the capabilities of protocol implementations. RFC 1708 provides the PICS proforma for Network Time Protocol version 3, the protocol that synchronizes computer clocks across networks. The proforma is based on ISO/IEC 9646 conformance testing methodology, ensuring consistency with international testing standards.

The document serves as a template that developers and implementers can use to formally declare what features they have implemented in their NTP systems. This allows users, network operators, and testing organizations to compare different NTP implementations and understand their capabilities without needing to read source code.

PICS is like a reference sheet where software makers write down what their program can do, so people know what features to expect.

§2The PICS Proforma Structure

The proforma is organized into major sections covering different aspects of NTP v3 implementation. It begins with fields for implementation identification, including the supplier name, contact information, implementation name and version, and system details. This allows clear identification of which product or system is being described.

The core of the proforma consists of tables that organize NTP requirements into categories: data formats, state variables and parameters, filtering and selection algorithms, local clock implementations, NTP data format fields, and NTP control messages. Each requirement is listed with a status indicator showing whether it is mandatory (m), optional (o), or conditional (c) for compliance.

The conditional requirements include notes explaining when they apply (for example, certain features are mandatory if authentication is used, while others are only mandatory for implementations intended for use on the Internet). This structure allows for flexibility while ensuring that all necessary combinations are documented.

The form divides NTP into sections for time stamps, variables, algorithms, clock types, message formats, and control messages, with each feature marked as required, optional, or conditional.

§3Data Formats and State Variables

NTP uses several key pieces of information to synchronize time. The proforma lists all the required data elements, starting with the 64-bit timestamp format that carries time information. It then documents state variables at multiple levels: common variables like peer addresses and stratum, system-wide variables such as the local clock, peer-specific variables for tracking synchronization with particular time sources, and packet variables that are set in each NTP message.

The proforma includes comprehensive tables for clock filter variables used to select the best time source from multiple peers, and authentication variables for cryptographic authentication of NTP messages. Each variable is marked with its reference to the NTP v3 specification so implementers can verify they understand the requirement correctly.

Parameter values are also listed, including standard values like NTP port 123, maximum stratum of 15, and polling interval ranges. These concrete values help ensure consistent behavior across different implementations.

The form lists all the time stamps, network addresses, clock information, and security settings that an NTP system needs to track.

§4Modes, Procedures and Algorithms

NTP v3 supports multiple modes of operation: symmetric active and passive modes for peer relationships, client mode for requesting time from a server, server mode for providing time, and broadcast mode for one-way dissemination. At least one mode must be implemented, but implementations can support any combination. The proforma explicitly marks this requirement as optional with a note that at least one is mandatory.

The proforma documents event processing procedures: transmit and receive procedures for handling NTP messages, packet processing, clock update operations, and initialization. It also covers optional procedures like authentication during these operations, and optional features like control messages used for network management and monitoring of NTP systems.

Additional sections cover clock filtering procedures that select the best time source among multiple peers, clock selection algorithms that combine multiple time sources, and local clock implementations with specific parameters for different hardware approaches (crystal oscillator-based or system-clock based). Phase adjustment procedures for gradual and step changes to the system clock are also documented.

The form shows which time synchronization modes (client, server, broadcast) are supported, what procedures are used for sending and receiving messages, and how the system picks the best time source.

§5Conformance Testing and Use

The proforma is designed for conformance evaluation of NTP v3 implementations. Suppliers fill it in to formally declare their implementation's capabilities, and the completed forms become part of the documentation for that product. This allows comparison between products and helps ensure that systems claiming to implement NTP v3 actually do so consistently.

The document includes a copyright notice explicitly allowing anyone to reproduce and distribute the proforma, and to freely publish completed PICS forms. This ensures the proforma can be widely used without licensing restrictions. The use of ISO standards methodology provides a common language that works across different organizations and countries for evaluating conformance.

RFC 1305, which defines NTP v3 itself, provides all the normative details, and RFC 1708 references it throughout. Implementers are expected to have the NTP v3 specification available and to carefully review each requirement before filling in the proforma. When a requirement is marked as conditional, the notes clarify exactly when it applies.

Implementers fill out the form to officially say what their NTP version 3 system can do, and it helps people check if software meets the standard.

§6References