NAME
Net::Frame::Layer::NTP - NTP layer object
SYNOPSIS
use Net::Frame::Simple;
use Net::Frame::Layer::NTP qw(:consts);
my $layer = Net::Frame::Layer::NTP->new(
leap => NF_NTP_LI_NOWARN,
version => 3,
mode => NF_NTP_MODE_CLIENT,
stratum => NF_NTP_STRATUM_UNSPEC,
poll => 0,
precision => 0,
rootDelay => 0,
rootDisp => 0,
refId => 0,
refTime => 0,
refTime_frac => 0,
org => 0,
org_frac => 0,
rec => 0,
rec_frac => 0,
xmt => ntpTimestamp(time),
xmt_frac => 0,
);
#
# Read a raw layer
#
my $layer = Net::Frame::Layer::NTP->new(raw => $raw);
print $layer->print."\n";
print 'PAYLOAD: '.unpack('H*', $layer->payload)."\n"
if $layer->payload;
DESCRIPTION
This modules implements the encoding and decoding of the NTP layer.
RFC: ftp://ftp.rfc-editor.org/in-notes/rfc1305.txt
See also Net::Frame::Layer for other attributes and methods.
ATTRIBUTES
- leap
-
NTP Leap Indicator. See CONSTANTS for more information.
- version
-
NTP version.
- mode
-
NTP mode. See CONSTANTS for more information.
- stratum
-
NTP stratum. See CONSTANTS for more information.
- poll
-
Maximum poll interval between messages in seconds to the nearest power of two.
- precision
-
Precision of the local clock in seconds to the nearest power of two.
- rootDelay
-
Total roundtrip delay to the primary reference source, in seconds with the fraction point between bits 15 and 16.
- rootDisp
-
Maximum error relative to the primary reference source in seconds with the fraction point between bits 15 and 16.
- refId
-
In the case of stratum 2 or greater, this is the IPv4 address of the primary reference host. In the case of stratum 0 or 1, this is a four byte, left-justified, zero padded ASCII string.
- ref
- ref_frac
-
The local time at which the local clock was last set or corrected and the fractional part.
- org
- org_frac
-
The local time when the client sent the request and the fractional part.
- rec
- rec_frac
-
The local time when the request was received by the server and the fractional part.
- xmt
- xmt_frac
-
The local time when the reply was sent from the server and the fractional part.
The following are inherited attributes. See Net::Frame::Layer for more information.
- raw
- payload
- nextLayer
METHODS
- new
- new (hash)
-
Object constructor. You can pass attributes that will overwrite default ones. See SYNOPSIS for default values.
The following are inherited methods. Some of them may be overriden in this layer, and some others may not be meaningful in this layer. See Net::Frame::Layer for more information.
- layer
- computeLengths
- pack
- unpack
- encapsulate
- getLength
- getPayloadLength
- dump
USEFUL SUBROUTINES
Load them: use Net::Frame::Layer::NTP qw(:subs);
- ntpTimestamp (time)
-
Create an NTP-adjusted timestamp.
- ntp2date (time, frac)
-
Provided the NTP time and fracional timestamps, returns a human-readable time string.
CONSTANTS
Load them: use Net::Frame::Layer::NTP qw(:consts);
- NF_NTP_ADJ
-
NTP adjustment (2208988800).
- NF_NTP_LI_NOWARN
- NF_NTP_LI_61
- NF_NTP_LI_59
- NF_NTP_LI_ALARM
-
NTP leap indicators.
- NF_NTP_MODE_RSVD
- NF_NTP_MODE_SYMACTIVE
- NF_NTP_MODE_SYMPASSIVE
- NF_NTP_MODE_CLIENT
- NF_NTP_MODE_SERVER
- NF_NTP_MODE_BROADCAST
- NF_NTP_MODE_NTPCONTROL
- NF_NTP_MODE_PRIVATE
-
NTP modes.
- NF_NTP_STRATUM_UNSPEC
- NF_NTP_STRATUM_PRIMARY
- NF_NTP_STRATUM_UNSYNC
-
NTP stratums.
- NF_NTP_REFID_GOES
- NF_NTP_REFID_GPS
- NF_NTP_REFID_GAL
- NF_NTP_REFID_PPS
- NF_NTP_REFID_IRIG
- NF_NTP_REFID_WWVB
- NF_NTP_REFID_DCF
- NF_NTP_REFID_HBG
- NF_NTP_REFID_MSF
- NF_NTP_REFID_JJY
- NF_NTP_REFID_LORC
- NF_NTP_REFID_TDF
- NF_NTP_REFID_CHU
- NF_NTP_REFID_WWV
- NF_NTP_REFID_WWVH
- NF_NTP_REFID_NIST
- NF_NTP_REFID_ACTS
- NF_NTP_REFID_USNO
- NF_NTP_REFID_PTB
-
NTP reference ID codes.
- NF_NTP_KoD_ACST
- NF_NTP_KoD_AUTH
- NF_NTP_KoD_AUTO
- NF_NTP_KoD_BCST
- NF_NTP_KoD_CRYP
- NF_NTP_KoD_DENY
- NF_NTP_KoD_DROP
- NF_NTP_KoD_RSTR
- NF_NTP_KoD_INIT
- NF_NTP_KoD_MCST
- NF_NTP_KoD_NKEY
- NF_NTP_KoD_RATE
- NF_NTP_KoD_RMOT
- NF_NTP_KoD_STEP
-
NTP kiss codes.
SEE ALSO
AUTHOR
Michael Vincent
COPYRIGHT AND LICENSE
Copyright (c) 2016, Michael Vincent
You may distribute this module under the terms of the Artistic license. See LICENSE.Artistic file in the source distribution archive.