-- *****************************************************************
-- CISCO-PTP-MIB.my
--   
-- August 2010, Vinay Shankarkumar
--   
-- Copyright (c) 2010-2011-2020 by cisco Systems Inc.
-- All rights reserved.
--   
-- *****************************************************************

CISCO-PTP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Integer32,
    Gauge32,
    Unsigned32,
    Counter32,
    Counter64,
    NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    OBJECT-GROUP,
    MODULE-COMPLIANCE,
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    TEXTUAL-CONVENTION,
    TruthValue,
    DisplayString,
    RowStatus
        FROM SNMPv2-TC
    InetAddressType,
    InetAddress
        FROM INET-ADDRESS-MIB
    InterfaceIndexOrZero
        FROM CISCO-TC
    ciscoMgmt
        FROM CISCO-SMI;


ciscoPtpMIB MODULE-IDENTITY
    LAST-UPDATED    "202003170000Z"
    ORGANIZATION    "Cisco Systems, Inc."
    CONTACT-INFO
            "Cisco Systems
            Customer Service

            Postal: 170 W Tasman Drive
            San Jose, CA  95134
            USA

            Tel: +1 800 553-NETS

            E-mail: cs-<list>@cisco.com"
    DESCRIPTION
        "The MIB module for PTPv2 (IEEE1588 - 2008)

        Overview of PTPv2 (IEEE 1588-2008)

        This IEEE standard defines a protocol enabling precise
        synchronization of clocks in measurement and control systems
        implemented with packet-based networks, the IEEE Standard PTPv2
        1588 (2008). This MIB does not address the standard IEEE
        1588 (2002). The protocol is applicable to network elements
        communicating using IP. The protocol enables heterogeneous
        systems that include clocks of various inherent precision,
        resolution, and stability to synchronize to a grandmaster
        clock.
        The protocol supports system-wide synchronization accuracy in
        the sub-microsecond range with minimal network and local clock
        computing resources. The standard uses UDP/IP. It includes
        formal mechanisms for message extensions, higher sampling
        rates, correction for asymmetry, a clock type to reduce error
        accumulation in large topologies, and specifications on how to
        incorporate the resulting additional data into the
        synchronization protocol. The standard defines conformance and
        management capability also.

        MIB description

        This MIB is to support the Precision Timing Protocol (PTP)
        feature of Cisco System devices.

        Acronyms:
                 ARB       arbitrary
                 BMC       best master clock
                 CAN       Controller Area Network
                 CP        Communication Profile
                           [according to IEC 61784-1:200710]
                 CPF       Communication Profile Family
                           [according to IEC 61784-1:2007]
                 DS        Differentiated Service
                 E2E       End-to-End
                 E2ETC     End-to-End Transparent Clock
                 EUI       Extended Unique Identifier.
                 FFO       Fractional Frequency Offset
                 GPS       Global Positioning System
                 IANA      Internet Assigned Numbers Authority
                 ICV       Integrity Check Value
                 ID        Identification
                 IPv4      Internet Protocol version 4
                 IPv6      Internet Protocol version 6
                 JD        Julian Date
                 JDN       Julian Day Number
                 MAC       Media Access Control
                           [according to IEEE Std 802.3-2005]
                 MJD       Modified Julian Day
                 NIST      National Institute of Standards and
        Technology                    (see www.nist.gov)
                 NTP       Network Time Protocol (see IETF RFC 1305
        [B7])
                 OUI       Organizational Unique Identifier(allocated
        by
        the IEEE)
                 P2P       Peer-to-Peer
                 P2PTC     Peer-To-Peer Transparent Clock
                 PHY       physical layer [according to IEEE Std
        802.3-2005]
                 POSIX     Portable Operating System Interface
                           (see ISO/IEC 9945:2003)
                 PPS       Pulse per Second
                 PTP       Precision Time Protocol
                 SA        Security Associations
                 SNTP      Simple Network Time Protocol
                 SOF       Start of Frame
                 TAI       International Atomic Time
                 TC        Traffic Class
                 TC        Transparent Clock
                 TLV       Type, Length, Value [according to IEEE Std
        802.1AB]
                 ToD       Time of Day Synchronization
                 ToS       Type of Service
                 UCMM      UnConnect Message Manager
                 UDP/IP    User Datagram Protocol
                 UTC       Coordinated Universal Time

        References:
           [1]  Precision clock synchronization protocol for networked
        measurement and control systems - IEC 61588 IEEE 1588(tm)
        Edition 2.0 2009-02


        Definitions from [1] section 3.1

        Accuracy:
        The mean of the time or frequency error between the clock under
        test and a perfect reference clock, over an ensemble of
        measurements.  Stability is a measure of how the mean varies
        with respect to variables such as time, temperature, and so on.

        The precision is a measure of the deviation of the error from
        the mean.

        Atomic process:
        A process is atomic if the values of all inputs to the process
        are not permitted to change until all of the results of the
        process are instantiated, and the outputs of the process are
        not visible to other processes until the processing of each
        output is complete.

        Boundary clock:
        A clock that has multiple Precision Time Protocol(PTP) ports in
        a domain and maintains the timescale used in the domain.  It
        may serve as the source of time, i.e., be a master clock, and
        may synchronize to another clock, i.e., be a slave clock.

        Boundary node clock:
        A clock that has multiple Precision Time Protocol(PTP) ports in
        a domain and maintains the timescale used in the domain. It
        differs from the boundary clock in that the clock roles can
        change.

        Clock:
        A node participating in the Precision Time Protocol (PTP) that
        is capable of providing a measurement of the passage of time
        since a defined epoch.

        Domain:
        A logical grouping of clocks that synchronize to each other
        using the protocol, but that are not necessarily synchronized
        to clocks in another domain.

        End-to-end transparent clock:
        A transparent clock that supports the use of the end-to-end
        delay measurement mechanism between slave clocks and the master
        clock.  Each node must measure the residence time of PTP event
        messages and accumulate it in Correction Field.

        Epoch:
        The origin of a timescale.

        Event:
        An abstraction of the mechanism by which signals or conditions
        are generated and represented.

        Foreign master:
        An ordinary or boundary clock sending Announce messages to
        another clock that is not the current master recognized by the
        other clock.

        Grandmaster clock:
        Within a domain, a clock that is the ultimate source of time
        for clock synchronization using the protocol.

        Holdover:
        A clock previously synchronized/syntonized to another clock
        (normally a primary reference or a master clock) but now
        free-running based on its own internal oscillator, whose
        frequency is being adjusted using data acquired while it had
        been synchronized/syntonized to the other clock.  It is said to
        be in holdover or in the holdover mode, as long as it is within
        its accuracy requirements.

        Link:
        A network segment between two Precision Time Protocol ports
        supporting the peer delay mechanism of this standard.  The peer
        delay mechanism is designed to measure the propagation time
        over such a link.

        Management node:
        A device that configures and monitors clocks.

        Master clock:
        In the context of a single Precision Time Protocol
        communication path, a clock that is the source of time to which
        all other clocks on that path synchronize.

        Message timestamp point:
        A point within a Precision Time Protocol event message serving
        as a reference point in the message.  A timestamp is defined by
        the instant a message timestamp point passes the reference
        plane of a clock.

        Multicast communication:
        A communication model in which each Precision Time Protocol
        message sent from any PTP port is capable of being received and
        processed by all PTP ports on the same PTP communication path.

        Node:
        A device that can issue or receive Precision Time Protocol
        communications on a network.

        One-step clock:
        A clock that provides time information using a single event
        message.

        On-pass support:
        Indicates that each node in the synchronization chain from
        master to slave can support IEEE-1588.

        Ordinary clock:
        A clock that has a single Precision Time Protocol port in a
        domain and maintains the timescale used in the domain.  It may
        serve as a source of time, i.e., be a master clock, or may
        synchronize to another clock, i.e., be a slave clock.

        Parent clock:
        The master clock to which a clock is synchronized.


        Peer-to-peer transparent clock:
        A transparent clock that, in addition to providing Precision
        Time Protocol event transit time information, also provides
        corrections for the propagation delay of the link connected to
        the port receiving the PTP event message.  In the presence of
        peer-to-peer transparent clocks, delay measurements between
        slave clocks and the master clock are performed using the
        peer-to-peer delay measurement mechanism.


        Phase change rate:
        The observed rate of change in the measured time with respect
        to the reference time.  The phase change rate is equal to the
        fractional frequency offset between the measured frequency and
        the reference frequency.

        PortNumber:
        An index identifying a specific Precision Time Protocol port on
        a PTP node.

        Primary reference:
        A source of time and or frequency that is traceable to
        international standards.

        Profile:
        The set of allowed Precision Time Protocol features applicable
        to a device.

        Precision Time Protocol communication:
        Information used in the operation of the protocol, transmitted
        in a PTP message over a PTP communication path.

        Precision Time Protocol communication path: The signaling path
        portion of a particular network enabling direct communication
        among ordinary and boundary clocks.

        Precision Time Protocol node:
        PTP ordinary, boundary, or transparent clock or a device that
        generates or parses PTP messages.

        Precision Time Protocol port:
        A logical access point of a clock for PTP communications to the
        communications network.

        Recognized standard time source:
        A recognized standard time source is a source external to
        Precision Time Protocol that provides time and/or frequency as
        appropriate that is traceable to the international standards
        laboratories maintaining clocks that form the basis for the
        International Atomic Time and Universal Coordinated Time
        timescales.  Examples of these are Global Positioning System,
        NTP, and National Institute of Standards and Technology (NIST)
        timeservers.

        Requestor:
        The port implementing the peer-to-peer delay mechanism that
        initiates the mechanism by sending a Pdelay_Req message.

        Responder:
        The port responding to the receipt of a Pdelay_Req message as
        part of the operation of the peer-to-peer delay mechanism.

        Synchronized clocks:
        Two clocks are synchronized to a specified uncertainty if they
        have the same  epoch and their measurements of the time of a
        single event at an arbitrary time differ by no more than that
        uncertainty.

        Syntonized clocks:
        Two clocks are syntonized if the duration of the second is the
        same on both, which means the time as measured by each advances
        at the same rate. They may or may not share the same epoch.

        Time of Day:


        Timeout:
        A mechanism for terminating requested activity that, at least
        from the requester's perspective, does not complete within the
        specified time.

        Timescale:
        A linear measure of time from an epoch.

        Traceability:
        A property of the result of a measurement or the value of a
        standard whereby it can be related to stated references,
        usually national or international standards, through an unbroken
        chain of comparisons all having stated uncertainties.

        Translation device:
        A boundary clock or, in some cases, a transparent clock that
        translates the protocol messages between regions implementing
        different transport and messaging protocols, between different
        versions of IEEE Std 1588-2008/IEC 61588:2009, or different
        Precision Time Protocol profiles.

        transparent clock:
        A device that measures the time taken for a Precision Time
        Protocol event message to transit the device and provides this
        information to clocks receiving this PTP event message.

        Two-step clock:
        A clock that provides time information using the combination of
        an event message and a subsequent general message.

        The below table specifies the object formats of the various
        textual conventions used.

        Data type mapping     Textual Convention  SYNTAX
        --------------------  ------------------  ---------------------
        5.3.2 TimeInterval    ClockTimeInterval   OCTET
        STRING(SIZE(1..255))
        5.3.3 Timestamp       ClockTimestamp      OCTET STRING(SIZE(6))
        5.3.4 ClockIdentity   ClockIdentity       OCTET
        STRING(SIZE(1..255))
        5.3.5 PortIdentity    ClockPortNumber     INTEGER(1..65535)
        5.3.7 ClockQuality    ClockQualityClassType

        Simple master-slave hierarchy [1] section 6.6.2.4

          ---------------
          - Ordinary    -
          - Clock(1)    -
          - GrandMaster -
          -------M-------
                 |
                 1
                 |
          -------S-------------------------------
          - Boundary                            -
          - Clock(1)                            -
          --------------M------------------M-----
                        |                  |
                        2                  3
                        |                  |
                   -----S------     -------S------------------
                   - Ordinary -     - Boundary               -
                   - Clock(2) -     - Clock(2)               -
                   ------------     -----M-------------M------
                                         |             |
                                         4             5
                                         |             |
                                    -----S------  -----S------
                                    - Ordinary -  - Ordinary -
                                    - Clock(3) -  - Clock(4) -
                                    ------------  ------------

          Grandmaster

          Boundary Clock(0-N)   Ordinary Clocks(0-N)
          Ordinary Clocks(0-N)


         Relationship cardinality
            PTP system 1 : N PTP Clock
            PTP Clock 1 : 1 Domain
            PTP Clock 1 : N PTP Ports
            PTP Port N : N Physical Port (interface in IF-MIB)

        Transparent clock diagram from section 6.7.1.3 of [1]


                  +----------------------------+
                  |     Boundary clock - 1     |
                  +----------------------------+
                  |                       |
                  |                       |
          +-- A --+                       B
          |                               |
        +---------------------+           |
        |   Ordinary clock - 1|           |
        +---------------------+           |
                                          +----------------------+
        +--------------+                  |      End-to-end      |
        |  Ordinary    |------------------|  transparent clock-  |
        |  clock 1-1   |                  |       1 - 1          |
        +--------------+                  +----------------------+
                                           |
                                           |
                                           C
                                           |
                                           |
                                          +----------------------+
        +--------------+                  |      End-to-end      |
        |  Ordinary    |------------------|  transparent clock-  |
        |  clock 1-2   |                  |       1 - 2          |
        +--------------+                  +----------------------+


        The MIB refers to the sections of the IEEE 1588 standard for
        reference. Throughout the MIB various secions from the standard
        are referenced"
    REVISION        "202003170000Z"
    DESCRIPTION
        "Added a new MIB notification ciscoPtpMIBNotifyRogueMaster
        for the new object cPtpClockRogueMasterDetect."
    REVISION        "202003160000Z"
    DESCRIPTION
        "Added the following objects to cPtpClockPortTable.

        cPtpClockPortBlockGMC                             TruthValue
        cPtpClockRogueMasterDetect                        TruthValue

        Also modified the MIB conform group, ciscoPtpMIBClockPortGroup
        for the new objects.


        Added the following objects to the MIB

        cPtpClockSystemTimePropertiesDomainIndex        ClockDomainType
        cPtpClockSystemTimePropertiesClockTypeIndex     ClockType
        cPtpClockSystemTimePropertiesInstanceIndex     
        ClockInstanceType
        cPtpClockSystemTimePropertiesClockSyntonized    TruthValue
        cPtpClockSystemTimePropertiesDomainSyntonized   TruthValue
        cPtpClockSystemTimePropertiesFrequencyOffset    Integer32

        to cPtpClockSystemTimePropertiesTable.

        Added a new MIB conform group,
        ciscoPtpMIBClockSystemTimePropertiesGroup for the new objects.

        Also modified the ciscoPtpMIBCompliances2 to add the new group
        ciscoPtpMIBClockSystemTimePropertiesGroup."
    REVISION        "201908220000Z"
    DESCRIPTION
        "Version updating PTP notification objects."
    ::= { ciscoMgmt 760 }



ClockDomainType ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "d"
    STATUS          current
    DESCRIPTION
        "The Domain is identified by an integer, the domainNumber, in
        the range of 0 to 255. An integer value that is used to assign
        each PTP device to a particular domain. The following values
        define the valid domains. [1] Section 7.1 Domains Table 2

                 Value       definition.
                 ---------   -------------------
                 0           Default domain
                 1           Alternate domain 1
                 2           Alternate domain 2
                 3           Alternate domain 3
                 4 - 127     User-defined domains
                 128 - 255   Reserved"

    REFERENCE       "Section 7.1 Domains and Table 2 of [1]"
    SYNTAX          Unsigned32 (0..255)

ClockIdentity ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The clock Identity is an 8-octet array and will be presented in
        the form of a character array. The value of the
        ClockIdentity should be taken from the IEEE EUI-64 individual
        assigned numbers as indicated in Section 7.5.2.2.2 of [1].  The
        EUI-64 address is divided into the following fields.

             OUI byte[0-2]
             Extension identifier bytes:[3-7]

        The clock identifier can be constructed from existing EUI-48
        assignments and here is an abbreviated example extracted from
        section 7.5.2.2.2 [1].

             Company EUI-48 = 0xACDE4823456716
             EUI-64 = ACDE48FFFE23456716

        It is important to note the IEEE Registration Authority has
        deprecated the use of MAC-48 in any new design."

    REFERENCE       "Section 7.5.2.2.1 from [1]"
    SYNTAX          OCTET STRING (SIZE (1..255))

ClockIntervalBase2 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "d"
    STATUS          current
    DESCRIPTION
        "The interval included in message types Announce, Sync,
        Delay_Req, and Pdelay_Req as indicated in section 7.7.2.1 of
        [1].

        The mean time interval between successive messages shall be
        represented as the logarithm to the base 2 of this time
        interval measured in seconds on the local clock of the device
        sending the message. The values of these logarithmic attributes
        shall be selected from integers in the range -128 to 127 subject
        to further limits established in an applicable PTP profile."

    REFERENCE
        "Section 7.7.2.1 General interval specification of [1]"
    SYNTAX          Integer32 (-128..127)

ClockMechanismType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The clock type based on whether End to End or peer to peer
        mechanisms are used. The mechanism used to calculate the Mean
        Path Delay as indicated in Table 9 of IEEE 1588-2008.

        Delay mechanism       Value(hex) Specification
        E2E                    01        The port is configured to use
                                         the delay request-response
                                         mechanism.

        P2P                    02        The port is configured to use
                                         the peer delay mechanism.

        DISABLED               FE        The port does not implement
                                         the delay mechanism."

    REFERENCE       "Sections 8.2.5.4.4, 6.6.4 and 7.4.2 of [1]."
    SYNTAX          INTEGER  {
                        e2e(1),
                        p2p(2),
                        disabled(254)
                    }

ClockInstanceType ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "d"
    STATUS          current
    DESCRIPTION
        "The instance of the Clock of a given clock type in a given
        domain."
    SYNTAX          Unsigned32 (0..255)

ClockPortNumber ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "d"
    STATUS          current
    DESCRIPTION
        "An index identifying a specific Precision Time Protocol (PTP)
        port on a PTP node."

    REFERENCE       "Section 7.5.2.3 Port Number and 5.3.5 of [1]"
    SYNTAX          Unsigned32 (0..65535)

ClockPortState ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This is the value of the current state of the protocol engine
        associated with this port.
        Port state      Value     Description
        -----------------------------------------------------------
        initializing      1       In this state a port initializes
                                  its data sets, hardware, and
                                  communication facilities.
        faulty            2       The fault state of the protocol.
        disabled          3       The port shall not place any
                                  messages on its communication path.
        listening         4       The port is waiting for the
                                  announceReceiptTimeout to expire or
                                  to receive an Announce message from
                                  a master.
        preMaster         5       The port shall behave in all respects
                                  as though it were in the MASTER state
                                  except that it shall not place any
                                  messages on its communication path
                                  except for Pdelay_Req, Pdelay_Resp,
                                  Pdelay_Resp_Follow_Up, signaling, or
                                  management messages.
        master            6       The port is behaving as a master
                                  port. 
        passive           7       The port shall not place any
                                  messages on its communication path
                                  except for Pdelay_Req, Pdelay_Resp,
                                  Pdelay_Resp_Follow_Up, or signaling
                                  messages, or management messages
                                  that are a required response to
                                  another management message
        uncalibrated      8       The local port is preparing to
                                  synchronize to the master port.
        slave             9       The port is synchronizing to the
                                  selected master port."

    REFERENCE       "Section 8.2.5.3.1 portState and 9.2.5 of [1]"
    SYNTAX          INTEGER  {
                        initializing(1),
                        faulty(2),
                        disabled(3),
                        listening(4),
                        preMaster(5),
                        master(6),
                        passive(7),
                        uncalibrated(8),
                        slave(9)
                    }

ClockProfileType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Clock Profile used. From [1] section 3.1.30, Profile is the set
        of allowed Precision Time Protocol (PTP) features applicable to
        a device."

    REFERENCE       "Section 3.1.30 and 19.3 PTP profiles of [1]"
    SYNTAX          INTEGER  {
                        default(1),
                        telecom(2),
                        vendorspecific(3)
                    }

ClockQualityAccuracyType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The ClockQuality as specified in section 5.3.7, 7.6.2.5 and
        Table 6 of [1].

        The following values are not represented in the enumerated
        values.

                 0x01-0x1F Reserved
                 0x32-0x7F Reserved

        It is important to note that section 7.1.1 RFC2578 allows for
        gaps and enumerate values to start with zero when indicated by
        the protocol."

    REFERENCE       "Section 5.3.7, 7.6.2.5 and Table 6 of [1]"
    SYNTAX          INTEGER  {
                        reserved00(1), -- 0
                        nanoSecond25(32), -- 0x20
                        nanoSecond100(33), -- 0x21
                        nanoSecond250(34), -- 0x22
                        microSec1(35), -- 0x23
                        microSec2dot5(36), -- 0x24
                        microSec10(37), -- 0x25
                        microSec25(38), -- 0x26
                        microSec100(39), -- 0x27
                        microSec250(40), -- 0x28
                        milliSec1(41), -- 0x29
                        milliSec2dot5(42), -- 0x2A
                        milliSec10(43), -- 0x2B
                        milliSec25(44), -- 0x2C
                        milliSec100(45), -- 0x2D
                        milliSec250(46), -- 0x2E
                        second1(47), -- 0x2F
                        second10(48), -- 0x30
                        secondGreater10(49), -- 0x31
                        unknown(254), -- 0xFE
                        reserved255(255) -- 0xFF                        
                    }

