-- extracted from draft-ietf-ntp-ntpv4-mib-00.txt -- at Wed Jun 21 06:06:29 2006 NTPv4-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE , mib-2, TimeTicks, Integer32, NOTIFICATION-TYPE FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF DisplayString FROM SNMPv2-TC; ntpSnmp MODULE-IDENTITY LAST-UPDATED "200606190000Z" ORGANIZATION "www.ietf.org" CONTACT-INFO " The IETF NTP Working Group (ntpwg)" DESCRIPTION " Management Information Base for NTP time servers" REVISION "200606190000Z" DESCRIPTION "First Draft Version" REVISION "200512190000Z" DESCRIPTION "revised edition (added traps and stuff)" REVISION "200511160000Z" DESCRIPTION "Initial draft" ::= { mib-2 XXX } -- -- Section 1: General Server information objects (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 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" -- full version string, e.g. "ntpd-4.2.0b@1.1433 ..." ::= { ntpSrvInfo 2 } ntpSrvSoftwareVersionVal OBJECT-TYPE SYNTAX Integer32 (-2147483648..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "Software version of installed NTP as an Integer32 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) ::= { ntpSrvInfo 3 } ntpSrvSoftwareVendor OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "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" -- 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" -- 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 MAX-ACCESS read-only STATUS current DESCRIPTION "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" -- 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" -- 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" -- 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" --- possible strings: --- "not running" : NTP is not running --- "not synchronized" : NTP is not synchronized to any time source --- (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) ::= { ntpSrvStatus 1 } ntpSrvStatusCurrentStateVal OBJECT-TYPE SYNTAX INTEGER { notRunning(0), notSynchronized(1), syncToLocal(2), syncToRefclock(3), syncToRemoteServer(4), unknown(99) } MAX-ACCESS read-only STATUS current DESCRIPTION "current state of the NTP as integer value" -- see ntpSrvStatusCurrentState DEFVAL { 99 } ::= { ntpSrvStatus 2 } ntpSrvStatusStratum OBJECT-TYPE SYNTAX Integer32 (1..16) MAX-ACCESS read-only STATUS current DESCRIPTION "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 ) MAX-ACCESS read-only STATUS current DESCRIPTION "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" -- 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" -- including unit, e.g. "0.032 ms" or "1.232 s" ::= { ntpSrvStatus 6 } ntpSrvStatusNumberOfRefSources OBJECT-TYPE SYNTAX Integer32 (0..99) MAX-ACCESS read-only STATUS current DESCRIPTION "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" -- e.g. "6.927" DEFVAL { "n/a" } ::= { ntpSrvStatus 8 } ntpSrvStatusServiceUptime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "Uptime of NTP service" -- time since ntpd was (re-)started (not sysUptime!) DEFVAL { 0 } ::= { ntpSrvStatus 9 } -- -- Section 3: Status of all currently mobilized associations -- ntpAssociation OBJECT IDENTIFIER ::= { ntpSnmp 3 } ntpAssociationTable OBJECT-TYPE SYNTAX SEQUENCE OF NtpAssociationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "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 } ::= { ntpAssociationTable 1 } NtpAssociationEntry ::= SEQUENCE { ntpAssocIndex Integer32, ntpAssocId Integer32, ntpAssocName DisplayString, ntpAssocAddress DisplayString, ntpAssocOffset DisplayString, ntpAssocStatusJitter DisplayString, ntpAssocStatusDelay DisplayString, ntpAssocStatusDispersion DisplayString } ntpAssocIndex OBJECT-TYPE SYNTAX Integer32 ( 0..99999 ) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Association Index" ::= { ntpAssociationEntry 1 } ntpAssocId OBJECT-TYPE SYNTAX Integer32 ( 0..99999 ) MAX-ACCESS read-only STATUS current DESCRIPTION "Association ID" ::= { ntpAssociationEntry 2 } ntpAssocName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "Hostname or other descriptive name for association" ::= { ntpAssociationEntry 3 } ntpAssocAddress OBJECT-TYPE SYNTAX DisplayString 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 ::= { ntpAssociationEntry 4 } ntpAssocOffset OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "Time offset to the association as string" -- including unit, e.g. "0.032 ms" or "1.232 s" ::= { ntpAssociationEntry 5 } ntpAssocStatusJitter OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "Jitter in miliseconds as string" ::= { ntpAssociationEntry 6 } ntpAssocStatusDelay OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "Network delay in miliseconds as string" ::= { ntpAssociationEntry 7 } ntpAssocStatusDispersion OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "Root dispersion of the association" -- e.g. "6.927" ::= { ntpAssociationEntry 8 } -- -- Section 4: Server SNMP trap definitions -- ntpSrvNotifications OBJECT IDENTIFIER ::= { ntpSnmp 4 } ntpSrvTraps OBJECT IDENTIFIER ::= { ntpSrvNotifications 0 } ntpSrvTrapNotSync NOTIFICATION-TYPE OBJECTS { ntpSrvStatusCurrentStateVal } STATUS current DESCRIPTION "trap to be sent when NTP is not synchronised " ::= { ntpSrvTraps 1 } ntpSrvTrapServiceStarted NOTIFICATION-TYPE OBJECTS { ntpSrvTrapMessage } STATUS current DESCRIPTION "trap to be sent when NTP starts up " ::= { ntpSrvTraps 2 } ntpSrvTrapServiceStopped NOTIFICATION-TYPE OBJECTS { ntpSrvTrapMessage } STATUS current DESCRIPTION "trap to be sent when NTP stopps " ::= { ntpSrvTraps 3 } ntpSrvTrapStratumChange NOTIFICATION-TYPE OBJECTS { ntpSrvStatusStratum, ntpSrvTrapMessage } STATUS current DESCRIPTION "trap to be sent when stratum level of NTP changes" ::= { ntpSrvTraps 4 } ntpSrvTrapSyspeerChanged NOTIFICATION-TYPE OBJECTS { ntpSrvStatusActiveRefSourceId, ntpSrvTrapMessage } STATUS current DESCRIPTION "trap to be sent when a (new) syspeer has been selected" ::= { ntpSrvTraps 5 } ntpSrvTrapAddAssociation NOTIFICATION-TYPE OBJECTS { ntpAssocId, ntpSrvTrapMessage } STATUS current DESCRIPTION "trap to be sent when a new association is mobilized" ::= { ntpSrvTraps 6 } ntpSrvTrapRemoveAssociation NOTIFICATION-TYPE OBJECTS { ntpAssocId, ntpSrvTrapMessage } STATUS current DESCRIPTION "trap to be sent when an association is demobilized" ::= { ntpSrvTraps 7 } ntpSrvTrapConfigChanged NOTIFICATION-TYPE OBJECTS { ntpSrvTrapMessage } 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 } STATUS current DESCRIPTION "trap to be sent when a leap second has been announced " ::= { ntpSrvTraps 9 } ntpSrvTrapHeartbeat NOTIFICATION-TYPE OBJECTS { ntpSrvTrapMessage } STATUS current DESCRIPTION "trap to be sent periodically to indicate that the NTP server is still alive " ::= { ntpSrvTraps 88 } ntpSrvTrapTestNotification NOTIFICATION-TYPE OBJECTS { ntpSrvTrapMessage } STATUS current DESCRIPTION "trap to be sent when a test notification has been requested " ::= { ntpSrvTraps 99 } ntpSrvTrapMessage OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "used as a payload object for all traps, holds a clear text event message" DEFVAL { "no event" } ::= { ntpSrvTraps 100 } -- -- Conformance/Compliance statements -- ntpSrvConformance OBJECT IDENTIFIER ::= { ntpSnmp 90 } 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" MODULE -- this module MANDATORY-GROUPS { ntpSrvObjectsGroup, ntpSrvTrapsGroup } ::= { ntpSrvCompliances 1 } ntpSrvObjectsGroup OBJECT-GROUP OBJECTS { ntpSrvSoftwareName, ntpSrvSoftwareVersion, ntpSrvSoftwareVersionVal, ntpSrvSoftwareVendor, ntpSrvSystemType, ntpSrvTimeResolution, ntpSrvTimeResolutionVal, ntpSrvTimePrecision, ntpSrvTimePrecisionVal, ntpSrvTimeDistance, ntpSrvStatusCurrentState, ntpSrvStatusCurrentStateVal, ntpSrvStatusStratum, ntpSrvStatusActiveRefSourceId, ntpSrvStatusActiveRefSourceName, ntpSrvStatusActiveOffset, ntpSrvStatusNumberOfRefSources, ntpSrvStatusDispersion, ntpSrvStatusServiceUptime, ntpAssocId, ntpAssocName, ntpAssocAddress, ntpAssocOffset, ntpAssocStatusJitter, ntpAssocStatusDelay, ntpAssocStatusDispersion, ntpSrvTrapMessage } STATUS current DESCRIPTION "The collection of objects for the Server MIB" ::= { ntpSrvGroups 1 } ntpSrvTrapsGroup NOTIFICATION-GROUP NOTIFICATIONS { ntpSrvTrapNotSync, ntpSrvTrapServiceStarted, ntpSrvTrapServiceStopped, ntpSrvTrapStratumChange, ntpSrvTrapSyspeerChanged, ntpSrvTrapAddAssociation, ntpSrvTrapRemoveAssociation, ntpSrvTrapConfigChanged, ntpSrvTrapLeapSecondAnnounced, ntpSrvTrapHeartbeat, ntpSrvTrapTestNotification } STATUS current DESCRIPTION "The collection of traps for the Server MIB" ::= { ntpSrvGroups 2 } END -- -- 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.