1-- *********************************************************************
2--
3--Id: draft-ietf-ntp-ntpv4-mib-05.xml 1.12 2007/11/28 00:00:00Z chelliot
4--$Name:  $
5--
6--    The Network Time Protocol Version 4
7--    Management Information Base (MIB)
8--
9--    Authors: Heiko Gerstung (heiko.gerstung@meinberg.de)
10--             Chris Elliott (chelliot@cisco.com)
11--
12--    for the Internet Engineering Task Force (IETF)
13--    NTP Working Group (ntpwg)
14--
15--
16-- *********************************************************************
17--
18--  $Log: ntpv4-mib.mib,v $
19--  Revision 1.1.1.1  2009/12/13 16:56:33  kardel
20--  Import ntp 4.2.6
21--
22--  Revision 1.14  2008/08/29 00:00:00Z heiko
23--  Re-submitted after expiration:
24--    - The working group agreed to forward this draft in its current form (04),
25--       but it expired before that could be done
26--  Revision 1.13  2008/02/25 00:00:00Z chelliot
27--  MIB:
28--    - Added statistics table on a per-packet mode basis
29--      (ntpEntStatPktModeTable)
30--  Revision 1.12  2007/11/28 00:00:00Z chelliot
31--  MIB:
32--    - Added protocol statistics at the entity and association level
33--  XML/RFC:
34--    - Changed a couple of instances of "instance" to "entity" and "srv"
35--      to "ent".
36--    - Changed Meinberg address and Heiko's phone number.
37--  Revision 1.11  2007/07/23 00:00:00Z chelliot
38--  MIB:
39--    - Modified Contact Info
40--    - Added Stratum and NTP time TCs
41--    - Changed ntpEntNotifNotInSync to ntpEntNotifCurrentMode and
42--      deleted ntpEntNotifEntityStarted and ntpEntNotifEntityStopped
43--    - Added compliance for SNTP entities
44--    - Changed ntpTime to ntpDateTime
45--  Revision 1.10  2007/07/09 00:00:00Z chelliot
46--  XML/RFC:
47--    - Changed RFC to Internet
48--    - Changed service and service instance* to entity/entities
49--    - Revised the Security Considerations to include read-write object
50--      security considerations
51--    - Added Chris Elliott as an author
52--    - Fixed several lines to be 72 characters long or less
53--  MIB:
54--    - Changed "service" and "service instance" to "entity",
55--      and Srv to Ent
56--    - Changed status to mode
57--    - Added association status object
58--    - Added leap second objects
59--  Revision 1.9  2007/03/04 06:59:44Z  chelliot
60--  MIB:
61--    - Added time objects, comments, changed notifications
62--    - Changed server to service
63--  Revision 1.8  2006/10/23 03:37:44Z  chelliot
64--  MIB:
65--    - Changed various object types, added notification control object
66--  Revision 1.7  2006/06/16 07:13:50Z  heiko
67--  XML/RFC:
68--    - Added/changed comments about the to-be-done IANA SMI assignment
69--  Revision 1.6  2006/06/16 07:04:43Z  heiko
70--  RFC/XML:
71--    - phone number corrected
72--    - removed unused references
73--  MIB:
74--    - added ntpSrvTimePrecision
75--    - changed INTEGER objects to Integer32
76--    - changed default value for ntpSrvStatusStratum from 99 to 16
77--    - changed default value for ntpSrvStatusActiveRefclockId from 99-0
78--    - changed object names to ntpSrvStatusActiveRefSourceName
79--      (from ntpSrvStatusActiveRefclockName) and to
80--      ntpSrvStatusNumberOfRefSources (from
81--      ntpSrvStatusNumberOfRefclocks)
82--    - removed ntpSrvStatusAuthKeyId object
83--    - added ntpSrvStatusDispersion to provide the current root
84--      dispersion
85--    - major rework of section 3 (Status of associations) to compile
86--      cleanly,including:
87--      - added dispersion to the association dataset
88--      - renaming of objects
89--      - added an index to the association table
90--      - formal changes
91--    - traps are now reverse mappable
92--    - traps are now define with payload where applicable
93--    - added compliance statements
94--  Revision 1.5  2006/02/27 08:28:16Z  heiko
95--    - changed to RFC format and added header as well as
96--      introduction and technical description
97--    - added other necessary RFC components (copyright statement etc.)
98--  Revision 1.4  2006/02/27 07:06:49Z  heiko
99--    - removed all objects with data type REAL
100--    - everything that needs to be floating point is now defined as
101--      DisplayString
102--  Revision 1.2  2006/01/23 08:58:11Z  heiko
103--    - changed the datatype of offset, jitter and delay objects from
104--      Integer32 to REAL
105--
106-- *********************************************************************
107
108NTPv4-MIB DEFINITIONS ::= BEGIN
109
110
111IMPORTS
112    MODULE-IDENTITY, OBJECT-TYPE , enterprises, mib-2, Integer32, NOTIFICATION-TYPE,
113    Unsigned32, Counter32
114        FROM SNMPv2-SMI
115    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
116        FROM SNMPv2-CONF
117    DisplayString, TEXTUAL-CONVENTION
118        FROM SNMPv2-TC
119    InetAddressType, InetAddress
120        FROM INET-ADDRESS-MIB;
121
122ntpSnmpMIB MODULE-IDENTITY
123    LAST-UPDATED "200802250000Z" -- February 25, 2008
124
125    ORGANIZATION "The IETF NTP Working Group (ntpwg)"
126    CONTACT-INFO
127            "     WG Email: ntpwg@lists.ntp.isc.org
128                  Subscribe:
129                   https://lists.ntp.isc.org/mailman/listinfo/ntpwg
130
131                  Heiko Gerstung
132                  Meinberg Funkuhren Gmbh & Co. KG
133                  Lange Wand 9
134                  Bad Pyrmont  31812
135                  Germany
136
137                  Phone: +49 5281 9309 25
138                  Email: heiko.gerstung@meinberg.de
139
140                  Chris Elliott
141                  Cisco Systems, Inc.
142                  7025 Kit Creek Rd., P.O. Box 14987
143                  Research Triangle Park  27709
144                  USA
145
146                  Phone: +1 919-392-2146
147                  Email: chelliot@cisco.com"
148     DESCRIPTION
149        "The Management Information Base for NTP time entities."
150    REVISION     "200802250000Z"
151    DESCRIPTION
152        "Added ntpEntStatPktModeTable"
153    REVISION     "200711280000Z"
154    DESCRIPTION
155        "Multiple proposed changes for IETF 70"
156    REVISION     "200707230000Z"
157    DESCRIPTION
158        "Multiple proposed changes for IETF 69"
159    REVISION     "200707090000Z"
160    DESCRIPTION
161        "Multiple changes from IETF 68"
162    REVISION     "200703040000Z"
163    DESCRIPTION
164        "More MIB review modifications."
165    REVISION     "200610230000Z"
166    DESCRIPTION
167        "Modifications from MIB review."
168    REVISION     "200606190000Z"
169    DESCRIPTION
170        "First Draft Version"
171    REVISION     "200512190000Z"
172    DESCRIPTION
173        "revised edition (added traps and stuff)"
174    REVISION     "200511160000Z"
175    DESCRIPTION
176        "Initial draft"
177    ::= { enterprises 5597 99 }
178
179
180ntpSnmpMIBObjects  OBJECT IDENTIFIER ::= { ntpSnmpMIB 1 }
181
182-- MIB contains 6 groups
183
184ntpEntInfo         OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 1 }
185ntpEntStatus       OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 2 }
186ntpAssociation     OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 3 }
187ntpEntControl      OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 4 }
188ntpEntNotifObjects OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 5 }
189ntpEntNotifPrefix  OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 6 }
190
191--
192-- Textual Conventions
193--
194
195NtpStratum ::= TEXTUAL-CONVENTION
196    DISPLAY-HINT "d"
197    STATUS      current
198    DESCRIPTION
199        "The NTP stratum, with 16 representing no stratum."
200    SYNTAX      Unsigned32 (1..16)
201
202NtpDateTime ::= TEXTUAL-CONVENTION
203    DISPLAY-HINT "4d:4d:4d.4d"
204    STATUS      current
205    DESCRIPTION
206        "NTP date/time on the device, in 128-bit
207         NTP date format. Ref: draft-ietf-ntp-ntpv4-proto-06,
208         section 6:
209          It includes a 64-bit signed seconds field
210          spanning 584 billion years and a 64-bit fraction
211          field resolving .05 attosecond (i.e. 0.5e-18).
212          For convenience in mapping between formats, the
213          seconds field is divided into a 32-bit era field
214          and a 32-bit timestamp field.
215
216         If time is not syncronized this field shall be a
217         zero-length string.
218
219         This TC is not to be used for objects that are used
220         to set the time of the node querying this object.
221         NTP should be used for this--or at least SNTP."
222    SYNTAX      OCTET STRING (SIZE (0 | 16))
223
224--
225-- Section 1: General NTP Entity information objects
226--            (relatively static information)
227--
228
229ntpEntSoftwareName OBJECT-TYPE
230    SYNTAX      DisplayString
231    MAX-ACCESS  read-only
232    STATUS      current
233    DESCRIPTION
234        "The product name of the installed NTP version."
235    -- the product name of the running ntp implementation, e.g. "ntpd"
236    ::= { ntpEntInfo  1 }
237
238ntpEntSoftwareVersion OBJECT-TYPE
239    SYNTAX      DisplayString
240    MAX-ACCESS  read-only
241    STATUS      current
242    DESCRIPTION
243        "The software version of the installed NTP implementation."
244    -- full version string, e.g. "ntpd-4.2.0b@1.1433 ..."
245    ::= { ntpEntInfo  2 }
246
247ntpEntSoftwareVersionVal OBJECT-TYPE
248    SYNTAX      Unsigned32
249    MAX-ACCESS  read-only
250    STATUS      current
251    DESCRIPTION
252        "Software version of installed NTP as an unsigned integer
253         value."
254    -- e.g. if version string is "4.2.0b" this could be translated into
255    --  4202. This could be useful to find out if version of entity on a
256    --  is newer or older than version of the entity on b (without too
257    --  much string parsing trouble)
258    ::= { ntpEntInfo 3 }
259
260ntpEntSoftwareVendor OBJECT-TYPE
261    SYNTAX      DisplayString
262    MAX-ACCESS  read-only
263    STATUS      current
264    DESCRIPTION
265        "The vendor/author of the installed NTP version."
266    ::= { ntpEntInfo  4 }
267
268ntpEntSystemType OBJECT-TYPE
269    SYNTAX      DisplayString
270    MAX-ACCESS  read-only
271    STATUS      current
272    DESCRIPTION
273        "General hardware/os platform information."
274    -- e.g. "Linux 2.6.12 / x86"
275    -- freely configurable, default is OS Version / Hardware platform
276    ::= { ntpEntInfo  5 }
277
278ntpEntTimeResolution OBJECT-TYPE
279    SYNTAX      DisplayString
280    MAX-ACCESS  read-only
281    STATUS      current
282    DESCRIPTION
283        "A string describing the time resolution of the running NTP
284         implementation."
285    -- e.g. "100 ns"
286    -- depends on the NTP implementation and the underlying OS. The
287    --  current resolution should be used, so if the OS only supports
288    --  10ms and ntpd is capable of 1ns, the 10ms should be advertised
289    ::= { ntpEntInfo  6 }
290
291ntpEntTimeResolutionVal OBJECT-TYPE
292    SYNTAX      Unsigned32
293    MAX-ACCESS  read-only
294    STATUS      current
295    DESCRIPTION
296        "The time resolution in integer format."
297    -- ntpEntTimeResolution in Integer format
298    -- shows the resolution based on 1 second, e.g. "1ms" translates to
299    --  1000
300    ::= { ntpEntInfo  7 }
301
302ntpEntTimePrecision OBJECT-TYPE
303    SYNTAX      DisplayString
304    MAX-ACCESS  read-only
305    STATUS      current
306    DESCRIPTION
307        "A string describing the precision with which the NTP entity
308         implementation/OS manages its time base."
309    -- e.g. "-18" means 2^-18 = 0.000003814697265625 seconds
310    --      "-5" means 2^-5 = 0.03125 seconds
311    -- depends on the NTP implementation and the underlying OS.
312    ::= { ntpEntInfo  8 }
313
314ntpEntTimePrecisionVal OBJECT-TYPE
315    SYNTAX      Integer32
316    MAX-ACCESS  read-only
317    STATUS      current
318    DESCRIPTION
319        "The entity's precision in integer format."
320    -- ntpEntTimePrecision in signed Integer format
321    -- shows the precision. A value of -5 would mean 2^-5 = 31.25 ms
322    ::= { ntpEntInfo  9 }
323
324ntpEntTimeDistance OBJECT-TYPE
325    SYNTAX      DisplayString
326    MAX-ACCESS  read-only
327    STATUS      current
328    DESCRIPTION
329        "The distance from this NTP entity to the root time reference
330        (stratum 0) source."
331    -- including the unit
332    -- e.g. "13.243 ms"
333    ::= { ntpEntInfo  10 }
334
335--
336-- Section 2: Current NTP status (dynamic information)
337--
338
339ntpEntStatusCurrentMode OBJECT-TYPE
340    SYNTAX      DisplayString
341    MAX-ACCESS  read-only
342    STATUS      current
343    DESCRIPTION
344        "The actual mode of NTP as a string"
345    --- possible strings:
346    --- "not running" : NTP is not running
347    --- "not synchronized" : NTP is not synchronized to any time source
348    ---   (stratum = 16)
349    --- "none configured" : NTP is not synchronized and does not have a
350    ---                     server configured
351    ---   (stratum = 16)
352    --- "sync to local" : NTP is synchronized to own local clock
353    ---   (degraded reliability)
354    --- "sync to refclock" : NTP is synchronized to a local hardware
355    ---   refclock (e.g. GPS)
356    --- "sync to remote server" : NTP is synchronized to a remote NTP
357    ---   server ("upstream" server)
358    --- "unknown" : The state of NTP is unknown.
359    ::= { ntpEntStatus 1 }
360
361ntpEntStatusCurrentModeVal OBJECT-TYPE
362    SYNTAX      INTEGER {
363                            notRunning(1),
364                            notSynchronized(2),
365                            noneConfigured(3),
366                            syncToLocal(4),
367                            syncToRefclock(5),
368                            syncToRemoteServer(6),
369                            unknown(99)
370                        }
371    MAX-ACCESS  read-only
372    STATUS      current
373    DESCRIPTION
374        "The current mode of the NTP as integer value."
375    -- see ntpEntStatusCurrentMode
376    DEFVAL { 99 }
377    ::= { ntpEntStatus 2 }
378
379ntpEntStatusStratum OBJECT-TYPE
380    SYNTAX      NtpStratum
381    MAX-ACCESS  read-only
382    STATUS      current
383    DESCRIPTION
384        "The NTP entity's own stratum value."
385    -- should be stratum of syspeer + 1 (or 16 if no syspeer)
386    DEFVAL { 16 }
387    ::= { ntpEntStatus 3 }
388
389ntpEntStatusActiveRefSourceId OBJECT-TYPE
390    SYNTAX      Unsigned32 ( 0..99999 )
391    MAX-ACCESS  read-only
392    STATUS      current
393    DESCRIPTION
394        "The association ID of the current syspeer."
395    DEFVAL { 0 }
396    ::= { ntpEntStatus 4 }
397
398ntpEntStatusActiveRefSourceName OBJECT-TYPE
399    SYNTAX      DisplayString
400    MAX-ACCESS  read-only
401    STATUS      current
402    DESCRIPTION
403        "The hostname/descriptive name of the current reference source
404         selected as syspeer."
405    -- e.g. "ntp1.ptb.de" or "GPS" or "DCFi" ...
406    -- maybe something like "RefClk(8)"="hardware clock using driver 8"
407    -- would be nice
408    ::= { ntpEntStatus 5 }
409
410ntpEntStatusActiveOffset OBJECT-TYPE
411    SYNTAX      DisplayString
412    MAX-ACCESS  read-only
413    STATUS      current
414    DESCRIPTION
415        "The Time offset to the current selected reference time source
416         as a string."
417    -- including unit, e.g. "0.032 ms" or "1.232 s"
418    ::= { ntpEntStatus 6 }
419
420ntpEntStatusNumberOfRefSources OBJECT-TYPE
421    SYNTAX      Unsigned32 (0..99)
422    MAX-ACCESS  read-only
423    STATUS      current
424    DESCRIPTION
425        "The number of reference sources configured for NTP."
426    DEFVAL { 0 }
427    ::= { ntpEntStatus 7 }
428
429ntpEntStatusDispersion OBJECT-TYPE
430    SYNTAX      DisplayString
431    MAX-ACCESS  read-only
432    STATUS      current
433    DESCRIPTION
434        "The root dispersion of the running NTP entity."
435    -- e.g. "6.927"
436    DEFVAL { "n/a" }
437    ::= { ntpEntStatus 8 }
438
439ntpEntStatusEntityUptime OBJECT-TYPE
440    SYNTAX      Unsigned32
441    MAX-ACCESS  read-only
442    STATUS      current
443    DESCRIPTION
444        "The uptime of the NTP entity in seconds."
445    -- time since ntpd was (re-)started (not sysUptime!)
446    DEFVAL { 0 }
447    ::= { ntpEntStatus 9 }
448
449ntpEntStatusDateTime OBJECT-TYPE
450    SYNTAX      NtpDateTime
451    MAX-ACCESS  read-only
452    STATUS      current
453    DESCRIPTION
454        "The current NTP date/time on the device, in 128-bit
455         NTP date format. Ref: draft-ietf-ntp-ntpv4-proto-06,
456         section 6:
457          It includes a 64-bit signed seconds field
458          spanning 584 billion years and a 64-bit fraction
459          field resolving .05 attosecond (i.e. 0.5e-18).
460          For convenience in mapping between formats, the
461          seconds field is divided into a 32-bit era field
462          and a 32-bit timestamp field.
463
464         If time is not syncronized this field shall be a
465         zero-length string.
466
467         This object can be used to timestamp events on this
468         node and allow a management station to coorelate
469         different time objects. For example, a management
470         station could query this object and sysUpTime in
471         the same operation to be able to relate sysUpTime
472         to NTP time.
473
474         This object is not to be used to set the time of
475         the node querying this object. NTP should be used
476         for this--or at least SNTP."
477    ::= { ntpEntStatus 10 }
478
479ntpEntStatusLeapSecond OBJECT-TYPE
480    SYNTAX      Integer32
481    MAX-ACCESS  read-only
482    STATUS      current
483    DESCRIPTION
484        "Date the next known leap second will occur. If there is
485         no leap second announced then this object should be 0."
486    DEFVAL { 0 }
487    ::= { ntpEntStatus 11 }
488
489ntpEntStatusLeapSecDirection OBJECT-TYPE
490    SYNTAX      Integer32 (-1..1)
491    MAX-ACCESS  read-only
492    STATUS      current
493    DESCRIPTION
494        "Direction of next known leap second. If there is no
495         leap second announced then this object should be 0."
496    DEFVAL { 0 }
497    ::= { ntpEntStatus 12 }
498
499ntpEntStatusInPkts OBJECT-TYPE
500    SYNTAX      Counter32
501    MAX-ACCESS  read-only
502    STATUS      current
503    DESCRIPTION
504        "The total number of NTP messages delivered to the
505         NTP entity from the transport service."
506    ::= { ntpEntStatus 13 }
507
508ntpEntStatusOutPkts OBJECT-TYPE
509    SYNTAX      Counter32
510    MAX-ACCESS  read-only
511    STATUS      current
512    DESCRIPTION
513        "The total number of NTP messages delivered to the
514         transport service by this NTP entity."
515    ::= { ntpEntStatus 14 }
516
517ntpEntStatusBadVersion OBJECT-TYPE
518    SYNTAX      Counter32
519    MAX-ACCESS  read-only
520    STATUS      current
521    DESCRIPTION
522        "The total number of NTP messages which were delivered
523         to this NTP entity and were for an unsupported NTP
524         version."
525    ::= { ntpEntStatus 15 }
526
527ntpEntStatusProtocolError OBJECT-TYPE
528    SYNTAX      Counter32
529    MAX-ACCESS  read-only
530    STATUS      current
531    DESCRIPTION
532        "The total number of NTP messages which were delivered
533         to this NTP entity and this entity was not able to
534         process due to an NTP protocol error."
535    ::= { ntpEntStatus 16 }
536
537ntpEntStatusNotifications OBJECT-TYPE
538    SYNTAX      Counter32
539    MAX-ACCESS  read-only
540    STATUS      current
541    DESCRIPTION
542        "The total number of SNMP notifications which this NTP
543         entity has generated."
544    ::= { ntpEntStatus 17 }
545
546ntpEntStatPktModeTable OBJECT-TYPE
547    SYNTAX           SEQUENCE OF NtpEntStatPktModeEntry
548    MAX-ACCESS       not-accessible
549    STATUS           current
550    DESCRIPTION
551        "The number of packets sent and received by packet mode."
552    ::= { ntpEntStatus 18 }
553
554ntpEntStatPktModeEntry OBJECT-TYPE
555    SYNTAX      NtpEntStatPktModeEntry
556    MAX-ACCESS  not-accessible
557    STATUS      current
558    DESCRIPTION
559        "The number of packets sent and received by packet mode."
560    INDEX       { ntpEntStatPktMode }
561    ::= { ntpEntStatPktModeTable 1 }
562
563NtpEntStatPktModeEntry   ::= SEQUENCE {
564        ntpEntStatPktMode              INTEGER,
565        ntpEntStatPktSent              Counter32,
566        ntpEntStatPktReceived          Counter32
567}
568
569ntpEntStatPktMode OBJECT-TYPE
570    SYNTAX      INTEGER {
571                    symetricactive(1),
572                    symetricpassive(2),
573                    client(3),
574                    server(4),
575                    broadcastserver(5),
576                    broadcastclient(6)
577                }
578    MAX-ACCESS  not-accessible
579    STATUS      current
580    DESCRIPTION
581        "The NTP packet mode."
582    ::= { ntpEntStatPktModeEntry 1 }
583
584ntpEntStatPktSent OBJECT-TYPE
585    SYNTAX      Counter32
586    MAX-ACCESS  read-only
587    STATUS      current
588    DESCRIPTION
589        "The number of NTP packets sent with this packet mode."
590    ::= { ntpEntStatPktModeEntry 2 }
591
592ntpEntStatPktReceived OBJECT-TYPE
593    SYNTAX      Counter32
594    MAX-ACCESS  read-only
595    STATUS      current
596    DESCRIPTION
597        "The number of NTP packets received with this packet mode."
598    ::= { ntpEntStatPktModeEntry 3 }
599
600--
601-- Section 3: The status of all currently mobilized associations
602--
603
604ntpAssociationTable OBJECT-TYPE
605    SYNTAX           SEQUENCE OF NtpAssociationEntry
606    MAX-ACCESS       not-accessible
607    STATUS           current
608    DESCRIPTION
609        "The table of currently mobilized associations."
610    ::= { ntpAssociation 1 }
611
612ntpAssociationEntry OBJECT-TYPE
613    SYNTAX      NtpAssociationEntry
614    MAX-ACCESS  not-accessible
615    STATUS      current
616    DESCRIPTION
617        "The table entry of currently mobilized associations."
618    INDEX       { ntpAssocId }
619    ::= { ntpAssociationTable 1 }
620
621NtpAssociationEntry   ::= SEQUENCE {
622        ntpAssocId                  Unsigned32,
623        ntpAssocName                DisplayString,
624        ntpAssocRefId               DisplayString,
625        ntpAssocAddressType         InetAddressType,
626        ntpAssocAddress             InetAddress,
627        ntpAssocOffset              DisplayString,
628        ntpAssocStratum             NtpStratum,
629        ntpAssocStatusJitter        DisplayString,
630        ntpAssocStatusDelay         DisplayString,
631        ntpAssocStatusDispersion    DisplayString
632}
633
634ntpAssocId      OBJECT-TYPE
635    SYNTAX      Unsigned32 ( 1..99999 )
636    MAX-ACCESS  not-accessible
637    STATUS      current
638    DESCRIPTION
639        "The association ID. This is an internal, unique ID."
640    ::= { ntpAssociationEntry 1 }
641
642ntpAssocName    OBJECT-TYPE
643    SYNTAX      DisplayString
644    MAX-ACCESS  read-only
645    STATUS      current
646    DESCRIPTION
647        "The hostname or other descriptive name for the association."
648    ::= { ntpAssociationEntry 2 }
649
650ntpAssocRefId   OBJECT-TYPE
651    SYNTAX      DisplayString
652    MAX-ACCESS  read-only
653    STATUS      current
654    DESCRIPTION
655        "The refclock driver ID, if available."
656    -- a refclock driver ID like "127.127.1.0" for non
657    -- uni/multi/broadcast associations
658    ::= { ntpAssociationEntry 3 }
659
660ntpAssocAddressType OBJECT-TYPE
661    SYNTAX      InetAddressType
662    MAX-ACCESS  read-only
663    STATUS      current
664    DESCRIPTION
665        "The type of address of the association."
666    -- contains the type of address for uni/multi/broadcast associations
667    ::= { ntpAssociationEntry 4 }
668
669ntpAssocAddress OBJECT-TYPE
670    SYNTAX      InetAddress
671    MAX-ACCESS  read-only
672    STATUS      current
673    DESCRIPTION
674        "The IP address (IPv4 or IPv6) of the association."
675    -- contains IP address of uni/multi/broadcast associations
676    ::= { ntpAssociationEntry 5 }
677
678ntpAssocOffset  OBJECT-TYPE
679    SYNTAX      DisplayString
680    MAX-ACCESS  read-only
681    STATUS      current
682    DESCRIPTION
683        "The time offset to the association as a string."
684    -- including unit, e.g. "0.032 ms" or "1.232 s"
685    ::= { ntpAssociationEntry 6 }
686
687ntpAssocStratum OBJECT-TYPE
688    SYNTAX      NtpStratum
689    MAX-ACCESS  read-only
690    STATUS      current
691    DESCRIPTION
692        "The association stratum value."
693    ::= { ntpAssociationEntry 7 }
694
695ntpAssocStatusJitter OBJECT-TYPE
696    SYNTAX      DisplayString
697    MAX-ACCESS  read-only
698    STATUS      current
699    DESCRIPTION
700        "The jitter in miliseconds as a string."
701    ::= { ntpAssociationEntry 8 }
702
703ntpAssocStatusDelay OBJECT-TYPE
704    SYNTAX      DisplayString
705    MAX-ACCESS  read-only
706    STATUS      current
707    DESCRIPTION
708        "The network delay in miliseconds as a string."
709    ::= { ntpAssociationEntry 9 }
710
711ntpAssocStatusDispersion OBJECT-TYPE
712    SYNTAX      DisplayString
713    MAX-ACCESS  read-only
714    STATUS      current
715    DESCRIPTION
716        "The root dispersion of the association."
717    -- e.g. "6.927"
718    ::= { ntpAssociationEntry 10 }
719
720ntpAssociationStatisticsTable OBJECT-TYPE
721    SYNTAX           SEQUENCE OF NtpAssociationStatisticsEntry
722    MAX-ACCESS       not-accessible
723    STATUS           current
724    DESCRIPTION
725        "The table of statistics for current associations."
726    ::= { ntpAssociation 2 }
727
728ntpAssociationStatisticsEntry OBJECT-TYPE
729    SYNTAX      NtpAssociationStatisticsEntry
730    MAX-ACCESS  not-accessible
731    STATUS      current
732    DESCRIPTION
733        "The table entry of statistics for current associations."
734    INDEX       { ntpAssocId }
735    ::= { ntpAssociationStatisticsTable 1 }
736
737NtpAssociationStatisticsEntry   ::= SEQUENCE {
738        ntpAssocStatInPkts          Counter32,
739        ntpAssocStatOutPkts         Counter32,
740        ntpAssocStatProtocolError   Counter32
741}
742
743ntpAssocStatInPkts OBJECT-TYPE
744    SYNTAX      Counter32
745    MAX-ACCESS  read-only
746    STATUS      current
747    DESCRIPTION
748        "The total number of NTP messages delivered to the
749         NTP entity from this association."
750    ::= { ntpAssociationStatisticsEntry 1 }
751
752ntpAssocStatOutPkts OBJECT-TYPE
753    SYNTAX      Counter32
754    MAX-ACCESS  read-only
755    STATUS      current
756    DESCRIPTION
757        "The total number of NTP messages delivered to the
758         transport service by this NTP entity for this
759         association."
760    ::= { ntpAssociationStatisticsEntry 2 }
761
762ntpAssocStatProtocolError OBJECT-TYPE
763    SYNTAX      Counter32
764    MAX-ACCESS  read-only
765    STATUS      current
766    DESCRIPTION
767        "The total number of NTP messages which were delivered
768         to this NTP entity from this association and this entity
769         was not able to process due to an NTP protocol error."
770    ::= { ntpAssociationStatisticsEntry 3 }
771
772--
773-- Section 4: Control objects
774--
775
776ntpEntHeartbeatInterval OBJECT-TYPE
777    SYNTAX      Unsigned32
778    MAX-ACCESS  read-write
779    STATUS      current
780    DESCRIPTION
781        "The interval at which the ntpEntNotifHeartbeat notification
782         should be sent, in seconds. If set to 0 and the
783         entNotifHeartbeat bit in ntpEntNotifBits is 1 then
784         ntpEntNotifHeartbeat is sent once."
785    DEFVAL { 60 }
786    ::= { ntpEntControl 1 }
787
788ntpEntNotifBits OBJECT-TYPE
789    SYNTAX       BITS {
790                     notUsed(0), -- Used to sync up bit and notification
791                                 -- indices
792                     entNotifModeChange(1),
793                     entNotifStratumChange(2),
794                     entNotifSyspeerChanged(3),
795                     entNotifAddAssociation(4),
796                     entNotifRemoveAssociation(5),
797                     entNotifConfigChanged(6),
798                     entNotifLeapSecondAnnounced(7),
799                     entNotifHeartbeat(8)
800    }
801    MAX-ACCESS  read-write
802    STATUS      current
803    DESCRIPTION
804        "A bit for each notification. A 1 for a particular bit enables
805         that particular notification, a 0 disables it."
806    ::= { ntpEntControl 2 }
807
808--
809-- Section 5: Notification objects
810--
811
812ntpEntNotifMessage OBJECT-TYPE
813    SYNTAX      DisplayString
814    MAX-ACCESS  accessible-for-notify
815    STATUS      current
816    DESCRIPTION
817        "Used as a payload object for all notifications. Holds a clear
818         text event message."
819    DEFVAL { "no event" }
820    ::= { ntpEntNotifObjects 1 }
821
822--
823-- SNMP notification definitions
824--
825
826ntpEntNotifications OBJECT IDENTIFIER ::= { ntpEntNotifPrefix 0 }
827
828ntpEntNotifModeChange NOTIFICATION-TYPE
829    OBJECTS     { ntpEntStatusCurrentModeVal }
830    STATUS      current
831    DESCRIPTION
832        "The notification to be sent when the NTP entity changes mode,
833         including starting and stopping (if possible)"
834    ::= { ntpEntNotifications 1 }
835
836ntpEntNotifStratumChange NOTIFICATION-TYPE
837    OBJECTS     { ntpEntStatusDateTime, ntpEntStatusStratum,
838                  ntpEntNotifMessage }
839    STATUS      current
840    DESCRIPTION
841        "The notification to be sent when stratum level of NTP changes."
842    ::= { ntpEntNotifications 2 }
843
844ntpEntNotifSyspeerChanged NOTIFICATION-TYPE
845    OBJECTS     { ntpEntStatusDateTime, ntpEntStatusActiveRefSourceId,
846                  ntpEntNotifMessage }
847    STATUS      current
848    DESCRIPTION
849        "The notification to be sent when a (new) syspeer has been
850         selected."
851    ::= { ntpEntNotifications 3 }
852
853ntpEntNotifAddAssociation NOTIFICATION-TYPE
854    OBJECTS     { ntpEntStatusDateTime, ntpAssocName, ntpEntNotifMessage }
855    STATUS      current
856    DESCRIPTION
857        "The notification to be sent when a new association is
858         mobilized."
859    ::= { ntpEntNotifications 4 }
860
861ntpEntNotifRemoveAssociation NOTIFICATION-TYPE
862    OBJECTS     { ntpEntStatusDateTime, ntpAssocName,  ntpEntNotifMessage }
863    STATUS      current
864    DESCRIPTION
865        "The notification to be sent when an association is
866         demobilized."
867    ::= { ntpEntNotifications 5 }
868
869ntpEntNotifConfigChanged NOTIFICATION-TYPE
870    OBJECTS     { ntpEntStatusDateTime, ntpEntNotifMessage }
871    STATUS      current
872    DESCRIPTION
873        "The notification to be sent when the NTP configuration has
874         changed."
875    -- e.g. when the system connected to the internet and was assigned
876    -- a new IP address by the ISPs DHCP server
877    ::= { ntpEntNotifications 6 }
878
879ntpEntNotifLeapSecondAnnounced NOTIFICATION-TYPE
880    OBJECTS     { ntpEntStatusDateTime, ntpEntNotifMessage }
881    STATUS      current
882    DESCRIPTION
883        "The notification to be sent when a leap second has been
884         announced."
885    ::= { ntpEntNotifications 7 }
886
887ntpEntNotifHeartbeat NOTIFICATION-TYPE
888    OBJECTS     { ntpEntStatusDateTime, ntpEntStatusCurrentModeVal,
889                  ntpEntHeartbeatInterval, ntpEntNotifMessage }
890    STATUS      current
891    DESCRIPTION
892        "The notification to be sent periodically (as defined by
893         ntpEntHeartbeatInterval) to indicate that the NTP entity is
894         still alive."
895    ::= { ntpEntNotifications 8 }
896
897--
898-- Conformance/Compliance statements
899--
900
901ntpEntConformance OBJECT IDENTIFIER ::= { ntpSnmpMIB 6 }
902
903ntpEntCompliances OBJECT IDENTIFIER ::= { ntpEntConformance 1 }
904ntpEntGroups      OBJECT IDENTIFIER ::= { ntpEntConformance 2 }
905
906ntpEntNTPCompliance MODULE-COMPLIANCE
907    STATUS      current
908    DESCRIPTION
909        "The compliance statement for SNMP entities which use NTP and
910         implement the NTP MIB"
911    MODULE  -- this module
912        MANDATORY-GROUPS {
913                           ntpEntObjectsGroup1,
914                           ntpEntObjectsGroup2,
915                           ntpEntNotifPrefixGroup
916        }
917        ::= { ntpEntCompliances 1 }
918
919ntpEntSNTPCompliance MODULE-COMPLIANCE
920    STATUS      current
921    DESCRIPTION
922        "The compliance statement for SNMP entities which use SNTP and
923         implement the NTP MIB"
924    MODULE  -- this module
925        MANDATORY-GROUPS {
926                           ntpEntObjectsGroup1
927        }
928        ::= { ntpEntCompliances 2 }
929
930ntpEntObjectsGroup1 OBJECT-GROUP
931    OBJECTS {
932              ntpEntSoftwareName,
933              ntpEntSoftwareVersion,
934              ntpEntSoftwareVersionVal,
935              ntpEntSoftwareVendor,
936              ntpEntSystemType,
937              ntpEntStatusEntityUptime,
938              ntpEntStatusDateTime,
939              ntpAssocName,
940              ntpAssocRefId,
941              ntpAssocAddressType,
942              ntpAssocAddress
943    }
944    STATUS      current
945    DESCRIPTION
946        "A collection of objects for the NTP MIB that all NTP
947         or SNTP entities should implement."
948    ::= { ntpEntGroups 1 }
949
950ntpEntObjectsGroup2 OBJECT-GROUP
951    OBJECTS {
952              ntpEntTimeResolution,
953              ntpEntTimeResolutionVal,
954              ntpEntTimePrecision,
955              ntpEntTimePrecisionVal,
956              ntpEntTimeDistance,
957              ntpEntStatusCurrentMode,
958              ntpEntStatusCurrentModeVal,
959              ntpEntStatusStratum,
960              ntpEntStatusActiveRefSourceId,
961              ntpEntStatusActiveRefSourceName,
962              ntpEntStatusActiveOffset,
963              ntpEntStatusNumberOfRefSources,
964              ntpEntStatusDispersion,
965              ntpEntStatusLeapSecond,
966              ntpEntStatusLeapSecDirection,
967              ntpEntStatusInPkts,
968              ntpEntStatusOutPkts,
969              ntpEntStatusBadVersion,
970              ntpEntStatusProtocolError,
971              ntpEntStatusNotifications,
972              ntpEntStatPktSent,
973              ntpEntStatPktReceived,
974              ntpAssocOffset,
975              ntpAssocStratum,
976              ntpAssocStatusJitter,
977              ntpAssocStatusDelay,
978              ntpAssocStatusDispersion,
979              ntpAssocStatInPkts,
980              ntpAssocStatOutPkts,
981              ntpAssocStatProtocolError,
982              ntpEntHeartbeatInterval,
983              ntpEntNotifBits,
984              ntpEntNotifMessage
985    }
986    STATUS      current
987    DESCRIPTION
988        "A collection of objects for the NTP MIB that are optional
989         for NTP or SNTP entities to implement."
990    ::= { ntpEntGroups 2 }
991
992ntpEntNotifPrefixGroup NOTIFICATION-GROUP
993    NOTIFICATIONS {
994                    ntpEntNotifModeChange,
995                    ntpEntNotifStratumChange,
996                    ntpEntNotifSyspeerChanged,
997                    ntpEntNotifAddAssociation,
998                    ntpEntNotifRemoveAssociation,
999                    ntpEntNotifConfigChanged,
1000                    ntpEntNotifLeapSecondAnnounced,
1001                    ntpEntNotifHeartbeat
1002    }
1003    STATUS      current
1004    DESCRIPTION
1005        "A collection of notifications for the NTP MIB"
1006    ::= { ntpEntGroups 3 }
1007
1008END
1009