--MibName=rcNtp
-- *****************************************************************
-- RAISECOM-NTP-MIB.my:  NTP MIB
--
-- Feb 2009, tangyoucan
-- 
-- Modi Report: 20110811guohuiming,  ROS00002217 Abandoned rcNtpSysVersion and add rcNtpPeersVersion 
-- 
-- Copyright (c) 1996-2009 by Raisecom Technology Co., Ltd. 
-- All rights reserved.
-- 
-- *****************************************************************
--

RAISECOM-NTP-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, Integer32,
	    IpAddress, Gauge32, Unsigned32
                FROM SNMPv2-SMI
        TEXTUAL-CONVENTION, TruthValue, RowStatus
                FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP
                FROM SNMPv2-CONF
        iscomSwitch   FROM RAISECOM-BASE-MIB;

rcNtp   MODULE-IDENTITY
        LAST-UPDATED    "200902090000Z"
        ORGANIZATION    "Raisecom Technology Co., Ltd."
        CONTACT-INFO
                "Raisecom Science & Technology Co., ltd.
                 E-mail: support@raisecom.com"
        DESCRIPTION   "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."
        REVISION     "200902090000Z"
        DESCRIPTION
            "version 1.0"
        ::= { iscomSwitch 44 }

--
-- The various groups defined within this MIB definition:
--

rcNtpMIBObjects OBJECT IDENTIFIER ::= { rcNtp 1 }

rcNtpSystem         OBJECT IDENTIFIER ::= { rcNtpMIBObjects 1 }
rcNtpPeers          OBJECT IDENTIFIER ::= { rcNtpMIBObjects 2 }
rcNtpFilter         OBJECT IDENTIFIER ::= { rcNtpMIBObjects 3 }

--
-- Textual Conventions
--

NTPTimeStamp ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "4d.4d"
        STATUS       current
        DESCRIPTION                "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."
        REFERENCE
                "D.L. Mills, 'Network Time Protocol (Version 3)',
                RFC-1305, March 1992, Section 3.1"
        SYNTAX       OCTET STRING (SIZE (8))

NTPLeapIndicator ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION                "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)"
        REFERENCE
                "D.L. Mills, 'Network Time Protocol(Version 3)',
                RFC-1305, March 1992, Section 3.2.1"
        SYNTAX       INTEGER { noWarning(0), addSecond(1),
                               subtractSecond(2), alarm(3) }

NTPSignedTimeValue ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "2d.2d"
        STATUS       current
        DESCRIPTION                "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."
        REFERENCE
                "D.L. Mills, 'Network Time Protocol (Version 3)',
                RFC-1305, March 1992, Sections 2,  3.2.1"
        SYNTAX       OCTET STRING (SIZE (4))

NTPUnsignedTimeValue ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "2d.2d"
        STATUS       current
        DESCRIPTION                "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."
        REFERENCE
                "D.L. Mills, 'Network Time Protocol (Version 3)',
                RFC-1305, March 1992, Sections 2, 3.2.1"
        SYNTAX       OCTET STRING (SIZE (4))

NTPStratum ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION                "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)"
        REFERENCE
                "D.L. Mills, 'Network Time Protocol (Version 3)',
                RFC-1305, March 1992, Section 2.2"
        SYNTAX       Integer32 (0..255)

NTPRefId ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION                "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"
        REFERENCE
                "D.L. Mills, Network Time Protocol (Version 3)',
                RFC-1305, March 1992, Section 3.2.1"
        SYNTAX       OCTET STRING (SIZE (4))

NTPPollInterval ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION                "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."
        SYNTAX       Integer32 (-20..20)

NTPAssocIdentifier ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION   "The association identifier of the peer.  Every peer
                with which an NTP server is associated with is
                identified by an association identifier."
        SYNTAX       Integer32 (0..2147483647)     
        

--
-- System Group
--

rcNtpSysLeap OBJECT-TYPE
        SYNTAX      NTPLeapIndicator
        MAX-ACCESS  read-only
        STATUS      current
        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 rcNtpSysStratum has a value of 1."
        ::= { rcNtpSystem 1 }

rcNtpSysStratum OBJECT-TYPE
        SYNTAX      NTPStratum
        MAX-ACCESS  read-write
        STATUS      current
        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."
        ::= { rcNtpSystem 2 }

rcNtpSysPrecision OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        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)."
        ::= { rcNtpSystem 3 }

rcNtpSysRootDelay OBJECT-TYPE
        SYNTAX      NTPSignedTimeValue
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        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"
        ::= { rcNtpSystem 4 }

rcNtpSysRootDispersion OBJECT-TYPE
        SYNTAX      NTPUnsignedTimeValue
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        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"
        ::= { rcNtpSystem 5 }

rcNtpSysRefId OBJECT-TYPE
        SYNTAX      NTPRefId
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION                "The reference identifier of the local clock."
        ::= { rcNtpSystem 6 }

rcNtpSysRefTime OBJECT-TYPE
        SYNTAX      NTPTimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "The local time when the local clock was last
                updated.  If the local clock has never been
                synchronized, the value is zero."
        ::= { rcNtpSystem 7 }

rcNtpSysPoll OBJECT-TYPE
        SYNTAX      NTPPollInterval (6..10)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION                "The interval at which the NTP server polls other NTP
                servers to synchronize its clock."
        ::= { rcNtpSystem 8 }

rcNtpSysPeer OBJECT-TYPE
        SYNTAX      NTPAssocIdentifier
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "The current synchronization source.  This will
                contain the unique association identifier
                rcNtpPeersAssocId of the corresponding peer entry in
                the rcNtpPeersVarTable of the peer acting as the
                synchronization source.  If there is no peer, the
                value will be 0."
        ::= { rcNtpSystem 9 }

rcNtpSysClock OBJECT-TYPE
        SYNTAX      NTPTimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        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."
        ::= { rcNtpSystem 10 } 
        
rcNtpSysClockStatus OBJECT-TYPE
        SYNTAX INTEGER{setByNone(1), setByManual(2),setByTimeProtocol(3)}
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Status or local clock,
            setByNone:    no set or unsynchronized,
            setByManual:  set by cmd or SNMP or other method,
            setByTimeProtocol:  set by time protocol"
        DEFVAL { set-by-none }
        ::= { rcNtpSystem 11 }    
        
rcNtpSysVersion OBJECT-TYPE
        SYNTAX INTEGER{v1(1), v2(2),v3(3)}
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
            "Version of ntp,
            v1:   version 1,
            v2:   version 2,
            v3:   version 3."
        DEFVAL { v3 }
        ::= { rcNtpSystem 12 }

        
rcNtpSysMode OBJECT-TYPE
        SYNTAX      INTEGER { ntpMaster(1),ntpSlave(2)}
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION   "The mode of host, with values coded as follows,
                 1, ntpMaster,switch as the NTP reference clock;
                 2, ntpSlave,switch as the NTP slave clock."
        ::= { rcNtpSystem 13 }        
        
        
rcNtpSysValidServicerIndex OBJECT-TYPE
        SYNTAX      Integer32 (0..100)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION   "Find the next valid servicer clock index"
        ::= { rcNtpSystem 14 }  
--
-- Peers Group
--

--
-- Peer Variables Table
--

rcNtpPeersVarTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RcNtpPeersVarEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        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."
        ::= { rcNtpPeers 1 }

rcNtpPeersVarEntry OBJECT-TYPE
        SYNTAX      RcNtpPeersVarEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        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:
                rcNtpPeersPeerAddress, rcNtpPeersHostAddress and
                rcNtpPeersMode and making the rcNtpPeersEntryStatus as
                active(1).  At the least, the management station has
                to set a value for rcNtpPeersPeerAddress to make the
                row active."
        INDEX       { rcNtpPeersAssocId }
        ::= { rcNtpPeersVarTable 1 }

RcNtpPeersVarEntry ::= SEQUENCE {
        rcNtpPeersAssocId            NTPAssocIdentifier,
        rcNtpPeersConfigured         TruthValue,
        rcNtpPeersPeerAddress        IpAddress,
        rcNtpPeersPeerPort           Integer32,
        rcNtpPeersHostAddress        IpAddress,
        rcNtpPeersHostPort           Integer32,
        rcNtpPeersLeap               NTPLeapIndicator,
        rcNtpPeersMode               INTEGER,
        rcNtpPeersStratum            NTPStratum,
        rcNtpPeersPeerPoll           NTPPollInterval,
        rcNtpPeersHostPoll           NTPPollInterval,
        rcNtpPeersPrecision          Integer32,
        rcNtpPeersRootDelay          NTPSignedTimeValue,
        rcNtpPeersRootDispersion     NTPUnsignedTimeValue,
        rcNtpPeersRefId              NTPRefId,
        rcNtpPeersRefTime            NTPTimeStamp,
        rcNtpPeersOrgTime            NTPTimeStamp,
        rcNtpPeersReceiveTime        NTPTimeStamp,
        rcNtpPeersTransmitTime       NTPTimeStamp,
        rcNtpPeersUpdateTime         Unsigned32,
        rcNtpPeersReach              Integer32,
        rcNtpPeersTimer              Integer32,
        rcNtpPeersOffset             NTPSignedTimeValue,
        rcNtpPeersDelay              NTPSignedTimeValue,
        rcNtpPeersDispersion         NTPUnsignedTimeValue,
        rcNtpPeersFilterValidEntries Gauge32,
        rcNtpPeersEntryStatus        RowStatus,  
        rcNtpPeersVersion              INTEGER
        }
 
rcNtpPeersAssocId OBJECT-TYPE
        SYNTAX      NTPAssocIdentifier
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION                "An integer value greater than 0 that uniquely
                identifies a peer with which the local NTP server
                is associated."
        ::= { rcNtpPeersVarEntry 1 }

rcNtpPeersConfigured OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        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."
        ::= { rcNtpPeersVarEntry 2 }

rcNtpPeersPeerAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION                "The IP address of the peer.  When creating a new
                association, a value for this object should be set
                before the row is made active."
        ::= { rcNtpPeersVarEntry 3 }

rcNtpPeersPeerPort OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "The UDP port number on which the peer receives NTP
                messages."
        ::= { rcNtpPeersVarEntry 4 }

rcNtpPeersHostAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION                "The IP address of the local host.  Multi-homing can
                be supported using this object."
        ::= { rcNtpPeersVarEntry 5 }

rcNtpPeersHostPort OBJECT-TYPE
        SYNTAX      Integer32 (1..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "The UDP port number on which the local host receives
                NTP messages."
        ::= { rcNtpPeersVarEntry 6 }

rcNtpPeersLeap OBJECT-TYPE
        SYNTAX      NTPLeapIndicator
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "Two-bit code warning of an impending leap
                second to be inserted in the NTP timescale of
                the peer."
        ::= { rcNtpPeersVarEntry 7 }

rcNtpPeersMode OBJECT-TYPE
        SYNTAX      INTEGER { unspecified (0), symmetricActive (1),
                              symmetricPassive (2), client (3),
                              server(4), broadcast (5),
                              reservedControl (6),
                              reservedPrivate (7) }
        MAX-ACCESS  read-create
        STATUS      current
        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"
        ::= { rcNtpPeersVarEntry 8 }

rcNtpPeersStratum OBJECT-TYPE
        SYNTAX      NTPStratum
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "The stratum of the peer clock."
        ::= { rcNtpPeersVarEntry 9 }

rcNtpPeersPeerPoll OBJECT-TYPE
        SYNTAX      NTPPollInterval
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "The interval at which the peer polls the local host."
        ::= { rcNtpPeersVarEntry 10 }

rcNtpPeersHostPoll OBJECT-TYPE
        SYNTAX      NTPPollInterval
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "The interval at which the local host polls the peer."
        ::= { rcNtpPeersVarEntry 11 }

rcNtpPeersPrecision OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        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)."
        ::= { rcNtpPeersVarEntry 12 }

rcNtpPeersRootDelay OBJECT-TYPE
        SYNTAX      NTPSignedTimeValue
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        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."
        ::= { rcNtpPeersVarEntry 13 }

rcNtpPeersRootDispersion OBJECT-TYPE
        SYNTAX      NTPUnsignedTimeValue
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        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."
        ::= { rcNtpPeersVarEntry 14 }

rcNtpPeersRefId OBJECT-TYPE
        SYNTAX      NTPRefId
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "The reference identifier of the peer."
        ::= { rcNtpPeersVarEntry 15 }

rcNtpPeersRefTime OBJECT-TYPE
        SYNTAX      NTPTimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        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."
        ::= { rcNtpPeersVarEntry 16 }

