From: Heiko Gerstung Date: Fri, 5 Dec 2008 10:13:33 +0000 (+0100) Subject: * fixed two wrong data types X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57a4b746385a8ef55d513dc40201f2076a12da4a;p=thirdparty%2Fntp.git * fixed two wrong data types * fixed wrong OID definitions * added preliminaray and unofficial MIB for TESTING PURPOSES ONLY bk: 4938fecd4kBTHbmvrWmGJv6eBOxs6g --- diff --git a/ntpsnmpd/ntpSnmpSubagentObject.c b/ntpsnmpd/ntpSnmpSubagentObject.c index b4ead88344..3a5815a457 100644 --- a/ntpsnmpd/ntpSnmpSubagentObject.c +++ b/ntpsnmpd/ntpSnmpSubagentObject.c @@ -383,8 +383,7 @@ int get_ntpEntSoftwareVersionVal (netsnmp_mib_handler *handler, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests) { - - int i = 0; + unsigned int i = 0; switch (reqinfo->mode) { case MODE_GET: { @@ -392,13 +391,13 @@ int get_ntpEntSoftwareVersionVal (netsnmp_mib_handler *handler, if ( read_ntp_value("versionval", ntpvalue, NTPQ_BUFLEN) ) { i=atoi(ntpvalue); - snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER, + snmp_set_var_typed_value(requests->requestvb, ASN_UNSIGNED, (u_char *) &i, sizeof (i) ); } else { i = 0; - snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER, + snmp_set_var_typed_value(requests->requestvb, ASN_UNSIGNED, (u_char *) &i, sizeof(i) ); @@ -536,7 +535,7 @@ int get_ntpEntTimeResolutionVal (netsnmp_mib_handler *handler, netsnmp_request_info *requests) { - int i = 0; + unsigned int i = 0; switch (reqinfo->mode) { case MODE_GET: { @@ -544,13 +543,13 @@ int get_ntpEntTimeResolutionVal (netsnmp_mib_handler *handler, if ( read_ntp_value("resolutionval", ntpvalue, NTPQ_BUFLEN) ) { i=atoi(ntpvalue); - snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER, + snmp_set_var_typed_value(requests->requestvb, ASN_UNSIGNED, (u_char *) &i, sizeof (i) ); } else { i = 0; - snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER, + snmp_set_var_typed_value(requests->requestvb, ASN_UNSIGNED, (u_char *) &i, sizeof(i) ); @@ -691,16 +690,16 @@ init_ntpSnmpSubagentObject(void) /* Register all MIB objects with the agentx master */ - _SETUP_OID_RO( ntpEntSoftwareName , NTPV4_OID , 1, 1, 0 ); - _SETUP_OID_RO( ntpEntSoftwareVersion , NTPV4_OID , 1, 2, 0 ); - _SETUP_OID_RO( ntpEntSoftwareVersionVal , NTPV4_OID , 1, 3, 0 ); - _SETUP_OID_RO( ntpEntSoftwareVendor , NTPV4_OID , 1, 4, 0 ); - _SETUP_OID_RO( ntpEntSystemType , NTPV4_OID , 1, 5, 0 ); - _SETUP_OID_RO( ntpEntTimeResolution , NTPV4_OID , 1, 6, 0 ); - _SETUP_OID_RO( ntpEntTimeResolutionVal , NTPV4_OID , 1, 7, 0 ); - _SETUP_OID_RO( ntpEntTimePrecision , NTPV4_OID , 1, 8, 0 ); - _SETUP_OID_RO( ntpEntTimePrecisionVal , NTPV4_OID , 1, 9, 0 ); - _SETUP_OID_RO( ntpEntTimeDistance , NTPV4_OID , 1,10, 0 ); + _SETUP_OID_RO( ntpEntSoftwareName , NTPV4_OID , 1, 1, 1, 0 ); + _SETUP_OID_RO( ntpEntSoftwareVersion , NTPV4_OID , 1, 1, 2, 0 ); + _SETUP_OID_RO( ntpEntSoftwareVersionVal , NTPV4_OID , 1, 1, 3, 0 ); + _SETUP_OID_RO( ntpEntSoftwareVendor , NTPV4_OID , 1, 1, 4, 0 ); + _SETUP_OID_RO( ntpEntSystemType , NTPV4_OID , 1, 1, 5, 0 ); + _SETUP_OID_RO( ntpEntTimeResolution , NTPV4_OID , 1, 1, 6, 0 ); + _SETUP_OID_RO( ntpEntTimeResolutionVal , NTPV4_OID , 1, 1, 7, 0 ); + _SETUP_OID_RO( ntpEntTimePrecision , NTPV4_OID , 1, 1, 8, 0 ); + _SETUP_OID_RO( ntpEntTimePrecisionVal , NTPV4_OID , 1, 1, 9, 0 ); + _SETUP_OID_RO( ntpEntTimeDistance , NTPV4_OID , 1, 1,10, 0 ); } diff --git a/ntpsnmpd/ntpv4-mib.mib b/ntpsnmpd/ntpv4-mib.mib new file mode 100644 index 0000000000..68e877a5a8 --- /dev/null +++ b/ntpsnmpd/ntpv4-mib.mib @@ -0,0 +1,1005 @@ +-- ********************************************************************* +-- +--$Id: draft-ietf-ntp-ntpv4-mib-05.xml 1.12 2007/11/28 00:00:00Z chelliot $ +--$Name: SUBMIT_1 $ +-- +-- The Network Time Protocol Version 4 +-- Management Information Base (MIB) +-- +-- Authors: Heiko Gerstung (heiko.gerstung@meinberg.de) +-- Chris Elliott (chelliot@cisco.com) +-- +-- for the Internet Engineering Task Force (IETF) +-- NTP Working Group (ntpwg) +-- +-- +-- ********************************************************************* +-- +-- $Log: draft-ietf-ntp-ntpv4-mib-05.xml $ +-- Revision 1.14 2008/08/29 00:00:00Z heiko +-- Re-submitted after expiration: +-- - The working group agreed to forward this draft in its current form (04), +-- but it expired before that could be done +-- Revision 1.13 2008/02/25 00:00:00Z chelliot +-- MIB: +-- - Added statistics table on a per-packet mode basis +-- (ntpEntStatPktModeTable) +-- Revision 1.12 2007/11/28 00:00:00Z chelliot +-- MIB: +-- - Added protocol statistics at the entity and association level +-- XML/RFC: +-- - Changed a couple of instances of "instance" to "entity" and "srv" +-- to "ent". +-- - Changed Meinberg address and Heiko's phone number. +-- Revision 1.11 2007/07/23 00:00:00Z chelliot +-- MIB: +-- - Modified Contact Info +-- - Added Stratum and NTP time TCs +-- - Changed ntpEntNotifNotInSync to ntpEntNotifCurrentMode and +-- deleted ntpEntNotifEntityStarted and ntpEntNotifEntityStopped +-- - Added compliance for SNTP entities +-- - Changed ntpTime to ntpDateTime +-- Revision 1.10 2007/07/09 00:00:00Z chelliot +-- XML/RFC: +-- - Changed RFC to Internet +-- - Changed service and service instance* to entity/entities +-- - Revised the Security Considerations to include read-write object +-- security considerations +-- - Added Chris Elliott as an author +-- - Fixed several lines to be 72 characters long or less +-- MIB: +-- - Changed "service" and "service instance" to "entity", +-- and Srv to Ent +-- - Changed status to mode +-- - Added association status object +-- - Added leap second objects +-- 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-0 +-- - 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 +-- 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 , enterprises, mib-2, Integer32, NOTIFICATION-TYPE, + Unsigned32, Counter32 + FROM SNMPv2-SMI + MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP + FROM SNMPv2-CONF + DisplayString, TEXTUAL-CONVENTION + FROM SNMPv2-TC + InetAddressType, InetAddress + FROM INET-ADDRESS-MIB; + +ntpSnmpMIB MODULE-IDENTITY + LAST-UPDATED "200802250000Z" -- February 25, 2008 + + ORGANIZATION "The IETF NTP Working Group (ntpwg)" + CONTACT-INFO + " WG Email: ntpwg@lists.ntp.isc.org + Subscribe: + https://lists.ntp.isc.org/mailman/listinfo/ntpwg + + Heiko Gerstung + Meinberg Funkuhren Gmbh & Co. KG + Lange Wand 9 + Bad Pyrmont 31812 + Germany + + Phone: +49 5281 9309 25 + Email: heiko.gerstung@meinberg.de + + Chris Elliott + Cisco Systems, Inc. + 7025 Kit Creek Rd., P.O. Box 14987 + Research Triangle Park 27709 + USA + + Phone: +1 919-392-2146 + Email: chelliot@cisco.com" + DESCRIPTION + "The Management Information Base for NTP time entities." + REVISION "200802250000Z" + DESCRIPTION + "Added ntpEntStatPktModeTable" + REVISION "200711280000Z" + DESCRIPTION + "Multiple proposed changes for IETF 70" + REVISION "200707230000Z" + DESCRIPTION + "Multiple proposed changes for IETF 69" + REVISION "200707090000Z" + DESCRIPTION + "Multiple changes from IETF 68" + 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" + ::= { enterprises 5597 99 } + + +ntpSnmpMIBObjects OBJECT IDENTIFIER ::= { ntpSnmpMIB 1 } + +-- MIB contains 6 groups + +ntpEntInfo OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 1 } +ntpEntStatus OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 2 } +ntpAssociation OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 3 } +ntpEntControl OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 4 } +ntpEntNotifObjects OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 5 } +ntpEntNotifPrefix OBJECT IDENTIFIER ::= { ntpSnmpMIBObjects 6 } + +-- +-- Textual Conventions +-- + +NtpStratum ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "The NTP stratum, with 16 representing no stratum." + SYNTAX Unsigned32 (1..16) + +NtpDateTime ::= TEXTUAL-CONVENTION + DISPLAY-HINT "4d:4d:4d.4d" + STATUS current + DESCRIPTION + "NTP date/time on the device, in 128-bit + NTP date format. Ref: draft-ietf-ntp-ntpv4-proto-06, + section 6: + 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 TC is not to be used for objects that are used + to set the time of the node querying this object. + NTP should be used for this--or at least SNTP." + SYNTAX OCTET STRING (SIZE (0 | 16)) + +-- +-- Section 1: General NTP Entity information objects +-- (relatively static information) +-- + +ntpEntSoftwareName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The product name of the installed NTP version." + -- the product name of the running ntp implementation, e.g. "ntpd" + ::= { ntpEntInfo 1 } + +ntpEntSoftwareVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The software version of the installed NTP implementation." + -- full version string, e.g. "ntpd-4.2.0b@1.1433 ..." + ::= { ntpEntInfo 2 } + +ntpEntSoftwareVersionVal OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "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. This could be useful to find out if version of entity on a + -- is newer or older than version of the entity on b (without too + -- much string parsing trouble) + ::= { ntpEntInfo 3 } + +ntpEntSoftwareVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor/author of the installed NTP version." + ::= { ntpEntInfo 4 } + +ntpEntSystemType 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 + ::= { ntpEntInfo 5 } + +ntpEntTimeResolution OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "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 + ::= { ntpEntInfo 6 } + +ntpEntTimeResolutionVal OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time resolution in integer format." + -- ntpEntTimeResolution in Integer format + -- shows the resolution based on 1 second, e.g. "1ms" translates to + -- 1000 + ::= { ntpEntInfo 7 } + +ntpEntTimePrecision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string describing the precision with which the NTP entity + 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. + ::= { ntpEntInfo 8 } + +ntpEntTimePrecisionVal OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The entity's precision in integer format." + -- ntpEntTimePrecision in signed Integer format + -- shows the precision. A value of -5 would mean 2^-5 = 31.25 ms + ::= { ntpEntInfo 9 } + +ntpEntTimeDistance OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The distance from this NTP entity to the root time reference + (stratum 0) source." + -- including the unit + -- e.g. "13.243 ms" + ::= { ntpEntInfo 10 } + +-- +-- Section 2: Current NTP status (dynamic information) +-- + +ntpEntStatusCurrentMode OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The actual mode 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. + ::= { ntpEntStatus 1 } + +ntpEntStatusCurrentModeVal OBJECT-TYPE + SYNTAX INTEGER { + notRunning(1), + notSynchronized(2), + noneConfigured(3), + syncToLocal(4), + syncToRefclock(5), + syncToRemoteServer(6), + unknown(99) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current mode of the NTP as integer value." + -- see ntpEntStatusCurrentMode + DEFVAL { 99 } + ::= { ntpEntStatus 2 } + +ntpEntStatusStratum OBJECT-TYPE + SYNTAX NtpStratum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The NTP entity's own stratum value." + -- should be stratum of syspeer + 1 (or 16 if no syspeer) + DEFVAL { 16 } + ::= { ntpEntStatus 3 } + +ntpEntStatusActiveRefSourceId OBJECT-TYPE + SYNTAX Unsigned32 ( 0..99999 ) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The association ID of the current syspeer." + DEFVAL { 0 } + ::= { ntpEntStatus 4 } + +ntpEntStatusActiveRefSourceName 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 + ::= { ntpEntStatus 5 } + +ntpEntStatusActiveOffset OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Time offset to the current selected reference time source + as a string." + -- including unit, e.g. "0.032 ms" or "1.232 s" + ::= { ntpEntStatus 6 } + +ntpEntStatusNumberOfRefSources OBJECT-TYPE + SYNTAX Unsigned32 (0..99) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of reference sources configured for NTP." + DEFVAL { 0 } + ::= { ntpEntStatus 7 } + +ntpEntStatusDispersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The root dispersion of the running NTP entity." + -- e.g. "6.927" + DEFVAL { "n/a" } + ::= { ntpEntStatus 8 } + +ntpEntStatusEntityUptime OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The uptime of the NTP entity in seconds." + -- time since ntpd was (re-)started (not sysUptime!) + DEFVAL { 0 } + ::= { ntpEntStatus 9 } + +ntpEntStatusDateTime OBJECT-TYPE + SYNTAX NtpDateTime + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current NTP date/time on the device, in 128-bit + NTP date format. Ref: draft-ietf-ntp-ntpv4-proto-06, + section 6: + 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." + ::= { ntpEntStatus 10 } + +ntpEntStatusLeapSecond OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Date the next known leap second will occur. If there is + no leap second announced then this object should be 0." + DEFVAL { 0 } + ::= { ntpEntStatus 11 } + +ntpEntStatusLeapSecDirection OBJECT-TYPE + SYNTAX Integer32 (-1..1) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Direction of next known leap second. If there is no + leap second announced then this object should be 0." + DEFVAL { 0 } + ::= { ntpEntStatus 12 } + +ntpEntStatusInPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NTP messages delivered to the + NTP entity from the transport service." + ::= { ntpEntStatus 13 } + +ntpEntStatusOutPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NTP messages delivered to the + transport service by this NTP entity." + ::= { ntpEntStatus 14 } + +ntpEntStatusBadVersion OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NTP messages which were delivered + to this NTP entity and were for an unsupported NTP + version." + ::= { ntpEntStatus 15 } + +ntpEntStatusProtocolError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NTP messages which were delivered + to this NTP entity and this entity was not able to + process due to an NTP protocol error." + ::= { ntpEntStatus 16 } + +ntpEntStatusNotifications OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of SNMP notifications which this NTP + entity has generated." + ::= { ntpEntStatus 17 } + +ntpEntStatPktModeTable OBJECT-TYPE + SYNTAX SEQUENCE OF NtpEntStatPktModeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The number of packets sent and received by packet mode." + ::= { ntpEntStatus 18 } + +ntpEntStatPktModeEntry OBJECT-TYPE + SYNTAX NtpEntStatPktModeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The number of packets sent and received by packet mode." + INDEX { ntpEntStatPktMode } + ::= { ntpEntStatPktModeTable 1 } + +NtpEntStatPktModeEntry ::= SEQUENCE { + ntpEntStatPktMode INTEGER, + ntpEntStatPktSent Counter32, + ntpEntStatPktReceived Counter32 +} + +ntpEntStatPktMode OBJECT-TYPE + SYNTAX INTEGER { + symetricactive(1), + symetricpassive(2), + client(3), + server(4), + broadcastserver(5), + broadcastclient(6) + } + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The NTP packet mode." + ::= { ntpEntStatPktModeEntry 1 } + +ntpEntStatPktSent OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NTP packets sent with this packet mode." + ::= { ntpEntStatPktModeEntry 2 } + +ntpEntStatPktReceived OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NTP packets received with this packet mode." + ::= { ntpEntStatPktModeEntry 3 } + +-- +-- Section 3: The status of all currently mobilized associations +-- + +ntpAssociationTable OBJECT-TYPE + SYNTAX SEQUENCE OF NtpAssociationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table of currently mobilized associations." + ::= { ntpAssociation 1 } + +ntpAssociationEntry OBJECT-TYPE + SYNTAX NtpAssociationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table entry of currently mobilized associations." + INDEX { ntpAssocId } + ::= { ntpAssociationTable 1 } + +NtpAssociationEntry ::= SEQUENCE { + ntpAssocId Unsigned32, + ntpAssocName DisplayString, + ntpAssocRefId DisplayString, + ntpAssocAddressType InetAddressType, + ntpAssocAddress InetAddress, + ntpAssocOffset DisplayString, + ntpAssocStratum NtpStratum, + ntpAssocStatusJitter DisplayString, + ntpAssocStatusDelay DisplayString, + ntpAssocStatusDispersion DisplayString +} + +ntpAssocId OBJECT-TYPE + SYNTAX Unsigned32 ( 1..99999 ) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The association ID. This is an internal, unique ID." + ::= { ntpAssociationEntry 1 } + +ntpAssocName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The hostname or other descriptive name for the association." + ::= { ntpAssociationEntry 2 } + +ntpAssocRefId OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The refclock driver ID, if available." + -- a refclock driver ID like "127.127.1.0" for non + -- uni/multi/broadcast associations + ::= { ntpAssociationEntry 3 } + +ntpAssocAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "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 + "The time offset to the association as a string." + -- including unit, e.g. "0.032 ms" or "1.232 s" + ::= { ntpAssociationEntry 6 } + +ntpAssocStratum OBJECT-TYPE + SYNTAX NtpStratum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The association stratum value." + ::= { ntpAssociationEntry 7 } + +ntpAssocStatusJitter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The jitter in miliseconds as a string." + ::= { ntpAssociationEntry 8 } + +ntpAssocStatusDelay OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network delay in miliseconds as a string." + ::= { ntpAssociationEntry 9 } + +ntpAssocStatusDispersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The root dispersion of the association." + -- e.g. "6.927" + ::= { ntpAssociationEntry 10 } + +ntpAssociationStatisticsTable OBJECT-TYPE + SYNTAX SEQUENCE OF NtpAssociationStatisticsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table of statistics for current associations." + ::= { ntpAssociation 2 } + +ntpAssociationStatisticsEntry OBJECT-TYPE + SYNTAX NtpAssociationStatisticsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table entry of statistics for current associations." + INDEX { ntpAssocId } + ::= { ntpAssociationStatisticsTable 1 } + +NtpAssociationStatisticsEntry ::= SEQUENCE { + ntpAssocStatInPkts Counter32, + ntpAssocStatOutPkts Counter32, + ntpAssocStatProtocolError Counter32 +} + +ntpAssocStatInPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NTP messages delivered to the + NTP entity from this association." + ::= { ntpAssociationStatisticsEntry 1 } + +ntpAssocStatOutPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NTP messages delivered to the + transport service by this NTP entity for this + association." + ::= { ntpAssociationStatisticsEntry 2 } + +ntpAssocStatProtocolError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NTP messages which were delivered + to this NTP entity from this association and this entity + was not able to process due to an NTP protocol error." + ::= { ntpAssociationStatisticsEntry 3 } + +-- +-- Section 4: Control objects +-- + +ntpEntHeartbeatInterval OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The interval at which the ntpEntNotifHeartbeat notification + should be sent, in seconds. If set to 0 and the + entNotifHeartbeat bit in ntpEntNotifBits is 1 then + ntpEntNotifHeartbeat is sent once." + DEFVAL { 60 } + ::= { ntpEntControl 1 } + +ntpEntNotifBits OBJECT-TYPE + SYNTAX BITS { + notUsed(0), -- Used to sync up bit and notification + -- indices + entNotifModeChange(1), + entNotifStratumChange(2), + entNotifSyspeerChanged(3), + entNotifAddAssociation(4), + entNotifRemoveAssociation(5), + entNotifConfigChanged(6), + entNotifLeapSecondAnnounced(7), + entNotifHeartbeat(8) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A bit for each notification. A 1 for a particular bit enables + that particular notification, a 0 disables it." + ::= { ntpEntControl 2 } + +-- +-- Section 5: Notification objects +-- + +ntpEntNotifMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "Used as a payload object for all notifications. Holds a clear + text event message." + DEFVAL { "no event" } + ::= { ntpEntNotifObjects 1 } + +-- +-- SNMP notification definitions +-- + +ntpEntNotifications OBJECT IDENTIFIER ::= { ntpEntNotifPrefix 0 } + +ntpEntNotifModeChange NOTIFICATION-TYPE + OBJECTS { ntpEntStatusCurrentModeVal } + STATUS current + DESCRIPTION + "The notification to be sent when the NTP entity changes mode, + including starting and stopping (if possible)" + ::= { ntpEntNotifications 1 } + +ntpEntNotifStratumChange NOTIFICATION-TYPE + OBJECTS { ntpEntStatusDateTime, ntpEntStatusStratum, + ntpEntNotifMessage } + STATUS current + DESCRIPTION + "The notification to be sent when stratum level of NTP changes." + ::= { ntpEntNotifications 2 } + +ntpEntNotifSyspeerChanged NOTIFICATION-TYPE + OBJECTS { ntpEntStatusDateTime, ntpEntStatusActiveRefSourceId, + ntpEntNotifMessage } + STATUS current + DESCRIPTION + "The notification to be sent when a (new) syspeer has been + selected." + ::= { ntpEntNotifications 3 } + +ntpEntNotifAddAssociation NOTIFICATION-TYPE + OBJECTS { ntpEntStatusDateTime, ntpAssocName, ntpEntNotifMessage } + STATUS current + DESCRIPTION + "The notification to be sent when a new association is + mobilized." + ::= { ntpEntNotifications 4 } + +ntpEntNotifRemoveAssociation NOTIFICATION-TYPE + OBJECTS { ntpEntStatusDateTime, ntpAssocName, ntpEntNotifMessage } + STATUS current + DESCRIPTION + "The notification to be sent when an association is + demobilized." + ::= { ntpEntNotifications 5 } + +ntpEntNotifConfigChanged NOTIFICATION-TYPE + OBJECTS { ntpEntStatusDateTime, ntpEntNotifMessage } + STATUS current + DESCRIPTION + "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 + ::= { ntpEntNotifications 6 } + +ntpEntNotifLeapSecondAnnounced NOTIFICATION-TYPE + OBJECTS { ntpEntStatusDateTime, ntpEntNotifMessage } + STATUS current + DESCRIPTION + "The notification to be sent when a leap second has been + announced." + ::= { ntpEntNotifications 7 } + +ntpEntNotifHeartbeat NOTIFICATION-TYPE + OBJECTS { ntpEntStatusDateTime, ntpEntStatusCurrentModeVal, + ntpEntHeartbeatInterval, ntpEntNotifMessage } + STATUS current + DESCRIPTION + "The notification to be sent periodically (as defined by + ntpEntHeartbeatInterval) to indicate that the NTP entity is + still alive." + ::= { ntpEntNotifications 8 } + +-- +-- Conformance/Compliance statements +-- + +ntpEntConformance OBJECT IDENTIFIER ::= { ntpSnmpMIB 6 } + +ntpEntCompliances OBJECT IDENTIFIER ::= { ntpEntConformance 1 } +ntpEntGroups OBJECT IDENTIFIER ::= { ntpEntConformance 2 } + +ntpEntNTPCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMP entities which use NTP and + implement the NTP MIB" + MODULE -- this module + MANDATORY-GROUPS { + ntpEntObjectsGroup1, + ntpEntObjectsGroup2, + ntpEntNotifPrefixGroup + } + ::= { ntpEntCompliances 1 } + +ntpEntSNTPCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMP entities which use SNTP and + implement the NTP MIB" + MODULE -- this module + MANDATORY-GROUPS { + ntpEntObjectsGroup1 + } + ::= { ntpEntCompliances 2 } + +ntpEntObjectsGroup1 OBJECT-GROUP + OBJECTS { + ntpEntSoftwareName, + ntpEntSoftwareVersion, + ntpEntSoftwareVersionVal, + ntpEntSoftwareVendor, + ntpEntSystemType, + ntpEntStatusEntityUptime, + ntpEntStatusDateTime, + ntpAssocName, + ntpAssocRefId, + ntpAssocAddressType, + ntpAssocAddress + } + STATUS current + DESCRIPTION + "A collection of objects for the NTP MIB that all NTP + or SNTP entities should implement." + ::= { ntpEntGroups 1 } + +ntpEntObjectsGroup2 OBJECT-GROUP + OBJECTS { + ntpEntTimeResolution, + ntpEntTimeResolutionVal, + ntpEntTimePrecision, + ntpEntTimePrecisionVal, + ntpEntTimeDistance, + ntpEntStatusCurrentMode, + ntpEntStatusCurrentModeVal, + ntpEntStatusStratum, + ntpEntStatusActiveRefSourceId, + ntpEntStatusActiveRefSourceName, + ntpEntStatusActiveOffset, + ntpEntStatusNumberOfRefSources, + ntpEntStatusDispersion, + ntpEntStatusLeapSecond, + ntpEntStatusLeapSecDirection, + ntpEntStatusInPkts, + ntpEntStatusOutPkts, + ntpEntStatusBadVersion, + ntpEntStatusProtocolError, + ntpEntStatusNotifications, + ntpEntStatPktSent, + ntpEntStatPktReceived, + ntpAssocOffset, + ntpAssocStratum, + ntpAssocStatusJitter, + ntpAssocStatusDelay, + ntpAssocStatusDispersion, + ntpAssocStatInPkts, + ntpAssocStatOutPkts, + ntpAssocStatProtocolError, + ntpEntHeartbeatInterval, + ntpEntNotifBits, + ntpEntNotifMessage + } + STATUS current + DESCRIPTION + "A collection of objects for the NTP MIB that are optional + for NTP or SNTP entities to implement." + ::= { ntpEntGroups 2 } + +ntpEntNotifPrefixGroup NOTIFICATION-GROUP + NOTIFICATIONS { + ntpEntNotifModeChange, + ntpEntNotifStratumChange, + ntpEntNotifSyspeerChanged, + ntpEntNotifAddAssociation, + ntpEntNotifRemoveAssociation, + ntpEntNotifConfigChanged, + ntpEntNotifLeapSecondAnnounced, + ntpEntNotifHeartbeat + } + STATUS current + DESCRIPTION + "A collection of notifications for the NTP MIB" + ::= { ntpEntGroups 3 } + +END