faqs.org - Internet FAQ Archives

RFC 8173 - Precision Time Protocol Version 2 (PTPv2) Management


Or Display the document by number




Internet Engineering Task Force (IETF)                   V. Shankarkumar
Request for Comments: 8173                                    L. Montini
Category: Standards Track                                  Cisco Systems
ISSN: 2070-1721                                                 T. Frost
                                                   Calnex Solutions Ltd.
                                                                 G. Dowd
                                                               Microsemi
                                                               June 2017

               Precision Time Protocol Version 2 (PTPv2)
                      Management Information Base

Abstract

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in internets based on TCP
   or IP.  In particular, it defines objects for managing networks using
   the Precision Time Protocol (PTP), specified in IEEE Std. 1588-2008.

   This memo specifies a MIB module in a manner that is both compliant
   to the Structure of Management Information version 2 (SMIv2) and
   semantically identical to the peer SMIv1 definitions.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc8173.

Copyright Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1. Introduction ....................................................3
      1.1. Relationship to Other Profiles and MIBs ....................3
   2. The SNMP Management Framework ...................................4
   3. Overview ........................................................4
   4. PTP MIB Definition ..............................................5
   5. Security Considerations ........................................59
   6. IANA Considerations ............................................61
   7. References .....................................................62
      7.1. Normative References ......................................62
      7.2. Informative References ....................................63
   Acknowledgements ..................................................63
   Author's Addresses ................................................64

1.  Introduction

   This memo defines a portion of the Management Information Base (MIB)
   module for use with network management protocols in the Internet
   community.  In particular, it describes managed objects used for
   managing PTP devices including ordinary clocks, transparent clocks,
   and boundary clocks.

   This MIB module is restricted to reading standard PTP data elements,
   as described in [IEEE-1588-2008].  This enables it to monitor the
   operation of PTP clocks within the network.  It is envisioned that
   this MIB module will complement other managed objects to be defined
   that will provide more detailed information on the performance of PTP
   clocks supporting the Telecom Profile defined in [G.8265.1] and any
   future profiles that may be defined.  Those objects are considered
   out of scope for the current document.

   Similarly, this MIB module is read-only and not intended to provide
   the ability to configure PTP clocks.  Since PTP clocks are often
   embedded in other network elements such as routers, switches, and
   gateways, this ability is generally provided via the configuration
   interface for the network element.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

1.1.  Relationship to Other Profiles and MIBs

   This MIB module is intended to be used with the default PTP profile
   described in [IEEE-1588-2008] when running over the IP network layer.
   As stated above, it is envisioned that this MIB module will
   complement other managed objects to be defined to monitor and measure
   the performance of PTP clocks supporting specific PTP profiles, e.g.,
   the Telecom Profile defined in [G.8265.1].

   Some other PTP profiles have their own MIB modules defined as part of
   the profile, and this MIB module is not intended to replace those MIB
   modules.

2.  The Internet-Standard Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2, which is described in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].

3.  Overview

   The objects defined in this MIB module are to be used when describing
   the Precision Time Protocol (PTP), as defined in [IEEE-1588-2008].

   Section 6 of [IEEE-1588-2008] provides an overview of synchronization
   networks using PTP.

   Terms used in this document have meanings as defined in Section 3.1
   of [IEEE-1588-2008].

4.  PTP MIB Definition

PTPBASE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    OBJECT-IDENTITY,
    Gauge32,
    Unsigned32,
    Counter32,
    Counter64,
    mib-2,
    Integer32
        FROM SNMPv2-SMI
    OBJECT-GROUP,
    MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    TEXTUAL-CONVENTION,
    TruthValue,
    DisplayString,
    AutonomousType
        FROM SNMPv2-TC
    InterfaceIndexOrZero
        FROM IF-MIB;

ptpbaseMIB MODULE-IDENTITY
    LAST-UPDATED    "201705300000Z"
    ORGANIZATION    "TICTOC Working Group"
    CONTACT-INFO
          "WG Email: tictoc@ietf.org

           Vinay Shankarkumar
           Cisco Systems
           Email: vinays@cisco.com

           Laurent Montini
           Cisco Systems
           Email: lmontini@cisco.com

           Tim Frost
           Calnex Solutions Ltd.
           Email: tim.frost@calnexsol.com

           Greg Dowd
           Microsemi Inc.
           Email: greg.dowd@microsemi.com"

    DESCRIPTION
        "The MIB module for PTP version 2

        Copyright (c) 2017 IETF Trust and the persons identified as
        authors of the code.  All rights reserved.

        Redistribution and use in source and binary forms, with or
        without modification, is permitted pursuant to, and subject to
        the license terms contained in, the Simplified BSD License set
        forth in Section 4.c of the IETF Trust's Legal Provisions
        Relating to IETF Documents
        (http://trustee.ietf.org/license-info).

        Overview of PTP version 2 (IEEE Std. 1588-2008)

        [IEEE-1588-2008] defines a protocol enabling precise
        synchronization of clocks in measurement and control systems
        implemented with packet-based networks, the Precision Time
        Protocol version 2 (PTPv2).  This MIB module does not address
        PTPv1, the earlier version defined in IEEE Std. 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.  [IEEE-1588-2008] uses UDP/IP or
        Ethernet and can be adapted to other mappings.  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.  [IEEE-1588-2008] also defines
        conformance and management capability.

        MIB description

        This MIB module supports the Precision Time Protocol version 2
        (PTPv2, hereafter designated as PTP) features of network element
        system devices, when using the default PTP profile described in
        [IEEE-1588-2008] when running over the IP network layer.

        It is envisioned that this MIB module will complement other
        managed objects to be defined to monitor and measure the
        performance of the PTP devices and telecom clocks supporting
        specific PTP profiles.

        Some other PTP profiles have their own MIB modules defined as
        part of the profile, and this MIB module is not intended to
        replace those MIB modules.

        Technical terms used in this module are defined in
        [IEEE-1588-2008].

        The MIB module refers to sections of [IEEE-1588-2008].

        Abbreviations:
            E2E     End-to-End
            EUI     Extended Unique Identifier
            GPS     Global Positioning System
            IANA    Internet Assigned Numbers Authority
            IP      Internet Protocol
            NTP     Network Time Protocol (see [RFC5905])
            P2P     Peer-to-Peer
            PTP     Precision Time Protocol
            TAI     International Atomic Time
            UDP     User Datagram Protocol
            UTC     Coordinated Universal Time

        References:

        [IEEE-1588-2008] IEEE Standard for A Precision Clock
            Synchronization Protocol for Networked Measurement and
            Control Systems, IEEE Std. 1588-2008, July 2008.

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

        Data type mapping   Textual Convention    SYNTAX
        ------------------- --------------------- ------------------
        5.3.2 TimeInterval  PtpClockTimeInterval  OCTET
                                                  STRING(SIZE(1..255))
        5.3.3 Timestamp     PtpClockTimestamp     OCTET STRING(SIZE(6))
        5.3.4 ClockIdentity PtpClockIdentity      OCTET STRING(SIZE(8))
        5.3.5 PortIdentity  PtpClockPortNumber    INTEGER(1..65535)
        5.3.7 ClockQuality  PtpClockQualityClassType
      "

      REVISION        "201705300000Z"
      DESCRIPTION     "Initial version of this MIB module, published
                      as RFC 8173."

      ::= { mib-2 241 }

-- Textual Conventions

PtpClockDomainType ::= 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."

    REFERENCE   "Section 7.1 ('Domains') and Table 2 ('domainNumber')
                of [IEEE-1588-2008]"
    SYNTAX      Unsigned32 (0..255)

PtpClockIdentity ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "255a"
    STATUS          current
    DESCRIPTION
        "The clock identity is an 8-octet array and will be presented in
        the form of a character array.  Network byte order is assumed.

        The value of the PtpClockIdentity should be taken from the
        IEEE EUI-64 individual assigned numbers as indicated in
        Section 7.5.2.2.2 of [IEEE-1588-2008].  It can also be a
        non-EUI-64 address as defined in Section 7.5.2.2.3 of
        [IEEE-1588-2008].

        The clock identifier can be constructed from existing EUI-48
        assignments."

    REFERENCE       "Section 7.5.2.2.1 ('General') of [IEEE-1588-2008]"
    SYNTAX          OCTET STRING (SIZE (8))

PtpClockInstanceType ::= 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)

PtpClockIntervalBase2 ::= 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
        [IEEE-1588-2008]."

    REFERENCE   "Section 7.7.2.1 ('General interval specification') of
                [IEEE-1588-2008]"
    SYNTAX      Integer32 (-128..127)