rcNtpPeersOrgTime OBJECT-TYPE
        SYNTAX      NTPTimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        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."
        ::= { rcNtpPeersVarEntry 17 }

rcNtpPeersReceiveTime OBJECT-TYPE
        SYNTAX      NTPTimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "The local time, when the latest NTP message from
                the peer arrived.  If the peer becomes unreachable
                the value is set to zero."
        ::= { rcNtpPeersVarEntry 18 }

rcNtpPeersTransmitTime OBJECT-TYPE
        SYNTAX      NTPTimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "The local time at which the NTP message departed the
                sender."
        ::= { rcNtpPeersVarEntry 19 }

rcNtpPeersUpdateTime OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        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."
        ::= { rcNtpPeersVarEntry 20 }

rcNtpPeersReach OBJECT-TYPE
        SYNTAX      Integer32 (0..255)
        MAX-ACCESS  read-only
        STATUS      current
        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"
        ::= { rcNtpPeersVarEntry 21 }

rcNtpPeersTimer OBJECT-TYPE
        SYNTAX      Integer32 (0..2147483647)
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        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"
        ::= { rcNtpPeersVarEntry 22 }

rcNtpPeersOffset OBJECT-TYPE
        SYNTAX      NTPSignedTimeValue
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        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"
        ::= { rcNtpPeersVarEntry 23 }

rcNtpPeersDelay OBJECT-TYPE
        SYNTAX      NTPSignedTimeValue
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        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"
        ::= { rcNtpPeersVarEntry 24 }

rcNtpPeersDispersion OBJECT-TYPE
        SYNTAX      NTPUnsignedTimeValue
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        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"
        ::= { rcNtpPeersVarEntry 25 }

rcNtpPeersFilterValidEntries OBJECT-TYPE
        SYNTAX      Gauge32
        MAX-ACCESS  read-only
        STATUS      current
        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."
        ::= { rcNtpPeersVarEntry 26 }


rcNtpPeersEntryStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION                "The status object for this row. When a management
                station is creating a new row, it should set the
                value for rcNtpPeersPeerAddress at least, before the
                row can be made active(1)."
        ::= { rcNtpPeersVarEntry 27 }    
        
        
rcNtpPeersVersion OBJECT-TYPE
        SYNTAX INTEGER{v1(1), v2(2),v3(3)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Version of ntp,
            v1:   version 1,
            v2:   version 2,
            v3:   version 3."
        DEFVAL { v3 }
        ::= {  rcNtpPeersVarEntry 28 }


--
-- Filter Group
--
-- Implementation of this group is optional.  It must be implemented
-- when the filter and selection algorithms described in Section 4
-- of RFC 1305 are used.
--

--
-- Filter Register Table
--

rcNtpFilterRegisterTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF RcNtpFilterRegisterEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        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"
        ::= { rcNtpFilter 1 }

rcNtpFilterRegisterEntry OBJECT-TYPE
        SYNTAX      RcNtpFilterRegisterEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        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       { rcNtpPeersAssocId, rcNtpFilterIndex }
        ::= { rcNtpFilterRegisterTable 1 }

RcNtpFilterRegisterEntry ::= SEQUENCE {
        rcNtpFilterIndex             Integer32,
        rcNtpFilterPeersOffset       NTPSignedTimeValue,
        rcNtpFilterPeersDelay        NTPSignedTimeValue,
        rcNtpFilterPeersDispersion   NTPUnsignedTimeValue
        }

rcNtpFilterIndex OBJECT-TYPE
        SYNTAX      Integer32 (1..8)
        MAX-ACCESS  not-accessible
        STATUS      current
        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."
        ::= { rcNtpFilterRegisterEntry 1 }

rcNtpFilterPeersOffset OBJECT-TYPE
        SYNTAX      NTPSignedTimeValue
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION                "The offset of the peer clock relative to the
                local clock in seconds."
        ::= { rcNtpFilterRegisterEntry 2 }

rcNtpFilterPeersDelay OBJECT-TYPE
        SYNTAX      NTPSignedTimeValue
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        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."
        ::= { rcNtpFilterRegisterEntry 3 }

rcNtpFilterPeersDispersion OBJECT-TYPE
        SYNTAX      NTPUnsignedTimeValue
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        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."
        ::= { rcNtpFilterRegisterEntry 4 }

END

