-- MIB file created 22-Feb-2007 06:52:38, by
--   SMICng version 2.2.11-beta(PRO)(Solaris), January 20, 2001. Enterprise key cisco.com

CISCO-NTP-MIB DEFINITIONS ::= BEGIN

-- From file: "CISCO-NTP-MIB.my"
-- Compile options "4 7 F H N O W 03 06 0B 0G 0N 0T"

IMPORTS
    TruthValue, RowStatus
            FROM SNMPv2-TC-v1
    InetAddress, InetAddressType
            FROM INET-ADDRESS-MIB
    ciscoMgmt
            FROM CISCO-SMI
    Gauge, IpAddress
            FROM RFC1155-SMI
    OBJECT-TYPE
            FROM RFC-1212
    TRAP-TYPE
            FROM RFC-1215;

ciscoNtpMIB OBJECT IDENTIFIER ::= { ciscoMgmt 168 }
-- MODULE-IDENTITY
--  LastUpdated
--    200607310000Z
--  OrgName
--    Cisco Systems, Inc.
--  ContactInfo
--    Cisco Systems
--    Customer Service
--    
--    Postal: 170 W. Tasman Drive
--    San Jose, CA 95134
--    USA
--    
--    Tel: +1 800 553-NETS
--    
--    E-mail: cs-snmp@cisco.com
--  Descr
--    This MIB module defines a MIB which provides
--    mechanisms to monitor an NTP server.
--    
--    The MIB is derived from the Technical Report
--    #Management of the NTP with SNMP# TR No. 98-09
--    authored by A.S. Sethi and Dave Mills in the
--    University of Delaware.
--    
--    Below is a brief overview of NTP system architecture
--    and implementation model. This will help understand
--    the objects defined below and their relationships.
--    
--    NTP Intro:
--    The Network Time Protocol (NTP) Version 3, is used to
--    synchronize timekeeping among a set of distributed
--    time servers and clients.  The service model is based
--    on a returnable-time design which depends only on
--    measured clock offsets, but does not require reliable
--    message delivery.  The synchronization subnet uses a
--    self-organizing, hierarchical master-slave
--    configuration, with synchronization paths determined
--    by a minimum-weight spanning tree.  While multiple
--    masters (primary servers) may exist, there is no
--    requirement for an election protocol.
--    
--    System Archiecture:
--    In the NTP model a number of primary reference
--    sources, synchronized by wire or radio to national
--    standards, are connected to widely accessible
--    resources, such as backbone gateways, and operated as
--    primary time servers.  The purpose of NTP is to convey
--    timekeeping information from these servers to other
--    time servers via the Internet and also to cross-check
--    clocks and mitigate errors due to equipment or
--    propagation failures.  Some number of local-net hosts
--    or gateways, acting as secondary time servers, run NTP
--    with one or more of the primary servers.  In order to
--    reduce the protocol overhead, the secondary servers
--    distribute time via NTP to the remaining local-net
--    hosts.  In the interest of reliability, selected hosts
--    can be equipped with less accurate but less expensive
--    radio clocks and used for backup in case of failure of
--    the primary and/or secondary servers or communication
--    paths between them.
--    
--    NTP is designed to produce three products: clock
--    offset, round-trip delay and dispersion, all of which
--    are relative to a selected reference clock.  Clock
--    offset represents the amount to adjust the local clock
--    to bring it into correspondence with the reference
--    clock.  Roundtrip delay provides the capability to
--    launch a message to arrive at the reference clock at a
--    specified time.  Dispersion represents the maximum
--    error of the local clock relative to the reference
--    clock.  Since most host time servers will synchronize
--    via another peer time server, there are two components
--    in each of these three products, those determined by
--    the peer relative to the primary reference source of
--    standard time and those measured by the host relative
--    to the peer.  Each of these components are maintained
--    separately in the protocol in order to facilitate
--    error control and management of the subnet itself.  
--    They provide not only precision measurements of offset
--    and delay, but also definitive maximum error bounds,
--    so that the user interface can determine not only the
--    time, but the quality of the time as well.
--    
--    Implementation Model:
--    In what may be the most common client/server model a
--    client sends an NTP message to one or more servers and
--    processes the replies as received.  The server
--    interchanges addresses and ports, overwrites certain
--    fields in the message, recalculates the checksum and
--    returns the message immediately.  Information included
--    in the NTP message allows the client to determine the
--    server time with respect to local time and adjust the
--    local clock accordingly.  In addition, the message
--    includes information to calculate the expected
--    timekeeping accuracy and reliability, as well as
--    select the best from possibly several servers.
--    
--    While the client/server model may suffice for use on
--    local nets involving a public server and perhaps many
--    workstation clients, the full generality of NTP
--    requires distributed participation of a number of
--    client/servers or peers arranged in a dynamically
--    reconfigurable, hierarchically distributed
--    configuration.  It also requires sophisticated
--    algorithms for association management, data
--    manipulation and local-clock control.
--    
--    Glossary:
--    1. Host: Refers to an instantiation of the NTP
--            protocol on a local processor.
--    2. Peer: Refers to an instantiation of the NTP
--            protocol on a remote processor connected by
--            a network path from the local host.
--  RevDate
--    200607310000Z
--  RevDescr
--    Added ciscoNtpSysExtGroup and ciscoNtpSrvNotifGroup groups
--     to support monitoring of NTP server status.
--     ciscoNtpMIBComplianceRev3 is deprecated and replaced
--     by ciscoNtpMIBComplianceRev4.
--  RevDate
--    200407230000Z
--  RevDescr
--    Added cntpPeersPeerName and cntpPeersPeerType
--    objects to cntpPeerVarTable.
--  RevDate
--    200307290000Z
--  RevDescr
--    Added cntpPeersPrefPeer object to
--    cntpPeersVarTable.
--  RevDate
--    200307070000Z
--  RevDescr
--    ciscoNtpPeersGroup is deprecated by
--    ciscoNtpPeersGroupRev1.
--    ciscoNtpMIBCompliance is deprecated by
--    ciscoNtpMIBComplianceRev1.
--  RevDate
--    200202200000Z
--  RevDescr
--    cntpPeersUpdateTime is deprecated by
--    cntpPeersUpdateTimeRev1.
--  RevDate
--    200006160000Z
--  RevDescr
--    Initial version of this MIB module.

ciscoNtpMIBNotifs OBJECT IDENTIFIER ::= { ciscoNtpMIB 0 }
ciscoNtpMIBObjects OBJECT IDENTIFIER ::= { ciscoNtpMIB 1 }
ciscoNtpMIBConformance OBJECT IDENTIFIER ::= { ciscoNtpMIB 2 }
cntpSystem      OBJECT IDENTIFIER ::= { ciscoNtpMIBObjects 1 }
cntpPeers       OBJECT IDENTIFIER ::= { ciscoNtpMIBObjects 2 }
cntpFilter      OBJECT IDENTIFIER ::= { ciscoNtpMIBObjects 3 }
ciscoNtpMIBCompliances OBJECT IDENTIFIER ::= { ciscoNtpMIBConformance 1 }
ciscoNtpMIBGroups OBJECT IDENTIFIER ::= { ciscoNtpMIBConformance 2 }

NTPTimeStamp ::= OCTET STRING(SIZE(8))
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    NTP timestamps are represented as a 64-bit
--    unsigned fixed-point number, in seconds relative to
--    00:00 on 1 January 1900.  The integer part is in the
--    first 32 bits and the fraction part is in the last
--    32 bits.
--  Refer
--    D.L. Mills, 'Network Time Protocol (Version 3)',
--        RFC-1305, March 1992, Section 3.1

NTPLeapIndicator ::= INTEGER {
        --?? enum value of zero may cause problems
        noWarning(0),
        addSecond(1),
        subtractSecond(2),
        alarm(3)
        }
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    This is a two-bit code warning of an impending leap
--    second to be inserted in the NTP timescale.  The bits
--    are set before 23:59 on the day of insertion and reset
--    after 00:00 on the following day.  This causes the
--    number of seconds (rollover interval) in the day of
--    insertion to be increased or decreased by one.  The two
--    bits are coded as below,
--    00, no warning
--    01, last minute has 61 seconds
--    10, last minute has 59 seconds
--    11, alarm condition (clock not synchronized)
--  Refer
--    D.L. Mills, 'Network Time Protocol(Version 3)',
--        RFC-1305, March 1992, Section 3.2.1

NTPSignedTimeValue ::= OCTET STRING(SIZE(4))
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    The time in seconds that could represent signed
--    quantities like time delay with respect to some
--    source.  This textual-convention is specific to Cisco
--    implementation of NTP where 32-bit integers are used
--    for such quantities.  The signed integer part is in
--    the first 16 bits and the fraction part is in the
--    last 16 bits.
--  Refer
--    D.L. Mills, 'Network Time Protocol (Version 3)',
--        RFC-1305, March 1992, Sections 2,  3.2.1

NTPUnsignedTimeValue ::= OCTET STRING(SIZE(4))
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    The time in seconds that could represent unsigned
--    quantities like maximum error of the local clock
--    with respect to some source.  This textual-convention
--    is specific to Cisco implementation of NTP where
--    32-bit integers are used for such quantities.  The
--    unsigned integer part is in the first 16 bits and the
--    fraction part is in the last 16 bits.
--  Refer
--    D.L. Mills, 'Network Time Protocol (Version 3)',
--        RFC-1305, March 1992, Sections 2, 3.2.1

NTPStratum ::= INTEGER(0..255)
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    Indicates the stratum of the clock.  The stratum
--    defines the accuracy of a time server.  Higher the
--    stratum, lower the accuracy.
--    0, unspecified
--    1, primary reference (e.g., calibrated atomic clock,
--       radio clock)
--    2-255, secondary reference (via NTP)
--  Refer
--    D.L. Mills, 'Network Time Protocol (Version 3)',
--        RFC-1305, March 1992, Section 2.2

NTPRefId ::= OCTET STRING(SIZE(4))
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    The reference clock identifier.  In the case of
--    stratum 0 (unspecified) or stratum 1 (primary
--    reference source), this is a four-octet,
--    left-justified, zero-padded ASCII string as defined
--    in RFC-1305.  In the case of stratum 2 and greater
--    (secondary reference) this is the four-octet Internet
--    address of the peer selected for synchronization.
--    
--    Some examples of stratum 0 identifiers are,
--    DCN, DCN routing protocol
--    NIST, NIST public modem
--    TSP, TSP time protocol
--    DTS, Digital Time Service
--    
--    Some examples of stratum 1 identifiers are,
--    ATOM, Atomic clock (calibrated)
--    VLF, VLF radio (OMEGA,, etc.)
--    LORC, LORAN-C radionavigation
--    GOES, GOES UHF environment satellite
--    GPS, GPS UHF satellite positioning
--  Refer
--    D.L. Mills, Network Time Protocol (Version 3)',
--        RFC-1305, March 1992, Section 3.2.1

NTPPollInterval ::= INTEGER(-20..20)
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    The minimum interval between transmitted NTP
--    messages, in seconds as a power of two.  For
--    instance, a value of six indicates a minimum
--    interval of 64 seconds.

NTPAssocIdentifier ::= INTEGER(0..2147483647)
-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr
--    The association identifier of the peer.  Every peer
--    with which an NTP server is associated with is
--    identified by an association identifier.

cntpSysLeap OBJECT-TYPE
    SYNTAX NTPLeapIndicator
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        noWarning(0),
--        addSecond(1),
--        subtractSecond(2),
--        alarm(3)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "Two-bit code warning of an impending leap second to
        be inserted in the NTP timescale. This object can be
        set only when the cntpSysStratum has a value of 1."
    ::= { cntpSystem 1 }

cntpSysStratum OBJECT-TYPE
    SYNTAX NTPStratum
--    Rsyntax INTEGER(0..255)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The stratum of the local clock. If the value is set
        to 1, i.e., this is a primary reference, then the
        Primary-Clock procedure described in Section 3.4.6,
        in RFC-1305 is invoked."
    ::= { cntpSystem 2 }

cntpSysPrecision OBJECT-TYPE
    SYNTAX INTEGER(-20..20)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "Signed integer indicating the precision
        of the system clock, in seconds to the nearest
        power of two.  The value must be rounded to the
        next larger power of two; for instance, a 50-Hz
        (20 ms) or 60-Hz (16.67 ms) power-frequency clock
        would be assigned the value -5 (31.25 ms), while a
        1000-Hz (1 ms) crystal-controlled clock would be
        assigned the value -9 (1.95 ms)."
    ::= { cntpSystem 3 }

cntpSysRootDelay OBJECT-TYPE
    SYNTAX NTPSignedTimeValue
--    Rsyntax OCTET STRING(SIZE(4))
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "A signed fixed-point number indicating the total
        round-trip delay in seconds, to the primary reference
        source at the root of the synchronization subnet."
    REFERENCE
        "D.L. Mills, 'Network Time Protocol (Version 3)',
            RFC-1305, March 1992, Sections 2.2, 3.2.1"
    ::= { cntpSystem 4 }

cntpSysRootDispersion OBJECT-TYPE
    SYNTAX NTPUnsignedTimeValue
--    Rsyntax OCTET STRING(SIZE(4))
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The maximum error in seconds, relative to the
        primary reference source at the root of the
        synchronization subnet.  Only positive values greater
        than zero are possible."
    REFERENCE
        "D.L. Mills, 'Network Time Protocol (Version 3)',
            RFC-1305, March 1992, Sections 2, 2.2, 3.2.1"
    ::= { cntpSystem 5 }

cntpSysRefId OBJECT-TYPE
    SYNTAX NTPRefId
--    Rsyntax OCTET STRING(SIZE(4))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The reference identifier of the local clock."
    ::= { cntpSystem 6 }

cntpSysRefTime OBJECT-TYPE
    SYNTAX NTPTimeStamp
--    Rsyntax OCTET STRING(SIZE(8))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The local time when the local clock was last
        updated.  If the local clock has never been
        synchronized, the value is zero."
    ::= { cntpSystem 7 }

cntpSysPoll OBJECT-TYPE
    SYNTAX NTPPollInterval
--    Rsyntax INTEGER(-20..20)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The interval at which the NTP server polls other NTP
        servers to synchronize its clock."
    ::= { cntpSystem 8 }

cntpSysPeer OBJECT-TYPE
    SYNTAX NTPAssocIdentifier
--    Rsyntax INTEGER(0..2147483647)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The current synchronization source.  This will
        contain the unique association identifier
        cntpPeersAssocId of the corresponding peer entry in
        the cntpPeersVarTable of the peer acting as the
        synchronization source.  If there is no peer, the
        value will be 0."
    ::= { cntpSystem 9 }

cntpSysClock OBJECT-TYPE
    SYNTAX NTPTimeStamp
--    Rsyntax OCTET STRING(SIZE(8))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The current local time.  Local time is derived from
        the hardware clock of the particular machine and
        increments at intervals depending on the design used."
    ::= { cntpSystem 10 }

cntpSysSrvStatus OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(1),
        notRunning(2),
        notSynchronized(3),
        syncToLocal(4),
        syncToRefclock(5),
        syncToRemoteServer(6)
        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "Current state of the NTP server with values coded as follows:
        1: server status is unknown
        2: server is not running
        3: server is not synchronized to any time source
        4: server is synchronized to its own local clock
        5: server is synchronized to a local hardware refclock (e.g. GPS)
        6: server is synchronized to a remote NTP server"
    DEFVAL { unknown }
    ::= { cntpSystem 11 }

cntpPeersVarTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CntpPeersVarEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This table provides information on the peers with
        which the local NTP server has associations.  The
        peers are also NTP servers but running on different
        hosts."
    ::= { cntpPeers 1 }

cntpPeersVarEntry OBJECT-TYPE
    SYNTAX CntpPeersVarEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "Each peers' entry provides NTP information retrieved
        from a particular peer NTP server.  Each peer is
        identified by a unique association identifier.
        
        Entries are automatically created when the user
        configures the NTP server to be associated with remote
        peers.  Similarly entries are deleted when the user
        removes the peer association from the NTP server.
        
        Entries can also be created by the management station
        by setting values for the following objects:
        cntpPeersPeerAddress or cntpPeersPeerName, 
        cntpPeersHostAddress and
        cntpPeersMode and making the cntpPeersEntryStatus as
        active(1).  At the least, the management station has
        to set a value for cntpPeersPeerAddress or
        cntpPeersPeerName to make the row active."
    INDEX { cntpPeersAssocId }
    ::= { cntpPeersVarTable 1 }

CntpPeersVarEntry ::= SEQUENCE {
    cntpPeersAssocId NTPAssocIdentifier,
    cntpPeersConfigured TruthValue,
    cntpPeersPeerAddress IpAddress,
    cntpPeersPeerPort INTEGER,
    cntpPeersHostAddress IpAddress,
    cntpPeersHostPort INTEGER,
    cntpPeersLeap NTPLeapIndicator,
    cntpPeersMode INTEGER,
    cntpPeersStratum NTPStratum,
    cntpPeersPeerPoll NTPPollInterval,
    cntpPeersHostPoll NTPPollInterval,
    cntpPeersPrecision INTEGER,
    cntpPeersRootDelay NTPSignedTimeValue,
    cntpPeersRootDispersion NTPUnsignedTimeValue,
    cntpPeersRefId NTPRefId,
    cntpPeersRefTime NTPTimeStamp,
    cntpPeersOrgTime NTPTimeStamp,
    cntpPeersReceiveTime NTPTimeStamp,
    cntpPeersTransmitTime NTPTimeStamp,
    cntpPeersUpdateTime INTEGER,
    cntpPeersReach INTEGER,
    cntpPeersTimer INTEGER,
    cntpPeersOffset NTPSignedTimeValue,
    cntpPeersDelay NTPSignedTimeValue,
    cntpPeersDispersion NTPUnsignedTimeValue,
    cntpPeersFilterValidEntries Gauge,
    cntpPeersEntryStatus RowStatus,
    cntpPeersUpdateTimeRev1 Gauge,
    cntpPeersPrefPeer TruthValue,
    cntpPeersPeerType InetAddressType,
    cntpPeersPeerName InetAddress
    }

cntpPeersAssocId OBJECT-TYPE
    SYNTAX NTPAssocIdentifier
--    Rsyntax INTEGER(0..2147483647)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An integer value greater than 0 that uniquely
        identifies a peer with which the local NTP server
        is associated."
    ::= { cntpPeersVarEntry 1 }

cntpPeersConfigured OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This is a bit indicating that the association
        was created from configuration information and
        should not be de-associated even if the peer
        becomes unreachable."
    ::= { cntpPeersVarEntry 2 }

cntpPeersPeerAddress OBJECT-TYPE
    SYNTAX IpAddress
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The IP address of the peer.  When creating a new
        association, a value should be set either for this
        object or the corresponding instance of 
        cntpPeersPeerName, before the row is made active."
    ::= { cntpPeersVarEntry 3 }

cntpPeersPeerPort OBJECT-TYPE
    SYNTAX INTEGER(1..65535)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The UDP port number on which the peer receives NTP
        messages."
    ::= { cntpPeersVarEntry 4 }

cntpPeersHostAddress OBJECT-TYPE
    SYNTAX IpAddress
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The IP address of the local host.  Multi-homing can
        be supported using this object."
    ::= { cntpPeersVarEntry 5 }

cntpPeersHostPort OBJECT-TYPE
    SYNTAX INTEGER(1..65535)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The UDP port number on which the local host receives
        NTP messages."
    ::= { cntpPeersVarEntry 6 }

cntpPeersLeap OBJECT-TYPE
    SYNTAX NTPLeapIndicator
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        noWarning(0),
--        addSecond(1),
--        subtractSecond(2),
--        alarm(3)
--        }
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "Two-bit code warning of an impending leap
        second to be inserted in the NTP timescale of
        the peer."
    ::= { cntpPeersVarEntry 7 }