PtpClockMechanismType ::= 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]."

    REFERENCE
        "Sections 8.2.5.4.4 ('portDS.delayMechanism'),
        6.6.4 ('Measuring link propagation delay in clocks supporting
        peer-to-peer path correction'), and
        7.4.2 ('communication Path asymmetry') of [IEEE-1588-2008]."
    SYNTAX      INTEGER {
                    e2e(1),
                    p2p(2),
                    disabled(254)
                    }

PtpClockPortNumber ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "d"
    STATUS          current
    DESCRIPTION
        "An index identifying a specific PTP port on a PTP node."

    REFERENCE
        "Sections 7.5.2.3 ('portNumber') and 5.3.5 ('PortIdentity') of
        [IEEE-1588-2008]"
    SYNTAX      Unsigned32 (0..65535)

PtpClockPortState ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This is the value of the current state of the protocol engine
        associated with this port."

    REFERENCE
        "Sections 8.2.5.3.1 ('portState') and 9.2.5 ('State machines')
        of [IEEE-1588-2008]"
    SYNTAX          INTEGER  {
                        initializing(1),
                        faulty(2),
                        disabled(3),
                        listening(4),
                        preMaster(5),

                        master(6),
                        passive(7),
                        uncalibrated(8),
                        slave(9)
                    }

PtpClockPortTransportTypeAddress ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "255a"
    STATUS          current
    DESCRIPTION
        "The clock port transport protocol address used for this
         communication between the clock nodes.  This is a string
         corresponding to the address type as specified by the
         transport type used.  The transport types can be defined
         elsewhere, in addition to the ones defined in this document.
         This can be an address of type IP version 4, IP version 6,
         Ethernet, DeviceNET, ControlNET, or IEC61158.  The OCTET STRING
         representation of the OID of ptpbaseWellKnownTransportTypes
         will be used in the values contained in the OCTET STRING."

    REFERENCE   "Annex D (IPv4), Annex E (IPv6), Annex F (Ethernet),
                 Annex G (DeviceNET), Annex H (ControlNET), and
                 Annex I (IEC61158) of [IEEE-1588-2008]"
    SYNTAX          OCTET STRING (SIZE (1..255))

PtpClockProfileType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Clock Profile used.  A profile is the set of allowed PTP
        features applicable to a device."

    REFERENCE       "Sections 3.1.30 ('profile') and 19.3 ('PTP
                    profiles') of [IEEE-1588-2008]"
    SYNTAX          INTEGER  {
                        default(1),
                        telecom(2),
                        vendorspecific(3)
                    }

PtpClockQualityAccuracyType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The ClockQuality as specified in Section 5.3.7,
        Section 7.6.2.5, and Table 6 of [IEEE-1588-2008].

        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 of RFC 2578 allows
        for gaps and for enumerated values to start at zero when
        indicated by the protocol."

    REFERENCE
        "Section 5.3.7 ('ClockQuality'), Section 7.6.2.5
        ('clockAccuracy'), and Table 6 ('clockAccuracy enumeration')
        of [IEEE-1588-2008]"
    SYNTAX          INTEGER  {
                     -- reserved00(0:31), 0x00 to 0x1F
                        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
                    }

PtpClockQualityClassType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The ClockQuality as specified in Section 5.3.7,
        Section 7.6.2.4, and Table 5 of [IEEE-1588-2008]."

    REFERENCE       "Section 5.3.7 ('ClockQuality'), Section 7.6.2.4
                    ('clockClass'), and Table 5 ('clockClass
                    specifications') of [IEEE-1588-2008]."
    SYNTAX          INTEGER  {
                     -- reserved(0), 0x00
                     -- reserved(1:5), 0x01 to 0x05
                        clockclass6(6), -- 0x06

                        clockclass7(7), -- 0x07
                        -- reserved(8), 0x08
                        -- reserved(9:10), 0x09 to 0x0A
                        -- reserved(11:12), 0x0B, 0x0C
                        clockclass13(13), -- 0x0D
                        clockclass14(14), -- 0x0E
                        -- reserved(15:51), 0x0F to 0x33
                        clockclass52(52), -- 0x34
                        -- reserved(53:57), 0x35 to 0x39
                        clockclass58(58) -- 0x3A
                        -- reserved(59:67), 0x3B to 0x43
                        -- otherprofiles(68:122), 0x44 to 0x7A
                        -- reserved(123:127), 0x7B to 0x7F
                        -- reserved(128:132), 0x80 to 0x84
                    }

PtpClockRoleType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The Clock Role.  The protocol generates a master-slave
        relationship among the clocks in the system.

        Clock Role      Value
        -------------------------
        Master clock     1
        Slave clock      2      "
    SYNTAX          INTEGER  {
                        master(1),
                        slave(2)
                    }

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

        Clock State      Value
        ------------------------
        Freerun state       1
        Holdover state      2
        Acquiring state     3
        Freq_locked state   4
        Phase_aligned state 5  "
    SYNTAX          INTEGER  {
                        freerun(1),
                        holdover(2),
                        acquiring(3),
                        frequencyLocked(4),

                        phaseAligned(5)
                    }

PtpClockTimeInterval ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "255a"
    STATUS          current
    DESCRIPTION
        "This textual convention corresponds to the TimeInterval
        structure indicated in Section 5.3.2 of [IEEE-1588-2008].
        It will be presented in the form of a character array.
        Network byte order is assumed."

    REFERENCE
        "Sections 5.3.2 ('TimeInterval') and 7.7.2.1 ('Timer interval
         specification') of [IEEE-1588-2008]"
    SYNTAX          OCTET STRING (SIZE (1..255))

PtpClockTimeSourceType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The ClockQuality as specified in Sections 5.3.7,
        Section 7.6.2.6, and Table 7 of [IEEE-1588-2008].

        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 of RFC 2578 allows
        for gaps and for enumerated values to start at zero when
        indicated by the protocol."

    REFERENCE       "Section 5.3.7 ('ClockQuality'), Section 7.6.2.6
                    ('timeSource'), and Table 7 ('timeSource
                    enumeration') of [IEEE-1588-2008]."
    SYNTAX          INTEGER  {
                        atomicClock(16), -- 0x10
                        gps(32), -- 0x20
                        terrestrialRadio(48), -- 0x22
                        ptp(64), -- 0x40
                        ntp(80), -- 0x50
                        handSet(96), -- 0x60
                        other(144), -- 0x90
                        internalOscillator(160) -- 0xA0
                    }

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

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

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

    REFERENCE
        "Section 6.5.1 ('PTP device types') of [IEEE-1588-2008]."
    SYNTAX          INTEGER  {
                        ordinaryClock(1),
                        boundaryClock(2),
                        transparentClock(3),
                        boundaryNode(4)
                    }

ptpbaseMIBNotifs  OBJECT IDENTIFIER
    ::= { ptpbaseMIB 0 }

ptpbaseMIBObjects  OBJECT IDENTIFIER
    ::= { ptpbaseMIB 1 }

ptpbaseMIBConformance  OBJECT IDENTIFIER
    ::= { ptpbaseMIB 2 }

ptpbaseMIBSystemInfo  OBJECT IDENTIFIER
    ::= { ptpbaseMIBObjects 1 }

ptpbaseMIBClockInfo  OBJECT IDENTIFIER
    ::= { ptpbaseMIBObjects 2 }

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

ptpbaseSystemEntry OBJECT-TYPE
    SYNTAX          PtpbaseSystemEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains 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 them."
    INDEX           {
                        ptpDomainIndex,
                        ptpInstanceIndex
                    }
    ::= { ptpbaseSystemTable 1 }

PtpbaseSystemEntry ::= SEQUENCE {
        ptpDomainIndex           PtpClockDomainType,
        ptpInstanceIndex         PtpClockInstanceType,
        ptpDomainClockPortsTotal Gauge32
}

ptpDomainIndex OBJECT-TYPE
    SYNTAX          PtpClockDomainType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the domain number used to create a
        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"
    ::= { ptpbaseSystemEntry 1 }

ptpInstanceIndex OBJECT-TYPE
    SYNTAX          PtpClockInstanceType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this
        domain."
    ::= { ptpbaseSystemEntry 2 }

ptpDomainClockPortsTotal 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 in the system."
    ::= { ptpbaseSystemEntry 3 }

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

ptpbaseSystemDomainEntry OBJECT-TYPE
    SYNTAX          PtpbaseSystemDomainEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains information about a single
        clock mode for the PTP system.  A row entry gets added when PTP
        clocks are configured on the node."
    INDEX           { ptpbaseSystemDomainClockTypeIndex }
    ::= { ptpbaseSystemDomainTable 1 }

PtpbaseSystemDomainEntry ::= SEQUENCE {
        ptpbaseSystemDomainClockTypeIndex PtpClockType,
        ptpbaseSystemDomainTotals         Unsigned32
}

ptpbaseSystemDomainClockTypeIndex OBJECT-TYPE
    SYNTAX          PtpClockType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the clock type as defined in the
        textual convention description."
    ::= { ptpbaseSystemDomainEntry 1 }

ptpbaseSystemDomainTotals OBJECT-TYPE
    SYNTAX          Unsigned32
    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."
    ::= { ptpbaseSystemDomainEntry 2 }

ptpbaseSystemProfile OBJECT-TYPE
    SYNTAX          PtpClockProfileType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP profile implemented on the
        system."
    REFERENCE       "Section 19.3 ('PTP profiles')
                    of [IEEE-1588-2008]"
    ::= { ptpbaseMIBSystemInfo 3 }

ptpbaseClockCurrentDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF PtpbaseClockCurrentDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP clock currentDS for
        all domains."
    ::= { ptpbaseMIBClockInfo 1 }

ptpbaseClockCurrentDSEntry OBJECT-TYPE
    SYNTAX          PtpbaseClockCurrentDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains information about a single
        PTP clock currentDS for a domain."
    REFERENCE
        "Section 8.2.2 ('currentDS data set member

        specifications') of [IEEE-1588-2008]"
    INDEX           {
                        ptpbaseClockCurrentDSDomainIndex,
                        ptpbaseClockCurrentDSClockTypeIndex,
                        ptpbaseClockCurrentDSInstanceIndex
                    }
    ::= { ptpbaseClockCurrentDSTable 1 }

PtpbaseClockCurrentDSEntry ::= SEQUENCE {
        ptpbaseClockCurrentDSDomainIndex      PtpClockDomainType,
        ptpbaseClockCurrentDSClockTypeIndex   PtpClockType,
        ptpbaseClockCurrentDSInstanceIndex    PtpClockInstanceType,
        ptpbaseClockCurrentDSStepsRemoved     Unsigned32,
        ptpbaseClockCurrentDSOffsetFromMaster PtpClockTimeInterval,
        ptpbaseClockCurrentDSMeanPathDelay    PtpClockTimeInterval
}

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

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

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

ptpbaseClockCurrentDSStepsRemoved OBJECT-TYPE
    SYNTAX          Unsigned32
    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
        "Section 8.2.2.2 ('stepsRemoved') of [IEEE-1588-2008]"
    ::= { ptpbaseClockCurrentDSEntry 4 }

ptpbaseClockCurrentDSOffsetFromMaster OBJECT-TYPE
    SYNTAX          PtpClockTimeInterval
    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
        "Section 8.2.2.3 ('currentDS.offsetFromMaster')
        of [IEEE-1588-2008]"
    ::= { ptpbaseClockCurrentDSEntry 5 }

ptpbaseClockCurrentDSMeanPathDelay OBJECT-TYPE
    SYNTAX          PtpClockTimeInterval
    UNITS           "Time Interval"
    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 measured by the
        delay request-response mechanism."
    REFERENCE
        "Section 8.2.2.4 ('currentDS.meanPathDelay')
        of [IEEE-1588-2008]"
    ::= { ptpbaseClockCurrentDSEntry 6 }

ptpbaseClockParentDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF PtpbaseClockParentDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP clock parentDS for
        all domains."
    ::= { ptpbaseMIBClockInfo 2 }

ptpbaseClockParentDSEntry OBJECT-TYPE
    SYNTAX          PtpbaseClockParentDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains information about a single
        PTP clock parentDS for a domain."
    REFERENCE
        "Section 8.2.3 ('parentDS data set member specifications') of
        [IEEE-1588-2008]"
    INDEX           {
                        ptpbaseClockParentDSDomainIndex,
                        ptpbaseClockParentDSClockTypeIndex,
                        ptpbaseClockParentDSInstanceIndex
                    }
    ::= { ptpbaseClockParentDSTable 1 }

PtpbaseClockParentDSEntry ::= SEQUENCE {
    ptpbaseClockParentDSDomainIndex            PtpClockDomainType,
    ptpbaseClockParentDSClockTypeIndex         PtpClockType,
    ptpbaseClockParentDSInstanceIndex          PtpClockInstanceType,
    ptpbaseClockParentDSParentPortIdentity     OCTET STRING,
    ptpbaseClockParentDSParentStats            TruthValue,
    ptpbaseClockParentDSOffset                 PtpClockIntervalBase2,
    ptpbaseClockParentDSClockPhChRate          Integer32,
    ptpbaseClockParentDSGMClockIdentity        PtpClockIdentity,
    ptpbaseClockParentDSGMClockPriority1       Unsigned32,
    ptpbaseClockParentDSGMClockPriority2       Unsigned32,
    ptpbaseClockParentDSGMClockQualityClass    PtpClockQualityClassType,
    ptpbaseClockParentDSGMClockQualityAccuracy
PtpClockQualityAccuracyType,
    ptpbaseClockParentDSGMClockQualityOffset   Unsigned32
}

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

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

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

ptpbaseClockParentDSParentPortIdentity OBJECT-TYPE
    SYNTAX          OCTET STRING(SIZE(1..256))
    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
         [IEEE-1588-2008]"
    ::= { ptpbaseClockParentDSEntry 4 }

ptpbaseClockParentDSParentStats OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parentDS 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 [IEEE-1588-2008]"
    ::= { ptpbaseClockParentDSEntry 5 }

ptpbaseClockParentDSOffset OBJECT-TYPE
    SYNTAX          PtpClockIntervalBase2 (-128..127)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parentDS
        ParentOffsetScaledLogVariance value.

        This value is the variance of the parent clock's phase as
        measured by the local clock."
    REFERENCE
        "Section 8.2.3.4
        ('parentDS.observedParentOffsetScaledLogVariance') of
        [IEEE-1588-2008]"
    ::= { ptpbaseClockParentDSEntry 6 }

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

        This value is an estimate of the parent clock's phase change
        rate as measured by the slave clock."
    REFERENCE
        "Section 8.2.3.5
        ('parentDS.observedParentClockPhaseChangeRate') of
        [IEEE-1588-2008]"
    ::= { ptpbaseClockParentDSEntry 7 }

ptpbaseClockParentDSGMClockIdentity OBJECT-TYPE
    SYNTAX          PtpClockIdentity
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parentDS grandmaster clock
        identity."
    REFERENCE
        "Section 8.2.3.6 ('parentDS.grandmasterIdentity') of
         [IEEE-1588-2008]"
    ::= { ptpbaseClockParentDSEntry 8 }

ptpbaseClockParentDSGMClockPriority1 OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parentDS grandmaster clock
        priority1."
    REFERENCE
        "Section 8.2.3.8 ('parentDS.grandmasterPriority1') of
         [IEEE-1588-2008]"
    ::= { ptpbaseClockParentDSEntry 9 }

ptpbaseClockParentDSGMClockPriority2 OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parentDS grandmaster clock
        priority2."
    REFERENCE
        "Section 8.2.3.9 ('parentDS.grandmasterPriority2') of
         [IEEE-1588-2008]"
    ::= { ptpbaseClockParentDSEntry 10 }

ptpbaseClockParentDSGMClockQualityClass OBJECT-TYPE
    SYNTAX          PtpClockQualityClassType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parentDS grandmaster clock
        quality class."
    REFERENCE
        "Section 8.2.3.7 ('parentDS.grandmasterClockQuality') of
         [IEEE-1588-2008]"
    ::= { ptpbaseClockParentDSEntry 11 }

ptpbaseClockParentDSGMClockQualityAccuracy OBJECT-TYPE
    SYNTAX          PtpClockQualityAccuracyType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parentDS grandmaster clock
        quality accuracy."
    REFERENCE
        "Section 8.2.3.7 ('parentDS.grandmasterClockQuality') of
         [IEEE-1588-2008]"
    ::= { ptpbaseClockParentDSEntry 12 }

ptpbaseClockParentDSGMClockQualityOffset OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the parentDS grandmaster clock
        quality offset."
    REFERENCE
        "Section 8.2.3.7 ('parentDS.grandmasterClockQuality') of
         [IEEE-1588-2008]"
    ::= { ptpbaseClockParentDSEntry 13 }

ptpbaseClockDefaultDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF PtpbaseClockDefaultDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP clock defaultDS for
        all domains."
    ::= { ptpbaseMIBClockInfo 3 }

ptpbaseClockDefaultDSEntry OBJECT-TYPE
    SYNTAX          PtpbaseClockDefaultDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains information about a single
        PTP clock defaultDS for a domain."
    INDEX           {
                        ptpbaseClockDefaultDSDomainIndex,
                        ptpbaseClockDefaultDSClockTypeIndex,
                        ptpbaseClockDefaultDSInstanceIndex
                    }
    ::= { ptpbaseClockDefaultDSTable 1 }

PtpbaseClockDefaultDSEntry ::= SEQUENCE {

        ptpbaseClockDefaultDSDomainIndex     PtpClockDomainType,
        ptpbaseClockDefaultDSClockTypeIndex  PtpClockType,
        ptpbaseClockDefaultDSInstanceIndex   PtpClockInstanceType,
        ptpbaseClockDefaultDSTwoStepFlag     TruthValue,
        ptpbaseClockDefaultDSClockIdentity   PtpClockIdentity,
        ptpbaseClockDefaultDSPriority1       Unsigned32,
        ptpbaseClockDefaultDSPriority2       Unsigned32,
        ptpbaseClockDefaultDSSlaveOnly       TruthValue,
        ptpbaseClockDefaultDSQualityClass    PtpClockQualityClassType,
        ptpbaseClockDefaultDSQualityAccuracy
PtpClockQualityAccuracyType,
        ptpbaseClockDefaultDSQualityOffset   Integer32
}

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

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

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

ptpbaseClockDefaultDSTwoStepFlag OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies whether the two-step process is used."
    ::= { ptpbaseClockDefaultDSEntry 4 }

ptpbaseClockDefaultDSClockIdentity OBJECT-TYPE
    SYNTAX          PtpClockIdentity
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the defaultDS clockIdentity member."
    ::= { ptpbaseClockDefaultDSEntry 5 }

ptpbaseClockDefaultDSPriority1 OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the defaultDS priority1 member."
    ::= { ptpbaseClockDefaultDSEntry 6 }

ptpbaseClockDefaultDSPriority2 OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the defaultDS priority2 member."
    ::= { ptpbaseClockDefaultDSEntry 7 }

ptpbaseClockDefaultDSSlaveOnly OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies whether the SlaveOnly flag is set."
    ::= { ptpbaseClockDefaultDSEntry 8 }

ptpbaseClockDefaultDSQualityClass OBJECT-TYPE
    SYNTAX          PtpClockQualityClassType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the defaultDS Quality Class."
    ::= { ptpbaseClockDefaultDSEntry 9 }

ptpbaseClockDefaultDSQualityAccuracy OBJECT-TYPE
    SYNTAX          PtpClockQualityAccuracyType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the defaultDS Quality Accuracy."
    ::= { ptpbaseClockDefaultDSEntry 10 }

ptpbaseClockDefaultDSQualityOffset OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the defaultDS Quality offset."
    ::= { ptpbaseClockDefaultDSEntry 11 }

ptpbaseClockRunningTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF PtpbaseClockRunningEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP clock running datasets for
        all domains."
    ::= { ptpbaseMIBClockInfo 4 }

ptpbaseClockRunningEntry OBJECT-TYPE
    SYNTAX          PtpbaseClockRunningEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains information about a single
        PTP clock running dataset for a domain."
    INDEX           {
                        ptpbaseClockRunningDomainIndex,
                        ptpbaseClockRunningClockTypeIndex,
                        ptpbaseClockRunningInstanceIndex
                    }
    ::= { ptpbaseClockRunningTable 1 }

PtpbaseClockRunningEntry ::= SEQUENCE {
        ptpbaseClockRunningDomainIndex     PtpClockDomainType,
        ptpbaseClockRunningClockTypeIndex  PtpClockType,
        ptpbaseClockRunningInstanceIndex   PtpClockInstanceType,
        ptpbaseClockRunningState           PtpClockStateType,
        ptpbaseClockRunningPacketsSent     Counter64,
        ptpbaseClockRunningPacketsReceived Counter64
}

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

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

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

ptpbaseClockRunningState OBJECT-TYPE
    SYNTAX          PtpClockStateType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the clock state returned by a PTP
        engine."
    ::= { ptpbaseClockRunningEntry 4 }

ptpbaseClockRunningPacketsSent OBJECT-TYPE
    SYNTAX          Counter64
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the total number of all unicast and
        multicast packets that have been sent out for this clock in this
        domain for this type.  These counters are discontinuous."
    ::= { ptpbaseClockRunningEntry 5 }

ptpbaseClockRunningPacketsReceived OBJECT-TYPE
    SYNTAX          Counter64
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the total number of all unicast and
        multicast packets that have been received for this clock in this
        domain for this type.  These counters are discontinuous."
    ::= { ptpbaseClockRunningEntry 6 }

ptpbaseClockTimePropertiesDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF PtpbaseClockTimePropertiesDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP clock timePropertiesDS
        for all domains."
    ::= { ptpbaseMIBClockInfo 5 }

ptpbaseClockTimePropertiesDSEntry OBJECT-TYPE
    SYNTAX          PtpbaseClockTimePropertiesDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains information about a single
        PTP clock timePropertiesDS for a domain."
    REFERENCE
        "Section 8.2.4 ('timePropertiesDS data set member
        specifications') of [IEEE-1588-2008]"
    INDEX           {
                        ptpbaseClockTimePropertiesDSDomainIndex,
                        ptpbaseClockTimePropertiesDSClockTypeIndex,
                        ptpbaseClockTimePropertiesDSInstanceIndex
                    }
    ::= { ptpbaseClockTimePropertiesDSTable 1 }

PtpbaseClockTimePropertiesDSEntry ::= SEQUENCE {
  ptpbaseClockTimePropertiesDSDomainIndex           PtpClockDomainType,
  ptpbaseClockTimePropertiesDSClockTypeIndex        PtpClockType,
  ptpbaseClockTimePropertiesDSInstanceIndex
PtpClockInstanceType,
  ptpbaseClockTimePropertiesDSCurrentUTCOffsetValid TruthValue,
  ptpbaseClockTimePropertiesDSCurrentUTCOffset      Integer32,
  ptpbaseClockTimePropertiesDSLeap59                TruthValue,
  ptpbaseClockTimePropertiesDSLeap61                TruthValue,
  ptpbaseClockTimePropertiesDSTimeTraceable         TruthValue,
  ptpbaseClockTimePropertiesDSFreqTraceable         TruthValue,
  ptpbaseClockTimePropertiesDSPTPTimescale          TruthValue,

  ptpbaseClockTimePropertiesDSSource
PtpClockTimeSourceType
}

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

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

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

ptpbaseClockTimePropertiesDSCurrentUTCOffsetValid OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the timePropertiesDS value of
        whether the current UTC offset is valid."
    REFERENCE
        "Section 8.2.4.2 ('timePropertiesDS.currentUtcOffset') of
        [IEEE-1588-2008]"
    ::= { ptpbaseClockTimePropertiesDSEntry 4 }

ptpbaseClockTimePropertiesDSCurrentUTCOffset OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current

    DESCRIPTION
        "This object specifies the timePropertiesDS value of
        the 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."
    REFERENCE
        "Section 8.2.4.3 ('timePropertiesDS.currentUtcOffsetValid') of
        [IEEE-1588-2008]"
    ::= { ptpbaseClockTimePropertiesDSEntry 5 }

ptpbaseClockTimePropertiesDSLeap59 OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Leap59 value in the clock
        currentDS."
    REFERENCE
        "Section 8.2.4.4 ('timePropertiesDS.leap59')
        of [IEEE-1588-2008]"
    ::= { ptpbaseClockTimePropertiesDSEntry 6 }

ptpbaseClockTimePropertiesDSLeap61 OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Leap61 value in the clock
        currentDS."
    REFERENCE
        "Section 8.2.4.5 ('timePropertiesDS.leap61')
        of [IEEE-1588-2008]"
 ::= { ptpbaseClockTimePropertiesDSEntry 7 }

ptpbaseClockTimePropertiesDSTimeTraceable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Time Traceable value in the clock
        currentDS."
    REFERENCE
        "Section 8.2.4.6 ('timePropertiesDS.timeTraceable') of
        [IEEE-1588-2008]"
    ::= { ptpbaseClockTimePropertiesDSEntry 8 }

ptpbaseClockTimePropertiesDSFreqTraceable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Frequency Traceable value in the
        clock currentDS."
    REFERENCE
        "Section 8.2.4.7 ('timePropertiesDS.frequencyTraceable') of
        [IEEE-1588-2008]"
    ::= { ptpbaseClockTimePropertiesDSEntry 9 }

ptpbaseClockTimePropertiesDSPTPTimescale OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP Timescale value in the clock
        currentDS."
    REFERENCE
        "Section 8.2.4.8 ('timePropertiesDS.ptpTimescale') of
        [IEEE-1588-2008]"
    ::= { ptpbaseClockTimePropertiesDSEntry 10 }

ptpbaseClockTimePropertiesDSSource OBJECT-TYPE
    SYNTAX          PtpClockTimeSourceType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Timesource value in the clock
        currentDS."
    REFERENCE
        "Section 8.2.4.9 ('timePropertiesDS.timeSource') of
        [IEEE-1588-2008]"
    ::= { ptpbaseClockTimePropertiesDSEntry 11 }

ptpbaseClockTransDefaultDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF PtpbaseClockTransDefaultDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the PTP transparentClockDefaultDS
        for all domains."
    ::= { ptpbaseMIBClockInfo 6 }

ptpbaseClockTransDefaultDSEntry OBJECT-TYPE
    SYNTAX          PtpbaseClockTransDefaultDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains information about a single
        PTP transparent clock defaultDS for a domain."
    REFERENCE
        "Section 8.3.2 ('transparentClockDefaultDS data set member
        specifications') of [IEEE-1588-2008]"
    INDEX           {
                        ptpbaseClockTransDefaultDSDomainIndex,
                        ptpbaseClockTransDefaultDSInstanceIndex
                    }
    ::= { ptpbaseClockTransDefaultDSTable 1 }

PtpbaseClockTransDefaultDSEntry ::= SEQUENCE {
        ptpbaseClockTransDefaultDSDomainIndex   PtpClockDomainType,
        ptpbaseClockTransDefaultDSInstanceIndex PtpClockInstanceType,
        ptpbaseClockTransDefaultDSClockIdentity PtpClockIdentity,
        ptpbaseClockTransDefaultDSNumOfPorts    Counter32,
        ptpbaseClockTransDefaultDSDelay         PtpClockMechanismType,
        ptpbaseClockTransDefaultDSPrimaryDomain PtpClockDomainType
}

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

ptpbaseClockTransDefaultDSInstanceIndex OBJECT-TYPE
    SYNTAX          PtpClockInstanceType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain."
    ::= { ptpbaseClockTransDefaultDSEntry 2 }

ptpbaseClockTransDefaultDSClockIdentity OBJECT-TYPE
    SYNTAX          PtpClockIdentity
    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 ('transparentClockDefaultDS.clockIdentity')
       of [IEEE-1588-2008]"
    ::= { ptpbaseClockTransDefaultDSEntry 3 }

ptpbaseClockTransDefaultDSNumOfPorts OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the number of PTP ports of the device.
         These counters are discontinuous."
    REFERENCE
        "Section 8.3.2.2.2 ('transparentClockDefaultDS.numberPorts')
        of [IEEE-1588-2008]"
    ::= { ptpbaseClockTransDefaultDSEntry 4 }

ptpbaseClockTransDefaultDSDelay OBJECT-TYPE
    SYNTAX          PtpClockMechanismType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object, if the transparent clock is an end-to-end
        transparent clock, has the value of e2e; if the
        transparent clock is a peer-to-peer transparent clock, the
        value is p2p."
    REFERENCE
        "Section 8.3.2.3.1 ('transparentClockDefaultDS.delayMechanism')
        of [IEEE-1588-2008]"
    ::= { ptpbaseClockTransDefaultDSEntry 5 }

ptpbaseClockTransDefaultDSPrimaryDomain OBJECT-TYPE
    SYNTAX          PtpClockDomainType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the value of the primary syntonization
        domain.  The initialization value is 0."
    REFERENCE
        "Section 8.3.2.3.2 ('transparentClockDefaultDS.primaryDomain')
        of [IEEE-1588-2008]"
    ::= { ptpbaseClockTransDefaultDSEntry 6 }

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

ptpbaseClockPortEntry OBJECT-TYPE
    SYNTAX          PtpbaseClockPortEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains information about a single
        clock port."
    INDEX           {
                        ptpbaseClockPortDomainIndex,
                        ptpbaseClockPortClockTypeIndex,
                        ptpbaseClockPortClockInstanceIndex,
                        ptpbaseClockPortTablePortNumberIndex
                    }
    ::= { ptpbaseClockPortTable 1 }

PtpbaseClockPortEntry ::= SEQUENCE {
        ptpbaseClockPortDomainIndex            PtpClockDomainType,
        ptpbaseClockPortClockTypeIndex         PtpClockType,
        ptpbaseClockPortClockInstanceIndex     PtpClockInstanceType,
        ptpbaseClockPortTablePortNumberIndex   PtpClockPortNumber,
        ptpbaseClockPortName                   DisplayString,
        ptpbaseClockPortRole                   PtpClockRoleType,
        ptpbaseClockPortSyncTwoStep            TruthValue,
        ptpbaseClockPortCurrentPeerAddressType AutonomousType,
        ptpbaseClockPortCurrentPeerAddress
PtpClockPortTransportTypeAddress,
        ptpbaseClockPortNumOfAssociatedPorts   Gauge32
}

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

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

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

ptpbaseClockPortTablePortNumberIndex OBJECT-TYPE
    SYNTAX          PtpClockPortNumber
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP portNumber for this port."
    ::= { ptpbaseClockPortEntry 4 }

ptpbaseClockPortName 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
        node."
    ::= { ptpbaseClockPortEntry 5 }

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

ptpbaseClockPortSyncTwoStep OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current

    DESCRIPTION
        "This object specifies that two-step clock operation between
        the PTP master and slave device is enabled."
    ::= { ptpbaseClockPortEntry 7 }

ptpbaseClockPortCurrentPeerAddressType OBJECT-TYPE
    SYNTAX          AutonomousType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the current peer's network address type
         used for PTP communication."
    ::= { ptpbaseClockPortEntry 8 }

ptpbaseClockPortCurrentPeerAddress OBJECT-TYPE
    SYNTAX          PtpClockPortTransportTypeAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the current peer's network address used
        for PTP communication."
    ::= { ptpbaseClockPortEntry 9 }

ptpbaseClockPortNumOfAssociatedPorts OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the following:
        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)."
    ::= { ptpbaseClockPortEntry 10 }

ptpbaseClockPortDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF PtpbaseClockPortDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the clock's portDS for a
        particular domain."
    ::= { ptpbaseMIBClockInfo 8 }

ptpbaseClockPortDSEntry OBJECT-TYPE
    SYNTAX          PtpbaseClockPortDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains portDS information for
        a single clock port."
    INDEX           {
                        ptpbaseClockPortDSDomainIndex,
                        ptpbaseClockPortDSClockTypeIndex,
                        ptpbaseClockPortDSClockInstanceIndex,
                        ptpbaseClockPortDSPortNumberIndex
                    }
    ::= { ptpbaseClockPortDSTable 1 }

PtpbaseClockPortDSEntry ::= SEQUENCE {
        ptpbaseClockPortDSDomainIndex          PtpClockDomainType,
        ptpbaseClockPortDSClockTypeIndex       PtpClockType,
        ptpbaseClockPortDSClockInstanceIndex   PtpClockInstanceType,
        ptpbaseClockPortDSPortNumberIndex      PtpClockPortNumber,
        ptpbaseClockPortDSName                 DisplayString,
        ptpbaseClockPortDSPortIdentity         OCTET STRING,
        ptpbaseClockPortDSlogAnnouncementInterval PtpClockIntervalBase2,
        ptpbaseClockPortDSAnnounceRctTimeout   Integer32,
        ptpbaseClockPortDSlogSyncInterval      PtpClockIntervalBase2,
        ptpbaseClockPortDSMinDelayReqInterval  Integer32,
        ptpbaseClockPortDSPeerDelayReqInterval Integer32,
        ptpbaseClockPortDSDelayMech            PtpClockMechanismType,
        ptpbaseClockPortDSPeerMeanPathDelay    PtpClockTimeInterval,
        ptpbaseClockPortDSGrantDuration        Unsigned32,
        ptpbaseClockPortDSPTPVersion           Unsigned32
}

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

ptpbaseClockPortDSClockTypeIndex OBJECT-TYPE
    SYNTAX          PtpClockType
    MAX-ACCESS      not-accessible
    STATUS          current

    DESCRIPTION
        "This object specifies the clock type as defined in the
        textual convention description."
    ::= { ptpbaseClockPortDSEntry 2 }

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

ptpbaseClockPortDSPortNumberIndex OBJECT-TYPE
    SYNTAX          PtpClockPortNumber
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP portNumber associated with this
        PTP port."
    ::= { ptpbaseClockPortDSEntry 4 }

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

ptpbaseClockPortDSPortIdentity OBJECT-TYPE
    SYNTAX          OCTET STRING(SIZE(1..256))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP clock port Identity."
    ::= { ptpbaseClockPortDSEntry 6 }

ptpbaseClockPortDSlogAnnouncementInterval OBJECT-TYPE
    SYNTAX          PtpClockIntervalBase2
    UNITS           "Time Interval"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Announce message transmission
        interval associated with this clock port."
    ::= { ptpbaseClockPortDSEntry 7 }

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

ptpbaseClockPortDSlogSyncInterval OBJECT-TYPE
    SYNTAX          PtpClockIntervalBase2
    UNITS           "Time Interval"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the Sync message transmission interval."
    ::= { ptpbaseClockPortDSEntry 9 }

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

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

ptpbaseClockPortDSDelayMech OBJECT-TYPE
    SYNTAX          PtpClockMechanismType
    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 is e2e; if the
        clock is a peer to-peer clock, the value is p2p."
    ::= { ptpbaseClockPortDSEntry 12 }

ptpbaseClockPortDSPeerMeanPathDelay OBJECT-TYPE
    SYNTAX          PtpClockTimeInterval
    UNITS           "Time Interval"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the peer meanPathDelay."
    ::= { ptpbaseClockPortDSEntry 13 }

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

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

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

ptpbaseClockPortRunningEntry OBJECT-TYPE
    SYNTAX          PtpbaseClockPortRunningEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains running dataset information
        about a single clock port."

    INDEX           {
                        ptpbaseClockPortRunningDomainIndex,
                        ptpbaseClockPortRunningClockTypeIndex,
                        ptpbaseClockPortRunningClockInstanceIndex,
                        ptpbaseClockPortRunningPortNumberIndex
                    }
    ::= { ptpbaseClockPortRunningTable 1 }

PtpbaseClockPortRunningEntry ::= SEQUENCE {
        ptpbaseClockPortRunningDomainIndex        PtpClockDomainType,
        ptpbaseClockPortRunningClockTypeIndex     PtpClockType,
        ptpbaseClockPortRunningClockInstanceIndex PtpClockInstanceType,
        ptpbaseClockPortRunningPortNumberIndex    PtpClockPortNumber,
        ptpbaseClockPortRunningName               DisplayString,
        ptpbaseClockPortRunningState              PtpClockPortState,
        ptpbaseClockPortRunningRole               PtpClockRoleType,
        ptpbaseClockPortRunningInterfaceIndex     InterfaceIndexOrZero,
        ptpbaseClockPortRunningTransport          AutonomousType,
        ptpbaseClockPortRunningEncapsulationType  AutonomousType,
        ptpbaseClockPortRunningTxMode             PtpClockTxModeType,
        ptpbaseClockPortRunningRxMode             PtpClockTxModeType,
        ptpbaseClockPortRunningPacketsReceived    Counter64,
        ptpbaseClockPortRunningPacketsSent        Counter64
}

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

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

ptpbaseClockPortRunningClockInstanceIndex OBJECT-TYPE
    SYNTAX          PtpClockInstanceType
    MAX-ACCESS      not-accessible
    STATUS          current

    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain."
    ::= { ptpbaseClockPortRunningEntry 3 }

ptpbaseClockPortRunningPortNumberIndex OBJECT-TYPE
    SYNTAX          PtpClockPortNumber
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP portNumber associated with this
        clock port."
    ::= { ptpbaseClockPortRunningEntry 4 }

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

ptpbaseClockPortRunningState OBJECT-TYPE
    SYNTAX          PtpClockPortState
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the port state returned by PTP engine:

        initializing
        faulty
        disabled
        listening
        preMaster
        master
        passive
        uncalibrated
        slave        "
    ::= { ptpbaseClockPortRunningEntry 6 }

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

ptpbaseClockPortRunningInterfaceIndex OBJECT-TYPE
    SYNTAX          InterfaceIndexOrZero
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the interface on the node being used by
        the PTP clock for PTP communication."
    ::= { ptpbaseClockPortRunningEntry 8 }

ptpbaseClockPortRunningTransport OBJECT-TYPE
    SYNTAX          AutonomousType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the transport protocol being used for PTP
        communication (the mapping used)."
    ::= { ptpbaseClockPortRunningEntry 9 }

ptpbaseClockPortRunningEncapsulationType OBJECT-TYPE
    SYNTAX          AutonomousType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the type of encapsulation if the
        interface is adding extra layers (e.g., VLAN or Pseudowire
        encapsulation) for the PTP messages."
    ::= { ptpbaseClockPortRunningEntry 10 }

ptpbaseClockPortRunningTxMode OBJECT-TYPE
    SYNTAX          PtpClockTxModeType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the clock transmission mode as:
        unicast:       Using unicast communication channel
        multicast:     Using multicast communication channel
        multicast-mix: Using multicast-unicast communication channel"
    ::= { ptpbaseClockPortRunningEntry 11 }

ptpbaseClockPortRunningRxMode OBJECT-TYPE
    SYNTAX          PtpClockTxModeType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the clock receive mode as:
        unicast:       Using unicast communication channel
        multicast:     Using multicast communication channel
        multicast-mix: Using multicast-unicast communication channel"

    ::= { ptpbaseClockPortRunningEntry 12 }

ptpbaseClockPortRunningPacketsReceived OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the packets received on the clock port
        (cumulative).  These counters are discontinuous."
    ::= { ptpbaseClockPortRunningEntry 13 }

ptpbaseClockPortRunningPacketsSent OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the packets sent on the clock port
        (cumulative).  These counters are discontinuous."
    ::= { ptpbaseClockPortRunningEntry 14 }

ptpbaseClockPortTransDSTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF PtpbaseClockPortTransDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Table of information about the transparentClockPortDS
        for a particular domain."
    ::= { ptpbaseMIBClockInfo 10 }

ptpbaseClockPortTransDSEntry OBJECT-TYPE
    SYNTAX          PtpbaseClockPortTransDSEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains clock port transparent
        dataset information about a single clock port."
    INDEX           {
                        ptpbaseClockPortTransDSDomainIndex,
                        ptpbaseClockPortTransDSInstanceIndex,
                        ptpbaseClockPortTransDSPortNumberIndex
                    }
    ::= { ptpbaseClockPortTransDSTable 1 }

PtpbaseClockPortTransDSEntry ::= SEQUENCE {
        ptpbaseClockPortTransDSDomainIndex        PtpClockDomainType,
        ptpbaseClockPortTransDSInstanceIndex      PtpClockInstanceType,
        ptpbaseClockPortTransDSPortNumberIndex    PtpClockPortNumber,
        ptpbaseClockPortTransDSPortIdentity       PtpClockIdentity,
        ptpbaseClockPortTransDSlogMinPdelayReqInt PtpClockIntervalBase2,
        ptpbaseClockPortTransDSFaultyFlag         TruthValue,
        ptpbaseClockPortTransDSPeerMeanPathDelay  PtpClockTimeInterval
}

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

ptpbaseClockPortTransDSInstanceIndex OBJECT-TYPE
    SYNTAX          PtpClockInstanceType
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the instance of the clock for this clock
        type in the given domain."
    ::= { ptpbaseClockPortTransDSEntry 2 }

ptpbaseClockPortTransDSPortNumberIndex OBJECT-TYPE
    SYNTAX          PtpClockPortNumber
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP portNumber associated with this
        port."
    REFERENCE       "Section 7.5.2 ('Port Identity')
                    of [IEEE-1588-2008]"
    ::= { ptpbaseClockPortTransDSEntry 3 }

ptpbaseClockPortTransDSPortIdentity OBJECT-TYPE
    SYNTAX          PtpClockIdentity
    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 ('transparentClockPortDS.portIdentity') of
        [IEEE-1588-2008]"
    ::= { ptpbaseClockPortTransDSEntry 4 }

ptpbaseClockPortTransDSlogMinPdelayReqInt OBJECT-TYPE
    SYNTAX          PtpClockIntervalBase2
    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
       ('transparentClockPortDS.logMinPdelayReqInterval') of
       [IEEE-1588-2008]"
    ::= { ptpbaseClockPortTransDSEntry 5 }

ptpbaseClockPortTransDSFaultyFlag 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 ('transparentClockPortDS.faultyFlag') of
        [IEEE-1588-2008]"
    ::= { ptpbaseClockPortTransDSEntry 6 }

ptpbaseClockPortTransDSPeerMeanPathDelay OBJECT-TYPE
    SYNTAX          PtpClockTimeInterval
    UNITS           "Time Interval"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies, if the delayMechanism used is p2p, the
        value of 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 ('transparentClockPortDS.peerMeanPathDelay')
        of [IEEE-1588-2008]"
    ::= { ptpbaseClockPortTransDSEntry 7 }

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

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

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

--
-- Well Known transport types for PTP communication.
--
ptpbaseWellKnownTransportTypes OBJECT IDENTIFIER ::= {
ptpbaseMIBClockInfo 12 }

ptpbaseTransportTypeIPversion4 OBJECT-IDENTITY
    STATUS current
    DESCRIPTION
        "IP version 4"
    ::= { ptpbaseWellKnownTransportTypes 1 }

ptpbaseTransportTypeIPversion6 OBJECT-IDENTITY
   STATUS current
     DESCRIPTION
        "IP version 6"
     ::= { ptpbaseWellKnownTransportTypes 2 }

ptpbaseTransportTypeEthernet OBJECT-IDENTITY
   STATUS current
    DESCRIPTION
        "Ethernet"
     ::= { ptpbaseWellKnownTransportTypes 3 }

ptpbaseTransportTypeDeviceNET OBJECT-IDENTITY
   STATUS current
    DESCRIPTION
        "Device NET"
     ::= { ptpbaseWellKnownTransportTypes 4 }

ptpbaseTransportTypeControlNET OBJECT-IDENTITY
   STATUS current
    DESCRIPTION
        "Control NET"
     ::= { ptpbaseWellKnownTransportTypes 5 }

ptpbaseTransportTypeIEC61158 OBJECT-IDENTITY
   STATUS current
    DESCRIPTION
        "IEC61158"
     ::= { ptpbaseWellKnownTransportTypes 6 }

--
-- Well Known encapsulation types for PTP communication.
--
ptpbaseWellKnownEncapsulationTypes OBJECT IDENTIFIER ::= {
ptpbaseMIBClockInfo 13 }

ptpbaseEncapsulationTypeEthernet OBJECT-IDENTITY
    STATUS current
    DESCRIPTION
        "Ethernet Encapsulation type."
    ::= { ptpbaseWellKnownEncapsulationTypes 1 }

ptpbaseEncapsulationTypeVLAN OBJECT-IDENTITY
    STATUS current
    DESCRIPTION
        "VLAN Encapsulation type."
    ::= { ptpbaseWellKnownEncapsulationTypes 2 }

ptpbaseEncapsulationTypeUDPIPLSP OBJECT-IDENTITY
   STATUS current
     DESCRIPTION
        "UDP/IP over MPLS Encapsulation type."
     ::= { ptpbaseWellKnownEncapsulationTypes 3 }

ptpbaseEncapsulationTypePWUDPIPLSP OBJECT-IDENTITY
   STATUS current
     DESCRIPTION
        "UDP/IP Pseudowire over MPLS Encapsulation type."
     ::= { ptpbaseWellKnownEncapsulationTypes 4 }

ptpbaseEncapsulationTypePWEthernetLSP OBJECT-IDENTITY
   STATUS current
     DESCRIPTION
        "Ethernet Pseudowire over MPLS Encapsulation type."
     ::= { ptpbaseWellKnownEncapsulationTypes 5 }

ptpbaseClockPortAssociateEntry OBJECT-TYPE
    SYNTAX          PtpbaseClockPortAssociateEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table entry that contains information about a single
        associated port for the given clock port."
    INDEX           {
                        ptpClockPortCurrentDomainIndex,
                        ptpClockPortCurrentClockTypeIndex,
                        ptpClockPortCurrentClockInstanceIndex,
                        ptpClockPortCurrentPortNumberIndex,
                        ptpbaseClockPortAssociatePortIndex
                    }
    ::= { ptpbaseClockPortAssociateTable 1 }

PtpbaseClockPortAssociateEntry ::= SEQUENCE {
        ptpClockPortCurrentDomainIndex           PtpClockDomainType,
        ptpClockPortCurrentClockTypeIndex        PtpClockType,
        ptpClockPortCurrentClockInstanceIndex    PtpClockInstanceType,
        ptpClockPortCurrentPortNumberIndex       PtpClockPortNumber,
        ptpbaseClockPortAssociatePortIndex       Unsigned32,
        ptpbaseClockPortAssociateAddressType     AutonomousType,
        ptpbaseClockPortAssociateAddress
PtpClockPortTransportTypeAddress,
        ptpbaseClockPortAssociatePacketsSent     Counter64,
        ptpbaseClockPortAssociatePacketsReceived Counter64,
        ptpbaseClockPortAssociateInErrors        Counter64,
        ptpbaseClockPortAssociateOutErrors       Counter64
}

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

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

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

ptpClockPortCurrentPortNumberIndex OBJECT-TYPE
    SYNTAX          PtpClockPortNumber
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This object specifies the PTP portNumber for the given port."
    ::= { ptpbaseClockPortAssociateEntry 4 }

ptpbaseClockPortAssociatePortIndex 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."
    ::= { ptpbaseClockPortAssociateEntry 5 }

ptpbaseClockPortAssociateAddressType OBJECT-TYPE
    SYNTAX          AutonomousType
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the peer port's network address type used
        for PTP communication.  The OCTET STRING representation of the
        OID of ptpbaseWellKnownTransportTypes will be used in the values
        contained in the OCTET STRING."
    ::= { ptpbaseClockPortAssociateEntry 6 }

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

ptpbaseClockPortAssociatePacketsSent 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.  These counters are discontinuous."
    ::= { ptpbaseClockPortAssociateEntry 8 }

ptpbaseClockPortAssociatePacketsReceived 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.  These counters are discontinuous."
    ::= { ptpbaseClockPortAssociateEntry 9 }

ptpbaseClockPortAssociateInErrors OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the input errors associated with the
        peer port.  These counters are discontinuous."
    ::= { ptpbaseClockPortAssociateEntry 10 }

ptpbaseClockPortAssociateOutErrors OBJECT-TYPE
    SYNTAX          Counter64
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object specifies the output errors associated with the
        peer port.  These counters are discontinuous."
    ::= { ptpbaseClockPortAssociateEntry 11 }

-- Conformance Information Definition

ptpbaseMIBCompliances  OBJECT IDENTIFIER
    ::= { ptpbaseMIBConformance 1 }

ptpbaseMIBGroups  OBJECT IDENTIFIER
    ::= { ptpbaseMIBConformance 2 }

ptpbaseMIBCompliancesSystemInfo MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "Compliance statement for agents that provide read-only support
        for PTPBASE-MIB to provide system-level information of clock
        devices.  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 { ptpbaseMIBSystemInfoGroup }
    ::= { ptpbaseMIBCompliances 1 }

ptpbaseMIBCompliancesClockInfo MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "Compliance statement for agents that provide read-only support
        for PTPBASE-MIB to provide clock-related information.
        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 {
                        ptpbaseMIBClockCurrentDSGroup,
                        ptpbaseMIBClockParentDSGroup,
                        ptpbaseMIBClockDefaultDSGroup,
                        ptpbaseMIBClockRunningGroup,
                        ptpbaseMIBClockTimepropertiesGroup
                    }
    ::= { ptpbaseMIBCompliances 2 }

ptpbaseMIBCompliancesClockPortInfo MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "Compliance statement for agents that provide read-only support
        for PTPBASE-MIB to provide clock-port-related information.
        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 {
                        ptpbaseMIBClockPortGroup,
                        ptpbaseMIBClockPortDSGroup,
                        ptpbaseMIBClockPortRunningGroup,
                        ptpbaseMIBClockPortAssociateGroup
                    }
    ::= { ptpbaseMIBCompliances 3 }

ptpbaseMIBCompliancesTransparentClockInfo MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "Compliance statement for agents that provide read-only support
        for PTPBASE-MIB to provide transparent-clock-related
        information.  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 {
                        ptpbaseMIBClockTranparentDSGroup,
                        ptpbaseMIBClockPortTransDSGroup
                    }
    ::= { ptpbaseMIBCompliances 4 }

ptpbaseMIBSystemInfoGroup OBJECT-GROUP
    OBJECTS         {
                        ptpbaseSystemDomainTotals,
                        ptpDomainClockPortsTotal,
                        ptpbaseSystemProfile
                    }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing system-wide
        information"
    ::= { ptpbaseMIBGroups 1 }

ptpbaseMIBClockCurrentDSGroup OBJECT-GROUP
    OBJECTS         {
                        ptpbaseClockCurrentDSStepsRemoved,
                        ptpbaseClockCurrentDSOffsetFromMaster,
                        ptpbaseClockCurrentDSMeanPathDelay
                    }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing PTP currentDS
        information"
    ::= { ptpbaseMIBGroups 2 }

ptpbaseMIBClockParentDSGroup OBJECT-GROUP
    OBJECTS         {
                        ptpbaseClockParentDSParentPortIdentity,
                        ptpbaseClockParentDSParentStats,
                        ptpbaseClockParentDSOffset,
                        ptpbaseClockParentDSClockPhChRate,
                        ptpbaseClockParentDSGMClockIdentity,
                        ptpbaseClockParentDSGMClockPriority1,
                        ptpbaseClockParentDSGMClockPriority2,
                        ptpbaseClockParentDSGMClockQualityClass,
                        ptpbaseClockParentDSGMClockQualityAccuracy,
                        ptpbaseClockParentDSGMClockQualityOffset
                    }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing PTP parentDS
        information"
    ::= { ptpbaseMIBGroups 3 }

ptpbaseMIBClockDefaultDSGroup OBJECT-GROUP
    OBJECTS         {
                        ptpbaseClockDefaultDSTwoStepFlag,
                        ptpbaseClockDefaultDSClockIdentity,
                        ptpbaseClockDefaultDSPriority1,
                        ptpbaseClockDefaultDSPriority2,
                        ptpbaseClockDefaultDSSlaveOnly,
                        ptpbaseClockDefaultDSQualityClass,
                        ptpbaseClockDefaultDSQualityAccuracy,
                        ptpbaseClockDefaultDSQualityOffset
                    }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing PTP defaultDS
        information"
    ::= { ptpbaseMIBGroups 4 }

ptpbaseMIBClockRunningGroup OBJECT-GROUP
    OBJECTS         {
                        ptpbaseClockRunningState,
                        ptpbaseClockRunningPacketsSent,
                        ptpbaseClockRunningPacketsReceived
                    }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing PTP running state
        information"
    ::= { ptpbaseMIBGroups 5 }

ptpbaseMIBClockTimepropertiesGroup OBJECT-GROUP
    OBJECTS  {
                ptpbaseClockTimePropertiesDSCurrentUTCOffsetValid,
                ptpbaseClockTimePropertiesDSCurrentUTCOffset,
                ptpbaseClockTimePropertiesDSLeap59,
                ptpbaseClockTimePropertiesDSLeap61,
                ptpbaseClockTimePropertiesDSTimeTraceable,
                ptpbaseClockTimePropertiesDSFreqTraceable,
                ptpbaseClockTimePropertiesDSPTPTimescale,
                ptpbaseClockTimePropertiesDSSource
              }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing PTP Time Properties
        information"
    ::= { ptpbaseMIBGroups 6 }

ptpbaseMIBClockTranparentDSGroup OBJECT-GROUP
    OBJECTS         {
                        ptpbaseClockTransDefaultDSClockIdentity,
                        ptpbaseClockTransDefaultDSNumOfPorts,
                        ptpbaseClockTransDefaultDSDelay,
                        ptpbaseClockTransDefaultDSPrimaryDomain
                    }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing PTP
        transparentClockDefaultDS information"
    ::= { ptpbaseMIBGroups 7 }

ptpbaseMIBClockPortGroup OBJECT-GROUP
    OBJECTS         {
                        ptpbaseClockPortName,
                        ptpbaseClockPortSyncTwoStep,
                        ptpbaseClockPortCurrentPeerAddress,
                        ptpbaseClockPortNumOfAssociatedPorts,

                        ptpbaseClockPortCurrentPeerAddressType,
                        ptpbaseClockPortRole
                    }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing information for a
        given PTP Port"
    ::= { ptpbaseMIBGroups 8 }

ptpbaseMIBClockPortDSGroup OBJECT-GROUP
    OBJECTS         {
                        ptpbaseClockPortDSName,
                        ptpbaseClockPortDSPortIdentity,
                        ptpbaseClockPortDSlogAnnouncementInterval,
                        ptpbaseClockPortDSAnnounceRctTimeout,
                        ptpbaseClockPortDSlogSyncInterval,
                        ptpbaseClockPortDSMinDelayReqInterval,
                        ptpbaseClockPortDSPeerDelayReqInterval,
                        ptpbaseClockPortDSDelayMech,
                        ptpbaseClockPortDSPeerMeanPathDelay,
                        ptpbaseClockPortDSGrantDuration,
                        ptpbaseClockPortDSPTPVersion
                    }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing PTP portDS
        information"
    ::= { ptpbaseMIBGroups 9 }

ptpbaseMIBClockPortRunningGroup OBJECT-GROUP
    OBJECTS         {
                        ptpbaseClockPortRunningName,
                        ptpbaseClockPortRunningState,
                        ptpbaseClockPortRunningRole,
                        ptpbaseClockPortRunningInterfaceIndex,
                        ptpbaseClockPortRunningTransport,
                        ptpbaseClockPortRunningEncapsulationType,
                        ptpbaseClockPortRunningTxMode,
                        ptpbaseClockPortRunningRxMode,
                        ptpbaseClockPortRunningPacketsReceived,
                        ptpbaseClockPortRunningPacketsSent
                    }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing PTP running interface
        information"
    ::= { ptpbaseMIBGroups 10 }

ptpbaseMIBClockPortTransDSGroup OBJECT-GROUP
    OBJECTS         {
                        ptpbaseClockPortTransDSPortIdentity,
                        ptpbaseClockPortTransDSlogMinPdelayReqInt,
                        ptpbaseClockPortTransDSFaultyFlag,
                        ptpbaseClockPortTransDSPeerMeanPathDelay
                    }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing PTP
        transparentClockPortDS information"
    ::= { ptpbaseMIBGroups 11 }

ptpbaseMIBClockPortAssociateGroup OBJECT-GROUP
    OBJECTS         {
                        ptpbaseClockPortAssociatePacketsSent,
                        ptpbaseClockPortAssociatePacketsReceived,
                        ptpbaseClockPortAssociateAddress,
                        ptpbaseClockPortAssociateAddressType,
                        ptpbaseClockPortAssociateInErrors,
                        ptpbaseClockPortAssociateOutErrors
                    }
    STATUS          current
    DESCRIPTION
        "Group that aggregates objects describing information on peer
        PTP ports for a given PTP clock port"
    ::= { ptpbaseMIBGroups 12 }

END

5.  Security Considerations

   There are no management objects defined in this MIB module that have
   a MAX-ACCESS clause of read-write and/or read-create.  So, if this
   MIB module is implemented correctly, then there is no risk that an
   intruder can alter or create any management objects of this MIB
   module via direct SNMP SET operations.

   Some of the readable objects in this MIB module (i.e., objects with a
   MAX-ACCESS other than not-accessible) may be considered sensitive or
   vulnerable in some network environments.  It is thus important to
   control even GET and/or NOTIFY access to these objects and possibly
   to even encrypt the values of these objects when sending them over
   the network via SNMP.

   These are the tables and objects and their sensitivity/vulnerability:

      ptpDomainClockPortsTotal, ptpbaseSystemDomainTotals, and
      ptpbaseSystemProfile expose general information about the clock
      system.

      ptpbaseClockRunningState, ptpbaseClockRunningPacketsSent, and
      ptpbaseClockRunningPacketsReceived expose a clock's current
      running status.

      ptpbaseClockCurrentDSStepsRemoved,
      ptpbaseClockCurrentDSOffsetFromMaster, and
      ptpbaseClockCurrentDSMeanPathDelay expose the values of a clock's
      current dataset (currentDS).

      ptpbaseClockParentDSParentPortIdentity,
      ptpbaseClockParentDSParentStats, ptpbaseClockParentDSOffset,
      ptpbaseClockParentDSClockPhChRate,
      ptpbaseClockParentDSGMClockIdentity,
      ptpbaseClockParentDSGMClockPriority1,
      ptpbaseClockParentDSGMClockPriority2,
      ptpbaseClockParentDSGMClockQualityClass,
      ptpbaseClockParentDSGMClockQualityAccuracy, and
      ptpbaseClockParentDSGMClockQualityOffset expose the values of a
      clock's parent dataset (parentDS).

      ptpbaseClockDefaultDSTwoStepFlag,
      ptpbaseClockDefaultDSClockIdentity,
      ptpbaseClockDefaultDSPriority1, ptpbaseClockDefaultDSPriority2,
      ptpbaseClockDefaultDSSlaveOnly, ptpbaseClockDefaultDSQualityClass,
      ptpbaseClockDefaultDSQualityAccuracy, and
      ptpbaseClockDefaultDSQualityOffset expose the values of a clock's
      default dataset (defaultDS).

      ptpbaseClockTimePropertiesDSCurrentUTCOffsetValid,
      ptpbaseClockTimePropertiesDSCurrentUTCOffset,
      ptpbaseClockTimePropertiesDSLeap59,
      ptpbaseClockTimePropertiesDSLeap61,
      ptpbaseClockTimePropertiesDSTimeTraceable,
      ptpbaseClockTimePropertiesDSFreqTraceable,
      ptpbaseClockTimePropertiesDSPTPTimescale, and
      ptpbaseClockTimePropertiesDSSource expose the values of a clock's
      time properties dataset (timePropertiesDS).

      ptpbaseClockTransDefaultDSClockIdentity,
      ptpbaseClockTransDefaultDSNumOfPorts,
      ptpbaseClockTransDefaultDSDelay, and
      ptpbaseClockTransDefaultDSPrimaryDomain expose the values of a
      transparent clock's default dataset (transparentClockDefaultDS).

      ptpbaseClockPortName, ptpbaseClockPortRole,
      ptpbaseClockPortSyncTwoStep,
      ptpbaseClockPortCurrentPeerAddressType,
      ptpbaseClockPortCurrentPeerAddress, and
      ptpbaseClockPortNumOfAssociatedPorts expose general information
      about a clock port.

      ptpbaseClockPortRunningName, ptpbaseClockPortRunningState,
      ptpbaseClockPortRunningRole,
      ptpbaseClockPortRunningInterfaceIndex,
      ptpbaseClockPortRunningTransport,
      ptpbaseClockPortRunningEncapsulationType,
      ptpbaseClockPortRunningTxMode, ptpbaseClockPortRunningRxMode,
      ptpbaseClockPortRunningPacketsReceived, and
      ptpbaseClockPortRunningPacketsSent expose a clock port's current
      running status.

      ptpbaseClockPortDSName, ptpbaseClockPortDSPortIdentity,
      ptpbaseClockPortDSlogAnnouncementInterval,
      ptpbaseClockPortDSAnnounceRctTimeout,
      ptpbaseClockPortDSlogSyncInterval,
      ptpbaseClockPortDSMinDelayReqInterval,
      ptpbaseClockPortDSPeerDelayReqInterval,
      ptpbaseClockPortDSDelayMech, ptpbaseClockPortDSPeerMeanPathDelay,
      ptpbaseClockPortDSGrantDuration, and ptpbaseClockPortDSPTPVersion
      expose the values of a clock port's port dataset (portDS).

      ptpbaseClockPortTransDSPortIdentity,
      ptpbaseClockPortTransDSlogMinPdelayReqInt,
      ptpbaseClockPortTransDSFaultyFlag, and
      ptpbaseClockPortTransDSPeerMeanPathDelay expose the values of a
      transparent clock port's port dataset (transparentClockPortDS).

      ptpbaseClockPortAssociateAddressType,
      ptpbaseClockPortAssociateAddress,
      ptpbaseClockPortAssociatePacketsSent,
      ptpbaseClockPortAssociatePacketsReceived,
      ptpbaseClockPortAssociateInErrors, and
      ptpbaseClockPortAssociateOutErrors expose information about a
      clock port's peer node.

   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example, by using IPsec),
   even then, there is no control as to who on the secure network is
   allowed to access and GET (read) the objects in this MIB module.

   Implementations SHOULD provide the security features described by the
   SNMPv3 framework (see [RFC3410]), and implementations claiming
   compliance to the SNMPv3 standard MUST include full support for
   authentication and privacy via the User-based Security Model (USM)
   [RFC3414] with the AES cipher algorithm [RFC3826].  Implementations
   MAY also provide support for the Transport Security Model (TSM)
   [RFC5591] in combination with a secure transport such as SSH
   [RFC5592] or TLS/DTLS [RFC6353].

   Further, deployment of SNMP versions prior to SNMPv3 is NOT
   recommended.  Instead, it is recommended to deploy SNMPv3 and to
   enable cryptographic security.  It is then a customer/operator
   responsibility to ensure that the SNMP entity giving access to an
   instance of this MIB module is properly configured to give access to
   those objects only to those principals (users) that have legitimate
   rights to access them.

6.  IANA Considerations

   The MIB module defined in this document uses the following IANA-
   assigned OBJECT IDENTIFIER value recorded in the "Structure of
   Management Information (SMI) Numbers (MIB Module Registrations)"
   registry:

           Descriptor        OBJECT IDENTIFIER value
           ----------        -----------------------
           ptpbaseMIB        { mib-2 241 }

7.  References

7.1.  Normative References

   [IEEE-1588-2008]
               IEEE, "IEEE Standard for a Precision Clock
               Synchronization Protocol for Networked Measurement and
               Control Systems", IEEE Std. 1588-2008,
               DOI 10.1109/IEEESTD.2008.4579760.

   [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119,
               DOI 10.17487/RFC2119, March 1997,
               <http://www.rfc-editor.org/info/rfc2119>.

   [RFC2578]   McCloghrie, K., Ed., Perkins, D., Ed., and J.
               Schoenwaelder, Ed., "Structure of Management Information
               Version 2 (SMIv2)", STD 58, RFC 2578,
               DOI 10.17487/RFC2578, April 1999,
               <http://www.rfc-editor.org/info/rfc2578>.

   [RFC2579]   McCloghrie, K., Ed., Perkins, D., Ed., and J.
               Schoenwaelder, Ed., "Textual Conventions for SMIv2", STD
               58, RFC 2579, DOI 10.17487/RFC2579, April 1999,
               <http://www.rfc-editor.org/info/rfc2579>.

   [RFC2580]   McCloghrie, K., Ed., Perkins, D., Ed., and J.
               Schoenwaelder, Ed., "Conformance Statements for SMIv2",
               STD 58, RFC 2580, DOI 10.17487/RFC2580, April 1999,
               <http://www.rfc-editor.org/info/rfc2580>.

   [RFC3414]   Blumenthal, U. and B. Wijnen, "User-based Security Model
               (USM) for version 3 of the Simple Network Management
               Protocol (SNMPv3)", STD 62, RFC 3414,
               DOI 10.17487/RFC3414, December 2002,
               <http://www.rfc-editor.org/info/rfc3414>.

   [RFC3826]   Blumenthal, U., Maino, F., and K. McCloghrie, "The
               Advanced Encryption Standard (AES) Cipher Algorithm in
               the SNMP User-based Security Model", RFC 3826,
               DOI 10.17487/RFC3826, June 2004,
               <http://www.rfc-editor.org/info/rfc3826>.

   [RFC5591]   Harrington, D. and W. Hardaker, "Transport Security Model
               for the Simple Network Management Protocol (SNMP)", STD
               78, RFC 5591, DOI 10.17487/RFC5591, June 2009,
               <http://www.rfc-editor.org/info/rfc5591>.

   [RFC5592]   Harrington, D., Salowey, J., and W. Hardaker, "Secure
               Shell Transport Model for the Simple Network Management
               Protocol (SNMP)", RFC 5592, DOI 10.17487/RFC5592, June
               2009, <http://www.rfc-editor.org/info/rfc5592>.

   [RFC6353]   Hardaker, W., "Transport Layer Security (TLS) Transport
               Model for the Simple Network Management Protocol (SNMP)",
               STD 78, RFC 6353, DOI 10.17487/RFC6353, July 2011,
               <http://www.rfc-editor.org/info/rfc6353>.

   [RFC8174]   Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
               2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
               May 2017, <http://www.rfc-editor.org/info/rfc8174>.

7.2.  Informative References

   [RFC3410]   Case, J., Mundy, R., Partain, D., and B. Stewart,
               "Introduction and Applicability Statements for Internet-
               Standard Management Framework", RFC 3410,
               DOI 10.17487/RFC3410, December 2002,
               <http://www.rfc-editor.org/info/rfc3410>.

   [RFC5905]   Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch,
               "Network Time Protocol Version 4: Protocol and Algorithms
               Specification", RFC 5905, DOI 10.17487/RFC5905, June
               2010, <http://www.rfc-editor.org/info/rfc5905>.

   [G.8265.1]  ITU-T, "Precision time protocol telecom profile for
               frequency synchronization", ITU-T Recommendation
               G.8265.1, July 2014.

Acknowledgements

   Thanks to John Linton and Danny Lee for their valuable comments and
   to Bert Wijnen, Kevin Gross, Alan Luchuk, Chris Elliot, Brian
   Haberman, and Dan Romascanu for their reviews of this MIB module.

Authors' Addresses

   Vinay Shankarkumar
   Cisco Systems
   7100-9 Kit Creek Road
   Research Triangle Park, NC 27709
   United States of America

   Email: vinays@cisco.com

   Laurent Montini
   Cisco Systems
   11, rue Camille Desmoulins
   92782 Issy-les-Moulineaux
   France

   Email: lmontini@cisco.com

   Tim Frost
   Calnex Solutions Ltd.
   Oracle Campus
   Linlithgow
   EH49 7LR
   United Kingdom

   Email: tim.frost@calnexsol.com

   Greg Dowd
   Microsemi Inc.
   3870 North First Street
   San Jose, CA 95134
   United States of America

   Email: greg.dowd@microsemi.com

 

User Contributions:

Comment about this RFC, ask questions, or add new information about this topic: