-- *****************************************************************
-- MY-NTP-MIB.mib:  My NTP MIB file
--
-- $Copyright$
-- 
-- *****************************************************************
--

DES7200-NTP-MIB DEFINITIONS ::= BEGIN

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

myNtpMIB MODULE-IDENTITY
        LAST-UPDATED "200905140000Z"
        ORGANIZATION "D-Link Crop."
        CONTACT-INFO
                " 
                http://support.dlink.com"
        DESCRIPTION
                "This module defines my ntp mibs."
        REVISION      "200905140000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { myMgmt 49}

myNtpMIBObjects OBJECT IDENTIFIER ::= { myNtpMIB 1 }
myNtpMIBConformance OBJECT IDENTIFIER ::= { myNtpMIB 2 }
myntpSystem      OBJECT IDENTIFIER ::= { myNtpMIBObjects 1 }
myNtpMIBCompliances OBJECT IDENTIFIER ::= { myNtpMIBConformance 1 }
myNtpMIBGroups OBJECT IDENTIFIER ::= { myNtpMIBConformance 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 
--    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 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

myntpSysLeap 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 myntpSysStratum has a value of 1."
    ::= { myntpSystem 1 }

myntpSysStratum 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."
    ::= { myntpSystem 2 }

myntpSysPrecision OBJECT-TYPE
    SYNTAX INTEGER(-24..24)
    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)."
    ::= { myntpSystem 3 }

myntpSysRootDelay 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"
    ::= { myntpSystem 4 }

myntpSysRootDispersion 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"
    ::= { myntpSystem 5 }

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

myntpSysRefTime 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."
    ::= { myntpSystem 7 }

-- compliance statements
myNtpSysGroup OBJECT-GROUP
          OBJECTS {
          myntpSysLeap, 
          myntpSysStratum, 
          myntpSysPrecision,
          myntpSysRootDelay, 
          myntpSysRootDispersion, 
          myntpSysRefId,
          myntpSysRefTime
        }
        STATUS  current
        DESCRIPTION
                "The NTP system variables."
        ::= { myNtpMIBGroups 1 }

myNtpMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for agents which implement the NTP MIB."
        MODULE  -- this module
                MANDATORY-GROUPS { myNtpMIBGroups
                 }
        ::= { myNtpMIBCompliances 1 }

END