cntpPeersMode OBJECT-TYPE
    SYNTAX INTEGER {
        --?? enum value of zero may cause problems
        unspecified(0),
        symmetricActive(1),
        symmetricPassive(2),
        client(3),
        server(4),
        broadcast(5),
        reservedControl(6),
        reservedPrivate(7)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The association mode of the NTP server, with values
        coded as follows,
        0, unspecified
        1, symmetric active - A host operating in this mode
                sends periodic messages regardless of the
                reachability state or stratum of its peer.  By
                operating in this mode the host announces its
                willingness to synchronize and be synchronized
                by the peer
        2, symmetric passive - This type of association is
                ordinarily created upon arrival of a message
                from a peer operating in the symmetric active
                mode and persists only as long as the peer is
                reachable and operating at a stratum level
                less than or equal to the host; otherwise, the
                association is dissolved.  However, the
                association will always persist until at least
                one message has been sent in reply.  By
                operating in this mode the host announces its
                willingness to synchronize and be synchronized
                by the peer
        3, client -  A host operating in this mode sends
                periodic messages regardless of the
                reachability state or stratum of its peer.  By
                operating in this mode the host, usually a LAN
                workstation, announces its willingness to be
                synchronized by, but not to synchronize the peer
        4, server - This type of association is ordinarily
                created upon arrival of a client request message
                and exists only in order to reply to that
                request, after which the association is
                dissolved.  By operating in this mode the host,
                usually a LAN time server, announces its
                willingness to synchronize, but not to be
                synchronized by the peer
        5, broadcast - A host operating in this mode sends
                periodic messages regardless of the
                reachability state or stratum of the peers.
                By operating in this mode the host, usually a
                LAN time server operating on a high-speed
                broadcast medium, announces its willingness to
                synchronize all of the peers, but not to be
                synchronized by any of them
        6, reserved for NTP control messages
        7, reserved for private use.
        
        When creating a new peer association, if no value
        is specified for this object, it defaults to
        symmetricActive(1)."
    REFERENCE
        "D.L. Mills, 'Network Time Protocol (Version 3)',
            RFC-1305, March 1992, Section 3.3"
    ::= { cntpPeersVarEntry 8 }

cntpPeersStratum OBJECT-TYPE
    SYNTAX NTPStratum
--    Rsyntax INTEGER(0..255)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The stratum of the peer clock."
    ::= { cntpPeersVarEntry 9 }

cntpPeersPeerPoll OBJECT-TYPE
    SYNTAX NTPPollInterval
--    Rsyntax INTEGER(-20..20)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The interval at which the peer polls the local host."
    ::= { cntpPeersVarEntry 10 }

cntpPeersHostPoll OBJECT-TYPE
    SYNTAX NTPPollInterval
--    Rsyntax INTEGER(-20..20)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The interval at which the local host polls the peer."
    ::= { cntpPeersVarEntry 11 }

cntpPeersPrecision OBJECT-TYPE
    SYNTAX INTEGER(-20..20)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "Signed integer indicating the precision of the peer
        clock, in seconds to the nearest power of two.  The
        value must be rounded to the next larger power of
        two; for instance, a 50-Hz (20 ms) or 60-Hz
        (16.67 ms) power-frequency clock would be assigned
        the value -5 (31.25 ms), while a 1000-Hz (1 ms)
        crystal-controlled clock would be assigned the value
        -9 (1.95 ms)."
    ::= { cntpPeersVarEntry 12 }

cntpPeersRootDelay OBJECT-TYPE
    SYNTAX NTPSignedTimeValue
--    Rsyntax OCTET STRING(SIZE(4))
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "A signed fixed-point number indicating the total
        round-trip delay in seconds, from the peer to the
        primary reference source at the root of the
        synchronization subnet."
    ::= { cntpPeersVarEntry 13 }

cntpPeersRootDispersion OBJECT-TYPE
    SYNTAX NTPUnsignedTimeValue
--    Rsyntax OCTET STRING(SIZE(4))
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The maximum error in seconds, of the peer clock
        relative to the primary reference source at the root
        of the synchronization subnet.  Only positive values
        greater than zero are possible."
    ::= { cntpPeersVarEntry 14 }

cntpPeersRefId OBJECT-TYPE
    SYNTAX NTPRefId
--    Rsyntax OCTET STRING(SIZE(4))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The reference identifier of the peer."
    ::= { cntpPeersVarEntry 15 }

cntpPeersRefTime OBJECT-TYPE
    SYNTAX NTPTimeStamp
--    Rsyntax OCTET STRING(SIZE(8))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The local time at the peer when its clock was last
        updated.  If the peer clock has never been
        synchronized, the value is zero."
    ::= { cntpPeersVarEntry 16 }

cntpPeersOrgTime OBJECT-TYPE
    SYNTAX NTPTimeStamp
--    Rsyntax OCTET STRING(SIZE(8))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The local time at the peer, when its latest
        NTP message was sent.  If the peer becomes unreachable
        the value is set to zero."
    ::= { cntpPeersVarEntry 17 }

cntpPeersReceiveTime OBJECT-TYPE
    SYNTAX NTPTimeStamp
--    Rsyntax OCTET STRING(SIZE(8))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The local time, when the latest NTP message from
        the peer arrived.  If the peer becomes unreachable
        the value is set to zero."
    ::= { cntpPeersVarEntry 18 }

cntpPeersTransmitTime OBJECT-TYPE
    SYNTAX NTPTimeStamp
--    Rsyntax OCTET STRING(SIZE(8))
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The local time at which the NTP message departed the
        sender."
    ::= { cntpPeersVarEntry 19 }

cntpPeersUpdateTime OBJECT-TYPE
    SYNTAX INTEGER(0..2147483647)
    ACCESS read-only
    STATUS deprecated
    DESCRIPTION
        "The local time, when the most recent NTP message was
        received from the peer that was used to calculate the
        skew dispersion.  This represents only the 32-bit
        integer part of the NTPTimestamp."
    ::= { cntpPeersVarEntry 20 }

cntpPeersReach OBJECT-TYPE
    SYNTAX INTEGER(0..255)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "A shift register of used to determine the
        reachability status of the peer, with bits entering
        from the least significant (rightmost) end.  A peer is
        considered reachable if at least one bit in this
        register is set to one i.e, if the value of this
        object is non-zero.
        The data in the shift register would be populated by
        the NTP protocol procedures."
    REFERENCE
        "D.L. Mills, 'Network Time Protocol (Version 3)',
            RFC-1305, March 1992, Section 3.2.3"
    ::= { cntpPeersVarEntry 21 }

cntpPeersTimer OBJECT-TYPE
    SYNTAX INTEGER(0..2147483647)
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The interval in seconds, between transmitted NTP
        messages from the local host to the peer."
    REFERENCE
        "D.L. Mills, 'Network Time Protocol (Version 3)',
            RFC-1305, March 1992, Section 3.2.3"
    ::= { cntpPeersVarEntry 22 }

cntpPeersOffset OBJECT-TYPE
    SYNTAX NTPSignedTimeValue
--    Rsyntax OCTET STRING(SIZE(4))
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The estimated offset of the peer clock relative to
        the local clock, in seconds.  The host determines the
        value of this object using the NTP clock-filter
        algorithm."
    REFERENCE
        "D.L. Mills, 'Network Time Protocol (Version 3)',
            RFC-1305, March 1992, Section 3.2.5"
    ::= { cntpPeersVarEntry 23 }

cntpPeersDelay OBJECT-TYPE
    SYNTAX NTPSignedTimeValue
--    Rsyntax OCTET STRING(SIZE(4))
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The estimated round-trip delay of the peer clock
        relative to the local clock over the network path
        between them, in seconds.  The host determines the
        value of this object using the NTP clock-filter
        algorithm."
    REFERENCE
        "D.L. Mills, 'Network Time Protocol (Version 3)',
            RFC-1305, March 1992, Section 3.2.5"
    ::= { cntpPeersVarEntry 24 }

cntpPeersDispersion OBJECT-TYPE
    SYNTAX NTPUnsignedTimeValue
--    Rsyntax OCTET STRING(SIZE(4))
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The estimated maximum error of the peer clock
        relative to the local clock over the network path
        between them, in seconds.  The host determines the
        value of this object using the NTP clock-filter
        algorithm."
    REFERENCE
        "D.L. Mills, 'Network Time Protocol (Version 3)',
            RFC-1305, March 1992, Section 3.2.5"
    ::= { cntpPeersVarEntry 25 }

cntpPeersFilterValidEntries OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The number of valid entries for a peer in the
        Filter Register Table. Since, the Filter Register
        Table is optional, this object will have a value 0
        if the Filter Register Table is not implemented."
    ::= { cntpPeersVarEntry 26 }

cntpPeersEntryStatus OBJECT-TYPE
    SYNTAX RowStatus
--    Rsyntax INTEGER {
--        active(1),
--        notInService(2),
--        notReady(3),
--        createAndGo(4),
--        createAndWait(5),
--        destroy(6)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The status object for this row. When a management
        station is creating a new row, it should set the
        value for cntpPeersPeerAddress at least, before the
        row can be made active(1)."
    ::= { cntpPeersVarEntry 27 }

cntpPeersUpdateTimeRev1 OBJECT-TYPE
    SYNTAX Gauge
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The local time, when the most recent NTP message was
        received from the peer that was used to calculate the
        skew dispersion.  This represents only the 32-bit
        integer part of the NTPTimestamp."
    ::= { cntpPeersVarEntry 28 }

cntpPeersPrefPeer OBJECT-TYPE
    SYNTAX TruthValue
--    Rsyntax INTEGER {
--        true(1),
--        false(2)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies whether this peer is the
        preferred one over the others. By default, when
        the value of this object is 'false', NTP chooses 
        the peer with which to synchronize the time on 
        the local system. If this object is set
        to 'true', NTP will choose the corresponding
        peer to synchronize the time with. If multiple
        entries have this object set to 'true', NTP will
        choose the first one to be set. This object is
        a means to override the selection of the peer by
        NTP."
    DEFVAL { false }
    ::= { cntpPeersVarEntry 29 }

cntpPeersPeerType OBJECT-TYPE
    SYNTAX InetAddressType
--    Rsyntax INTEGER {
--        ?? enum value of zero may cause problems
--        unknown(0),
--        ipv4(1),
--        ipv6(2),
--        ipv4z(3),
--        ipv6z(4),
--        dns(16)
--        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "Represents the type of the corresponding instance
        of cntpPeersPeerName object."
    DEFVAL { ipv4 }
    ::= { cntpPeersVarEntry 30 }

cntpPeersPeerName OBJECT-TYPE
    SYNTAX InetAddress
--    Rsyntax OCTET STRING(SIZE(0..255))
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "The address of the peer. When creating a new
        association, a value must be set for either this
        object or the corresponding instance of
        cntpPeersPeerAddress object, before the row
        is made active."
    ::= { cntpPeersVarEntry 31 }

cntpFilterRegisterTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CntpFilterRegisterEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "The following table contains NTP state variables
        used by the NTP clock filter and selection algorithms.
        This table depicts a shift register.  Each stage in
        the shift register is a 3-tuple consisting of the
        measured clock offset, measured clock delay and
        measured clock dispersion associated with a single
        observation.
        
        An important factor affecting the accuracy and
        reliability of time distribution is the complex of
        algorithms used to reduce the effect of statistical
        errors and falsetickers due to failure of various
        subnet components, reference sources or propagation
        media.  The NTP clock-filter and selection algorithms
        are designed to do exactly this.  The objects in the
        filter register table below are used by these
        algorthims to minimize the error in the calculated
        time."
    REFERENCE
        "D.L. Mills, 'Network Time Protocol (Version 3)',
            RFC-1305, March 1992, Section 3.2.5"
    ::= { cntpFilter 2 }

cntpFilterRegisterEntry OBJECT-TYPE
    SYNTAX CntpFilterRegisterEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "Each entry corresponds to one stage of the shift
        register, i.e., one reading of the variables clock
        delay, clock offset and clock dispersion.
        
        Entries are automatically created whenever a peer is
        configured and deleted when the peer is removed."
    INDEX { cntpPeersAssocId, cntpFilterIndex }
    ::= { cntpFilterRegisterTable 1 }

CntpFilterRegisterEntry ::= SEQUENCE {
    cntpFilterIndex INTEGER,
    cntpFilterPeersOffset NTPSignedTimeValue,
    cntpFilterPeersDelay NTPSignedTimeValue,
    cntpFilterPeersDispersion NTPUnsignedTimeValue
    }

cntpFilterIndex OBJECT-TYPE
    SYNTAX INTEGER(1..8)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "An integer value in the specified range that is used
        to index into the table.  The size of the table is
        fixed at 8.  Each entry identifies a particular
        reading of the clock filter variables in the shift
        register.
        
        Entries are added starting at index 1.  The index
        wraps back to 1 when it reaches 8.  When the index
        wraps back, the new entries will overwrite the old
        entries effectively deleting the old entry."
    ::= { cntpFilterRegisterEntry 1 }

cntpFilterPeersOffset OBJECT-TYPE
    SYNTAX NTPSignedTimeValue
--    Rsyntax OCTET STRING(SIZE(4))
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The offset of the peer clock relative to the
        local clock in seconds."
    ::= { cntpFilterRegisterEntry 2 }

cntpFilterPeersDelay OBJECT-TYPE
    SYNTAX NTPSignedTimeValue
--    Rsyntax OCTET STRING(SIZE(4))
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "Round-trip delay of the peer clock relative to the
        local clock over the network path between them, in
        seconds.  This variable can take on both positive and
        negative values, depending on clock precision and
        skew-error accumulation."
    ::= { cntpFilterRegisterEntry 3 }

cntpFilterPeersDispersion OBJECT-TYPE
    SYNTAX NTPUnsignedTimeValue
--    Rsyntax OCTET STRING(SIZE(4))
--  Units
--    seconds
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "The maximum error of the peer clock relative to the
        local clock over the network path between them, in
        seconds.  Only positive values greater than zero are
        possible."
    ::= { cntpFilterRegisterEntry 4 }

ciscoNtpSrvStatusChange TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE ciscoNtpMIB
    VARIABLES {
        cntpSysSrvStatus }
--  Status
--    mandatory
    DESCRIPTION
        "This notification is generated whenever the value of
        cntpSysSrvStatus changes."
    ::= 1

ciscoNtpHighPriorityConnFailure TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE ciscoNtpMIB
    VARIABLES {
        cntpPeersPeerAddress }
--  Status
--    mandatory
    DESCRIPTION
        "A failure to connect with an high priority NTP server
        (e.g. a server at the lowest stratum) is detected."
    ::= 2

ciscoNtpHighPriorityConnRestore TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE ciscoNtpMIB
    VARIABLES {
        cntpPeersPeerAddress }
--  Status
--    mandatory
    DESCRIPTION
        "A connection with an high priority NTP server
        (e.g. a server at the lowest stratum) is restored."
    ::= 3

ciscoNtpGeneralConnFailure TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE ciscoNtpMIB
--  Status
--    mandatory
    DESCRIPTION
        "This trap is sent when the device loses connectivity 
        to all NTP servers."
    ::= 4

ciscoNtpGeneralConnRestore TRAP-TYPE
-- Reverse mappable trap
    ENTERPRISE ciscoNtpMIB
    VARIABLES {
        cntpPeersPeerAddress }
--  Status
--    mandatory
    DESCRIPTION
        "This trap is sent when the connection with at least 
        one NTP server has been restored
        (e.g. after a ciscoNtpGeneralConnFailure)."
    ::= 5

ciscoNtpSysGroup OBJECT IDENTIFIER ::= { ciscoNtpMIBGroups 1 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    The NTP system variables.
--  objects
--    cntpSysLeap, cntpSysStratum, cntpSysPrecision, 
--    cntpSysRootDelay, cntpSysRootDispersion, cntpSysRefId, 
--    cntpSysRefTime, cntpSysPoll, cntpSysPeer, cntpSysClock

ciscoNtpPeersGroup OBJECT IDENTIFIER ::= { ciscoNtpMIBGroups 2 }
-- OBJECT-GROUP
--  Status
--    deprecated
--  Descr
--    The NTP peer variables.
--  objects
--    cntpPeersConfigured, cntpPeersPeerAddress, cntpPeersPeerPort, 
--    cntpPeersHostAddress, cntpPeersHostPort, cntpPeersLeap, 
--    cntpPeersMode, cntpPeersStratum, cntpPeersPeerPoll, 
--    cntpPeersHostPoll, cntpPeersPrecision, cntpPeersRootDelay, 
--    cntpPeersRootDispersion, cntpPeersRefId, cntpPeersRefTime, 
--    cntpPeersOrgTime, cntpPeersReceiveTime, cntpPeersTransmitTime, 
--    cntpPeersUpdateTime, cntpPeersReach, cntpPeersTimer, 
--    cntpPeersOffset, cntpPeersDelay, cntpPeersDispersion, 
--    cntpPeersFilterValidEntries, cntpPeersEntryStatus

ciscoNtpFilterGroup OBJECT IDENTIFIER ::= { ciscoNtpMIBGroups 3 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    The NTP clock-filter variables.
--  objects
--    cntpFilterPeersOffset, cntpFilterPeersDelay, 
--    cntpFilterPeersDispersion

ciscoNtpPeersGroupRev1 OBJECT IDENTIFIER ::= { ciscoNtpMIBGroups 4 }
-- OBJECT-GROUP
--  Status
--    deprecated
--  Descr
--    The NTP peer variables.
--  objects
--    cntpPeersConfigured, cntpPeersPeerAddress, cntpPeersPeerPort, 
--    cntpPeersHostAddress, cntpPeersHostPort, cntpPeersLeap, 
--    cntpPeersMode, cntpPeersStratum, cntpPeersPeerPoll, 
--    cntpPeersHostPoll, cntpPeersPrecision, cntpPeersRootDelay, 
--    cntpPeersRootDispersion, cntpPeersRefId, cntpPeersRefTime, 
--    cntpPeersOrgTime, cntpPeersReceiveTime, cntpPeersTransmitTime, 
--    cntpPeersUpdateTimeRev1, cntpPeersReach, cntpPeersTimer, 
--    cntpPeersOffset, cntpPeersDelay, cntpPeersDispersion, 
--    cntpPeersFilterValidEntries, cntpPeersEntryStatus

ciscoNtpPeerExtGroup OBJECT IDENTIFIER ::= { ciscoNtpMIBGroups 5 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    The extended set of NTP peer variable(s).
--  objects
--    cntpPeersPrefPeer

ciscoNtpPeersGroupRev2 OBJECT IDENTIFIER ::= { ciscoNtpMIBGroups 6 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    The NTP peer variables.
--  objects
--    cntpPeersConfigured, cntpPeersPeerAddress, cntpPeersPeerPort, 
--    cntpPeersHostAddress, cntpPeersHostPort, cntpPeersLeap, 
--    cntpPeersMode, cntpPeersStratum, cntpPeersPeerPoll, 
--    cntpPeersHostPoll, cntpPeersPrecision, cntpPeersRootDelay, 
--    cntpPeersRootDispersion, cntpPeersRefId, cntpPeersRefTime, 
--    cntpPeersOrgTime, cntpPeersReceiveTime, cntpPeersTransmitTime, 
--    cntpPeersUpdateTimeRev1, cntpPeersReach, cntpPeersTimer, 
--    cntpPeersOffset, cntpPeersDelay, cntpPeersDispersion, 
--    cntpPeersFilterValidEntries, cntpPeersEntryStatus, 
--    cntpPeersPeerName, cntpPeersPeerType

ciscoNtpSysExtGroup OBJECT IDENTIFIER ::= { ciscoNtpMIBGroups 7 }
-- OBJECT-GROUP
--  Status
--    mandatory
--  Descr
--    The extended set of NTP system variable(s).
--  objects
--    cntpSysSrvStatus

ciscoNtpSrvNotifGroup OBJECT IDENTIFIER ::= { ciscoNtpMIBGroups 8 }
-- NOTIFICATION-GROUP
--  Status
--    mandatory
--  Descr
--    The collection of notifications for the NTP Server.
--  notifications
--    ciscoNtpSrvStatusChange, ciscoNtpHighPriorityConnFailure, 
--    ciscoNtpHighPriorityConnRestore, ciscoNtpGeneralConnFailure, 
--    ciscoNtpGeneralConnRestore

ciscoNtpMIBCompliance OBJECT IDENTIFIER ::= { ciscoNtpMIBCompliances 1 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    The compliance statement for Cisco agents which
--    implement the Cisco NTP MIB.
--  Module
--    >>current<<
--   MandGroup
--    ciscoNtpSysGroup
--   MandGroup
--    ciscoNtpPeersGroup
--   OptGroup
--    ciscoNtpFilterGroup

ciscoNtpMIBComplianceRev1 OBJECT IDENTIFIER ::= { ciscoNtpMIBCompliances 2 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    The compliance statement for Cisco agents which
--    implement the Cisco NTP MIB.
--  Module
--    >>current<<
--   MandGroup
--    ciscoNtpSysGroup
--   MandGroup
--    ciscoNtpPeersGroupRev1
--   OptGroup
--    ciscoNtpFilterGroup

ciscoNtpMIBComplianceRev2 OBJECT IDENTIFIER ::= { ciscoNtpMIBCompliances 3 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    The compliance statement for Cisco agents which
--    implement the Cisco NTP MIB.
--  Module
--    >>current<<
--   MandGroup
--    ciscoNtpSysGroup
--   MandGroup
--    ciscoNtpPeersGroupRev1
--   OptGroup
--    ciscoNtpFilterGroup
--   OptGroup
--    ciscoNtpPeerExtGroup

ciscoNtpMIBComplianceRev3 OBJECT IDENTIFIER ::= { ciscoNtpMIBCompliances 4 }
-- MODULE-COMPLIANCE
--  Status
--    deprecated
--  Descr
--    The compliance statement for Cisco agents which
--    implement the Cisco NTP MIB.
--  Module
--    >>current<<
--   MandGroup
--    ciscoNtpSysGroup
--   MandGroup
--    ciscoNtpPeersGroupRev2
--   OptGroup
--    ciscoNtpFilterGroup
--   OptGroup
--    ciscoNtpPeerExtGroup

ciscoNtpMIBComplianceRev4 OBJECT IDENTIFIER ::= { ciscoNtpMIBCompliances 5 }
-- MODULE-COMPLIANCE
--  Status
--    mandatory
--  Descr
--    The compliance statement for Cisco agents which
--    implement the Cisco NTP MIB.
--  Module
--    >>current<<
--   MandGroup
--    ciscoNtpSysGroup
--   MandGroup
--    ciscoNtpPeersGroupRev2
--   OptGroup
--    ciscoNtpFilterGroup
--   OptGroup
--    ciscoNtpPeerExtGroup
--   OptGroup
--    ciscoNtpSysExtGroup
--   OptGroup
--    ciscoNtpSrvNotifGroup


END

