OpenNMS API 1.2.3

org.opennms.protocols.ntp
Class NtpMessage

java.lang.Object
  extended byorg.opennms.protocols.ntp.NtpMessage

public class NtpMessage
extends java.lang.Object


Field Summary
 byte leapIndicator
          This is a two-bit code warning of an impending leap second to be inserted/deleted in the last minute of the current day.
 byte mode
          This value indicates the mode, with values defined as follows: Mode Meaning ---- ------- 0 reserved 1 symmetric active 2 symmetric passive 3 client 4 server 5 broadcast 6 reserved for NTP control message 7 reserved for private use In unicast and anycast modes, the client sets this field to 3 (client) in the request and the server sets it to 4 (server) in the reply.
 double originateTimestamp
          This is the time at which the request departed the client for the server, in seconds since 00:00 1-Jan-1900.
 byte pollInterval
          This value indicates the maximum interval between successive messages, in seconds to the nearest power of two.
 byte precision
          This value indicates the precision of the local clock, in seconds to the nearest power of two.
 double receiveTimestamp
          This is the time at which the request arrived at the server, in seconds since 00:00 1-Jan-1900.
 byte[] referenceIdentifier
          This is a 4-byte array identifying the particular reference source.
 double referenceTimestamp
          This is the time at which the local clock was last set or corrected, in seconds since 00:00 1-Jan-1900.
 double rootDelay
          This value indicates the total roundtrip delay to the primary reference source, in seconds.
 double rootDispersion
          This value indicates the nominal error relative to the primary reference source, in seconds.
 short stratum
          This value indicates the stratum level of the local clock, with values defined as follows: Stratum Meaning ---------------------------------------------- 0 unspecified or unavailable 1 primary reference (e.g., radio clock) 2-15 secondary reference (via NTP or SNTP) 16-255 reserved
 double transmitTimestamp
          This is the time at which the reply departed the server for the client, in seconds since 00:00 1-Jan-1900.
 byte version
          This value indicates the NTP/SNTP version number.
 
Constructor Summary
NtpMessage()
          Constructs a new NtpMessage in client -> server mode, and sets the transmit timestamp to the current time.
NtpMessage(byte[] array)
          Constructs a new NtpMessage from an array of bytes.
NtpMessage(byte leapIndicator, byte version, byte mode, short stratum, byte pollInterval, byte precision, double rootDelay, double rootDispersion, byte[] referenceIdentifier, double referenceTimestamp, double originateTimestamp, double receiveTimestamp, double transmitTimestamp)
          Constructs a new NtpMessage
 
Method Summary
static double decodeTimestamp(byte[] array, int pointer)
          Will read 8 bytes of a message beginning at pointer and return it as a double, according to the NTP 64-bit timestamp format.
static void encodeTimestamp(byte[] array, int pointer, double timestamp)
          Encodes a timestamp in the specified position in the message
static java.lang.String referenceIdentifierToString(byte[] ref, short stratum, byte version)
          Returns a string representation of a reference identifier according to the rules set out in RFC 2030.
static java.lang.String timestampToString(double timestamp)
          Returns a timestamp (number of seconds since 00:00 1-Jan-1900) as a formatted date/time string.
 byte[] toByteArray()
          This method constructs the data bytes of a raw NTP packet.
 java.lang.String toString()
          Returns a string representation of a NtpMessage
static short unsignedByteToShort(byte b)
          Converts an unsigned byte to a short.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

leapIndicator

public byte leapIndicator
This is a two-bit code warning of an impending leap second to be inserted/deleted in the last minute of the current day. It's values may be as follows: Value Meaning ----- ------- 0 no warning 1 last minute has 61 seconds 2 last minute has 59 seconds) 3 alarm condition (clock not synchronized)


version

public byte version
This value indicates the NTP/SNTP version number. The version number is 3 for Version 3 (IPv4 only) and 4 for Version 4 (IPv4, IPv6 and OSI). If necessary to distinguish between IPv4, IPv6 and OSI, the encapsulating context must be inspected.


mode

public byte mode
This value indicates the mode, with values defined as follows: Mode Meaning ---- ------- 0 reserved 1 symmetric active 2 symmetric passive 3 client 4 server 5 broadcast 6 reserved for NTP control message 7 reserved for private use In unicast and anycast modes, the client sets this field to 3 (client) in the request and the server sets it to 4 (server) in the reply. In multicast mode, the server sets this field to 5 (broadcast).


stratum

public short stratum
This value indicates the stratum level of the local clock, with values defined as follows: Stratum Meaning ---------------------------------------------- 0 unspecified or unavailable 1 primary reference (e.g., radio clock) 2-15 secondary reference (via NTP or SNTP) 16-255 reserved


pollInterval

