Internet Engineering Task Force (IETF)
Request for Comments: 8173
Category: Standards Track
ISSN: 2070-1721
V. Shankarkumar
L. Montini
Cisco Systems
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 © 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 © 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