ClockQualityClassType ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "d"
    STATUS          current
    DESCRIPTION
        "The ClockQuality as specified in section 5.3.7, 7.6.2.4 and
        Table 5 of [1].

         Value    Description
         ------
        ----------------------------------------------------------
               0  Reserved to enable compatibility with future
                  versions.
             1-5  Reserved
               6  Shall designate a clock that is synchronized
                  to a primary reference time source.  The
                  timescale distributed shall be PTP.  A
                  clockClass 6 clock shall not be a slave to
                  another clock in the domain.
               7  Shall designate a clock that has previously
                  been designated as clockClass 6 but that has
                  lost the ability to synchronize to a primary
                  reference time source and is in holdover mode
                  and within holdover specifications. The
                  timescale distributed shall be PTP.  A
                  clockClass 7 clock shall not be a slave to
                  another clock in the domain.
               8  Reserved.
            9-10  Reserved to enable compatibility with future
                  versions.
           11-12  Reserved.
              13  Shall designate a clock that is synchronized
                  to an application-specific source of time.
                  The timescale distributed shall be ARB.  A
                  clockClass 13 clock shall not be a slave to
                  another clock in the domain.
              14  Shall designate a clock that has previously
                  been designated as clockClass 13 but that
                  has lost the ability to synchronize to an
                  application-specific source of time and is
                  in holdover mode and within holdover
                  specifications. The timescale distributed
                  shall be ARB.  A clockClass 14 clock shall
                  not be a slave to another clock in the domain.
           15-51  Reserved.
              52  Degradation alternative A for a clock of
                  clockClass 7 that is not within holdover
                  specification.  A clock of clockClass 52
                  shall not be a slave to another clock in
                  the domain.
           53-57  Reserved.
              58  Degradation alternative A for a clock of
                  clockClass 14 that is not within holdover
                  specification. A clock of clockClass 58 shall
                  not be a slave to another clock in the domain.
           59-67  Reserved.
          68-122  For use by alternate PTP profiles.
         123-127  Reserved.
         128-132  Reserved.
         133-170  For use by alternate PTP profiles.
         171-186  Reserved.

             187  Degradation alternative B for a clock of
                  clockClass 7 that is not within holdover
                  specification. A clock of clockClass 187 may
                  be a slave to another clock in the domain.
         188-192 Reserved.
             193 Degradation alternative B for a clock of
                 clockClass 14 that is not within holdover
                 specification. A clock of clockClass 193 may
                 be a slave to another clock in the domain.
         194-215 Reserved.
         216-232 For use by alternate PTP profiles.
         233-247 Reserved.
             248 Default. This clockClass shall be used if
                 none of the other clockClass definitions apply.
         249-250 Reserved.
             251 Reserved for version 1 compatibility; see Clause 18.
         252-254 Reserved.
             255 Shall be the clockClass of a slave-only clock; see
        9.2.2."

    REFERENCE       "section 5.3.7, 7.6.2.4 and Table 5 of [1]."
    SYNTAX          Unsigned32 (0..255)

ClockRoleType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The Clock Role. The protocol generates a Master Slave
        relationship among the clocks in the system.

        Clock Role      Value     Description
        --------------------------------------------------------------
        Master clock     1        A clock that is the source of
                                  time to which all other clocks on
                                  that path synchronize.

        Slave clock       2       A clock which synchronizes to
                                  another clock (master)."
    SYNTAX          INTEGER  {
                        master(1),
                        slave(2)
                    }

ClockStateType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The clock state returned by PTP engine.

        Clock State      Value   Description
        --------------------------------------------------------------
        Freerun state       1   Applies to a slave device that is not
                                locked to a master. This is the initial
                                state a slave starts out with when it
                                is not getting any PTP packets from the
                                master or because of some other input
                                error (erroneous packets, etc).

        Holdover state      2  In this state the slave device is
                                locked to a master but communication
                                with the master is lost or the
                                timestamps in the ptp packets are
                                incorrect. But since the slave was
                                locked to the master, it can run with
                                the same accuracy for sometime. The
                                slave can continue to operate in this
                                state for some time. If communication
                                with the master is not restored for a
                                while, the device is moved to the
                                FREERUN state.

        Acquiring state     3   The slave device is receiving packets
                                from a master and is trying to acquire
                                a lock.

        Freq_locked state   4   Slave device is locked to the Master
                                with respect to frequency, but not phase
                                aligned

        Phase_aligned state 5   Locked to the master with respect to
                                frequency and phase."
    SYNTAX          INTEGER  {
                        freerun(1),
                        holdover(2),
                        acquiring(3),
                        frequencyLocked(4),
                        phaseAligned(5)
                    }

ClockTimeSourceType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The ClockQuality as specified in section 5.3.7, 7.6.2.6 and
        Table 7 of [1].

        The following values are not represented in the enumerated
        values.

        0xF0-0xFE  For use by alternate PTP profiles
        0xFF       Reserved

        It is important to note that section 7.1.1 RFC2578 allows for
        gaps and enumerate values to start with zero when indicated by
        the protocol."

    REFERENCE       "section 5.3.7, 7.6.2.6 and Table 7 of [1]."
    SYNTAX          INTEGER  {
                        atomicClock(16), -- 0x10
                        gps(32), -- 0x20
                        terrestrialRadio(48), -- 0x22
                        ptp(64), -- 0x40
                        ntp(80), -- 0x50
                        handSet(96), -- 0x60
                        other(144), -- 0x90
                        internalOsillator(160) -- 0xA0                        
                    }

ClockTimeInterval ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention corresponds to the TimeInterval
        structure indicated in section 5.3.2 of [1]. It will be
        presented in the form of a character array.

        The TimeInterval type represents time intervals.

             struct TimeInterval
             {
                  Integer64 scaledNanoseconds;
             };

        The scaledNanoseconds member is the time interval expressed in
        units of nanoseconds and multiplied by 2**16.

        Positive or negative time intervals outside the maximum range
        of this data type shall be encoded as the largest positive and
        negative values of the data type, respectively.

        For example, 2.5 ns is expressed as 0000 0000 0002 8000 in
        Base16."

    REFERENCE
        "Section 5.3.2 and setion 7.7.2.1 Timer interval
        specification of [1]"
    SYNTAX          OCTET STRING (SIZE (1..255))

ClockTxModeType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Transmission mode.

        unicast. Using unicast commnuication channel.

        multicast. Using Multicast communication channel.

        multicast-mix. Using multicast-unicast communication channel"
    SYNTAX          INTEGER  {
                        unicast(1),
                        multicast(2),
                        multicastmix(3)
                    }

ClockType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The clock types as defined in the MIB module description."

    REFERENCE       "section 6.5.1 of [1]."
    SYNTAX          INTEGER  {
                        ordinaryClock(1),
                        boundaryClock(2),
                        transparentClock(3),
                        boundaryNode(4)
                    }
ciscoPtpMIBNotifs  OBJECT IDENTIFIER
    ::= { ciscoPtpMIB 0 }

ciscoPtpMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoPtpMIB 1 }

ciscoPtpMIBConformance  OBJECT IDENTIFIER
    ::= { ciscoPtpMIB 2 }

ciscoPtpMIBSystemInfo  OBJECT IDENTIFIER
    ::= { ciscoPtpMIBObjects 1 }

-- Conformance Information Definition

ciscoPtpMIBCompliances  OBJECT IDENTIFIER
    ::= { ciscoPtpMIBConformance 1 }


ciscoPtpGMClockChange NOTIFICATION-TYPE
    OBJECTS         { cPtpClockParentDSGMClockIdentity }
    STATUS          current
    DESCRIPTION
        "A ciscoPtpPGMClockChange notification is generated when the
        value of cPtpClockParentDSGMClockIdentity is changed.
        The Notification contains the PTP new grand master clock
        identity."
   ::= { ciscoPtpMIBNotifs 1 }

ciscoPtpParentClockChange NOTIFICATION-TYPE
    OBJECTS         { cPtpClockParentDSParentPortIdentity }
    STATUS          current
    DESCRIPTION
        "A ciscoPtpParentlockChange notification is generated when the
        value of cPtpClockParentPortIdentity is changed.
        The Notification contains PTP new parent clock identity and the
        port
        on which this is learnt."
   ::= { ciscoPtpMIBNotifs 2 }

ciscoPtpRogueMaster NOTIFICATION-TYPE
    OBJECTS         {
                        cPtpClockRogueMasterDetect,
                        cPtpClockPortName
                    }
    STATUS          current
    DESCRIPTION
        "A ciscoPtpRogueMaster notification is generated when the
        value of cPtpClockRogueMasterDetect is changed. This object
        specifies the ptp rogue master detection on the port"
   ::= { ciscoPtpMIBNotifs 3 }
ciscoPtpMIBGroups  OBJECT IDENTIFIER
    ::= { ciscoPtpMIBConformance 2 }


ciscoPtpMIBCompliances1 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "Compliance statement for agents that provide read-only support
        for CISCO-PTP-MIB. Such devices can only be monitored using this
        MIB module.

        The Module is implemented with support for read-only. In other
        words, only monitoring is available by implementing this
        MODULE-COMPLIANCE."
    MODULE          -- this module
    MANDATORY-GROUPS { ciscoPtpMIBSystemInfoGroup }
    ::= { ciscoPtpMIBCompliances 1 }

ciscoPtpMIBCompliances2 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "Compliance statement for agents that provide read-only support
        for CISCO-PTP-MIB. Such devices can only be monitored using this
        MIB module.

        The Module is implemented with support for read-only. In other
        words, only monitoring is available by implementing this
        MODULE-COMPLIANCE."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        ciscoPtpMIBClockCurrentDSGroup,
                        ciscoPtpMIBClockParentDSGroup,
                        ciscoPtpMIBClockDefaultDSGroup,
                        ciscoPtpMIBClockRunningGroup,
                        ciscoPtpMIBClockTimepropertiesGroup,
                        ciscoPtpMIBClockSystemTimePropertiesGroup
                    }
    ::= { ciscoPtpMIBCompliances 2 }

ciscoPtpMIBCompliances3 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "Compliance statement for agents that provide read-only support
        for CISCO-PTP-MIB. Such devices can only be monitored using this
        MIB module.

        The Module is implemented with support for read-only. In other
        words, only monitoring is available by implementing this
        MODULE-COMPLIANCE."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        ciscoPtpMIBClockPortGroup,
                        ciscoPtpMIBClockPortDSGroup,
                        ciscoPtpMIBClockPortRunningGroup,
                        ciscoPtpMIBClockPortAssociateGroup
                    }
    ::= { ciscoPtpMIBCompliances 3 }

ciscoPtpMIBCompliances4 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "Compliance statement for agents that provide read-only support
        for CISCO-PTP-MIB. Such devices can only be monitored using this
        MIB module.

        The Module is implemented with support for read-only. In other
        words, only monitoring is available by implementing this
        MODULE-COMPLIANCE."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        ciscoPtpMIBClockTranparentDSGroup,
                        ciscoPtpMIBClockPortTransDSGroup
                    }
    ::= { ciscoPtpMIBCompliances 4 }

ciscoPtpMIBCompliances5 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "Compliance statement for agents that provide read-only support
        for CISCO-PTP-MIB. Such devices can only be monitored using this
        MIB module.

        The Module is implemented with support for read-only. In other
        words, only monitoring is available by implementing this
        MODULE-COMPLIANCE."
    MODULE          -- this module
    MANDATORY-GROUPS { ciscoPtpMIBNotificationGroup }
    ::= { ciscoPtpMIBCompliances 5 }

ciscoPtpMIBSystemInfoGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpSystemDomainTotals,
                        cPtpDomainClockPortsTotal,
                        cPtpDomainClockPortPhysicalInterfacesTotal,
                        cPtpClockInput1ppsEnabled,
                        cPtpClockOutput1ppsEnabled,
                        cPtpClockOutput1ppsOffsetEnabled,
                        cPtpClockInputFrequencyEnabled,
                        cPtpClockTODEnabled,
                        cPtpClockOutput1ppsOffsetValue,
                        cPtpClockOutput1ppsOffsetNegative,
                        cPtpSystemProfile,
                        cPtpClockInput1ppsInterface,
                        cPtpClockOutput1ppsInterface,
                        cPtpClockTODInterface
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing system-wide
        information"
    ::= { ciscoPtpMIBGroups 1 }

ciscoPtpMIBClockCurrentDSGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockCurrentDSStepsRemoved,
                        cPtpClockCurrentDSOffsetFromMaster,
                        cPtpClockCurrentDSMeanPathDelay
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing PTP Current Dataset
        information"
    ::= { ciscoPtpMIBGroups 2 }

ciscoPtpMIBClockParentDSGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockParentDSParentPortIdentity,
                        cPtpClockParentDSParentStats,
                        cPtpClockParentDSOffset,
                        cPtpClockParentDSClockPhChRate,
                        cPtpClockParentDSGMClockIdentity,
                        cPtpClockParentDSGMClockPriority1,
                        cPtpClockParentDSGMClockPriority2,
                        cPtpClockParentDSGMClockQualityClass,
                        cPtpClockParentDSGMClockQualityAccuracy,
                        cPtpClockParentDSGMClockQualityOffset
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing PTP Parent Dataset
        information"
    ::= { ciscoPtpMIBGroups 3 }

ciscoPtpMIBClockDefaultDSGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockDefaultDSTwoStepFlag,
                        cPtpClockDefaultDSClockIdentity,
                        cPtpClockDefaultDSPriority1,
                        cPtpClockDefaultDSPriority2,
                        cPtpClockDefaultDSSlaveOnly,
                        cPtpClockDefaultDSQualityClass,
                        cPtpClockDefaultDSQualityAccuracy,
                        cPtpClockDefaultDSQualityOffset
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing PTP Default Dataset
        information"
    ::= { ciscoPtpMIBGroups 4 }

ciscoPtpMIBClockRunningGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockRunningState,
                        cPtpClockRunningPacketsSent,
                        cPtpClockRunningPacketsReceived
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing PTP running state
        information"
    ::= { ciscoPtpMIBGroups 5 }

ciscoPtpMIBClockTimepropertiesGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockTimePropertiesDSCurrentUTCOffsetValid,
                        cPtpClockTimePropertiesDSCurrentUTCOffset,
                        cPtpClockTimePropertiesDSLeap59,
                        cPtpClockTimePropertiesDSLeap61,
                        cPtpClockTimePropertiesDSTimeTraceable,
                        cPtpClockTimePropertiesDSFreqTraceable,
                        cPtpClockTimePropertiesDSPTPTimescale,
                        cPtpClockTimePropertiesDSSource
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing PTP Time Properties
        information"
    ::= { ciscoPtpMIBGroups 6 }

ciscoPtpMIBClockTranparentDSGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockTransDefaultDSClockIdentity,
                        cPtpClockTransDefaultDSNumOfPorts,
                        cPtpClockTransDefaultDSDelay,
                        cPtpClockTransDefaultDSPrimaryDomain
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing PTP Transparent
        Dataset
        information"
    ::= { ciscoPtpMIBGroups 7 }

ciscoPtpMIBClockPortGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockPortName,
                        cPtpClockPortSyncOneStep,
                        cPtpClockPortCurrentPeerAddress,
                        cPtpClockPortNumOfAssociatedPorts,
                        cPtpClockPortCurrentPeerAddressType,
                        cPtpClockPortRole,
                        cPtpClockPortBlockGMC,
                        cPtpClockRogueMasterDetect
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing information for a
        given PTP Port."
    ::= { ciscoPtpMIBGroups 8 }

ciscoPtpMIBClockPortDSGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockPortDSName,
                        cPtpClockPortDSPortIdentity,
                        cPtpClockPortDSAnnouncementInterval,
                        cPtpClockPortDSAnnounceRctTimeout,
                        cPtpClockPortDSSyncInterval,
                        cPtpClockPortDSMinDelayReqInterval,
                        cPtpClockPortDSPeerDelayReqInterval,
                        cPtpClockPortDSDelayMech,
                        cPtpClockPortDSPeerMeanPathDelay,
                        cPtpClockPortDSGrantDuration,
                        cPtpClockPortDSPTPVersion
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing PTP Port Dataset
        information"
    ::= { ciscoPtpMIBGroups 9 }

ciscoPtpMIBClockPortRunningGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockPortRunningName,
                        cPtpClockPortRunningState,
                        cPtpClockPortRunningRole,
                        cPtpClockPortRunningInterfaceIndex,
                        cPtpClockPortRunningIPversion,
                        cPtpClockPortRunningEncapsulationType,
                        cPtpClockPortRunningTxMode,
                        cPtpClockPortRunningRxMode,
                        cPtpClockPortRunningPacketsReceived,
                        cPtpClockPortRunningPacketsSent
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing PTP running interface
        information"
    ::= { ciscoPtpMIBGroups 10 }

ciscoPtpMIBClockPortTransDSGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockPortTransDSPortIdentity,
                        cPtpClockPortTransDSlogMinPdelayReqInt,
                        cPtpClockPortTransDSFaultyFlag,
                        cPtpClockPortTransDSPeerMeanPathDelay
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing PTP TransparentDS
        Dataset
        information"
    ::= { ciscoPtpMIBGroups 11 }

ciscoPtpMIBClockPortAssociateGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockPortAssociatePacketsSent,
                        cPtpClockPortAssociatePacketsReceived,
                        cPtpClockPortAssociateAddress,
                        cPtpClockPortAssociateAddressType,
                        cPtpClockPortAssociateInErrors,
                        cPtpClockPortAssociateOutErrors
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing information on peer
        PTP ports for a given PTP clock-port."
    ::= { ciscoPtpMIBGroups 12 }

ciscoPtpMIBNotificationGroup NOTIFICATION-GROUP
   NOTIFICATIONS    {
                        ciscoPtpParentClockChange,
                        ciscoPtpGMClockChange
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing information of PTP
        notifications for changes 
        in PTP parent clock and grand master clock."
    ::= { ciscoPtpMIBGroups 13 }

ciscoPtpMIBClockSystemTimePropertiesGroup OBJECT-GROUP
    OBJECTS         {
                        cPtpClockSystemTimePropertiesClockSyntonized,
                        cPtpClockSystemTimePropertiesDomainSyntonized,
                        cPtpClockSystemTimePropertiesFrequencyOffset
                    }
    STATUS          current
    DESCRIPTION
        "Group which aggregates objects describing PTP Time Properties
        information."
    ::= { ciscoPtpMIBGroups 14 }
ciscoPtpMIBClockInfo  OBJECT IDENTIFIER
    ::= { ciscoPtpMIBObjects 2 }


cPtpSystemTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpSystemEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of count information about the PTP system for all
        domains."
    ::= { ciscoPtpMIBSystemInfo 1 }

cPtpSystemEntry OBJECT-TYPE
    SYNTAX          CPtpSystemEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing count information about a
        single domain. New row entries are added when the PTP clock for
        this domain is configured, while the unconfiguration of the PTP
        clock removes it."
    INDEX           {
                        cPtpDomainIndex,
                        cPtpInstanceIndex
                    } 
    ::= { cPtpSystemTable 1 }

CPtpSystemEntry ::= SEQUENCE {
        cPtpDomainIndex                            ClockDomainType,
        cPtpInstanceIndex                          ClockInstanceType,
        cPtpDomainClockPortsTotal                  Gauge32,
        cPtpDomainClockPortPhysicalInterfacesTotal Gauge32
}

cPtpDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices. The Clock Domain is a logical group of
        clocks and devices that synchronize with each other using the
        PTP protocol.


        0           Default domain
        1           Alternate domain 1
        2           Alternate domain 2
        3           Alternate domain 3
        4 - 127     User-defined domains
        128 - 255   Reserved" 
    ::= { cPtpSystemEntry 1 }

cPtpInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the Clock for this
        domain." 
    ::= { cPtpSystemEntry 2 }

cPtpDomainClockPortsTotal OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "ptp ports"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the total number of clock ports
        configured within a domain." 
    ::= { cPtpSystemEntry 3 }

cPtpDomainClockPortPhysicalInterfacesTotal OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "physical ports"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the total number of clock port Physical
        interfaces configured within a domain instance for PTP
        communications." 
    ::= { cPtpSystemEntry 4 }
 


cPtpSystemDomainTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpSystemDomainEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP system for all clock modes
        -- ordinary, boundary or transparent."
    ::= { ciscoPtpMIBSystemInfo 2 }

cPtpSystemDomainEntry OBJECT-TYPE
    SYNTAX          CPtpSystemDomainEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing information about a single
        clock mode for the PTP system. A row entry gets added when PTP
        clocks are configured on the router."
    INDEX           { cPtpSystemDomainClockTypeIndex } 
    ::= { cPtpSystemDomainTable 1 }

CPtpSystemDomainEntry ::= SEQUENCE {
        cPtpSystemDomainClockTypeIndex ClockType,
        cPtpSystemDomainTotals         Gauge32
}

cPtpSystemDomainClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the
        Textual convention description." 
    ::= { cPtpSystemDomainEntry 1 }

cPtpSystemDomainTotals OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "domains"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the  total number of PTP domains for this
        particular clock type configured in this node." 
    ::= { cPtpSystemDomainEntry 2 }
 


cPtpClockNodeTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockNodeEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP system for a given domain."
    ::= { ciscoPtpMIBSystemInfo 3 }

cPtpClockNodeEntry OBJECT-TYPE
    SYNTAX          CPtpClockNodeEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing information about a single
        domain. A entry is added when a new PTP clock domain is
        configured on the router."
    INDEX           {
                        cPtpClockDomainIndex,
                        cPtpClockTypeIndex,
                        cPtpClockInstanceIndex
                    } 
    ::= { cPtpClockNodeTable 1 }

CPtpClockNodeEntry ::= SEQUENCE {
        cPtpClockDomainIndex              ClockDomainType,
        cPtpClockTypeIndex                ClockType,
        cPtpClockInstanceIndex            ClockInstanceType,
        cPtpClockInput1ppsEnabled         TruthValue,
        cPtpClockInputFrequencyEnabled    TruthValue,
        cPtpClockTODEnabled               TruthValue,
        cPtpClockOutput1ppsEnabled        TruthValue,
        cPtpClockOutput1ppsOffsetEnabled  TruthValue,
        cPtpClockOutput1ppsOffsetValue    Unsigned32,
        cPtpClockOutput1ppsOffsetNegative TruthValue,
        cPtpClockInput1ppsInterface       DisplayString,
        cPtpClockOutput1ppsInterface      DisplayString,
        cPtpClockTODInterface             DisplayString
}

cPtpClockDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the  domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockNodeEntry 1 }

cPtpClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the
        Textual convention description." 
    ::= { cPtpClockNodeEntry 2 }

cPtpClockInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the Clock for this clock
        type for the given domain." 
    ::= { cPtpClockNodeEntry 3 }

cPtpClockInput1ppsEnabled OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies whether the node is enabled for PTP input
        clocking using the 1pps interface." 
    ::= { cPtpClockNodeEntry 4 }

cPtpClockInputFrequencyEnabled OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies whether enabled for Frequency input using
        the 1.544 Mhz, 2.048 Mhz, or 10Mhz timing interface." 
    ::= { cPtpClockNodeEntry 5 }

