Re: [chrony-dev] SNMP agent

[ Thread Index | Date Index | More chrony.tuxfamily.org/chrony-dev Archives ]


libchrony looks like a good way to get the data from chrony and provide them
via SNMP.

I have started a project here https://gitlab.com/markoh/chronysnmpd

The application builds and returns some data form chrony. However, NTPv4-MIB
was constructed with ntpd in mind and provides information more suited for ntpd.
Some data can be extracted with libchrony, but not all. If you look at the attached
html there is the whole MIB tree for NTP.


Obviously some things can be obtained from libchrony and some cannot. For some it would
be sensible to implement them in libchrony (version, etc). For some it would not be ok to
implement because chrony works differently.

I am not sure I got the right values from libchrony for the fields that are implemented.

There are two options for minimize the difference between NTPv4-MIB and libchrony. First is
to add some values to libchrony. Second is to try to update NTPv4-MIB which is outdated and
was probably never used in full scale. The best would be the combination of both ways.

As I mentioned I found a project for ntpsnmpd which looks unfinished. Is there an interest
in chrony community to update libchrony and to invest time for NTPv4-MIB update.

If none of the above will be done, we can still make the best that can be done in chronysnmpd
to provide at least the information that is currently available.

On Tue, 2023-11-14 at 09:53 +0100, Miroslav Lichvar wrote:
On Tue, Nov 14, 2023 at 07:59:38AM +0000, Marko Hrastovec wrote:
There is already a standard MIB
(https://datatracker.ietf.org/doc/html/rfc5907) for ntp monitoring. I
propose to make an agentX or subagent for snmpd in chrony, which would
report ntp status via snmpd using a provided MIB. More information
about subagents can be found here
https://net-snmp.sourceforge.io/wiki/index.php/TUT:Writing_a_Subagent

I am willing to contribute the code, but I am unfamiliar with chrony
source. Is there an interest or will to incorporate the SNMP monitoring
into chrony or not?

I think it should be a separate project using the cmdmon protocol for
communication with chronyd as used by chronyc. With this library it
should be easy

https://gitlab.com/chrony/libchrony

Note that it's still in early stages of development and the API might
change.

--
Miroslav Lichvar



Title: MIB information for ntpSnmpMIB

INTRODUCTION

    This is a summary of information regarding objects below the ntpSnmpMIB MIB object, which is defined within the NTPv4-MIB MIB document as .1.3.6.1.2.1.197.

TABLE OF CONTENTS

SCALAR OBJECTS

    NameTypeAccessOIDDescription
    1
    ntpEntSoftwareName
    OCTETSTR
    Legal Lengths: 0 .. 255
    Utf8String
    ReadOnly .1.3.6.1.2.1.197.1.1.1

    Note: this object is based on the Utf8String TEXTUAL-CONVENTION.

    The product name of the running NTP version, e.g., 'ntpd'.
    
    2
    ntpEntSoftwareVersion
    OCTETSTR
    Legal Lengths: 0 .. 255
    Utf8String
    ReadOnly .1.3.6.1.2.1.197.1.1.2

    Note: this object is based on the Utf8String TEXTUAL-CONVENTION.

    The software version of the installed NTP implementation
    as a full version string, e.g., 'ntpd-4.2.0b.1433 ...'
    
    3
    ntpEntSoftwareVendor
    OCTETSTR
    Legal Lengths: 0 .. 255
    Utf8String
    ReadOnly .1.3.6.1.2.1.197.1.1.3

    Note: this object is based on the Utf8String TEXTUAL-CONVENTION.

    The vendor/author of the installed NTP version.
    
    4
    ntpEntSystemType
    OCTETSTR
    Legal Lengths: 0 .. 255
    Utf8String
    ReadOnly .1.3.6.1.2.1.197.1.1.4

    Note: this object is based on the Utf8String TEXTUAL-CONVENTION.

    General hardware/os platform information,
    e.g., 'Linux 2.6.12 / x86'.
    
    5
    ntpEntTimeResolution
    UNSIGNED32 ReadOnly .1.3.6.1.2.1.197.1.1.5
    The time resolution in integer format, where the resolution
    is represented as divisions of a second, e.g., a value of 1000
    translates to 1.0 ms.
    
    6
    ntpEntTimePrecision
    INTEGER32 ReadOnly .1.3.6.1.2.1.197.1.1.6
    The entity's precision in integer format, shows the precision.
    A value of -5 would mean 2^-5 = 31.25 ms.
    
    7
    ntpEntTimeDistance
    OCTETSTR
    Legal Lengths: 0 .. 255
    DisplayString
    ReadOnly .1.3.6.1.2.1.197.1.1.7

    Note: this object is based on the DisplayString TEXTUAL-CONVENTION.

    The distance from this NTP entity to the root time reference
    (stratum 0) source including the unit, e.g., '13.243 ms'.
    
    1
    ntpEntStatusCurrentMode
    INTEGER
    ValueLabel/Meaning
    1notRunning
    2notSynchronized
    3noneConfigured
    4syncToLocal
    5syncToRefclock
    6syncToRemoteServer
    99unknown
    ReadOnly .1.3.6.1.2.1.197.1.2.1
    The current mode of the NTP.  The definition of each possible
    value is:
       notRunning(1) - NTP is not running.
       notSynchronized(2) - NTP is not synchronized to any time
                            source (stratum = 16).
       noneConfigured(3) - NTP is not synchronized and does not
                           have a reference configured
                           (stratum = 16).
       syncToLocal(4) - NTP is distributing time based on its
                        local clock (degraded accuracy and/or
                        reliability).
       syncToRefclock(5) - NTP is synchronized to a local
                           hardware refclock (e.g., GPS).
       syncToRemoteServer(6) - NTP is synchronized to a remote
                               NTP server ('upstream' server).
       unknown(99) - The state of NTP is unknown.
    
    2
    ntpEntStatusStratum
    UNSIGNED32
    Legal values: 1 .. 16
    NtpStratum
    ReadOnly .1.3.6.1.2.1.197.1.2.2

    Note: this object is based on the NtpStratum TEXTUAL-CONVENTION.

    The NTP entity's own stratum value.  Should be a stratum of
    syspeer + 1 (or 16 if no syspeer).
    
    3
    ntpEntStatusActiveRefSourceId
    UNSIGNED32
    Legal values: 0 .. 99999
    ReadOnly .1.3.6.1.2.1.197.1.2.3
    The association ID of the current syspeer.
    
    4
    ntpEntStatusActiveRefSourceName
    OCTETSTR
    Legal Lengths: 0 .. 255
    Utf8String
    ReadOnly .1.3.6.1.2.1.197.1.2.4

    Note: this object is based on the Utf8String TEXTUAL-CONVENTION.

    The hostname/descriptive name of the current reference source
    selected as syspeer, e.g., 'ntp1.ptb.de' or 'GPS' or
    'DCFi', ...
    
    5
    ntpEntStatusActiveOffset
    OCTETSTR
    Legal Lengths: 0 .. 255
    DisplayString
    ReadOnly .1.3.6.1.2.1.197.1.2.5

    Note: this object is based on the DisplayString TEXTUAL-CONVENTION.

    The time offset to the current selected reference time source
    as a string including unit, e.g., '0.032 ms' or '1.232 s'.
    
    6
    ntpEntStatusNumberOfRefSources
    UNSIGNED32
    Legal values: 0 .. 99
    ReadOnly .1.3.6.1.2.1.197.1.2.6
    The number of reference sources configured for NTP.
    
    7
    ntpEntStatusDispersion
    OCTETSTR
    Legal Lengths: 0 .. 255
    DisplayString
    ReadOnly .1.3.6.1.2.1.197.1.2.7

    Note: this object is based on the DisplayString TEXTUAL-CONVENTION.

    The root dispersion of the running NTP entity, e.g., '6.927'.
    
    8
    ntpEntStatusEntityUptime
    TICKS ReadOnly .1.3.6.1.2.1.197.1.2.8
    The uptime of the NTP entity, (i.e., the time since ntpd was
    (re-)initialized not sysUptime!).  The time is represented in
    hundreds of seconds since Jan 1, 1970 (00:00:00.000) UTC.
    
    9
    ntpEntStatusDateTime
    OCTETSTR
    Legal Lengths: 0 , 16
    NtpDateTime
    ReadOnly .1.3.6.1.2.1.197.1.2.9

    Note: this object is based on the NtpDateTime TEXTUAL-CONVENTION.

    The current NTP date/time on the device, in 128-bit
    NTP date format.  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 correlate
    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.
    

    Also see Reference:

    RFC 5905, section 6
    

    10
    ntpEntStatusLeapSecond
    OCTETSTR
    Legal Lengths: 0 , 16
    NtpDateTime
    ReadOnly .1.3.6.1.2.1.197.1.2.10

    Note: this object is based on the NtpDateTime TEXTUAL-CONVENTION.

    Date the next known leap second will occur.  If there is
    no leap second announced, then this object should be 0.
    
    11
    ntpEntStatusLeapSecDirection
    INTEGER32
    Legal values: -1 .. 1
    ReadOnly .1.3.6.1.2.1.197.1.2.11
    Direction of next known leap second.  If there is no
    leap second announced, then this object should be 0.
    
    12
    ntpEntStatusInPkts
    COUNTER ReadOnly .1.3.6.1.2.1.197.1.2.12
    The total number of NTP messages delivered to the
    NTP entity from the transport service.
    Discountinuities in the value of this counter can occur
    upon cold start or reinitialization of the NTP entity, the
    management system and at other times as indicated by
    discontinuities in the value of sysUpTime.
    
    13
    ntpEntStatusOutPkts
    COUNTER ReadOnly .1.3.6.1.2.1.197.1.2.13
    The total number of NTP messages delivered to the
    transport service by this NTP entity.
    Discountinuities in the value of this counter can occur
    upon cold start or reinitialization of the NTP entity, the
    management system and at other times as indicated by
    discontinuities in the value of sysUpTime.
    
    14
    ntpEntStatusBadVersion
    COUNTER ReadOnly .1.3.6.1.2.1.197.1.2.14
    The total number of NTP messages that were delivered
    to this NTP entity and were for an unsupported NTP
    version.
    Discountinuities in the value of this counter can occur
    upon cold start or reinitialization of the NTP entity, the
    management system and at other times as indicated by
    discontinuities in the value of sysUpTime.
    
    15
    ntpEntStatusProtocolError
    COUNTER ReadOnly .1.3.6.1.2.1.197.1.2.15
    The total number of NTP messages that were delivered
    to this NTP entity and this entity was not able to
    process due to an NTP protocol error.
    Discountinuities in the value of this counter can occur
    upon cold start or reinitialization of the NTP entity, the
    management system and at other times as indicated by
    discontinuities in the value of sysUpTime.
    
    16
    ntpEntStatusNotifications
    COUNTER ReadOnly .1.3.6.1.2.1.197.1.2.16
    The total number of SNMP notifications that this NTP
    entity has generated.
    Discountinuities in the value of this counter can occur
    upon cold start or reinitialization of the NTP entity, the
    management system and at other times as indicated by
    discontinuities in the value of sysUpTime.
    
    1
    ntpEntHeartbeatInterval
    UNSIGNED32 ReadWrite .1.3.6.1.2.1.197.1.4.1
    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.
    This value is stored persistently and will be restored to its
    last set value upon cold start or restart.
    
    2
    ntpEntNotifBits
    BITS
    ValueLabel/Meaning
    0notUsed
    1entNotifModeChange
    2entNotifStratumChange
    3entNotifSyspeerChanged
    4entNotifAddAssociation
    5entNotifRemoveAssociation
    6entNotifConfigChanged
    7entNotifLeapSecondAnnounced
    8entNotifHeartbeat
    ReadWrite .1.3.6.1.2.1.197.1.4.2
    A bit for each notification.  A 1 for a particular bit enables
    that particular notification, a 0 disables it.
    This value is stored persistently and will be restored to its
    last set value upon cold start or restart.
    

TABLE OBJECTS

Table ntpEntStatPktModeTable

    Table NamentpEntStatPktModeTable
    In MIBNTPv4-MIB
    Registered at OID.1.3.6.1.2.1.197.1.2.17
    Table Description
    The number of packets sent and received by packet mode.
    One entry per packet mode.
    
    Row Description
    A statistical record of the number of packets sent and
    received for each packet mode.
    

    ntpEntStatPktModeTable Indexes:

    NameTypeAccessDescription
    1
    ntpEntStatPktMode
    INTEGER
    ValueLabel/Meaning
    1symetricactive
    2symetricpassive
    3client
    4server
    5broadcastserver
    6broadcastclient
    NoAccess
    The NTP packet mode.
    

    Other ntpEntStatPktModeTable Columns:

    NameTypeAccessDescription
    2
    ntpEntStatPktSent
    COUNTER ReadOnly
    The number of NTP packets sent with this packet mode.
    Discountinuities in the value of this counter can occur
    upon cold start or reinitialization of the NTP entity, the
    management system and at other times as indicated by
    discontinuities in the value of sysUpTime.
    
    3
    ntpEntStatPktReceived
    COUNTER ReadOnly
    The number of NTP packets received with this packet mode.
    Discountinuities in the value of this counter can occur
             upon cold start or reinitialization of the NTP entity, the
             management system and at other times as indicated by
             discontinuities in the value of sysUpTime.
    

Table ntpAssociationTable

Table ntpAssociationStatisticsTable

    Table NamentpAssociationStatisticsTable
    In MIBNTPv4-MIB
    Registered at OID.1.3.6.1.2.1.197.1.3.2
    Table Description
    The table of statistics for current associations.
    
    Row Description
    The table entry of statistics for current associations.
    

    ntpAssociationStatisticsTable Indexes:

    NameTypeAccessDescription
    1
    ntpAssocId
    UNSIGNED32
    Legal values: 1 .. 99999
    NoAccess
    The association ID.  This is an internal, unique ID.
    

    Other ntpAssociationStatisticsTable Columns:

    NameTypeAccessDescription
    1
    ntpAssocStatInPkts
    COUNTER ReadOnly
    The total number of NTP messages delivered to the
    NTP entity from this association.
    Discountinuities in the value of this counter can occur
    upon cold start or reinitialization of the NTP entity, the
    management system and at other times as indicated by
    discontinuities in the value of sysUpTime.
    
    2
    ntpAssocStatOutPkts
    COUNTER ReadOnly
    The total number of NTP messages delivered to the
    transport service by this NTP entity for this
    association.
    Discountinuities in the value of this counter can occur
    upon cold start or reinitialization of the NTP entity, the
    management system and at other times as indicated by
    discontinuities in the value of sysUpTime.
    
    3
    ntpAssocStatProtocolError
    COUNTER ReadOnly
    The total number of NTP messages that were delivered
    to this NTP entity from this association and this entity
    was not able to process due to an NTP protocol error.
    Discountinuities in the value of this counter can occur
    upon cold start or reinitialization of the NTP entity, the
    management system and at other times as indicated by
    discontinuities in the value of sysUpTime.
    

DEPRECATED OR OBSOLETE OR HISTORIC OBJECTS


SCALAR OBJECTS

    NameTypeAccessOIDDescription

TABLE OBJECTS



NOTIFICATIONS



TEXTUAL CONVENTIONS

    These TEXTUAL-CONVENTIONS are used in other parts of the document above. They are SNMP's way of defining a datatype that is used repeatedly by other MIB objects. Any implementation implementing objects that use one of these definitions must follow its DESCRIPTION clause as well as the DESCRIPTION clause of the object itself.

    NameTypeDescription
    NtpDateTimeOCTETSTR
    NTP date/time on the device, in 128-bit
    NTP date format.  If time is not syncronized, this
    field shall be a zero-length string.
    
    This trusted certificate (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.
    DisplayStringOCTETSTR
    Represents textual information taken from the NVT ASCII
    character set, as defined in pages 4, 10-11 of RFC 854.
    To summarize RFC 854, the NVT ASCII repertoire specifies:
      - the use of character codes 0-127 (decimal)
      - the graphics characters (32-126) are interpreted as
                    US ASCII
      - NUL, LF, CR, BEL, BS, HT, VT and FF have the special
                    meanings specified in RFC 854
      - the other 25 codes have no standard interpretation
      - the sequence 'CR LF' means newline
      - the sequence 'CR NUL' means carriage-return
      - an 'LF' not preceded by a 'CR' means moving to the
                    same column on the next line.
      - the sequence 'CR x' for any x other than LF or NUL is
                    illegal.  (Note that this also means that a string may
                    end with either 'CR LF' or 'CR NUL', but not with CR.)
    Any object defined using this syntax may not exceed 255
                characters in length.
    InetAddressTypeINTEGER
    ValueLabel/Meaning
    1ipv4
    2ipv6
    3ipv4z
    4ipv6z
    A value that represents a type of Internet address.
    unknown(0)  An unknown address type.  This value MUST
                         be used if the value of the corresponding
                         InetAddress object is a zero-length string.
                         It may also be used to indicate an IP address
                         that is not in one of the formats defined
                         below.
    ipv4(1)     An IPv4 address as defined by the
                         InetAddressIPv4 textual convention.
    ipv6(2)     An IPv6 address as defined by the
                         InetAddressIPv6 textual convention.
    ipv4z(3)    A non-global IPv4 address including a zone
                         index as defined by the InetAddressIPv4z
                         textual convention.
    ipv6z(4)    A non-global IPv6 address including a zone
                         index as defined by the InetAddressIPv6z
                         textual convention.
    dns(16)     A DNS domain name as defined by the
                         InetAddressDNS textual convention.
    Each definition of a concrete InetAddressType value must be
             accompanied by a definition of a textual convention for use
             with that InetAddressType.
    To support future extensions, the InetAddressType textual
             convention SHOULD NOT be sub-typed in object type definitions.
             It MAY be sub-typed in compliance statements in order to
             require only a subset of these address types for a compliant
             implementation.
    Implementations must ensure that InetAddressType objects
             and any dependent objects (e.g., InetAddress objects) are
             consistent.  An inconsistentValue error must be generated
             if an attempt to change an InetAddressType object would,
             for example, lead to an undefined InetAddress value.  In
    particular, InetAddressType/InetAddress pairs must be
             changed together if the address type changes (e.g., from
             ipv6(2) to ipv4(1)).
    NtpStratumUNSIGNED32
    The NTP stratum, with 16 representing no stratum.
    Utf8StringOCTETSTR
    To facilitate internationalization, this TC
    represents information taken from the ISO/IEC IS
    10646-1 character set, encoded as an octet string
    using the UTF-8 character encoding scheme described
    in RFC 2044 [10].  For strings in 7-bit US-ASCII,
    there is no impact since the UTF-8 representation
    is identical to the US-ASCII encoding.
    InetAddressOCTETSTR
    Denotes a generic Internet address.
    An InetAddress value is always interpreted within the context
             of an InetAddressType value.  Every usage of the InetAddress
             textual convention is required to specify the InetAddressType
             object that provides the context.  It is suggested that the
             InetAddressType object be logically registered before the
             object(s) that use the InetAddress textual convention, if
             they appear in the same logical row.
    The value of an InetAddress object must always be
             consistent with the value of the associated InetAddressType
             object.  Attempts to set an InetAddress object to a value
             inconsistent with the associated InetAddressType
             must fail with an inconsistentValue error.
    When this textual convention is used as the syntax of an
             index object, there may be issues with the limit of 128
             sub-identifiers specified in SMIv2, STD 58.  In this case,
             the object definition MUST include a 'SIZE' clause to
             limit the number of potential instance sub-identifiers;
             otherwise the applicable constraints MUST be stated in
             the appropriate conceptual row DESCRIPTION clauses, or
             in the surrounding documentation if there is no single
             DESCRIPTION clause that is appropriate.

TREE VIEW

Tree view generated by running: snmptranslate -Tp NTPv4-MIB::ntpSnmpMIB

+--ntpSnmpMIB(197)
   |
   +--ntpEntNotifications(0)
   |  |
   |  +--ntpEntNotifModeChange(1)
   |  +--ntpEntNotifStratumChange(2)
   |  +--ntpEntNotifSyspeerChanged(3)
   |  +--ntpEntNotifAddAssociation(4)
   |  +--ntpEntNotifRemoveAssociation(5)
   |  +--ntpEntNotifConfigChanged(6)
   |  +--ntpEntNotifLeapSecondAnnounced(7)
   |  +--ntpEntNotifHeartbeat(8)
   |
   +--ntpSnmpMIBObjects(1)
   |  |
   |  +--ntpEntInfo(1)
   |  |  |
   |  |  +-- -R-- String    ntpEntSoftwareName(1)
   |  |  |        Textual Convention: Utf8String
   |  |  |        Size: 0..255
   |  |  +-- -R-- String    ntpEntSoftwareVersion(2)
   |  |  |        Textual Convention: Utf8String
   |  |  |        Size: 0..255
   |  |  +-- -R-- String    ntpEntSoftwareVendor(3)
   |  |  |        Textual Convention: Utf8String
   |  |  |        Size: 0..255
   |  |  +-- -R-- String    ntpEntSystemType(4)
   |  |  |        Textual Convention: Utf8String
   |  |  |        Size: 0..255
   |  |  +-- -R-- Unsigned  ntpEntTimeResolution(5)
   |  |  +-- -R-- Integer32 ntpEntTimePrecision(6)
   |  |  +-- -R-- String    ntpEntTimeDistance(7)
   |  |           Textual Convention: DisplayString
   |  |           Size: 0..255
   |  |
   |  +--ntpEntStatus(2)
   |  |  |
   |  |  +-- -R-- EnumVal   ntpEntStatusCurrentMode(1)
   |  |  |        Values: notRunning(1), notSynchronized(2), noneConfigured(3), syncToLocal(4), syncToRefclock(5), syncToRemoteServer(6), unknown(99)
   |  |  +-- -R-- Unsigned  ntpEntStatusStratum(2)
   |  |  |        Textual Convention: NtpStratum
   |  |  |        Range: 1..16
   |  |  +-- -R-- Unsigned  ntpEntStatusActiveRefSourceId(3)
   |  |  |        Range: 0..99999
   |  |  +-- -R-- String    ntpEntStatusActiveRefSourceName(4)
   |  |  |        Textual Convention: Utf8String
   |  |  |        Size: 0..255
   |  |  +-- -R-- String    ntpEntStatusActiveOffset(5)
   |  |  |        Textual Convention: DisplayString
   |  |  |        Size: 0..255
   |  |  +-- -R-- Unsigned  ntpEntStatusNumberOfRefSources(6)
   |  |  |        Range: 0..99
   |  |  +-- -R-- String    ntpEntStatusDispersion(7)
   |  |  |        Textual Convention: DisplayString
   |  |  |        Size: 0..255
   |  |  +-- -R-- TimeTicks ntpEntStatusEntityUptime(8)
   |  |  +-- -R-- String    ntpEntStatusDateTime(9)
   |  |  |        Textual Convention: NtpDateTime
   |  |  |        Size: 0 | 16
   |  |  +-- -R-- String    ntpEntStatusLeapSecond(10)
   |  |  |        Textual Convention: NtpDateTime
   |  |  |        Size: 0 | 16
   |  |  +-- -R-- Integer32 ntpEntStatusLeapSecDirection(11)
   |  |  |        Range: -1..1
   |  |  +-- -R-- Counter   ntpEntStatusInPkts(12)
   |  |  +-- -R-- Counter   ntpEntStatusOutPkts(13)
   |  |  +-- -R-- Counter   ntpEntStatusBadVersion(14)
   |  |  +-- -R-- Counter   ntpEntStatusProtocolError(15)
   |  |  +-- -R-- Counter   ntpEntStatusNotifications(16)
   |  |  |
   |  |  +--ntpEntStatPktModeTable(17)
   |  |     |
   |  |     +--ntpEntStatPktModeEntry(1)
   |  |        |  Index: ntpEntStatPktMode
   |  |        |
   |  |        +-- ---- EnumVal   ntpEntStatPktMode(1)
   |  |        |        Values: symetricactive(1), symetricpassive(2), client(3), server(4), broadcastserver(5), broadcastclient(6)
   |  |        +-- -R-- Counter   ntpEntStatPktSent(2)
   |  |        +-- -R-- Counter   ntpEntStatPktReceived(3)
   |  |
   |  +--ntpAssociation(3)
   |  |  |
   |  |  +--ntpAssociationTable(1)
   |  |  |  |
   |  |  |  +--ntpAssociationEntry(1)
   |  |  |     |  Index: ntpAssocId
   |  |  |     |
   |  |  |     +-- ---- Unsigned  ntpAssocId(1)
   |  |  |     |        Range: 1..99999
   |  |  |     +-- -R-- String    ntpAssocName(2)
   |  |  |     |        Textual Convention: Utf8String
   |  |  |     |        Size: 0..255
   |  |  |     +-- -R-- String    ntpAssocRefId(3)
   |  |  |     |        Textual Convention: DisplayString
   |  |  |     |        Size: 0..255
   |  |  |     +-- -R-- EnumVal   ntpAssocAddressType(4)
   |  |  |     |        Textual Convention: InetAddressType
   |  |  |     |        Values: ipv4(1), ipv6(2), ipv4z(3), ipv6z(4)
   |  |  |     +-- -R-- String    ntpAssocAddress(5)
   |  |  |     |        Textual Convention: InetAddress
   |  |  |     |        Size: 4 | 8 | 16 | 20
   |  |  |     +-- -R-- String    ntpAssocOffset(6)
   |  |  |     |        Textual Convention: DisplayString
   |  |  |     |        Size: 0..255
   |  |  |     +-- -R-- Unsigned  ntpAssocStratum(7)
   |  |  |     |        Textual Convention: NtpStratum
   |  |  |     |        Range: 1..16
   |  |  |     +-- -R-- String    ntpAssocStatusJitter(8)
   |  |  |     |        Textual Convention: DisplayString
   |  |  |     |        Size: 0..255
   |  |  |     +-- -R-- String    ntpAssocStatusDelay(9)
   |  |  |     |        Textual Convention: DisplayString
   |  |  |     |        Size: 0..255
   |  |  |     +-- -R-- String    ntpAssocStatusDispersion(10)
   |  |  |              Textual Convention: DisplayString
   |  |  |              Size: 0..255
   |  |  |
   |  |  +--ntpAssociationStatisticsTable(2)
   |  |     |
   |  |     +--ntpAssociationStatisticsEntry(1)
   |  |        |  Index: ntpAssocId
   |  |        |
   |  |        +-- -R-- Counter   ntpAssocStatInPkts(1)
   |  |        +-- -R-- Counter   ntpAssocStatOutPkts(2)
   |  |        +-- -R-- Counter   ntpAssocStatProtocolError(3)
   |  |
   |  +--ntpEntControl(4)
   |  |  |
   |  |  +-- -RW- Unsigned  ntpEntHeartbeatInterval(1)
   |  |  +-- -RW- BitString ntpEntNotifBits(2)
   |  |           Values: notUsed(0), entNotifModeChange(1), entNotifStratumChange(2), entNotifSyspeerChanged(3), entNotifAddAssociation(4), entNotifRemoveAssociation(5), entNotifConfigChanged(6), entNotifLeapSecondAnnounced(7), entNotifHeartbeat(8)
   |  |
   |  +--ntpEntNotifObjects(5)
   |     |
   |     +-- ---N String    ntpEntNotifMessage(1)
   |              Textual Convention: Utf8String
   |              Size: 0..255
   |
   +--ntpEntConformance(2)
      |
      +--ntpEntCompliances(1)
      |  |
      |  +--ntpEntNTPCompliance(1)
      |  +--ntpEntSNTPCompliance(2)
      |
      +--ntpEntGroups(2)
         |
         +--ntpEntObjectsGroup1(1)
         +--ntpEntObjectsGroup2(2)
         +--ntpEntNotifGroup(3)


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/