1 -- *********************************************************************
3 -- The Network Time Protocol Version 4
4 -- Management Information Base (MIB)
6 -- Authors: Heiko Gerstung (heiko.gerstung@meinberg.de)
7 -- Chris Elliott (chelliot@pobox.com)
9 -- for the Internet Engineering Task Force (IETF)
10 -- NTP Working Group (ntpwg)
13 -- *********************************************************************
15 -- Published as RFC 5907
17 -- *********************************************************************
19 NTPv4-MIB DEFINITIONS ::= BEGIN
22 MODULE-IDENTITY, OBJECT-TYPE , mib-2, Integer32, NOTIFICATION-TYPE,
23 Unsigned32, Counter32, TimeTicks
24 FROM SNMPv2-SMI -- RFC 2578
25 MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
26 FROM SNMPv2-CONF -- RFC 2580
27 DisplayString, TEXTUAL-CONVENTION
28 FROM SNMPv2-TC -- RFC 2579
29 InetAddressType, InetAddress
30 FROM INET-ADDRESS-MIB -- RFC 4001
32 FROM SYSAPPL-MIB; -- RFC 2287
34 ntpSnmpMIB MODULE-IDENTITY
35 LAST-UPDATED "201005170000Z" -- May 17, 2010
36 ORGANIZATION "The IETF NTP Working Group (ntpwg)"
38 " WG Email: ntpwg@lists.ntp.isc.org
40 https://lists.ntp.isc.org/mailman/listinfo/ntpwg
43 Meinberg Funkuhren Gmbh & Co. KG
48 Phone: +49 5281 9309 25
49 Email: heiko.gerstung@meinberg.de
56 Phone: +1-919-308-1216
57 Email: chelliot@pobox.com
60 11100 Johns Hopkins Road
64 Phone: +1-443-778-1319
65 Email: brian@innovationslab.net"
67 "The Management Information Base for NTP time entities.
69 Copyright (c) 2010 IETF Trust and the persons identified as
70 authors of the code. All rights reserved.
72 Redistribution and use in source and binary forms, with or
73 without modification, is permitted pursuant to, and subject
74 to the license terms contained in, the Simplified BSD License
75 set forth in Section 4.c of the IETF Trust's Legal Provisions
76 Relating to IETF Documents
77 (http://trustee.ietf.org/license-info)."
79 REVISION "201005170000Z"
81 "This revision of the MIB module is published as RFC 5907."
85 ntpSnmpMIBObjects OBJECT IDENTIFIER ::= { ntpSnmpMIB 1 }
87 -- MIB contains 6 groups
89 ntpEntInfo OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 1 }
90 ntpEntStatus OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 2 }
91 ntpAssociation OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 3 }
92 ntpEntControl OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 4 }
93 ntpEntNotifObjects OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 5 }
96 -- Textual Conventions
99 NtpStratum ::= TEXTUAL-CONVENTION
103 "The NTP stratum, with 16 representing no stratum."
104 SYNTAX Unsigned32 (1..16)
106 NtpDateTime ::= TEXTUAL-CONVENTION
107 DISPLAY-HINT "4d:4d:4d.4d"
110 "NTP date/time on the device, in 128-bit
111 NTP date format. If time is not syncronized, this
112 field shall be a zero-length string.
114 This trusted certificate (TC) is not to be used for objects
115 that are used to set the time of the node querying this
116 object. NTP should be used for this -- or at least SNTP."
117 REFERENCE "RFC 5905, section 6"
118 SYNTAX OCTET STRING (SIZE (0 | 16))
121 -- Section 1: General NTP Entity information objects
122 -- (relatively static information)
125 ntpEntSoftwareName OBJECT-TYPE
130 "The product name of the running NTP version, e.g., 'ntpd'."
133 ntpEntSoftwareVersion OBJECT-TYPE
138 "The software version of the installed NTP implementation
139 as a full version string, e.g., 'ntpd-4.2.0b@1.1433 ...'"
142 ntpEntSoftwareVendor OBJECT-TYPE
147 "The vendor/author of the installed NTP version."
150 ntpEntSystemType OBJECT-TYPE
155 "General hardware/os platform information,
156 e.g., 'Linux 2.6.12 / x86'."
157 -- freely configurable, default is OS Version / Hardware platform
160 ntpEntTimeResolution OBJECT-TYPE
165 "The time resolution in integer format, where the resolution
166 is represented as divisions of a second, e.g., a value of 1000
167 translates to 1.0 ms."
170 ntpEntTimePrecision OBJECT-TYPE
175 "The entity's precision in integer format, shows the precision.
176 A value of -5 would mean 2^-5 = 31.25 ms."
179 ntpEntTimeDistance OBJECT-TYPE
184 "The distance from this NTP entity to the root time reference
185 (stratum 0) source including the unit, e.g., '13.243 ms'."
189 -- Section 2: Current NTP status (dynamic information)
192 ntpEntStatusCurrentMode OBJECT-TYPE
199 syncToRemoteServer(6),
205 "The current mode of the NTP. The definition of each possible
207 notRunning(1) - NTP is not running.
208 notSynchronized(2) - NTP is not synchronized to any time
209 source (stratum = 16).
210 noneConfigured(3) - NTP is not synchronized and does not
211 have a reference configured
213 syncToLocal(4) - NTP is distributing time based on its
214 local clock (degraded accuracy and/or
216 syncToRefclock(5) - NTP is synchronized to a local
217 hardware refclock (e.g., GPS).
218 syncToRemoteServer(6) - NTP is synchronized to a remote
219 NTP server ('upstream' server).
220 unknown(99) - The state of NTP is unknown."
221 ::= { ntpEntStatus 1 }
223 ntpEntStatusStratum OBJECT-TYPE
228 "The NTP entity's own stratum value. Should be a stratum of
229 syspeer + 1 (or 16 if no syspeer)."
230 ::= { ntpEntStatus 2 }
232 ntpEntStatusActiveRefSourceId OBJECT-TYPE
233 SYNTAX Unsigned32 ( 0..99999 )
237 "The association ID of the current syspeer."
238 ::= { ntpEntStatus 3 }
240 ntpEntStatusActiveRefSourceName OBJECT-TYPE
245 "The hostname/descriptive name of the current reference source
246 selected as syspeer, e.g., 'ntp1.ptb.de' or 'GPS' or
248 ::= { ntpEntStatus 4 }
250 ntpEntStatusActiveOffset OBJECT-TYPE
255 "The time offset to the current selected reference time source
256 as a string including unit, e.g., '0.032 ms' or '1.232 s'."
257 ::= { ntpEntStatus 5 }
259 ntpEntStatusNumberOfRefSources OBJECT-TYPE
260 SYNTAX Unsigned32 (0..99)
264 "The number of reference sources configured for NTP."
265 ::= { ntpEntStatus 6 }
267 ntpEntStatusDispersion OBJECT-TYPE
272 "The root dispersion of the running NTP entity, e.g., '6.927'."
273 ::= { ntpEntStatus 7 }
275 ntpEntStatusEntityUptime OBJECT-TYPE
280 "The uptime of the NTP entity, (i.e., the time since ntpd was
281 (re-)initialized not sysUptime!). The time is represented in
282 hundreds of seconds since Jan 1, 1970 (00:00:00.000) UTC."
283 ::= { ntpEntStatus 8 }
285 ntpEntStatusDateTime OBJECT-TYPE
290 "The current NTP date/time on the device, in 128-bit
291 NTP date format. If time is not syncronized, this
292 field shall be a zero-length string.
294 This object can be used to timestamp events on this
295 node and allow a management station to correlate
296 different time objects. For example, a management
297 station could query this object and sysUpTime in
298 the same operation to be able to relate sysUpTime
301 This object is not to be used to set the time of
302 the node querying this object. NTP should be used
303 for this -- or at least SNTP."
304 REFERENCE "RFC 5905, section 6"
305 ::= { ntpEntStatus 9 }
307 ntpEntStatusLeapSecond OBJECT-TYPE
312 "Date the next known leap second will occur. If there is
313 no leap second announced, then this object should be 0."
314 ::= { ntpEntStatus 10 }
316 ntpEntStatusLeapSecDirection OBJECT-TYPE
317 SYNTAX Integer32 (-1..1)
321 "Direction of next known leap second. If there is no
322 leap second announced, then this object should be 0."
323 ::= { ntpEntStatus 11 }
325 ntpEntStatusInPkts OBJECT-TYPE
331 "The total number of NTP messages delivered to the
332 NTP entity from the transport service.
333 Discountinuities in the value of this counter can occur
334 upon cold start or reinitialization of the NTP entity, the
335 management system and at other times as indicated by
336 discontinuities in the value of sysUpTime."
337 ::= { ntpEntStatus 12 }
339 ntpEntStatusOutPkts OBJECT-TYPE
345 "The total number of NTP messages delivered to the
346 transport service by this NTP entity.
347 Discountinuities in the value of this counter can occur
348 upon cold start or reinitialization of the NTP entity, the
349 management system and at other times as indicated by
350 discontinuities in the value of sysUpTime."
351 ::= { ntpEntStatus 13 }
353 ntpEntStatusBadVersion OBJECT-TYPE
359 "The total number of NTP messages that were delivered
360 to this NTP entity and were for an unsupported NTP
362 Discountinuities in the value of this counter can occur
363 upon cold start or reinitialization of the NTP entity, the
364 management system and at other times as indicated by
365 discontinuities in the value of sysUpTime."
366 ::= { ntpEntStatus 14 }
368 ntpEntStatusProtocolError OBJECT-TYPE
374 "The total number of NTP messages that were delivered
375 to this NTP entity and this entity was not able to
376 process due to an NTP protocol error.
377 Discountinuities in the value of this counter can occur
378 upon cold start or reinitialization of the NTP entity, the
379 management system and at other times as indicated by
380 discontinuities in the value of sysUpTime."
381 ::= { ntpEntStatus 15 }
383 ntpEntStatusNotifications OBJECT-TYPE
385 UNITS "notifications"
389 "The total number of SNMP notifications that this NTP
390 entity has generated.
391 Discountinuities in the value of this counter can occur
392 upon cold start or reinitialization of the NTP entity, the
393 management system and at other times as indicated by
394 discontinuities in the value of sysUpTime."
395 ::= { ntpEntStatus 16 }
397 ntpEntStatPktModeTable OBJECT-TYPE
398 SYNTAX SEQUENCE OF NtpEntStatPktModeEntry
399 MAX-ACCESS not-accessible
402 "The number of packets sent and received by packet mode.
403 One entry per packet mode."
404 ::= { ntpEntStatus 17 }
406 ntpEntStatPktModeEntry OBJECT-TYPE
407 SYNTAX NtpEntStatPktModeEntry
408 MAX-ACCESS not-accessible
411 "A statistical record of the number of packets sent and
412 received for each packet mode."
413 INDEX { ntpEntStatPktMode }
414 ::= { ntpEntStatPktModeTable 1 }
416 NtpEntStatPktModeEntry ::= SEQUENCE {
417 ntpEntStatPktMode INTEGER,
418 ntpEntStatPktSent Counter32,
419 ntpEntStatPktReceived Counter32
422 ntpEntStatPktMode OBJECT-TYPE
431 MAX-ACCESS not-accessible
434 "The NTP packet mode."
435 ::= { ntpEntStatPktModeEntry 1 }
437 ntpEntStatPktSent OBJECT-TYPE
443 "The number of NTP packets sent with this packet mode.
444 Discountinuities in the value of this counter can occur
445 upon cold start or reinitialization of the NTP entity, the
446 management system and at other times as indicated by
447 discontinuities in the value of sysUpTime."
448 ::= { ntpEntStatPktModeEntry 2 }
450 ntpEntStatPktReceived OBJECT-TYPE
456 "The number of NTP packets received with this packet mode.
458 Discountinuities in the value of this counter can occur
459 upon cold start or reinitialization of the NTP entity, the
460 management system and at other times as indicated by
461 discontinuities in the value of sysUpTime."
462 ::= { ntpEntStatPktModeEntry 3 }
465 -- Section 3: The status of all currently mobilized associations
468 ntpAssociationTable OBJECT-TYPE
469 SYNTAX SEQUENCE OF NtpAssociationEntry
470 MAX-ACCESS not-accessible
473 "The table of currently mobilized associations."
474 ::= { ntpAssociation 1 }
476 ntpAssociationEntry OBJECT-TYPE
477 SYNTAX NtpAssociationEntry
478 MAX-ACCESS not-accessible
481 "The table entry of currently mobilized associations."
483 ::= { ntpAssociationTable 1 }
485 NtpAssociationEntry ::= SEQUENCE {
486 ntpAssocId Unsigned32,
487 ntpAssocName Utf8String,
488 ntpAssocRefId DisplayString,
489 ntpAssocAddressType InetAddressType,
490 ntpAssocAddress InetAddress,
491 ntpAssocOffset DisplayString,
492 ntpAssocStratum NtpStratum,
493 ntpAssocStatusJitter DisplayString,
494 ntpAssocStatusDelay DisplayString,
495 ntpAssocStatusDispersion DisplayString
498 ntpAssocId OBJECT-TYPE
499 SYNTAX Unsigned32 ( 1..99999 )
500 MAX-ACCESS not-accessible
503 "The association ID. This is an internal, unique ID."
504 ::= { ntpAssociationEntry 1 }
506 ntpAssocName OBJECT-TYPE
511 "The hostname or other descriptive name for the association."
512 ::= { ntpAssociationEntry 2 }
514 ntpAssocRefId OBJECT-TYPE
519 "The refclock driver ID, if available."
520 -- a refclock driver ID like "127.127.1.0" for non
521 -- uni/multi/broadcast associations
522 ::= { ntpAssociationEntry 3 }
524 ntpAssocAddressType OBJECT-TYPE
525 SYNTAX InetAddressType { ipv4(1), ipv6(2), ipv4z(3), ipv6z(4) }
529 "The type of address of the association. Can be either IPv4 or
530 IPv6 (both with or without zone index) and contains the type of
531 address for unicast, multicast, and broadcast associations."
532 ::= { ntpAssociationEntry 4 }
534 ntpAssocAddress OBJECT-TYPE
535 SYNTAX InetAddress (SIZE (4|8|16|20))
539 "The IP address (IPv4 or IPv6, with or without zone index) of
540 the association. The type and size depends on the
541 ntpAssocAddressType object. Represents the IP address of a
542 uni/multi/broadcast association."
543 ::= { ntpAssociationEntry 5 }
545 ntpAssocOffset OBJECT-TYPE
550 "The time offset to the association as a string."
551 -- including unit, e.g., "0.032 ms" or "1.232 s"
552 ::= { ntpAssociationEntry 6 }
554 ntpAssocStratum OBJECT-TYPE
559 "The association stratum value."
560 ::= { ntpAssociationEntry 7 }
562 ntpAssocStatusJitter OBJECT-TYPE
567 "The jitter in milliseconds as a string."
568 ::= { ntpAssociationEntry 8 }
570 ntpAssocStatusDelay OBJECT-TYPE
575 "The network delay in milliseconds as a string."
576 ::= { ntpAssociationEntry 9 }
578 ntpAssocStatusDispersion OBJECT-TYPE
583 "The root dispersion of the association."
585 ::= { ntpAssociationEntry 10 }
587 ntpAssociationStatisticsTable OBJECT-TYPE
588 SYNTAX SEQUENCE OF NtpAssociationStatisticsEntry
589 MAX-ACCESS not-accessible
592 "The table of statistics for current associations."
593 ::= { ntpAssociation 2 }
595 ntpAssociationStatisticsEntry OBJECT-TYPE
596 SYNTAX NtpAssociationStatisticsEntry
597 MAX-ACCESS not-accessible
600 "The table entry of statistics for current associations."
602 ::= { ntpAssociationStatisticsTable 1 }
604 NtpAssociationStatisticsEntry ::= SEQUENCE {
605 ntpAssocStatInPkts Counter32,
606 ntpAssocStatOutPkts Counter32,
607 ntpAssocStatProtocolError Counter32
610 ntpAssocStatInPkts OBJECT-TYPE
616 "The total number of NTP messages delivered to the
617 NTP entity from this association.
618 Discountinuities in the value of this counter can occur
619 upon cold start or reinitialization of the NTP entity, the
620 management system and at other times as indicated by
621 discontinuities in the value of sysUpTime."
622 ::= { ntpAssociationStatisticsEntry 1 }
624 ntpAssocStatOutPkts OBJECT-TYPE
630 "The total number of NTP messages delivered to the
631 transport service by this NTP entity for this
633 Discountinuities in the value of this counter can occur
634 upon cold start or reinitialization of the NTP entity, the
635 management system and at other times as indicated by
636 discontinuities in the value of sysUpTime."
637 ::= { ntpAssociationStatisticsEntry 2 }
639 ntpAssocStatProtocolError OBJECT-TYPE
645 "The total number of NTP messages that were delivered
646 to this NTP entity from this association and this entity
647 was not able to process due to an NTP protocol error.
648 Discountinuities in the value of this counter can occur
649 upon cold start or reinitialization of the NTP entity, the
650 management system and at other times as indicated by
651 discontinuities in the value of sysUpTime."
652 ::= { ntpAssociationStatisticsEntry 3 }
655 -- Section 4: Control objects
658 ntpEntHeartbeatInterval OBJECT-TYPE
661 MAX-ACCESS read-write
664 "The interval at which the ntpEntNotifHeartbeat notification
665 should be sent, in seconds. If set to 0 and the
666 entNotifHeartbeat bit in ntpEntNotifBits is 1, then
667 ntpEntNotifHeartbeat is sent once.
668 This value is stored persistently and will be restored to its
669 last set value upon cold start or restart."
671 ::= { ntpEntControl 1 }
673 ntpEntNotifBits OBJECT-TYPE
675 notUsed(0), -- Used to sync up bit and notification
677 entNotifModeChange(1),
678 entNotifStratumChange(2),
679 entNotifSyspeerChanged(3),
680 entNotifAddAssociation(4),
681 entNotifRemoveAssociation(5),
682 entNotifConfigChanged(6),
683 entNotifLeapSecondAnnounced(7),
686 MAX-ACCESS read-write
689 "A bit for each notification. A 1 for a particular bit enables
690 that particular notification, a 0 disables it.
691 This value is stored persistently and will be restored to its
692 last set value upon cold start or restart."
693 ::= { ntpEntControl 2 }
696 -- Section 5: Notification objects
699 ntpEntNotifMessage OBJECT-TYPE
701 MAX-ACCESS accessible-for-notify
704 "Used as a payload object for all notifications. Holds a
705 cleartext event message."
706 DEFVAL { "no event" }
707 ::= { ntpEntNotifObjects 1 }
710 -- SNMP notification definitions
713 ntpEntNotifications OBJECT IDENTIFIER ::= { ntpSnmpMIB 0 }
715 ntpEntNotifModeChange NOTIFICATION-TYPE
716 OBJECTS { ntpEntStatusCurrentMode }
719 "The notification to be sent when the NTP entity changes mode,
720 including starting and stopping (if possible)."
721 ::= { ntpEntNotifications 1 }
723 ntpEntNotifStratumChange NOTIFICATION-TYPE
724 OBJECTS { ntpEntStatusDateTime, ntpEntStatusStratum,
728 "The notification to be sent when stratum level of NTP changes."
729 ::= { ntpEntNotifications 2 }
731 ntpEntNotifSyspeerChanged NOTIFICATION-TYPE
732 OBJECTS { ntpEntStatusDateTime, ntpEntStatusActiveRefSourceId,
736 "The notification to be sent when a (new) syspeer has been
738 ::= { ntpEntNotifications 3 }
740 ntpEntNotifAddAssociation NOTIFICATION-TYPE
741 OBJECTS { ntpEntStatusDateTime, ntpAssocName, ntpEntNotifMessage }
744 "The notification to be sent when a new association is
746 ::= { ntpEntNotifications 4 }
748 ntpEntNotifRemoveAssociation NOTIFICATION-TYPE
749 OBJECTS { ntpEntStatusDateTime, ntpAssocName, ntpEntNotifMessage }
752 "The notification to be sent when an association is
754 ::= { ntpEntNotifications 5 }
756 ntpEntNotifConfigChanged NOTIFICATION-TYPE
757 OBJECTS { ntpEntStatusDateTime, ntpEntNotifMessage }
760 "The notification to be sent when the NTP configuration has
761 changed, e.g., when the system connected to the Internet and
762 was assigned a new IP address by the ISPs DHCP server."
763 ::= { ntpEntNotifications 6 }
765 ntpEntNotifLeapSecondAnnounced NOTIFICATION-TYPE
766 OBJECTS { ntpEntStatusDateTime, ntpEntNotifMessage }
769 "The notification to be sent when a leap second has been
771 ::= { ntpEntNotifications 7 }
773 ntpEntNotifHeartbeat NOTIFICATION-TYPE
774 OBJECTS { ntpEntStatusDateTime, ntpEntStatusCurrentMode,
775 ntpEntHeartbeatInterval, ntpEntNotifMessage }
778 "The notification to be sent periodically (as defined by
779 ntpEntHeartbeatInterval) to indicate that the NTP entity is
781 ::= { ntpEntNotifications 8 }
784 -- Conformance/Compliance statements
787 ntpEntConformance OBJECT IDENTIFIER ::= { ntpSnmpMIB 2 }
789 ntpEntCompliances OBJECT IDENTIFIER ::= { ntpEntConformance 1 }
790 ntpEntGroups OBJECT IDENTIFIER ::= { ntpEntConformance 2 }
792 ntpEntNTPCompliance MODULE-COMPLIANCE
795 "The compliance statement for SNMP entities that use NTP and
796 implement the NTP MIB."
797 MODULE -- this module
801 ::= { ntpEntCompliances 1 }
803 ntpEntSNTPCompliance MODULE-COMPLIANCE
806 "The compliance statement for SNMP entities that use SNTP and
807 implement the NTP MIB."
808 MODULE -- this module
812 GROUP ntpEntObjectsGroup2
814 "Optional object group."
815 GROUP ntpEntNotifGroup
817 "Optional notifications for this MIB."
818 ::= { ntpEntCompliances 2 }
820 ntpEntObjectsGroup1 OBJECT-GROUP
823 ntpEntSoftwareVersion,
824 ntpEntSoftwareVendor,
826 ntpEntStatusEntityUptime,
827 ntpEntStatusDateTime,
835 "A collection of objects for the NTP MIB."
836 ::= { ntpEntGroups 1 }
838 ntpEntObjectsGroup2 OBJECT-GROUP
840 ntpEntTimeResolution,
843 ntpEntStatusCurrentMode,
845 ntpEntStatusActiveRefSourceId,
846 ntpEntStatusActiveRefSourceName,
847 ntpEntStatusActiveOffset,
848 ntpEntStatusNumberOfRefSources,
849 ntpEntStatusDispersion,
850 ntpEntStatusLeapSecond,
851 ntpEntStatusLeapSecDirection,
854 ntpEntStatusBadVersion,
855 ntpEntStatusProtocolError,
856 ntpEntStatusNotifications,
858 ntpEntStatPktReceived,
861 ntpAssocStatusJitter,
863 ntpAssocStatusDispersion,
866 ntpAssocStatProtocolError,
867 ntpEntHeartbeatInterval,
873 "A collection of objects for the NTP MIB."
874 ::= { ntpEntGroups 2 }
876 ntpEntNotifGroup NOTIFICATION-GROUP
878 ntpEntNotifModeChange,
879 ntpEntNotifStratumChange,
880 ntpEntNotifSyspeerChanged,
881 ntpEntNotifAddAssociation,
882 ntpEntNotifRemoveAssociation,
883 ntpEntNotifConfigChanged,
884 ntpEntNotifLeapSecondAnnounced,
889 "A collection of notifications for the NTP MIB"
890 ::= { ntpEntGroups 3 }