--- 1/draft-ietf-ntp-ntpv4-mib-00.txt 2007-03-08 00:13:36.000000000 +0100 +++ 2/draft-ietf-ntp-ntpv4-mib-01.txt 2007-03-08 00:13:36.000000000 +0100 @@ -1,16 +1,18 @@ NTP H. Gerstung Internet-Draft Meinberg +Expires: September 5, 2007 March 4, 2007 + Definitions of Managed Objects for Network Time Protocol Version 4 (NTPv4) - draft-ietf-ntp-ntpv4-mib-00 + draft-ietf-ntp-ntpv4-mib-01 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that @@ -21,52 +23,52 @@ and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. - This Internet-Draft will expire on January 2, 2007. + This Internet-Draft will expire on September 5, 2007. Copyright Notice - Copyright (C) The Internet Society (2006). + Copyright (C) The IETF Trust (2007). Abstract The Network Time Protocol (NTP) is used in networks of all types and sizes for time synchronization of servers, workstations and other networked equipment. As time synchronization is more and more a mission critical service, standardized means for monitoring and management of this subsystem of a networked host are required to allow operators of such a service to setup a monitoring system that is platform- and vendor-independant. This RFC draft provides a standardized collection of data objects for monitoring the NTP service of such a network participant and it is part of the NTP Version 4 standardization effort. Table of Contents 1. The Internet-Standard Management Framework . . . . . . . . . . 3 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Technical Description . . . . . . . . . . . . . . . . . . . . 3 4. MIB Definition . . . . . . . . . . . . . . . . . . . . . . . . 4 - 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 - 6. Security Considerations . . . . . . . . . . . . . . . . . . . 16 - 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16 - 7.1. Normative References . . . . . . . . . . . . . . . . . . . 16 - 7.2. Informative References . . . . . . . . . . . . . . . . . . 17 - Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 18 - Intellectual Property and Copyright Statements . . . . . . . . . . 19 + 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 + 6. Security Considerations . . . . . . . . . . . . . . . . . . . 20 + 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20 + 7.1. Normative References . . . . . . . . . . . . . . . . . . . 20 + 7.2. Informative References . . . . . . . . . . . . . . . . . . 21 + Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 21 + Intellectual Property and Copyright Statements . . . . . . . . . . 22 1. The Internet-Standard Management Framework For a detailed overview of the documents that describe the current Internet-Standard Management Framework, please refer to section 7 of RFC3410 [4]. Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. MIB objects are generally accessed through the Simple Network Management Protocol (SNMP). @@ -79,563 +81,750 @@ The NTPv4 MIB Module is designed to allow SNMP to be used to monitor and manage local NTP service instances. It provides a collection of data objects that can be queried using the SNMP protocol and represent the current status of the NTP service instance. This includes general information about the NTP service instance itself (vendor, product, version) as well as connectivity to upstream NTP servers used as sources of reference time and to hardware reference clocks like radio clocks. The most important values are included in order to be able to detect failures before they can have an impact on - the overall time synchronization status of the network. + the overall time synchronization status of the network. There are + also a collection of notification objects to inform about state + changes in the NTP service. There are objects to control these + notifications as well. 3. Technical Description The NTPv4 MIB Module is divided into sections for general server information, current NTP service status, status information of all mobilized associations (e.g. unicast upstream time servers, multicast - or broadcast time references and hardware clocks) as well as SNMP - trap definitions for core events. + or broadcast time references and hardware clocks), NTP service + control objects, NTP objects used only for notifications, as well as + SNMP notification definitions for core events. The general server information section contains static information and can be queried to identify which NTP service implementation is running on a host. This includes the vendor and product name of the running NTP software as well as version information, hardware/os platform identity and the time resolution of the underlying OS. Section 2 (current NTP status) includes data objects that represent the current operational status of the NTP service instance. The third section contains data objects that represent the set of time references ("associations") the NTP instance is currently working with. + The fourth section contains objects that can be used to control the + NTP service. The currently defined objects control how often the + heartbeat interval notification is sent out and which notifications + are enabled. + + The fifth section contains objects that are only used as varbinds in + notifications. There is currently only one object in this section--a + message that adds a clear text event message to notifications. + Certain important events can occur while the NTP instance is running. - The fourth section defines SNMP traps for a collection of the most - important ones ("core events") and additionally provides a heartbeat - trap as well as a test trap to allow management systems to test the - reception of NTP related traps as well as enable heartbeat-based - monitoring systems to assure that the NTP service is still up and - running. + The sixth section defines SNMP notifications for a collection of the + most important ones ("core events") and additionally provides a + heartbeat notification as well as a test notification to allow + management systems to test the reception of NTP related notifications + as well as enable heartbeat-based monitoring systems to assure that + the NTP service is still up and running. 4. MIB Definition -- ************************************************************************** -- - -- $Id: draft-ietf-ntp-ntpv4-mib-00.xml 1.7 2006/06/16 07:13:50Z heiko TRASH $ - -- $Name: SUBMIT_1 $ +--$Id: draft-ietf-ntp-ntpv4-mib-01.xml 1.2 2007/03/05 07:52:46Z heiko TRASH $ +--$Name: $ -- -- The Network Time Protocol Version 4 -- Management Information Base (MIB) -- -- Author: Heiko Gerstung (heiko.gerstung@meinberg.de) -- for the Internet Engineering Task Force (IETF) -- NTP Working Group (ntpwg) -- -- -- ************************************************************************** -- - -- $Log: draft-ietf-ntp-ntpv4-mib-00.xml $ +-- $Log: draft-ietf-ntp-ntpv4-mib-01.xml $ +-- Revision 1.2 2007/03/05 07:52:46Z heiko +-- - registered as -01 in revision control +-- Revision 1.1 2007/03/05 07:52:17Z heiko +-- Initial revision +-- Revision 1.10 2007/03/05 07:49:21Z heiko +-- - changed document date + +-- Revision 1.9 2007/03/04 06:59:44Z chelliot +-- MIB: +-- - Added time objects, comments, changed notifications +-- - Changed server to service +-- Revision 1.8 2006/10/23 03:37:44Z chelliot +-- MIB: +-- - Changed various object types, added notification control object -- Revision 1.7 2006/06/16 07:13:50Z heiko -- XML/RFC: -- - added/changed comments about the to-be-done IANA SMI assignment -- Revision 1.6 2006/06/16 07:04:43Z heiko -- RFC/XML: -- - phone number corrected -- - removed unused references -- MIB: -- - added ntpSrvTimePrecision -- - changed INTEGER objects to Integer32 -- - changed default value for ntpSrvStatusStratum from 99 to 16 -- - changed default value for ntpSrvStatusActiveRefclockId from 99 to 0 - -- - changed object names to ntpSrvStatusActiveRefSourceName (from ntpSrvStatusActiveRefclockName) and to ntpSrvStatusNumberOfRefSources (from ntpSrvStatusNumberOfRefclocks) +-- - changed object names to ntpSrvStatusActiveRefSourceName +-- (from ntpSrvStatusActiveRefclockName) and to +-- ntpSrvStatusNumberOfRefSources (from ntpSrvStatusNumberOfRefclocks) -- - removed ntpSrvStatusAuthKeyId object -- - added ntpSrvStatusDispersion to provide the current root dispersion -- - major rework of section 3 (Status of associations) to compile cleanly -- including: -- - added dispersion to the association dataset -- - renaming of objects -- - added an index to the association table -- - formal changes -- - traps are now reverse mappable -- - traps are now define with payload where applicable -- - added compliance statements -- Revision 1.5 2006/02/27 08:28:16Z heiko -- - changed to RFC format and added header as well as -- introduction and technical description -- - added other necessary RFC components (copyright statement etc.) -- Revision 1.4 2006/02/27 07:06:49Z heiko -- - removed all objects with data type REAL - -- - everything that needs to be floating point is now defined as DisplayString +-- - everything that needs to be floating point is now defined as +-- DisplayString -- Revision 1.2 2006/01/23 08:58:11Z heiko -- - changed the datatype of offset, jitter and delay objects from Integer32 -- to REAL -- -- ************************************************************************** NTPv4-MIB DEFINITIONS ::= BEGIN IMPORTS - MODULE-IDENTITY, OBJECT-TYPE , mib-2, TimeTicks, Integer32, NOTIFICATION-TYPE + MODULE-IDENTITY, OBJECT-TYPE , mib-2, Integer32, NOTIFICATION-TYPE, + Unsigned32 FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF - DisplayString FROM SNMPv2-TC; + DisplayString + FROM SNMPv2-TC + InetAddressType, InetAddress + FROM INET-ADDRESS-MIB; - ntpSnmp MODULE-IDENTITY - LAST-UPDATED "200606190000Z" - ORGANIZATION "www.ietf.org" +ntpSnmpMIB MODULE-IDENTITY + LAST-UPDATED "200703040000Z" -- March 4, 2007 + ORGANIZATION "The IETF NTP Working Group (ntpwg)" CONTACT-INFO - " The IETF NTP Working Group (ntpwg)" + " WG Email: + Subscribe: + + Editor 1 name + Title + Employeer + Address + Phone + email + + Editor 2 name..." DESCRIPTION - " Management Information Base for NTP time servers" + "The Management Information Base for NTP time services." + REVISION "200703040000Z" + DESCRIPTION + "More MIB review modifications." + REVISION "200610230000Z" + DESCRIPTION + "Modifications from MIB review." REVISION "200606190000Z" DESCRIPTION "First Draft Version" REVISION "200512190000Z" DESCRIPTION "revised edition (added traps and stuff)" REVISION "200511160000Z" DESCRIPTION "Initial draft" ::= { mib-2 XXX } +ntpSnmpMIBObjects OBJECT IDENTIFIER ::= { ntpSnmpMIB 1 } + +-- MIB contains 4 groups + +ntpSrvInfo OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 1 } +ntpSrvStatus OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 2 } +ntpAssociation OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 3 } +ntpSrvControl OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 4 } +ntpSrvNotifObjects OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 5 } +ntpSrvNotifPrefix OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 6 } + -- - -- Section 1: General Server information objects (static information) +-- Section 1: General Service information objects +-- (relatively static information) -- - ntpSrvInfo OBJECT IDENTIFIER ::= { ntpSnmp 0 } - ntpSrvSoftwareName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "product name of the installed NTP version" + "The product name of the installed NTP version." -- the product name of the running ntp implementation, e.g. "ntpd" ::= { ntpSrvInfo 1 } ntpSrvSoftwareVersion OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "Software version of the installed NTP implementation" + "The software version of the installed NTP implementation." -- full version string, e.g. "ntpd-4.2.0b@1.1433 ..." ::= { ntpSrvInfo 2 } ntpSrvSoftwareVersionVal OBJECT-TYPE - SYNTAX Integer32 (-2147483648..2147483647) + SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION - "Software version of installed NTP as an Integer32 value" + "Software version of installed NTP as an unsigned integer value." -- e.g. if version string is "4.2.0b" this could be translated into 4202 - -- could be useful to find out if version of server a is newer or older - -- than version of server b (without too much string parsing trouble) + -- could be useful to find out if version of service on a is newer or older + -- than version of the service on b (without too much string parsing trouble) ::= { ntpSrvInfo 3 } ntpSrvSoftwareVendor OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "the vendor/author of the installed NTP version" + "The vendor/author of the installed NTP version." ::= { ntpSrvInfo 4 } ntpSrvSystemType OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "general hardware/os platform information" + "General hardware/os platform information." -- e.g. "Linux 2.6.12 / x86" -- freely configurable, default is OS Version / Hardware platform ::= { ntpSrvInfo 5 } ntpSrvTimeResolution OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "string describing the time resolution of the running NTP - implementation" + "A string describing the time resolution of the running NTP + implementation." -- e.g. "100 ns" -- depends on the NTP implementation and the underlying OS. The current -- resolution should be used, so if the OS only supports 10ms and ntpd is -- capable of 1ns, the 10ms should be advertised ::= { ntpSrvInfo 6 } ntpSrvTimeResolutionVal OBJECT-TYPE - SYNTAX Integer32 + SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION - "time resolution in integer format" + "The time resolution in integer format." -- ntpSrvTimeResolution in Integer format -- shows the resolution based on 1 second, e.g. "1ms" translates to 1000 ::= { ntpSrvInfo 7 } ntpSrvTimePrecision OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "string describing the precision with which the NTP server - implementation/OS manages its time base" + "A string describing the precision with which the NTP service + implementation/OS manages its time base." -- e.g. "-18" means 2^-18 = 0.000003814697265625 seconds -- "-5" means 2^-5 = 0.03125 seconds -- depends on the NTP implementation and the underlying OS. ::= { ntpSrvInfo 8 } ntpSrvTimePrecisionVal OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION - "precision in integer format" + "The service's precision in integer format." -- ntpSrvTimePrecision in signed Integer format -- shows the precision. A value of -5 would mean 2^-5 = 31.25 ms ::= { ntpSrvInfo 9 } + ntpSrvTimeDistance OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "The distance from this NTP instance to the root time reference (stratum 0) source" + "The distance from this NTP instance to the root time reference + (stratum 0) source." -- including the unit -- e.g. "13.243 ms" ::= { ntpSrvInfo 10 } -- -- Section 2: Current NTP status (dynamic information) -- - ntpSrvStatus OBJECT IDENTIFIER ::= { ntpSnmp 1 } ntpSrvStatusCurrentState OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "actual status of NTP as a string" + "The actual status of NTP as a string" --- possible strings: --- "not running" : NTP is not running --- "not synchronized" : NTP is not synchronized to any time source --- (stratum = 16) + --- "none configured" : NTP is not synchronized and does not have a server + --- configured + --- (stratum = 16) --- "sync to local" : NTP is synchronized to own local clock --- (degraded reliability) --- "sync to refclock" : NTP is synchronized to a local hardware refclock --- (e.g. GPS) --- "sync to remote server" : NTP is synchronized to a remote NTP server --- ("upstream" server) + --- "unknown" : The state of NTP is unknown. ::= { ntpSrvStatus 1 } ntpSrvStatusCurrentStateVal OBJECT-TYPE SYNTAX INTEGER { - notRunning(0), - notSynchronized(1), - syncToLocal(2), - syncToRefclock(3), - syncToRemoteServer(4), + notRunning(1), + notSynchronized(2), + noneConfigured(3), + syncToLocal(4), + syncToRefclock(5), + syncToRemoteServer(6), unknown(99) } - MAX-ACCESS read-only STATUS current DESCRIPTION - "current state of the NTP as integer value" + "The current state of the NTP as integer value." -- see ntpSrvStatusCurrentState DEFVAL { 99 } ::= { ntpSrvStatus 2 } ntpSrvStatusStratum OBJECT-TYPE - SYNTAX Integer32 (1..16) + SYNTAX Unsigned32 (1..16) MAX-ACCESS read-only STATUS current DESCRIPTION - "own stratum value" + "The NTP service's own stratum value." -- should be stratum of syspeer + 1 (or 16 if no syspeer) DEFVAL { 16 } ::= { ntpSrvStatus 3 } ntpSrvStatusActiveRefSourceId OBJECT-TYPE - SYNTAX Integer32 ( 0..99999 ) + SYNTAX Unsigned32 ( 0..99999 ) MAX-ACCESS read-only STATUS current DESCRIPTION - "the association ID of the current syspeer" + "The association ID of the current syspeer." DEFVAL { 0 } ::= { ntpSrvStatus 4 } ntpSrvStatusActiveRefSourceName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "The hostname/descriptive name of the current reference source selected - as syspeer" + "The hostname/descriptive name of the current reference source + selected as syspeer." -- e.g. "ntp1.ptb.de" or "GPS" or "DCFi" ... -- maybe something like "RefClk(8)" = "hardware clock using driver 8" -- would be nice ::= { ntpSrvStatus 5 } ntpSrvStatusActiveOffset OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "Time offset to the current selected reference time source as string" + "The Time offset to the current selected reference time source as + a string." -- including unit, e.g. "0.032 ms" or "1.232 s" ::= { ntpSrvStatus 6 } ntpSrvStatusNumberOfRefSources OBJECT-TYPE - SYNTAX Integer32 (0..99) + SYNTAX Unsigned32 (0..99) MAX-ACCESS read-only STATUS current DESCRIPTION - "Number of reference sources configured for NTP " + "The number of reference sources configured for NTP." DEFVAL { 0 } ::= { ntpSrvStatus 7 } ntpSrvStatusDispersion OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "Root dispersion of the running NTP instance" + "The root dispersion of the running NTP instance." -- e.g. "6.927" DEFVAL { "n/a" } ::= { ntpSrvStatus 8 } ntpSrvStatusServiceUptime OBJECT-TYPE - SYNTAX TimeTicks + SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION - "Uptime of NTP service" + "The uptime of the NTP service in seconds." -- time since ntpd was (re-)started (not sysUptime!) DEFVAL { 0 } ::= { ntpSrvStatus 9 } +ntpSrvStatusTime OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0 | 16)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current NTP time on the device, in 128-bit + NTP date format. Ref: draft-ietf-ntp-ntpv4-proto-04, + section 5: + It includes a 64-bit signed seconds field + spanning 584 billion years and a 64-bit fraction + field resolving .05 attosecond (i.e. 0.5e-18). + For convenience in mapping between formats, the + seconds field is divided into a 32-bit era field + and a 32-bit timestamp field. + + If time is not syncronized this field shall be a + zero-length string. + + This object can be used to timestamp events on this + node and allow a management station to coorelate + different time objects. For example, a management + station could query this object and sysUpTime in + the same operation to be able to relate sysUpTime + to NTP time. + + This object is not to be used to set the time of + the node querying this object. NTP should be used + for this--or at least SNTP." + ::= { ntpSrvStatus 10 } + +-- ntpSrvStatusTimeVal OBJECT-TYPE +-- SYNTAX Counter64 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- "The current NTP time on the device, in 64-bit +-- NTP time format. Ref: draft-ietf-ntp-ntpv4-proto-04, +-- section 5: +-- It includes a 32-bit unsigned seconds field spanning +-- 136 years and a 32-bit fraction field resolving 232 +-- picoseconds." +-- ::= { ntpSrvStatus 10 } -- - -- Section 3: Status of all currently mobilized associations +-- ntpSrvStatusEra OBJECT-TYPE +-- SYNTAX Unsigned32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- "The current Era." +-- ::= { ntpSrvStatus 11 } -- +-- ntpSrvStatusTimeDiscontinuityTimer OBJECT-TYPE +-- SYNTAX TimeTicks +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- "The value of sysUpTime when a discontinuity event - ntpAssociation OBJECT IDENTIFIER ::= { ntpSnmp 3 } +-- happened that affected the value of ntpSrvStatusTimeVal." +-- ::= { ntpSrvStatus 12 } +-- +-- ntpSrvStatusTimeDiscontinuityOffset OBJECT-TYPE +-- SYNTAX Integer32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- "Latest time adjustment offset at the time of the last +-- discontinuity event for ntpSrvStatusTimeVal." +-- ::= { ntpSrvStatus 13 } + +-- +-- Section 3: The status of all currently mobilized associations +-- ntpAssociationTable OBJECT-TYPE SYNTAX SEQUENCE OF NtpAssociationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION - "Table of currently mobilized associations" + "The table of currently mobilized associations." ::= { ntpAssociation 1 } ntpAssociationEntry OBJECT-TYPE SYNTAX NtpAssociationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION - "Table entry of currently mobilized associations" - INDEX { ntpAssocIndex } + "The table entry of currently mobilized associations." + INDEX { ntpAssocId } ::= { ntpAssociationTable 1 } + NtpAssociationEntry ::= SEQUENCE { - ntpAssocIndex Integer32, - ntpAssocId Integer32, + ntpAssocId Unsigned32, ntpAssocName DisplayString, - ntpAssocAddress DisplayString, + ntpAssocRefId DisplayString, + ntpAssocAddressType InetAddressType, + ntpAssocAddress InetAddress, ntpAssocOffset DisplayString, ntpAssocStatusJitter DisplayString, ntpAssocStatusDelay DisplayString, ntpAssocStatusDispersion DisplayString } - ntpAssocIndex OBJECT-TYPE - SYNTAX Integer32 ( 0..99999 ) +ntpAssocId OBJECT-TYPE + SYNTAX Unsigned32 ( 1..99999 ) MAX-ACCESS not-accessible STATUS current DESCRIPTION - "Association Index" + "The association ID. This is an internal, unique ID." ::= { ntpAssociationEntry 1 } - ntpAssocId OBJECT-TYPE - SYNTAX Integer32 ( 0..99999 ) +ntpAssocName OBJECT-TYPE + SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "Association ID" + "The hostname or other descriptive name for the association." ::= { ntpAssociationEntry 2 } - ntpAssocName OBJECT-TYPE +ntpAssocRefId OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "Hostname or other descriptive name for association" + "The refclock driver ID, if available." + -- a refclock driver ID like "127.127.1.0" for non uni/multi/broadcast + -- associations ::= { ntpAssociationEntry 3 } - ntpAssocAddress OBJECT-TYPE - SYNTAX DisplayString +ntpAssocAddressType OBJECT-TYPE + SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION - "IP address (IPv4 or IPv6) of association OR refclock driver ID" - -- contains IP address of uni/multi/broadcast associations or - -- a refclock driver ID like "127.127.1.0" for other associations + "The type of address of the association." + -- contains the type of address for uni/multi/broadcast associations ::= { ntpAssociationEntry 4 } +ntpAssocAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address (IPv4 or IPv6) of the association." + -- contains IP address of uni/multi/broadcast associations + ::= { ntpAssociationEntry 5 } + ntpAssocOffset OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "Time offset to the association as string" + "The time offset to the association as a string." -- including unit, e.g. "0.032 ms" or "1.232 s" - ::= { ntpAssociationEntry 5 } + ::= { ntpAssociationEntry 6 } ntpAssocStatusJitter OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "Jitter in miliseconds as string" - ::= { ntpAssociationEntry 6 } + "The jitter in miliseconds as a string." + ::= { ntpAssociationEntry 7 } ntpAssocStatusDelay OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "Network delay in miliseconds as string" - ::= { ntpAssociationEntry 7 } + "The network delay in miliseconds as a string." + ::= { ntpAssociationEntry 8 } ntpAssocStatusDispersion OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION - "Root dispersion of the association" + "The root dispersion of the association." -- e.g. "6.927" - ::= { ntpAssociationEntry 8 } + ::= { ntpAssociationEntry 9 } -- - -- Section 4: Server SNMP trap definitions +-- Section 4: Control objects -- - ntpSrvNotifications OBJECT IDENTIFIER ::= { ntpSnmp 4 } - ntpSrvTraps OBJECT IDENTIFIER ::= { ntpSrvNotifications 0 } +ntpSrvHeartbeatInterval OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The interval at which the ntpSrvNotifHeartbeat notification should be + sent, in seconds. If set to 0 and the srvNotifHeartbeat bit in + ntpSrvNotifBits is 1 then ntpSrvNotifHeartbeat is sent once." + DEFVAL { 60 } + ::= { ntpSrvControl 1 } - ntpSrvTrapNotSync NOTIFICATION-TYPE - OBJECTS { ntpSrvStatusCurrentStateVal } +ntpSrvNotifBits OBJECT-TYPE + SYNTAX BITS { + notUsed(0), -- Used to sync up bit and notification + -- indices + srvNotifNotSync(1), + srvNotifServiceStarted(2), + srvNotifServiceStopped(3), + srvNotifStratumChange(4), + srvNotifSyspeerChanged(5), + srvNotifAddAssociation(6), + srvNotifRemoveAssociation(7), + srvNotifConfigChanged(8), + srvNotifLeapSecondAnnounced(9), + srvNotifHeartbeat(10) + } + MAX-ACCESS read-write STATUS current DESCRIPTION - "trap to be sent when NTP is not synchronised " - ::= { ntpSrvTraps 1 } + "A bit for each notification. A 1 for a particular bit enables + that particular notification, a 0 disables it." + ::= { ntpSrvControl 2 } - ntpSrvTrapServiceStarted NOTIFICATION-TYPE - OBJECTS { ntpSrvTrapMessage } +-- +-- Section 5: Notification objects +-- + +ntpSrvNotifMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION - "trap to be sent when NTP starts up " - ::= { ntpSrvTraps 2 } + "Used as a payload object for all notifications. Holds a clear text + event message." + DEFVAL { "no event" } + ::= { ntpSrvNotifObjects 1 } - ntpSrvTrapServiceStopped NOTIFICATION-TYPE - OBJECTS { ntpSrvTrapMessage } +-- +-- Service SNMP notification definitions +-- + +ntpSrvNotifications OBJECT IDENTIFIER ::= { ntpSrvNotifPrefix 0 } + +ntpSrvNotifNotInSync NOTIFICATION-TYPE + OBJECTS { ntpSrvStatusCurrentStateVal } STATUS current DESCRIPTION - "trap to be sent when NTP stopps " - ::= { ntpSrvTraps 3 } + "The notification to be sent when the NTP service transistions to + not synchronised." + ::= { ntpSrvNotifications 1 } - ntpSrvTrapStratumChange NOTIFICATION-TYPE - OBJECTS { ntpSrvStatusStratum, ntpSrvTrapMessage } +ntpSrvNotifServiceStarted NOTIFICATION-TYPE + OBJECTS { ntpSrvNotifMessage } STATUS current DESCRIPTION - "trap to be sent when stratum level of NTP changes" - ::= { ntpSrvTraps 4 } + "The notification to be sent when NTP starts up." + ::= { ntpSrvNotifications 2 } - ntpSrvTrapSyspeerChanged NOTIFICATION-TYPE - OBJECTS { ntpSrvStatusActiveRefSourceId, ntpSrvTrapMessage } +ntpSrvNotifServiceStopped NOTIFICATION-TYPE + OBJECTS { ntpSrvNotifMessage } STATUS current DESCRIPTION - "trap to be sent when a (new) syspeer has been selected" - ::= { ntpSrvTraps 5 } + "The notification to be sent when NTP stops." + ::= { ntpSrvNotifications 3 } - ntpSrvTrapAddAssociation NOTIFICATION-TYPE - OBJECTS { ntpAssocId, ntpSrvTrapMessage } +ntpSrvNotifStratumChange NOTIFICATION-TYPE + OBJECTS { ntpSrvStatusTime, ntpSrvStatusStratum, + ntpSrvNotifMessage } STATUS current DESCRIPTION - "trap to be sent when a new association is mobilized" - ::= { ntpSrvTraps 6 } + "The notification to be sent when stratum level of NTP changes." + ::= { ntpSrvNotifications 4 } - ntpSrvTrapRemoveAssociation NOTIFICATION-TYPE - OBJECTS { ntpAssocId, ntpSrvTrapMessage } +ntpSrvNotifSyspeerChanged NOTIFICATION-TYPE + OBJECTS { ntpSrvStatusTime, ntpSrvStatusActiveRefSourceId, + ntpSrvNotifMessage } STATUS current DESCRIPTION - "trap to be sent when an association is demobilized" - ::= { ntpSrvTraps 7 } + "The notification to be sent when a (new) syspeer has been selected." + ::= { ntpSrvNotifications 5 } - ntpSrvTrapConfigChanged NOTIFICATION-TYPE - OBJECTS { ntpSrvTrapMessage } +ntpSrvNotifAddAssociation NOTIFICATION-TYPE + OBJECTS { ntpSrvStatusTime, ntpAssocName, ntpSrvNotifMessage } STATUS current DESCRIPTION - "trap to be sent when NTP configuration has changed" - -- e.g. when the system connected to the internet and was assigned - -- a new IP address by the ISPs DHCP server - ::= { ntpSrvTraps 8 } - ntpSrvTrapLeapSecondAnnounced NOTIFICATION-TYPE - OBJECTS { ntpSrvTrapMessage } + "The notification to be sent when a new association is mobilized." + ::= { ntpSrvNotifications 6 } + +ntpSrvNotifRemoveAssociation NOTIFICATION-TYPE + OBJECTS { ntpSrvStatusTime, ntpAssocName, ntpSrvNotifMessage } STATUS current DESCRIPTION - "trap to be sent when a leap second has been announced " - ::= { ntpSrvTraps 9 } + "The notification to be sent when an association is demobilized." + ::= { ntpSrvNotifications 7 } - ntpSrvTrapHeartbeat NOTIFICATION-TYPE - OBJECTS { ntpSrvTrapMessage } +ntpSrvNotifConfigChanged NOTIFICATION-TYPE + OBJECTS { ntpSrvStatusTime, ntpSrvNotifMessage } STATUS current DESCRIPTION - "trap to be sent periodically to indicate that the NTP server - is still alive " - ::= { ntpSrvTraps 88 } + "The notification to be sent when the NTP configuration has changed." + -- e.g. when the system connected to the internet and was assigned + -- a new IP address by the ISPs DHCP server + ::= { ntpSrvNotifications 8 } - ntpSrvTrapTestNotification NOTIFICATION-TYPE - OBJECTS { ntpSrvTrapMessage } +ntpSrvNotifLeapSecondAnnounced NOTIFICATION-TYPE + OBJECTS { ntpSrvStatusTime, ntpSrvNotifMessage } STATUS current DESCRIPTION - "trap to be sent when a test notification has been requested " - ::= { ntpSrvTraps 99 } + "The notification to be sent when a leap second has been announced." + ::= { ntpSrvNotifications 9 } - ntpSrvTrapMessage OBJECT-TYPE - SYNTAX DisplayString - MAX-ACCESS read-only +ntpSrvNotifHeartbeat NOTIFICATION-TYPE + OBJECTS { ntpSrvStatusTime, ntpSrvStatusCurrentStateVal, + ntpSrvHeartbeatInterval, ntpSrvNotifMessage } STATUS current DESCRIPTION - "used as a payload object for all traps, holds a clear text event message" - DEFVAL { "no event" } - ::= { ntpSrvTraps 100 } + "The notification to be sent periodically (as defined by + ntpSrvHeartbeatInterval) to indicate that the NTP service is still + alive." + ::= { ntpSrvNotifications 10 } -- -- Conformance/Compliance statements -- - ntpSrvConformance OBJECT IDENTIFIER ::= { ntpSnmp 90 } +ntpSrvConformance OBJECT IDENTIFIER ::= { ntpSnmpMIB 6 } + ntpSrvCompliances OBJECT IDENTIFIER ::= { ntpSrvConformance 1 } ntpSrvGroups OBJECT IDENTIFIER ::= { ntpSrvConformance 2 } ntpSrvCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION - "The compliance statement for SNMP entities which implement version 2 - of the Server MIB" + "The compliance statement for SNMP entities which implement the NTP + Service MIB" MODULE -- this module MANDATORY-GROUPS { ntpSrvObjectsGroup, - ntpSrvTrapsGroup + ntpSrvNotifPrefixGroup } ::= { ntpSrvCompliances 1 } ntpSrvObjectsGroup OBJECT-GROUP OBJECTS { ntpSrvSoftwareName, ntpSrvSoftwareVersion, ntpSrvSoftwareVersionVal, ntpSrvSoftwareVendor, ntpSrvSystemType, @@ -646,51 +835,54 @@ ntpSrvTimeDistance, ntpSrvStatusCurrentState, ntpSrvStatusCurrentStateVal, ntpSrvStatusStratum, ntpSrvStatusActiveRefSourceId, ntpSrvStatusActiveRefSourceName, ntpSrvStatusActiveOffset, ntpSrvStatusNumberOfRefSources, ntpSrvStatusDispersion, ntpSrvStatusServiceUptime, - ntpAssocId, + ntpSrvStatusTime, ntpAssocName, + ntpAssocRefId, + ntpAssocAddressType, ntpAssocAddress, ntpAssocOffset, ntpAssocStatusJitter, ntpAssocStatusDelay, ntpAssocStatusDispersion, - ntpSrvTrapMessage + ntpSrvHeartbeatInterval, + ntpSrvNotifBits, + ntpSrvNotifMessage } STATUS current DESCRIPTION - "The collection of objects for the Server MIB" + "The collection of objects for the NTP Service MIB" ::= { ntpSrvGroups 1 } - ntpSrvTrapsGroup NOTIFICATION-GROUP +ntpSrvNotifPrefixGroup NOTIFICATION-GROUP NOTIFICATIONS { - ntpSrvTrapNotSync, - ntpSrvTrapServiceStarted, - ntpSrvTrapServiceStopped, - ntpSrvTrapStratumChange, - ntpSrvTrapSyspeerChanged, - ntpSrvTrapAddAssociation, - ntpSrvTrapRemoveAssociation, - ntpSrvTrapConfigChanged, - ntpSrvTrapLeapSecondAnnounced, - ntpSrvTrapHeartbeat, - ntpSrvTrapTestNotification + ntpSrvNotifNotInSync, + ntpSrvNotifServiceStarted, + ntpSrvNotifServiceStopped, + ntpSrvNotifStratumChange, + ntpSrvNotifSyspeerChanged, + ntpSrvNotifAddAssociation, + ntpSrvNotifRemoveAssociation, + ntpSrvNotifConfigChanged, + ntpSrvNotifLeapSecondAnnounced, + ntpSrvNotifHeartbeat } STATUS current DESCRIPTION - "The collection of traps for the Server MIB" + "The collection of notifications for the NTP Service MIB" ::= { ntpSrvGroups 2 } END 5. IANA Considerations The MIB module in this document uses the following IANA-assigned OBJECT IDENTIFIER values recorded in the SMI Numbers registry: Descriptor OBJECT IDENTIFIER value @@ -736,21 +928,37 @@ Heiko Gerstung Meinberg Funkuhren Gmbh & Co. KG Auf der Landwehr 22 Bad Pyrmont 31812 Germany Phone: +49 5281 9309 25 Email: heiko.gerstung@meinberg.de -Intellectual Property Statement +Full Copyright Statement + + Copyright (C) The IETF Trust (2007). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND + THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. @@ -760,30 +968,14 @@ such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. -Disclaimer of Validity - - This document and the information contained herein are provided on an - "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS - OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET - ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, - INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE - INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED - WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - -Copyright Statement - - Copyright (C) The Internet Society (2006). This document is subject - to the rights, licenses and restrictions contained in BCP 78, and - except as set forth therein, the authors retain all their rights. - Acknowledgment - Funding for the RFC Editor function is currently provided by the - Internet Society. + Funding for the RFC Editor function is provided by the IETF + Administrative Support Activity (IASA).