public byte pollInterval
This value indicates the maximum interval between successive messages, in seconds to the nearest power of two. The values that can appear in this field presently range from 4 (16 s) to 14 (16284 s); however, most applications use only the sub-range 6 (64 s) to 10 (1024 s).


precision

public byte precision
This value indicates the precision of the local clock, in seconds to the nearest power of two. The values that normally appear in this field\ range from -6 for mains-frequency clocks to -20 for microsecond clocks found in some workstations.


rootDelay

public double rootDelay
This value indicates the total roundtrip delay to the primary reference source, in seconds. Note that this variable can take on both positive and negative values, depending on the relative time and frequency offsets. The values that normally appear in this field range from negative values of a few milliseconds to positive values of several hundred milliseconds.


rootDispersion

public double rootDispersion
This value indicates the nominal error relative to the primary reference source, in seconds. The values that normally appear in this field range from 0 to several hundred milliseconds.


referenceIdentifier

public byte[] referenceIdentifier
This is a 4-byte array identifying the particular reference source. In the case of NTP Version 3 or Version 4 stratum-0 (unspecified) or stratum-1 (primary) servers, this is a four-character ASCII string, left justified and zero padded to 32 bits. In NTP Version 3 secondary servers, this is the 32-bit IPv4 address of the reference source. In NTP Version 4 secondary servers, this is the low order 32 bits of the latest transmit timestamp of the reference source. NTP primary (stratum 1) servers should set this field to a code identifying the external reference source according to the following list. If the external reference is one of those listed, the associated code should be used. Codes for sources not listed can be contrived as appropriate. Code External Reference Source ---- ------------------------- LOCL uncalibrated local clock used as a primary reference for a subnet without external means of synchronization PPS atomic clock or other pulse-per-second source individually calibrated to national standards ACTS NIST dialup modem service USNO USNO modem service PTB PTB (Germany) modem service TDF Allouis (France) Radio 164 kHz DCF Mainflingen (Germany) Radio 77.5 kHz MSF Rugby (UK) Radio 60 kHz WWV Ft. Collins (US) Radio 2.5, 5, 10, 15, 20 MHz WWVB Boulder (US) Radio 60 kHz WWVH Kaui Hawaii (US) Radio 2.5, 5, 10, 15 MHz CHU Ottawa (Canada) Radio 3330, 7335, 14670 kHz LORC LORAN-C radionavigation system OMEG OMEGA radionavigation system GPS Global Positioning Service GOES Geostationary Orbit Environment Satellite


referenceTimestamp

public double referenceTimestamp
This is the time at which the local clock was last set or corrected, in seconds since 00:00 1-Jan-1900.


originateTimestamp

public double originateTimestamp
This is the time at which the request departed the client for the server, in seconds since 00:00 1-Jan-1900.


receiveTimestamp

public double receiveTimestamp
This is the time at which the request arrived at the server, in seconds since 00:00 1-Jan-1900.


transmitTimestamp

public double transmitTimestamp
This is the time at which the reply departed the server for the client, in seconds since 00:00 1-Jan-1900.

Constructor Detail

NtpMessage

public NtpMessage(byte[] array)
Constructs a new NtpMessage from an array of bytes.


NtpMessage

public NtpMessage(byte leapIndicator,
                  byte version,
                  byte mode,
                  short stratum,
                  byte pollInterval,
                  byte precision,
                  double rootDelay,
                  double rootDispersion,
                  byte[] referenceIdentifier,
                  double referenceTimestamp,
                  double originateTimestamp,
                  double receiveTimestamp,
                  double transmitTimestamp)
Constructs a new NtpMessage


NtpMessage

public NtpMessage()
Constructs a new NtpMessage in client -> server mode, and sets the transmit timestamp to the current time.

Method Detail

toByteArray

public byte[] toByteArray()
This method constructs the data bytes of a raw NTP packet.


toString

public java.lang.String toString()
Returns a string representation of a NtpMessage


unsignedByteToShort

public static short unsignedByteToShort(byte b)
Converts an unsigned byte to a short. By default, Java assumes that a byte is signed.


decodeTimestamp

public static double decodeTimestamp(byte[] array,
                                     int pointer)
Will read 8 bytes of a message beginning at pointer and return it as a double, according to the NTP 64-bit timestamp format.


encodeTimestamp

public static void encodeTimestamp(byte[] array,
                                   int pointer,
                                   double timestamp)
Encodes a timestamp in the specified position in the message


timestampToString

public static java.lang.String timestampToString(double timestamp)
Returns a timestamp (number of seconds since 00:00 1-Jan-1900) as a formatted date/time string.


referenceIdentifierToString

public static java.lang.String referenceIdentifierToString(byte[] ref,
                                                           short stratum,
                                                           byte version)
Returns a string representation of a reference identifier according to the rules set out in RFC 2030.


OpenNMS API 1.2.3

Generated by eevans on May 29 2005 2015.