cPtpClockTODEnabled OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies whether the node is enabled for TOD." 
    ::= { cPtpClockNodeEntry 6 }

cPtpClockOutput1ppsEnabled OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies whether the node is enabled for PTP input
        clocking using the 1pps interface." 
    ::= { cPtpClockNodeEntry 7 }

cPtpClockOutput1ppsOffsetEnabled OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies whether an offset is configured in order
        to compensate for a known phase error such as network
        asymmetry."
    REFERENCE
        "section 11 Clock offset, path delay, residence time, and
        asymmetry corrections of [1]" 
    ::= { cPtpClockNodeEntry 8 }

cPtpClockOutput1ppsOffsetValue OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the fixed offset value configured to be
        added for the 1pps output." 
    ::= { cPtpClockNodeEntry 9 }

cPtpClockOutput1ppsOffsetNegative OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies whether the added (fixed) offset to the
        1pps output is negative or not.  When object returns TRUE the
        offset is negative and when object returns FALSE the offset is
        positive." 
    ::= { cPtpClockNodeEntry 10 }

cPtpClockInput1ppsInterface OBJECT-TYPE
    SYNTAX          DisplayString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the 1pps interface used for PTP input
        clocking." 
    ::= { cPtpClockNodeEntry 11 }

cPtpClockOutput1ppsInterface OBJECT-TYPE
    SYNTAX          DisplayString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the 1pps interface used for PTP output
        clocking." 
    ::= { cPtpClockNodeEntry 12 }

cPtpClockTODInterface OBJECT-TYPE
    SYNTAX          DisplayString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the interface used for PTP TOD." 
    ::= { cPtpClockNodeEntry 13 }
 


cPtpSystemProfile OBJECT-TYPE
    SYNTAX          ClockProfileType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP Profile implemented on the
        system."
    REFERENCE       "Section 19.3 PTP profiles of [1]" 
    ::= { ciscoPtpMIBSystemInfo 4 }

cPtpClockCurrentDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockCurrentDSEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP clock Current Datasets for
        all domains."
    ::= { ciscoPtpMIBClockInfo 1 }

cPtpClockCurrentDSEntry OBJECT-TYPE
    SYNTAX          CPtpClockCurrentDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing information about a single
        PTP clock Current Datasets for a domain."
    REFERENCE
        "1588 Version 2.0 Section 8.2.2 currentDS data set member
        specifications of [1]"
    INDEX           {
                        cPtpClockCurrentDSDomainIndex,
                        cPtpClockCurrentDSClockTypeIndex,
                        cPtpClockCurrentDSInstanceIndex
                    } 
    ::= { cPtpClockCurrentDSTable 1 }

CPtpClockCurrentDSEntry ::= SEQUENCE {
        cPtpClockCurrentDSDomainIndex      ClockDomainType,
        cPtpClockCurrentDSClockTypeIndex   ClockType,
        cPtpClockCurrentDSInstanceIndex    ClockInstanceType,
        cPtpClockCurrentDSStepsRemoved     Counter32,
        cPtpClockCurrentDSOffsetFromMaster ClockTimeInterval,
        cPtpClockCurrentDSMeanPathDelay    ClockTimeInterval
}

cPtpClockCurrentDSDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockCurrentDSEntry 1 }

cPtpClockCurrentDSClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the
        Textual convention description." 
    ::= { cPtpClockCurrentDSEntry 2 }

cPtpClockCurrentDSInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockCurrentDSEntry 3 }

cPtpClockCurrentDSStepsRemoved OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "steps"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The current clock dataset StepsRemoved value.

        This object specifies the distance measured by the number of
        Boundary clocks between the local clock and the Foreign master
        as indicated in the stepsRemoved field of Announce messages."
    REFERENCE       "1588 Version 2.0 Section 8.2.2.2 stepsRemoved" 
    ::= { cPtpClockCurrentDSEntry 4 }

cPtpClockCurrentDSOffsetFromMaster OBJECT-TYPE
    SYNTAX          ClockTimeInterval
    UNITS           "Time Interval"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the current clock dataset ClockOffset
        value. The value of the computation of the offset in time
        between
        a slave and a master clock."
    REFERENCE       "1588 Version 2.0 Section 8.2.2.3 of [1]" 
    ::= { cPtpClockCurrentDSEntry 5 }

cPtpClockCurrentDSMeanPathDelay OBJECT-TYPE
    SYNTAX          ClockTimeInterval
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the current clock dataset
        MeanPathDelay value.

        The mean path delay between a pair of ports as measure by the
        delay request-response mechanism."
    REFERENCE       "1588 Version 2.0 Section 8.2.2.4 mean path delay" 
    ::= { cPtpClockCurrentDSEntry 6 }
 


cPtpClockParentDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockParentDSEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP clock Parent Datasets for
        all domains."
    ::= { ciscoPtpMIBClockInfo 2 }

cPtpClockParentDSEntry OBJECT-TYPE
    SYNTAX          CPtpClockParentDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing information about a single
        PTP clock Parent Datasets for a domain."
    REFERENCE
        "Section 8.2.3 parentDS data set member specifications of
        [1]"
    INDEX           {
                        cPtpClockParentDSDomainIndex,
                        cPtpClockParentDSClockTypeIndex,
                        cPtpClockParentDSInstanceIndex
                    } 
    ::= { cPtpClockParentDSTable 1 }

CPtpClockParentDSEntry ::= SEQUENCE {
        cPtpClockParentDSDomainIndex            ClockDomainType,
        cPtpClockParentDSClockTypeIndex         ClockType,
        cPtpClockParentDSInstanceIndex          ClockInstanceType,
        cPtpClockParentDSParentPortIdentity     OCTET STRING,
        cPtpClockParentDSParentStats            TruthValue,
        cPtpClockParentDSOffset                 ClockIntervalBase2,
        cPtpClockParentDSClockPhChRate          Integer32,
        cPtpClockParentDSGMClockIdentity        ClockIdentity,
        cPtpClockParentDSGMClockPriority1       Integer32,
        cPtpClockParentDSGMClockPriority2       Integer32,
        cPtpClockParentDSGMClockQualityClass    ClockQualityClassType,
        cPtpClockParentDSGMClockQualityAccuracy ClockQualityAccuracyType,
        cPtpClockParentDSGMClockQualityOffset   Unsigned32
}

cPtpClockParentDSDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockParentDSEntry 1 }

cPtpClockParentDSClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the
        Textual convention description." 
    ::= { cPtpClockParentDSEntry 2 }

cPtpClockParentDSInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockParentDSEntry 3 }

cPtpClockParentDSParentPortIdentity OBJECT-TYPE
    SYNTAX          OCTET STRING
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the value of portIdentity of the port on
        the master that issues the Sync messages used in synchronizing
        this clock."
    REFERENCE
        "section 8.2.3.2 parentDS.parentPortIdentity of [1]" 
    ::= { cPtpClockParentDSEntry 4 }

cPtpClockParentDSParentStats OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Parent Dataset ParentStats value.

        This value indicates whether the values of ParentDSOffset
        and ParentDSClockPhChRate have been measured and are valid.
        A TRUE value shall indicate valid data."
    REFERENCE       "section 8.2.3.3 parentDS.parentStats of [1]" 
    ::= { cPtpClockParentDSEntry 5 }

cPtpClockParentDSOffset OBJECT-TYPE
    SYNTAX          ClockIntervalBase2 (-128..127)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Parent Dataset
        ParentOffsetScaledLogVariance value.

        This value is the variance of the parent clocks phase as
        measured by the local clock."
    REFERENCE
        "section 8.2.3.4
        parentDS.observedParentOffsetScaledLogVariance [1]" 
    ::= { cPtpClockParentDSEntry 6 }

cPtpClockParentDSClockPhChRate OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the clock's parent dataset
        ParentClockPhaseChangeRate value.

        This value is an estimate of the parent clocks phase change
        rate as measured by the slave clock."
    REFERENCE
        "section 8.2.3.5
        parentDS.observedParentClockPhaseChangeRate of [1]" 
    ::= { cPtpClockParentDSEntry 7 }

cPtpClockParentDSGMClockIdentity OBJECT-TYPE
    SYNTAX          ClockIdentity
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parent dataset Grandmaster clock
        identity."
    REFERENCE
        "section  8.2.3.6 parentDS.grandmasterIdentity of [1]" 
    ::= { cPtpClockParentDSEntry 8 }

cPtpClockParentDSGMClockPriority1 OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parent dataset Grandmaster clock
        priority1."
    REFERENCE
        "section 8.2.3.8 parentDS.grandmasterPriority1 of [1]" 
    ::= { cPtpClockParentDSEntry 9 }

cPtpClockParentDSGMClockPriority2 OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parent dataset grandmaster clock
        priority2."
    REFERENCE
        "section 8.2.3.9 parentDS.grandmasterPriority2 of [1]" 
    ::= { cPtpClockParentDSEntry 10 }

cPtpClockParentDSGMClockQualityClass OBJECT-TYPE
    SYNTAX          ClockQualityClassType (0..255)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parent dataset grandmaster clock
        quality class."
    REFERENCE
        "section 8.2.3.7 parentDS.grandmasterClockQuality of [1]" 
    ::= { cPtpClockParentDSEntry 11 }

cPtpClockParentDSGMClockQualityAccuracy OBJECT-TYPE
    SYNTAX          ClockQualityAccuracyType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parent dataset grandmaster clock
        quality accuracy."
    REFERENCE
        "section 8.2.3.7 parentDS.grandmasterClockQuality of [1]" 
    ::= { cPtpClockParentDSEntry 12 }

cPtpClockParentDSGMClockQualityOffset OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parent dataset grandmaster clock
        quality offset."
    REFERENCE
        "section 8.2.3.7 parentDS.grandmasterClockQuality of [1]" 
    ::= { cPtpClockParentDSEntry 13 }
 


cPtpClockDefaultDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockDefaultDSEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP clock Default Datasets for
        all domains."
    ::= { ciscoPtpMIBClockInfo 3 }

cPtpClockDefaultDSEntry OBJECT-TYPE
    SYNTAX          CPtpClockDefaultDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing information about a single
        PTP clock Default Datasets for a domain."
    INDEX           {
                        cPtpClockDefaultDSDomainIndex,
                        cPtpClockDefaultDSClockTypeIndex,
                        cPtpClockDefaultDSInstanceIndex
                    } 
    ::= { cPtpClockDefaultDSTable 1 }

CPtpClockDefaultDSEntry ::= SEQUENCE {
        cPtpClockDefaultDSDomainIndex     ClockDomainType,
        cPtpClockDefaultDSClockTypeIndex  ClockType,
        cPtpClockDefaultDSInstanceIndex   ClockInstanceType,
        cPtpClockDefaultDSTwoStepFlag     TruthValue,
        cPtpClockDefaultDSClockIdentity   ClockIdentity,
        cPtpClockDefaultDSPriority1       Integer32,
        cPtpClockDefaultDSPriority2       Integer32,
        cPtpClockDefaultDSSlaveOnly       TruthValue,
        cPtpClockDefaultDSQualityClass    ClockQualityClassType,
        cPtpClockDefaultDSQualityAccuracy ClockQualityAccuracyType,
        cPtpClockDefaultDSQualityOffset   Integer32
}

cPtpClockDefaultDSDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockDefaultDSEntry 1 }

cPtpClockDefaultDSClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the
        Textual convention description." 
    ::= { cPtpClockDefaultDSEntry 2 }

cPtpClockDefaultDSInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockDefaultDSEntry 3 }

cPtpClockDefaultDSTwoStepFlag OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies whether the Two Step process is used." 
    ::= { cPtpClockDefaultDSEntry 4 }

cPtpClockDefaultDSClockIdentity OBJECT-TYPE
    SYNTAX          ClockIdentity
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the default Datasets clock identity." 
    ::= { cPtpClockDefaultDSEntry 5 }

cPtpClockDefaultDSPriority1 OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the default Datasets clock Priority1." 
    ::= { cPtpClockDefaultDSEntry 6 }

cPtpClockDefaultDSPriority2 OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the default Datasets clock Priority2." 
    ::= { cPtpClockDefaultDSEntry 7 }

cPtpClockDefaultDSSlaveOnly OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Whether the SlaveOnly flag is set." 
    ::= { cPtpClockDefaultDSEntry 8 }

cPtpClockDefaultDSQualityClass OBJECT-TYPE
    SYNTAX          ClockQualityClassType (0..255)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the default dataset Quality Class." 
    ::= { cPtpClockDefaultDSEntry 9 }

cPtpClockDefaultDSQualityAccuracy OBJECT-TYPE
    SYNTAX          ClockQualityAccuracyType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the default dataset Quality Accurarcy." 
    ::= { cPtpClockDefaultDSEntry 10 }

cPtpClockDefaultDSQualityOffset OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the default dataset Quality offset." 
    ::= { cPtpClockDefaultDSEntry 11 }
 


cPtpClockRunningTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockRunningEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP clock Running Datasets for
        all domains."
    ::= { ciscoPtpMIBClockInfo 4 }

cPtpClockRunningEntry OBJECT-TYPE
    SYNTAX          CPtpClockRunningEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing information about a single
        PTP clock running Datasets for a domain."
    INDEX           {
                        cPtpClockRunningDomainIndex,
                        cPtpClockRunningClockTypeIndex,
                        cPtpClockRunningInstanceIndex
                    } 
    ::= { cPtpClockRunningTable 1 }

CPtpClockRunningEntry ::= SEQUENCE {
        cPtpClockRunningDomainIndex     ClockDomainType,
        cPtpClockRunningClockTypeIndex  ClockType,
        cPtpClockRunningInstanceIndex   ClockInstanceType,
        cPtpClockRunningState           ClockStateType,
        cPtpClockRunningPacketsSent     Counter64,
        cPtpClockRunningPacketsReceived Counter64
}

cPtpClockRunningDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockRunningEntry 1 }

cPtpClockRunningClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the
        Textual convention description." 
    ::= { cPtpClockRunningEntry 2 }

cPtpClockRunningInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockRunningEntry 3 }

cPtpClockRunningState OBJECT-TYPE
    SYNTAX          ClockStateType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Clock state returned by PTP engine
        which was described earlier.

        Freerun state. Applies to a slave device that is not locked to
        a master. This is the initial state a slave starts out with
        when
        it is not getting any PTP packets from the master or because of
        some other input error (erroneous packets, etc).

        Holdover state. In this state the slave device is locked to a
        master but communication with the master is lost or the
        timestamps in the ptp packets are incorrect. But since the
        slave was locked to the master, it can run with the same
        accuracy for
        sometime. The slave can continue to operate in this state for
        some time. If communication with the master is not restored for
        a while, the device is moved to the FREERUN state.

        Acquiring state. The slave device is receiving packets from a
        master and is trying to acquire a lock.

        Freq_locked state. Slave device is locked to the Master with
        respect to frequency, but not phase aligned

        Phase_aligned state. Locked to the master with respect to
        frequency and phase." 
    ::= { cPtpClockRunningEntry 4 }

cPtpClockRunningPacketsSent OBJECT-TYPE
    SYNTAX          Counter64
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the total number of all packet Unicast
        and multicast that have been sent out for this clock in this
        domain for this type." 
    ::= { cPtpClockRunningEntry 5 }

cPtpClockRunningPacketsReceived OBJECT-TYPE
    SYNTAX          Counter64
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the total number of all packet Unicast
        and multicast that have been received for this clock in this
        domain for this type." 
    ::= { cPtpClockRunningEntry 6 }
 


cPtpClockTimePropertiesDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockTimePropertiesDSEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP clock Timeproperties
        Datasets for all domains."
    ::= { ciscoPtpMIBClockInfo 5 }

cPtpClockTimePropertiesDSEntry OBJECT-TYPE
    SYNTAX          CPtpClockTimePropertiesDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing information about a single
        PTP clock timeproperties Datasets for a domain."
    REFERENCE       "Section 8.2.4 of [1]"
    INDEX           {
                        cPtpClockTimePropertiesDSDomainIndex,
                        cPtpClockTimePropertiesDSClockTypeIndex,
                        cPtpClockTimePropertiesDSInstanceIndex
                    } 
    ::= { cPtpClockTimePropertiesDSTable 1 }

CPtpClockTimePropertiesDSEntry ::= SEQUENCE {
        cPtpClockTimePropertiesDSDomainIndex           ClockDomainType,
        cPtpClockTimePropertiesDSClockTypeIndex        ClockType,
        cPtpClockTimePropertiesDSInstanceIndex         ClockInstanceType,
        cPtpClockTimePropertiesDSCurrentUTCOffsetValid TruthValue,
        cPtpClockTimePropertiesDSCurrentUTCOffset      Integer32,
        cPtpClockTimePropertiesDSLeap59                TruthValue,
        cPtpClockTimePropertiesDSLeap61                TruthValue,
        cPtpClockTimePropertiesDSTimeTraceable         TruthValue,
        cPtpClockTimePropertiesDSFreqTraceable         TruthValue,
        cPtpClockTimePropertiesDSPTPTimescale          TruthValue,
        cPtpClockTimePropertiesDSSource                ClockTimeSourceType
}

cPtpClockTimePropertiesDSDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockTimePropertiesDSEntry 1 }

cPtpClockTimePropertiesDSClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the
        Textual convention description." 
    ::= { cPtpClockTimePropertiesDSEntry 2 }

cPtpClockTimePropertiesDSInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockTimePropertiesDSEntry 3 }

cPtpClockTimePropertiesDSCurrentUTCOffsetValid OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the timeproperties dataset value of
        whether current UTC offset is valid."
    REFERENCE       "Section 8.2.4.2 of [1]" 
    ::= { cPtpClockTimePropertiesDSEntry 4 }

cPtpClockTimePropertiesDSCurrentUTCOffset OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the timeproperties dataset value of
        current UTC offset.

        In PTP systems whose epoch is the PTP epoch, the value of
        timePropertiesDS.currentUtcOffset is the offset
        between TAI and UTC; otherwise the value has no meaning. The
        value shall be in units of seconds.
        The initialization value shall be selected as follows:
        a) If the timePropertiesDS.ptpTimescale (see 8.2.4.8) is TRUE,
        the value is the value obtained from a
        primary reference if the value is known at the time of
        initialization, else.
        b) The value shall be the current number of leap seconds (7.2.3)
        when the node is designed."
    REFERENCE       "Section 8.2.4.3 of [1]" 
    ::= { cPtpClockTimePropertiesDSEntry 5 }

cPtpClockTimePropertiesDSLeap59 OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Leap59 value in the clock Current
        Dataset."
    REFERENCE       "Section 8.2.4.4 of [1]" 
    ::= { cPtpClockTimePropertiesDSEntry 6 }

cPtpClockTimePropertiesDSLeap61 OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Leap61 value in the clock Current
        Dataset."
    REFERENCE       "Section 8.2.4.5 of [1]" 
    ::= { cPtpClockTimePropertiesDSEntry 7 }

cPtpClockTimePropertiesDSTimeTraceable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Timetraceable value in the clock
        Current Dataset."
    REFERENCE       "Section 8.2.4.6 of [1]" 
    ::= { cPtpClockTimePropertiesDSEntry 8 }

cPtpClockTimePropertiesDSFreqTraceable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Frequency Traceable value in the
        clock Current Dataset."
    REFERENCE       "Section 8.2.4.7 of [1]" 
    ::= { cPtpClockTimePropertiesDSEntry 9 }

cPtpClockTimePropertiesDSPTPTimescale OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP Timescale value in the clock
        Current Dataset."
    REFERENCE       "Section 8.2.4.8 of [1]" 
    ::= { cPtpClockTimePropertiesDSEntry 10 }

cPtpClockTimePropertiesDSSource OBJECT-TYPE
    SYNTAX          ClockTimeSourceType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Timesource value in the clock Current
        Dataset."
    REFERENCE       "Section 8.2.4.9 of [1]" 
    ::= { cPtpClockTimePropertiesDSEntry 11 }
 


cPtpClockTransDefaultDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockTransDefaultDSEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP Transparent clock Default
        Datasets for all domains."
    ::= { ciscoPtpMIBClockInfo 6 }

cPtpClockTransDefaultDSEntry OBJECT-TYPE
    SYNTAX          CPtpClockTransDefaultDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing information about a single
        PTP Transparent clock Default Datasets for a domain."
    REFERENCE       "Section 8.3.2 of [1]"
    INDEX           {
                        cPtpClockTransDefaultDSDomainIndex,
                        cPtpClockTransDefaultDSInstanceIndex
                    } 
    ::= { cPtpClockTransDefaultDSTable 1 }

CPtpClockTransDefaultDSEntry ::= SEQUENCE {
        cPtpClockTransDefaultDSDomainIndex   ClockDomainType,
        cPtpClockTransDefaultDSInstanceIndex ClockInstanceType,
        cPtpClockTransDefaultDSClockIdentity ClockIdentity,
        cPtpClockTransDefaultDSNumOfPorts    Counter32,
        cPtpClockTransDefaultDSDelay         ClockMechanismType,
        cPtpClockTransDefaultDSPrimaryDomain Integer32
}

cPtpClockTransDefaultDSDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockTransDefaultDSEntry 1 }

cPtpClockTransDefaultDSInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockTransDefaultDSEntry 2 }

cPtpClockTransDefaultDSClockIdentity OBJECT-TYPE
    SYNTAX          ClockIdentity
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the value of the clockIdentity attribute
        of the local clock."
    REFERENCE       "Section 8.3.2.2.1 of [1]" 
    ::= { cPtpClockTransDefaultDSEntry 3 }

cPtpClockTransDefaultDSNumOfPorts OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the number of PTP ports of the device."
    REFERENCE       "Section 8.3.2.2.2 of [1]" 
    ::= { cPtpClockTransDefaultDSEntry 4 }

cPtpClockTransDefaultDSDelay OBJECT-TYPE
    SYNTAX          ClockMechanismType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object, if the transparent clock is an end-to-end
        transparent clock, has the value shall be E2E; If the
        transparent clock is a peer-to-peer transparent clock, the
        value
        shall be P2P."
    REFERENCE       "Section 8.3.2.3.1 of [1]" 
    ::= { cPtpClockTransDefaultDSEntry 5 }

cPtpClockTransDefaultDSPrimaryDomain OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the value of the primary syntonization
        domain. The initialization value shall be 0."
    REFERENCE       "Section 8.3.2.3.2 of [1]" 
    ::= { cPtpClockTransDefaultDSEntry 6 }
 


cPtpClockPortTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockPortEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the clock ports for a particular
        domain."
    ::= { ciscoPtpMIBClockInfo 7 }

cPtpClockPortEntry OBJECT-TYPE
    SYNTAX          CPtpClockPortEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing information about a single
        clock port."
    INDEX           {
                        cPtpClockPortDomainIndex,
                        cPtpClockPortClockTypeIndex,
                        cPtpClockPortClockInstanceIndex,
                        cPtpClockPortTablePortNumberIndex
                    } 
    ::= { cPtpClockPortTable 1 }

CPtpClockPortEntry ::= SEQUENCE {
        cPtpClockPortDomainIndex            ClockDomainType,
        cPtpClockPortClockTypeIndex         ClockType,
        cPtpClockPortClockInstanceIndex     ClockInstanceType,
        cPtpClockPortTablePortNumberIndex   ClockPortNumber,
        cPtpClockPortName                   DisplayString,
        cPtpClockPortRole                   ClockRoleType,
        cPtpClockPortSyncOneStep            TruthValue,
        cPtpClockPortCurrentPeerAddressType InetAddressType,
        cPtpClockPortCurrentPeerAddress     InetAddress,
        cPtpClockPortNumOfAssociatedPorts   Gauge32,
        cPtpClockPortBlockGMC               TruthValue,
        cPtpClockRogueMasterDetect          TruthValue
}

cPtpClockPortDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockPortEntry 1 }

cPtpClockPortClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the
        Textual convention description." 
    ::= { cPtpClockPortEntry 2 }

cPtpClockPortClockInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockPortEntry 3 }

cPtpClockPortTablePortNumberIndex OBJECT-TYPE
    SYNTAX          ClockPortNumber (1..65535)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP Portnumber for this port." 
    ::= { cPtpClockPortEntry 4 }

cPtpClockPortName OBJECT-TYPE
    SYNTAX          DisplayString (SIZE  (1..64))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP clock port name configured on the
        router." 
    ::= { cPtpClockPortEntry 5 }

cPtpClockPortRole OBJECT-TYPE
    SYNTAX          ClockRoleType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object describes the current role (slave/master) of the
        port." 
    ::= { cPtpClockPortEntry 6 }

cPtpClockPortSyncOneStep OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies that one-step clock operation between
        the PTP master and slave device is enabled." 
    ::= { cPtpClockPortEntry 7 }

cPtpClockPortCurrentPeerAddressType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the current peer's network address used
        for PTP communication. Based on the scenario and the setup
        involved, the values might look like these -
        Scenario                   Value
        -------------------   ----------------
        Single Master          master port
        Multiple Masters       selected master port
        Single Slave           slave port
        Multiple Slaves        <empty>

        (In relevant setups, information on available
        slaves and available masters will be available through 
        cPtpClockPortAssociateTable)" 
    ::= { cPtpClockPortEntry 8 }

cPtpClockPortCurrentPeerAddress OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the current peer's network address used
        for PTP communication. Based on the scenario and the setup
        involved, the values might look like these -
        Scenario                   Value
        -------------------   ----------------
        Single Master          master port
        Multiple Masters       selected master port
        Single Slave           slave port
        Multiple Slaves        <empty>

        (In relevant setups, information on available
        slaves and available masters will be available through 
        cPtpClockPortAssociateTable)" 
    ::= { cPtpClockPortEntry 9 }

cPtpClockPortNumOfAssociatedPorts OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies -
        For a master port - the number of PTP slave sessions (peers)
        associated with this PTP port.
        For a slave port - the number of masters available to this slave
        port (might or might not be peered)." 
    ::= { cPtpClockPortEntry 10 }

cPtpClockPortBlockGMC OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies that the ptp port is configured with ptp
        gmc-block or not." 
    ::= { cPtpClockPortEntry 11 }

cPtpClockRogueMasterDetect OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies that port receives the PTP packets from
        other network, which the device is not interested to sync with." 
    ::= { cPtpClockPortEntry 12 }
 


cPtpClockPortDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockPortDSEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the clock ports dataset for a
        particular domain."
    ::= { ciscoPtpMIBClockInfo 8 }

cPtpClockPortDSEntry OBJECT-TYPE
    SYNTAX          CPtpClockPortDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing port dataset information for
        a single clock port."
    INDEX           {
                        cPtpClockPortDSDomainIndex,
                        cPtpClockPortDSClockTypeIndex,
                        cPtpClockPortDSClockInstanceIndex,
                        cPtpClockPortDSPortNumberIndex
                    } 
    ::= { cPtpClockPortDSTable 1 }

CPtpClockPortDSEntry ::= SEQUENCE {
        cPtpClockPortDSDomainIndex          ClockDomainType,
        cPtpClockPortDSClockTypeIndex       ClockType,
        cPtpClockPortDSClockInstanceIndex   ClockInstanceType,
        cPtpClockPortDSPortNumberIndex      ClockPortNumber,
        cPtpClockPortDSName                 DisplayString,
        cPtpClockPortDSPortIdentity         OCTET STRING,
        cPtpClockPortDSAnnouncementInterval Integer32,
        cPtpClockPortDSAnnounceRctTimeout   Integer32,
        cPtpClockPortDSSyncInterval         Integer32,
        cPtpClockPortDSMinDelayReqInterval  Integer32,
        cPtpClockPortDSPeerDelayReqInterval Integer32,
        cPtpClockPortDSDelayMech            ClockMechanismType,
        cPtpClockPortDSPeerMeanPathDelay    ClockTimeInterval,
        cPtpClockPortDSGrantDuration        Unsigned32,
        cPtpClockPortDSPTPVersion           Integer32
}

cPtpClockPortDSDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockPortDSEntry 1 }

cPtpClockPortDSClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the
        Textual convention description." 
    ::= { cPtpClockPortDSEntry 2 }

cPtpClockPortDSClockInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockPortDSEntry 3 }

cPtpClockPortDSPortNumberIndex OBJECT-TYPE
    SYNTAX          ClockPortNumber (1..65535)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP portnumber associated with this
        PTP port." 
    ::= { cPtpClockPortDSEntry 4 }

cPtpClockPortDSName OBJECT-TYPE
    SYNTAX          DisplayString (SIZE  (1..64))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP clock port name." 
    ::= { cPtpClockPortDSEntry 5 }

cPtpClockPortDSPortIdentity OBJECT-TYPE
    SYNTAX          OCTET STRING
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP clock port Identity." 
    ::= { cPtpClockPortDSEntry 6 }

cPtpClockPortDSAnnouncementInterval OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Announce message transmission
        interval associated with this clock port." 
    ::= { cPtpClockPortDSEntry 7 }

cPtpClockPortDSAnnounceRctTimeout OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Announce receipt timeout associated
        with this clock port." 
    ::= { cPtpClockPortDSEntry 8 }

cPtpClockPortDSSyncInterval OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Sync message transmission interval." 
    ::= { cPtpClockPortDSEntry 9 }

cPtpClockPortDSMinDelayReqInterval OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Delay_Req message transmission
        interval." 
    ::= { cPtpClockPortDSEntry 10 }

cPtpClockPortDSPeerDelayReqInterval OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Pdelay_Req message transmission
        interval." 
    ::= { cPtpClockPortDSEntry 11 }

cPtpClockPortDSDelayMech OBJECT-TYPE
    SYNTAX          ClockMechanismType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the delay mechanism used. If the clock
        is an end-to-end clock, the value of the is e2e, else if the
        clock is a peer to-peer clock, the value shall be p2p." 
    ::= { cPtpClockPortDSEntry 12 }

cPtpClockPortDSPeerMeanPathDelay OBJECT-TYPE
    SYNTAX          ClockTimeInterval
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the peer meanPathDelay." 
    ::= { cPtpClockPortDSEntry 13 }

cPtpClockPortDSGrantDuration OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the grant duration allocated by the
        master." 
    ::= { cPtpClockPortDSEntry 14 }

cPtpClockPortDSPTPVersion OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP version being used." 
    ::= { cPtpClockPortDSEntry 15 }
 


cPtpClockPortRunningTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockPortRunningEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the clock ports running dataset for
        a particular domain."
    ::= { ciscoPtpMIBClockInfo 9 }

cPtpClockPortRunningEntry OBJECT-TYPE
    SYNTAX          CPtpClockPortRunningEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing runing dataset information
        about a single clock port."
    INDEX           {
                        cPtpClockPortRunningDomainIndex,
                        cPtpClockPortRunningClockTypeIndex,
                        cPtpClockPortRunningClockInstanceIndex,
                        cPtpClockPortRunningPortNumberIndex
                    } 
    ::= { cPtpClockPortRunningTable 1 }

CPtpClockPortRunningEntry ::= SEQUENCE {
        cPtpClockPortRunningDomainIndex        ClockDomainType,
        cPtpClockPortRunningClockTypeIndex     ClockType,
        cPtpClockPortRunningClockInstanceIndex ClockInstanceType,
        cPtpClockPortRunningPortNumberIndex    ClockPortNumber,
        cPtpClockPortRunningName               DisplayString,
        cPtpClockPortRunningState              ClockPortState,
        cPtpClockPortRunningRole               ClockRoleType,
        cPtpClockPortRunningInterfaceIndex     InterfaceIndexOrZero,
        cPtpClockPortRunningIPversion          Integer32,
        cPtpClockPortRunningEncapsulationType  Integer32,
        cPtpClockPortRunningTxMode             ClockTxModeType,
        cPtpClockPortRunningRxMode             ClockTxModeType,
        cPtpClockPortRunningPacketsReceived    Counter64,
        cPtpClockPortRunningPacketsSent        Counter64
}

cPtpClockPortRunningDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockPortRunningEntry 1 }

cPtpClockPortRunningClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the
        Textual convention description." 
    ::= { cPtpClockPortRunningEntry 2 }

cPtpClockPortRunningClockInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockPortRunningEntry 3 }

cPtpClockPortRunningPortNumberIndex OBJECT-TYPE
    SYNTAX          ClockPortNumber (1..65535)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP portnumber associated with this
        clock port." 
    ::= { cPtpClockPortRunningEntry 4 }

cPtpClockPortRunningName OBJECT-TYPE
    SYNTAX          DisplayString (SIZE  (1..64))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP clock port name." 
    ::= { cPtpClockPortRunningEntry 5 }

cPtpClockPortRunningState OBJECT-TYPE
    SYNTAX          ClockPortState
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the port state returned by PTP engine.

        initializing - In this state a port initializes
                       its data sets, hardware, and
                       communication facilities.
        faulty       - The fault state of the protocol.
        disabled     - The port shall not place any
                       messages on its communication path.
        listening    - The port is waiting for the
                       announceReceiptTimeout to expire or
                       to receive an Announce message from
                       a master.
        preMaster    - The port shall behave in all respects
                       as though it were in the MASTER state
                       except that it shall not place any
                       messages on its communication path
                       except for Pdelay_Req, Pdelay_Resp,
                       Pdelay_Resp_Follow_Up, signaling, or
                       management messages.
        master       - The port is behaving as a master port.           

        passive      - The port shall not place any
                       messages on its communication path
                       except for Pdelay_Req, Pdelay_Resp,
                       Pdelay_Resp_Follow_Up, or signaling
                       messages, or management messages
                       that are a required response to
                       another management message
        uncalibrated - The local port is preparing to
                       synchronize to the master port.
        slave        - The port is synchronizing to the
                       selected master port." 
    ::= { cPtpClockPortRunningEntry 6 }

cPtpClockPortRunningRole OBJECT-TYPE
    SYNTAX          ClockRoleType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Clock Role." 
    ::= { cPtpClockPortRunningEntry 7 }

cPtpClockPortRunningInterfaceIndex OBJECT-TYPE
    SYNTAX          InterfaceIndexOrZero
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the interface on the router being used by
        the PTP Clock for PTP communication." 
    ::= { cPtpClockPortRunningEntry 8 }

cPtpClockPortRunningIPversion OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifirst the IP version being used for PTP
        communication (the mapping used)." 
    ::= { cPtpClockPortRunningEntry 9 }

cPtpClockPortRunningEncapsulationType OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the type of encapsulation if the
        interface is adding extra  layers (eg. VLAN, Pseudowire
        encapsulation...) for the PTP messages." 
    ::= { cPtpClockPortRunningEntry 10 }

cPtpClockPortRunningTxMode OBJECT-TYPE
    SYNTAX          ClockTxModeType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the clock transmission mode as

        unicast:       Using unicast commnuication channel.
        multicast:     Using Multicast communication channel.
        multicast-mix: Using multicast-unicast communication channel" 
    ::= { cPtpClockPortRunningEntry 11 }

cPtpClockPortRunningRxMode OBJECT-TYPE
    SYNTAX          ClockTxModeType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifie the clock receive mode as

        unicast:       Using unicast commnuication channel.
        multicast:     Using Multicast communication channel.
        multicast-mix: Using multicast-unicast communication channel" 
    ::= { cPtpClockPortRunningEntry 12 }

cPtpClockPortRunningPacketsReceived OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the packets received on the clock port
        (cummulative)." 
    ::= { cPtpClockPortRunningEntry 13 }

cPtpClockPortRunningPacketsSent OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the packets sent on the clock port
        (cummulative)." 
    ::= { cPtpClockPortRunningEntry 14 }
 


cPtpClockPortTransDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockPortTransDSEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the Transparent clock ports running
        dataset for a particular domain."
    ::= { ciscoPtpMIBClockInfo 10 }

cPtpClockPortTransDSEntry OBJECT-TYPE
    SYNTAX          CPtpClockPortTransDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing clock port Transparent
        dataset information about a single clock port"
    INDEX           {
                        cPtpClockPortTransDSDomainIndex,
                        cPtpClockPortTransDSInstanceIndex,
                        cPtpClockPortTransDSPortNumberIndex
                    } 
    ::= { cPtpClockPortTransDSTable 1 }

CPtpClockPortTransDSEntry ::= SEQUENCE {
        cPtpClockPortTransDSDomainIndex        ClockDomainType,
        cPtpClockPortTransDSInstanceIndex      ClockInstanceType,
        cPtpClockPortTransDSPortNumberIndex    ClockPortNumber,
        cPtpClockPortTransDSPortIdentity       ClockIdentity,
        cPtpClockPortTransDSlogMinPdelayReqInt Integer32,
        cPtpClockPortTransDSFaultyFlag         TruthValue,
        cPtpClockPortTransDSPeerMeanPathDelay  ClockTimeInterval
}

cPtpClockPortTransDSDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockPortTransDSEntry 1 }

cPtpClockPortTransDSInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockPortTransDSEntry 2 }

cPtpClockPortTransDSPortNumberIndex OBJECT-TYPE
    SYNTAX          ClockPortNumber (1..65535)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP port number associated with this
        port."
    REFERENCE       "Section 7.5.2 Port Identity of [1]" 
    ::= { cPtpClockPortTransDSEntry 3 }

cPtpClockPortTransDSPortIdentity OBJECT-TYPE
    SYNTAX          ClockIdentity
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the value of the PortIdentity
        attribute of the local port."
    REFERENCE       "Section 8.3.3.2.1 of [1]" 
    ::= { cPtpClockPortTransDSEntry 4 }

cPtpClockPortTransDSlogMinPdelayReqInt OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the value of the logarithm to the
        base 2 of the minPdelayReqInterval."
    REFERENCE       "Section 8.3.3.3.1 of [1]" 
    ::= { cPtpClockPortTransDSEntry 5 }

cPtpClockPortTransDSFaultyFlag OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the value TRUE if the port is faulty
        and FALSE if the port is operating normally."
    REFERENCE       "Section 8.3.3.3.2 of [1]" 
    ::= { cPtpClockPortTransDSEntry 6 }

cPtpClockPortTransDSPeerMeanPathDelay OBJECT-TYPE
    SYNTAX          ClockTimeInterval
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies, (if the delayMechanism used is P2P) the
        value is the estimate of the current one-way propagation delay,
        i.e., <meanPathDelay> on the link attached to this port
        computed
        using the peer delay mechanism. If the value of the
        delayMechanism
        used is E2E, then the value will be zero."
    REFERENCE       "Section 8.3.3.3.3 of [1]" 
    ::= { cPtpClockPortTransDSEntry 7 }
 


cPtpClockPortAssociateTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockPortAssociateEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about a given port's associated ports.

        For a master port - multiple slave ports which have established
        sessions with the current master port.  
        For a slave port - the list of masters available for a given
        slave port. 

        Session information (pkts, errors) to be displayed based on
        availability and scenario."
    ::= { ciscoPtpMIBClockInfo 11 }

cPtpClockPortAssociateEntry OBJECT-TYPE
    SYNTAX          CPtpClockPortAssociateEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing information about a single
        associated port for the given clockport."
    INDEX           {
                        cPtpClockPortCurrentDomainIndex,
                        cPtpClockPortCurrentClockTypeIndex,
                        cPtpClockPortCurrentClockInstanceIndex,
                        cPtpClockPortCurrentPortNumberIndex,
                        cPtpClockPortAssociatePortIndex
                    } 
    ::= { cPtpClockPortAssociateTable 1 }

CPtpClockPortAssociateEntry ::= SEQUENCE {
        cPtpClockPortCurrentDomainIndex        ClockDomainType,
        cPtpClockPortCurrentClockTypeIndex     ClockType,
        cPtpClockPortCurrentClockInstanceIndex ClockInstanceType,
        cPtpClockPortCurrentPortNumberIndex    ClockPortNumber,
        cPtpClockPortAssociatePortIndex        Unsigned32,
        cPtpClockPortAssociateAddressType      InetAddressType,
        cPtpClockPortAssociateAddress          InetAddress,
        cPtpClockPortAssociatePacketsSent      Counter64,
        cPtpClockPortAssociatePacketsReceived  Counter64,
        cPtpClockPortAssociateInErrors         Counter64,
        cPtpClockPortAssociateOutErrors        Counter64
}

cPtpClockPortCurrentDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the given port's domain number." 
    ::= { cPtpClockPortAssociateEntry 1 }

cPtpClockPortCurrentClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the given port's clock type." 
    ::= { cPtpClockPortAssociateEntry 2 }

cPtpClockPortCurrentClockInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockPortAssociateEntry 3 }

cPtpClockPortCurrentPortNumberIndex OBJECT-TYPE
    SYNTAX          ClockPortNumber
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP Port Number for the given port." 
    ::= { cPtpClockPortAssociateEntry 4 }

cPtpClockPortAssociatePortIndex OBJECT-TYPE
    SYNTAX          Unsigned32 (1..65535)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the associated port's serial number in
        the current port's context." 
    ::= { cPtpClockPortAssociateEntry 5 }

cPtpClockPortAssociateAddressType OBJECT-TYPE
    SYNTAX          InetAddressType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the peer port's network address type used
        for PTP communication." 
    ::= { cPtpClockPortAssociateEntry 6 }

cPtpClockPortAssociateAddress OBJECT-TYPE
    SYNTAX          InetAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the peer port's network address used for
        PTP communication." 
    ::= { cPtpClockPortAssociateEntry 7 }

cPtpClockPortAssociatePacketsSent OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of packets sent to this peer port from the current
        port." 
    ::= { cPtpClockPortAssociateEntry 8 }

cPtpClockPortAssociatePacketsReceived OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of packets received from this peer port by the
        current port." 
    ::= { cPtpClockPortAssociateEntry 9 }

cPtpClockPortAssociateInErrors OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the input errors associated with the
        peer port." 
    ::= { cPtpClockPortAssociateEntry 10 }

cPtpClockPortAssociateOutErrors OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the output errors associated with the
        peer port." 
    ::= { cPtpClockPortAssociateEntry 11 }
 


cPtpClockSystemTimePropertiesTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CPtpClockSystemTimePropertiesEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP clock System
        Timeproperties."
    ::= { ciscoPtpMIBClockInfo 12 }

cPtpClockSystemTimePropertiesEntry OBJECT-TYPE
    SYNTAX          CPtpClockSystemTimePropertiesEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry in the table, containing information about a single
        PTP clock timeproperties for a domain."
    INDEX           {
                        cPtpClockSystemTimePropertiesDomainIndex,
                        cPtpClockSystemTimePropertiesInstanceIndex,
                        cPtpClockSystemTimePropertiesClockTypeIndex
                    } 
    ::= { cPtpClockSystemTimePropertiesTable 1 }

CPtpClockSystemTimePropertiesEntry ::= SEQUENCE {
        cPtpClockSystemTimePropertiesDomainIndex      ClockDomainType,
        cPtpClockSystemTimePropertiesClockTypeIndex   ClockType,
        cPtpClockSystemTimePropertiesInstanceIndex    ClockInstanceType,
        cPtpClockSystemTimePropertiesClockSyntonized  TruthValue,
        cPtpClockSystemTimePropertiesDomainSyntonized TruthValue,
        cPtpClockSystemTimePropertiesFrequencyOffset  Integer32
}

cPtpClockSystemTimePropertiesDomainIndex OBJECT-TYPE
    SYNTAX          ClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create logical
        group of PTP devices." 
    ::= { cPtpClockSystemTimePropertiesEntry 1 }

cPtpClockSystemTimePropertiesClockTypeIndex OBJECT-TYPE
    SYNTAX          ClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the textual
        convention description." 
    ::= { cPtpClockSystemTimePropertiesEntry 2 }

cPtpClockSystemTimePropertiesInstanceIndex OBJECT-TYPE
    SYNTAX          ClockInstanceType (0..255)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain." 
    ::= { cPtpClockSystemTimePropertiesEntry 3 }

cPtpClockSystemTimePropertiesClockSyntonized OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies if slave device's ptp clock is in sync
        with GM clock or not." 
    ::= { cPtpClockSystemTimePropertiesEntry 4 }

cPtpClockSystemTimePropertiesDomainSyntonized OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies if slave device's ptp clock domain value
        is in sync with GM clock or not." 
    ::= { cPtpClockSystemTimePropertiesEntry 5 }

cPtpClockSystemTimePropertiesFrequencyOffset OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the timeproperties value of frequency
        offset." 
    ::= { cPtpClockSystemTimePropertiesEntry 6 }
 


END


