TIMETRA-PTP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    InetAddress, InetAddressIPv4,
    InetAddressIPv6, InetAddressType
                                                         FROM INET-ADDRESS-MIB
    MODULE-COMPLIANCE, NOTIFICATION-GROUP,
    OBJECT-GROUP
                                                         FROM SNMPv2-CONF
    Counter32, Integer32, MODULE-IDENTITY,
    NOTIFICATION-TYPE, OBJECT-TYPE,
    Unsigned32
                                                         FROM SNMPv2-SMI
    DateAndTime, MacAddress, RowPointer,
    RowStatus, TEXTUAL-CONVENTION,
    TimeStamp, TruthValue
                                                         FROM SNMPv2-TC
    tmnxChassisIndex,
    tmnxChassisNotifyChassisId,
    tmnxChassisNotifyHwIndex,
    tmnxCpmCardEntry,
    tmnxCpmCardOscillatorType
                                                         FROM TIMETRA-CHASSIS-MIB
    timetraSRMIBModules, tmnxSRConfs,
    tmnxSRNotifyPrefix, tmnxSRObjs
                                                         FROM TIMETRA-GLOBAL-MIB
    TmnxPortEncapType, tmnxPortEtherEntry,
    tmnxPortPortID
                                                         FROM TIMETRA-PORT-MIB
    TItemLongDescription, TLNamedItem,
    TLNamedItemOrEmpty, TmnxAdminState,
    TmnxEnabledDisabled,
    TmnxEnabledDisabledAdminState,
    TmnxEncapVal, TmnxOperState, TmnxPortID
                                                         FROM TIMETRA-TC-MIB
    vRtrID, vRtrIfEntry
                                                         FROM TIMETRA-VRTR-MIB
    ;

timetraPtpMIBModule              MODULE-IDENTITY
    LAST-UPDATED "202001010000Z"
    ORGANIZATION "Nokia"
    CONTACT-INFO
        "Nokia SROS Support
         Web: http://www.nokia.com"
    DESCRIPTION
        "This document is the SNMP MIB module to manage and provision the
         Precision Time Protocol (PTP) components of the Nokia SROS device as
         defined in the IEEE Standard for a Precision Clock Synchronization
         Protocol for Networked Measurement and Control Systems (IEEE Std
         1588-2008).

         Copyright (c) 2011-2018 Nokia.  All rights reserved.
         Reproduction of this document is authorized on the condition that
         the foregoing copyright notice is included.

         This SNMP MIB module (Specification) embodies Nokia's
         proprietary intellectual property.  Nokia retains
         all title and ownership in the Specification, including any
         revisions.

         Nokia grants all interested parties a non-exclusive license to use and
         distribute an unmodified copy of this Specification in connection with
         management of Nokia products, and without fee, provided this copyright
         notice and license appear on all copies.

         This Specification is supplied 'as is', and Nokia makes no warranty,
         either express or implied, as to the use, operation, condition, or
         performance of the Specification."

    REVISION    "202001010000Z"
    DESCRIPTION
        "Rev 19.10               1 Jan 2020 00:00
         19.0 release of the TIMETRA-PTP-MIB."

    REVISION    "201601010000Z"
    DESCRIPTION
        "Rev 14.0               1 Jan 2016 00:00
         14.0 release of the TIMETRA-PTP-MIB."

    REVISION    "201501010000Z"
    DESCRIPTION
        "Rev 13.0               1 Jan 2015 00:00
         13.0 release of the TIMETRA-PTP-MIB."

    REVISION    "201401010000Z"
    DESCRIPTION
        "Rev 12.0               1 Jan 2014 00:00
         12.0 release of the TIMETRA-PTP-MIB."

    REVISION    "201102010000Z"
    DESCRIPTION
        "Rev 1.0                1 Feb 2011 00:00
         Initial release of the TIMETRA-PTP-MIB."

    ::= { timetraSRMIBModules 74 }

TmnxPtpClockType                 ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpClockType specifies the type of clock of the network element:
         ordinarySlave  (1) - The system is always a slave clock in the
                              master-slave hierarchy. The system derives its
                              timing from one or more master clocks in the
                              network.
         ordinaryMaster (2) - The system is a grandmaster clock in the
                              master-slave hierarchy.  The system provides
                              timing to multiple slave clocks in the
                              network.
         boundary       (3) - The system is a boundary clock, which may be
                              anywhere in the master-slave clock hierarchy.
                              It can obtain timing from a master clock, and
                              provide timing to multiple slave clocks."
    REFERENCE
        "IEEE Std 1588-2008 Section 6.5"
    SYNTAX      INTEGER {
        ordinarySlave  (1),
        ordinaryMaster (2),
        boundary       (3)
    }

TmnxPtpClockIdentity             ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpClockIdentity specifies the unique identifier used to identify
         a network element participating in the Precision Time Protocol (PTP)."
    REFERENCE
        "IEEE Std 1588-2008 Section 7.5.2.2"
    SYNTAX      OCTET STRING (SIZE (8))

TmnxPtpClockClass                ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpClockClass specifies the traceability of the time or frequency
         distributed by the grandmaster clock."
    REFERENCE
        "IEEE Std 1588-2008 Section 7.6.2.4"
    SYNTAX      Unsigned32 (0..255)

TmnxPtpDomain                    ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpDomain specifies the Precision Time Protocol (PTP) domain.

         The value 0 specifies the default domain for IEEE1588-2008
         specification. The value 4 specifies the default domain for ITU-T
         G.8265.1 specification. The value 24 specifies the default domain for
         ITU-T G.8275.1 specification. The value 44 specifies the default
         domain for ITU-T G.8275.2 specification. The value 0 specifies the
         default domain for IEC/IEEE 61850-9-3 specification. The value 254
         specifies the default domain for IEEE C37.238-2017 specification."
    REFERENCE
        "IEEE Std 1588-2008 Section 7.1,
         ITU-T G.8265.1, draft V0.3, section 6.7.2,
         ITU-T G.8275.1, section 6.7.2, ITU-T G.8275.2,
         IEC/IEEE 61850-9-3 section 8, and
         IEEE C37.238-2017, section 5.4"
    SYNTAX      Unsigned32 (0..255)

TmnxPtpPriority                  ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The Precision Time Protocol (PTP) priority used both for the value to
         advertise in the Announce messages and for the local clock value in
         data set comparisons.

         It is used by the Best Master Clock Algorithm to determine which clock
         should provide timing for the network.

         The priority is rated highest (0) to lowest (255)."
    REFERENCE
        "IEEE Std 1588-2008 Section 7.6.2.2 and 7.6.2.3"
    SYNTAX      Unsigned32 (0..255)

TmnxPtpProfile                   ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The Precision Time Protocol (PTP) profile specifies the standard to
         which PTP conforms.
              g8265dot1-2010     - conforms to the PTP profile specified in the
                                   ITU-T G.8265.1 specification
              ieee1588-2008      - conforms to the default PTP profile specified in
                                   the IEEE 1588-2008 standard
              g8275dot1-2014     - conforms to the PTP profile specified in the
                                   ITU-T G.8275.1 specification
              g8275dot2-2016     - conforms to the PTP profile specified in the
                                   ITU-T G.8275.2 specification
              iec-61850-9-3-2016 - conforms to the 2016 version of the IEC/IEEE 61850-9-3 specification
              c37dot238-2017     - conforms to the 2017 version of the IEEE C37.238 specification
              "
    REFERENCE
        "IEEE Std 1588-2008, ITU-T G.8265.1, ITU-T G.8275.1,
         ITU-T G.8275.2, IEC/IEEE 61850-9-3, and IEEE C37.238"
    SYNTAX      INTEGER {
        g8265dot1-2010     (1),
        ieee1588-2008      (2),
        g8275dot1-2014     (3),
        g8275dot2-2016     (4),
        iec-61850-9-3-2016 (5),
        c37dot238-2017     (6)
    }

TmnxPtpDirection                 ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpDirection specifies which direction packets are travelling in
         the system:
              rx  - Packets are being received by the system.
              tx  - Packets are being transmitted from the system."
    SYNTAX      INTEGER {
        rx (1),
        tx (2)
    }

TmnxPtpLogInterval               ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpLogInterval specifies an interval between PTP packets, or
         equivalently, a packet rate.  It is specified as the logarithm to the
         base 2 of the interval in seconds.

         For example, -7 specifies a packet rate of 128 packets per second, and
         +4 specifies a packet rate of 1 packet every 16 seconds."
    SYNTAX      Integer32 (-128..127)

TmnxPtpClockStepType             ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpClockStepType specifies the clock step:
         unknown (0) - It is unknown whether the clock is a one-step or
                       two-step clock.  No announce messages have been
                       received from the remote clock.
         oneStep (1) - The Clock provides time information using a single
                       event message.
         twoStep (2) - The Clock provides time information using the
                       combination of an event message and a subsequent
                       general message."
    REFERENCE
        "IEEE Std 1588-2008 Sections 3.1.21 and 3.1.47"
    SYNTAX      INTEGER {
        unknown (0),
        oneStep (1),
        twoStep (2)
    }

TmnxPtpClockAccuracy             ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpClockAccuracy specifies the mean of the time frequency error
         between the clock under test and a perfect reference clock, over an
         ensemble of measurements."
    REFERENCE
        "IEEE Std 1588-2008 Section 7.6.2.5"
    SYNTAX      Unsigned32 (0..255)

TmnxPtpClockVariance             ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpClockVariance is a measure of the precision of a clock.  The
         value 65535 indicates that the variance is either too large to be
         represented or has not been computed."
    REFERENCE
        "IEEE Std 1588-2008 Section 7.6.3"
    SYNTAX      Unsigned32 (0..65535)

TmnxPtpPortState                 ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpPortState indicates the operational state of a PTP port."
    REFERENCE
        "IEEE Std 1588-2008 Section 9.2.5"
    SYNTAX      INTEGER {
        notApplicable (0),
        initializing  (1),
        faulty        (2),
        disabled      (3),
        listening     (4),
        preMaster     (5),
        master        (6),
        passive       (7),
        uncalibrated  (8),
        slave         (9)
    }

TmnxPtpPortNumber                ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpPortNumber specifies a number which identifies a logical access
         point of a clock for PTP communications to the communications network.

         A PTP ordinary clock has exactly one PTP port, with port number 1. A
         PTP boundary clock has multiple ports, each with unique port numbers."
    REFERENCE
        "IEEE 1588-2008, Section 3.1.35, 7.5.2.3"
    SYNTAX      Unsigned32 (0..65534)

TmnxPtpTimeStampReferencePoint   ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpTimeStampReferencePoint indicates the reference point where a
         PTP event packet is timestamped in the SROS system:
            unknown (0) - The reference point for the PTP timestamp has not yet
                          been determined.
            port    (1) - The PTP packet's timestamp was taken at the physical
                          port, between the MAC and the PHY.  This corresponds
                          to reference point 'A' in IEEE 1588-2008, Figure 14.
            cpm     (2) - The PTP packet's timestamp was taken in software in
                          the operating system kernel on the CPM card.  This
                          corresponds to reference point 'B' in IEEE 1588-2008,
                          Figure 14."
    REFERENCE
        "IEEE Std 1588-2008 Section 6.6.5"
    SYNTAX      INTEGER {
        unknown (0),
        port    (1),
        cpm     (2)
    }

TmnxPtpTimeInterval              ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpTimeInterval is an octet string encoding a signed time interval,
         in scaled nanoseconds.  The signed time interval is encoded as a 64-bit
         two's complement integer, in network byte order.  The time interval in
         nanoseconds may be obtained by dividing the value by 2^16.

         This object is used for items of data type 'TimeInterval' in IEEE
         1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 5.3.2"
    SYNTAX      OCTET STRING (SIZE (8))

TmnxPtpDelayAsymmetry            ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpDelayAsymmetry indicates the estimated delay asymmetry of the PTP
         path between two PTP clocks.  The local clock estimates the delay asymmetry
         of the path by comparing against another source of time synchronization
         that is not significantly affected by asymmetry, such as a local Global
         Navigation Satellite System (GNSS) port."
    REFERENCE
        "ITU-T G.8271 'Time and phase synchronization aspects of telecommunication
         networks', Appendix IV 'Link and network asymmetry compensation'"
    SYNTAX      TmnxPtpTimeInterval

TmnxPtpTransportType             ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPtpTransportType indicates the transport type of the PTP packets
         exchanged between two PTP clocks.

         Values:
             none     (1) - this value is used to indicate that there is no
                            exchange of PTP packets between the two PTP clocks
             udpIp    (2) - the PTP clocks are exchanging PTP packets over
                            UDP/IP
             ethernet (3) - the PTP clocks are exchanging PTP packets directly
                            over Ethernet"
    SYNTAX      INTEGER {
        none     (1),
        udpIp    (2),
        ethernet (3)
    }

TmnxPtpPerfMonIndexType          ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Index to each record of performance monitoring. Values supported are:
            0 : current 15 minute interval,
            1..96 : previous 15 minute intervals (1 being the most recent),
            97 : current 24 hour interval,
            98 : previous 24 hour interval,
            501 : current 1 minute interval,
            502..516 : previous 1 minute intervals (502 being the most recent)"
    SYNTAX      Unsigned32 (0..98 | 501..516)

tmnxPtp1588Objs                  OBJECT IDENTIFIER ::= { tmnxSRObjs 74 }

tmnxPtp1588ConfigTimeStamps      OBJECT IDENTIFIER ::= { tmnxPtp1588Objs 1 }

tmnxPtpPeerConfigTblLastChanged  OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerConfigTblLastChanged indicates the time, since
         system startup, when the tmnxPtpPeerConfigTable last changed state."
    ::= { tmnxPtp1588ConfigTimeStamps 1 }

tmnxPtpVRtrIfTableLastChanged    OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpVRtrIfTableLastChanged indicates the time, since
         system startup, when the tmnxPtpVRtrIfTable last changed state."
    ::= { tmnxPtp1588ConfigTimeStamps 2 }

tmnxPtpVRtrTableLastChanged      OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpVRtrTableLastChanged indicates the time, since
         system startup, when the tmnxPtpVRtrTable last changed state."
    ::= { tmnxPtp1588ConfigTimeStamps 3 }

tmnxPtpPortTableLastChanged      OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortTableLastChanged indicates the time, since
         system startup, when the tmnxPtpPortTable last changed state."
    ::= { tmnxPtp1588ConfigTimeStamps 4 }

tmnxPtpAltProfileTableLastChg    OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpAltProfileTableLastChg indicates the time, since
         system startup, when the tmnxPtpAltProfileTable last changed.

         If tmnxPtpAltProfileTable has not changed since system startup, zero
         is returned."
    ::= { tmnxPtp1588ConfigTimeStamps 5 }

tmnxPtpPbtPortFilterTableLastChg OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPbtPortFilterTableLastChg indicates the time,
         since system startup, when the tmnxPtpPbtPortFilterTable last changed.

         If tmnxPtpPbtPortFilterTable has not changed since system startup,
         zero is returned."
    ::= { tmnxPtp1588ConfigTimeStamps 6 }

tmnxPtp1588Configurations        OBJECT IDENTIFIER ::= { tmnxPtp1588Objs 2 }

tmnxPtpClockConfig               OBJECT IDENTIFIER ::= { tmnxPtp1588Configurations 1 }

tmnxPtpClockAdminState           OBJECT-TYPE
    SYNTAX      TmnxAdminState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockAdminState specifies whether PTP 1588 is
         enabled on the system or not."
    DEFVAL      { outOfService }
    ::= { tmnxPtpClockConfig 1 }

tmnxPtpClockClockType            OBJECT-TYPE
    SYNTAX      TmnxPtpClockType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockClockType specifies the clock behavior of
         PTP1588 on the system.

         This object can only be modified if tmnxPtpClockAdminState is set to
         'outOfService (3)', otherwise an 'inconsistentValue' error is
         returned."
    ::= { tmnxPtpClockConfig 2 }

tmnxPtpClockProfile              OBJECT-TYPE
    SYNTAX      TmnxPtpProfile
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockProfile specifies the conformance of the PTP
         system to either the default IEEE 1588-2008 behavior, or one of the
         ITU-T profiles.

         Modification of this object indirectly resets the value of
         tmnxPtpClockDomain to the corresponding default value for the
         specified profile.

         The configuration of tmnxPtpClockProfile affects the default value for
         the sync packet rates of IP and Ethernet ports.

         When tmnxPtpClockProfile is changed, any IP peers and Ethernet ports
         which are configured at the default sync packet rate for the old
         profile are changed to the default value for the new profile.  For
         example, when tmnxPtpClockProfile changes from 'g8265dot1-2010 (1)' to
         'g8275dot1-2014 (3)', any IP peers with tmnxPtpPeerSyncInterval set
         to -6 (64 packets per second) will have tmnxPtpPeerSyncInterval changed
         to -3 (8 packets per second).

         This object can only be modified if tmnxPtpClockAdminState is set to
         'outOfService (3)', otherwise an 'inconsistentValue' error is
         returned."
    ::= { tmnxPtpClockConfig 3 }

tmnxPtpClockDomain               OBJECT-TYPE
    SYNTAX      TmnxPtpDomain
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockDomain specifies the domain in which PTP 1588
         runs on the system.

         The default value of tmnxPtpClockDomain depends on the value of
         tmnxPtpClockProfile.  If tmnxPtpClockProfile is 'g8265dot1-2010 (1)',
         the default value is 4.  If tmnxPtpClockProfile is 'ieee1588-2008 (2)',
         the default value is 0.  If tmnxPtpClockProfile is
         'g8275dot1-2014 (3)', the default value is 24. If tmnxPtpClockProfile
         is 'g8275dot2-2016 (4)', the default value is 44.
         If tmnxPtpClockProfile is 'iec-61850-9-3-2016 (5)', the default value is 0.
         If tmnxPtpClockProfile is 'c37dot238-2017 (6)', the default value is 254.

         If tmnxPtpClockProfile is 'g8275dot1-2014 (3)', tmnxPtpClockDomain may
         only be set to a value in the range 24-43.

         This object can only be modified if tmnxPtpClockAdminState is set to
         'outOfService (3)', otherwise an 'inconsistentValue' error is
         returned."
    REFERENCE
        "IEEE Std 1588-2008 Section 7.1,
         ITU-T G.8265.1, draft V0.3, section 6.7.2,
         ITU-T G.8275.1, section 6.7.2, ITU-T G.8275.2,
         IEC/IEEE 61850-9-3 section 8, and
         IEEE C37.238-2017, section 5.4"
    ::= { tmnxPtpClockConfig 4 }

tmnxPtpClockAnnounceInterval     OBJECT-TYPE
    SYNTAX      TmnxPtpLogInterval (-3..4)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockAnnounceInterval specifies the packet rate
         requested in REQUEST_UNICAST_TRANSMISSION signaling messages for
         announce packets.

         The default value of tmnxPtpClockAnnounceInterval depends on the value
         of tmnxPtpClockProfile.  If tmnxPtpClockProfile is 'g8265dot1-2010 (1)' or
         'ieee1588-2008 (2)', the default value is 1, corresponding to an announce
         packet rate of 1 packet every 2 seconds.
         If tmnxPtpClockProfile is 'g8275dot1-2014 (3)', the default value is -3,
         corresponding to an announce packet rate of 8 packets per second.
         If tmnxPtpClockProfile is 'g8275dot2-2016 (4)', the default value is either
         0 or 1, depending on the type of SROS system, corresponding to an announce
         packet rate of 1 announce packet every 1 or 2 seconds.
         If tmnxPtpClockProfile is 'iec-61850-9-3-2016 (5)' or 'c37dot238-2017 (6)',
         the default value is 0, corresponding to an announce packet rate of 1 packet
         per second.
         This object corresponds to the portDS.logAnnounceInterval data set
         member of IEEE 1588-2008.  In the SROS implementation, all PTP ports
         have the same configured value of portDS.logAnnounceInterval.

         This object can only be modified if tmnxPtpClockAdminState is set to
         'outOfService (3)', otherwise an 'inconsistentValue' error is
         returned."
    REFERENCE
        "ITU-T draft G.8265.1 V0.3, Section 6.5 and
         IEEE Std 1588-2008 Sections 7.7.2.2 and 8.2.5.4.1"
    ::= { tmnxPtpClockConfig 5 }

tmnxPtpClockPriority1            OBJECT-TYPE
    SYNTAX      TmnxPtpPriority
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockPriority1 specifies the value of the
         defaultDS.priority1 data set member defined in IEEE Std 1588-2008.

         If tmnxPtpClockProfile is 'g8275dot1-2014 (3)', tmnxPtpClockPriority1
         is set to a value of 128, and cannot be changed."
    REFERENCE
        "IEEE Std 1588-2008, Sections 7.6.2.2 and 8.2.1.4.1, and
         ITU-T G.8275.1, Section 6.3.3."
    DEFVAL      { 128 }
    ::= { tmnxPtpClockConfig 6 }

tmnxPtpClockPriority2            OBJECT-TYPE
    SYNTAX      TmnxPtpPriority
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockPriority2 specifies the value of the
         defaultDS.priority2 data set member defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE Std 1588-2008, Sections 7.6.2.3, and 8.2.1.4.2"
    DEFVAL      { 128 }
    ::= { tmnxPtpClockConfig 7 }

tmnxPtpClockNetworkType          OBJECT-TYPE
    SYNTAX      INTEGER {
        sonet (1),
        sdh   (2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockNetworkType specifies whether the SROS is
         configured to use PTP clock classes corresponding to SONET or SDH
         quality levels."
    REFERENCE
        "ITU-T draft G.8265.1 V0.3, Section 6.7.3.2"
    DEFVAL      { sdh }
    ::= { tmnxPtpClockConfig 9 }

tmnxPtpClockAnnoRxTimeout        OBJECT-TYPE
    SYNTAX      Unsigned32 (2..10)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockAnnoRxTimeout specifies the number of
         announce intervals that have to occur without receiving a PTP announce
         message before the PTP event 'ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES'
         occurs.

         This object corresponds to the portDS.announceReceiptTimeout data
         set member of IEEE 1588-2008.  In the SR implementation, all PTP ports
         have the same configured value of portDS.announceReceiptTimeout.

         This object can only be modified if tmnxPtpClockAdminState is set to
         'outOfService (3)', otherwise an 'inconsistentValue' error is
         returned."
    REFERENCE
        "IEEE 1588-2008, Section 7.7.3.1"
    DEFVAL      { 3 }
    ::= { tmnxPtpClockConfig 10 }

tmnxPtpClockLocalPriority        OBJECT-TYPE
    SYNTAX      TmnxPtpPriority (1..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockLocalPriority specifies the local priority
         used in the best master clock algorithm for the PTP clock when
         tmnxPtpClockProfile is 'g8275dot1-2014 (3)'.

         This value is not applicable when tmnxPtpClockProfile is configured to
         some other value, and cannot be configured.

         This object corresponds to the defaultDS.localPriority data set member
         defined in ITU-T G.8275.1."
    REFERENCE
        "ITU-T G.8275.1, Section 6.3.1"
    DEFVAL      { 128 }
    ::= { tmnxPtpClockConfig 11 }

tmnxPtpClockPtsfUnusabAdminState OBJECT-TYPE
    SYNTAX      TmnxAdminState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockPtsfUnusabAdminState specifies whether
         monitoring of Packet Timing Signal Fail (PTSF) unusable signals is
         enabled or not.

         This value is only applicable when tmnxPtpClockProfile is configured
         to 'g8275dot1-2014 (3)'."
    REFERENCE
        "ITU-T Draft Amendment 1 to G.8275.1 (2020/03), Section 6.3.9"
    DEFVAL      { outOfService }
    ::= { tmnxPtpClockConfig 12 }

tmnxPtpClockTxWhileSyncUncertain OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockTxWhileSyncUncertain specifies whether the
         PTP clock will transmit packets on PTP ports in the master state, even
         if the local clock is uncertain that it is synchronized to a valid
         timing source."
    DEFVAL      { true }
    ::= { tmnxPtpClockConfig 13 }

tmnxPtpClockTimeInaccuracy       OBJECT-TYPE
    SYNTAX      Unsigned32 (0..10000000)
    UNITS       "nanoseconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockTimeInaccuracy overrides the pre-set
         time-inaccuracy value of the clock

         This configuration can be used to override the system-generated value
         for time-inaccuracy to the desired value. This is applicable only to
         the c37dot238-2017 profile. The mandatory IEEE_C37_238 TLV in this
         profile includes 'total time inaccuracy'. The value configured is
         added to the parent clock's 'total time inaccuracy' for TLVs to
         downstream clocks.

         The value 0 indicates that the system-generated value is used."
    DEFVAL      { 0 }
    ::= { tmnxPtpClockConfig 14 }

tmnxPtpClockInitTimeInaccuracy   OBJECT-TYPE
    SYNTAX      Unsigned32 (0..10000000)
    UNITS       "nanoseconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockInitTimeInaccuracy sets the time-inaccuracy
         value that represents the total time inaccuracy from the grandmaster
         to the local clock.

         This value is used in the mandatory IEEE_C37_238 TLV, and is
         applicable only to c37dot238-2017 profile as an alternate profile for
         profile interworking."
    DEFVAL      { 0 }
    ::= { tmnxPtpClockConfig 15 }

tmnxPtpPeerConfigTable           OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPeerConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPeerConfigTable consists of peer configuration information."
    ::= { tmnxPtp1588Configurations 3 }

tmnxPtpPeerConfigEntry           OBJECT-TYPE
    SYNTAX      TmnxPtpPeerConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPeerConfigEntry contains information pertaining to an
         individual PTP 1588 peer.

         Individual PTP peers are identified by the virtual router identifier
         and IP address of the peer PTP clock.

         Entries may be created on the base router.  In order for an entry to
         be created on a virtual router, there must be a corresponding entry
         in the tmnxPtpVRtrTable for the virtual router instance.

         If tmnxPtpClockClockType is 'ordinarySlave (1)', entries may be
         created and deleted via SNMP set operations using tmnxPtpPeerRowStatus.
         The tmnxPtpPeerRemoteMaster attribute will be created with a value of
         'true', and the tmnxPtpPeerRemoteSlave attribute will be created with
         a value of 'false'.  Neither or these attributes may be subsequently
         changed.  These entries correspond to PTP grandmaster or boundary
         clocks providing timing information to the local clock.

         In order to delete an entry, tmnxPtpPeerAdminState must first be set
         to 'outOfService (3)'.

         Entries created via SNMP set operations may only be created on a
         single virtual router instance.

         If tmnxPtpClockClockType is 'ordinaryMaster (2)', entries are
         automatically created upon receipt of PTP signaling packets requesting
         unicast transmission of PTP packets.  Entries cannot be created or
         deleted via SNMP set operations.  These entries correspond to PTP slave
         boundary clocks receiving timing information from the local clock.
         These entries are created by the system with tmnxPtpPeerRemoteMaster
         set to 'false' and tmnxPtpPeerRemoteSlave set to 'true'.

         If tmnxPtpClockClockType is 'boundary (3)', entries corresponding to
         grandmaster or boundary PTP clocks providing timing to the local clock
         may be created and deleted via SNMP set operations, in the same manner
         as when tmnxPtpClockClockType is 'ordinarySlave (1)'. As well, entries
         corresponding to slave or boundary PTP clocks receiving timing from
         the local clock may be automatically created by the system, in the
         same manner as when tmnxPtpClockClockType is 'ordinaryMaster (2)'.

         For an individual entry, the value of tmnxPtpPeerRemoteMaster along
         with tmnxPtpPeerRemoteSlave indicates the direction of flow of timing
         information between the local PTP clock and the peer PTP clock. There
         are three cases:

         1)  If tmnxPtpPeerRemoteMaster is 'true', and tmnxPtpPeerRemoteSlave
             is 'false', the peer PTP clock is providing timing to the local
             PTP clock.

             In this case, PTP Announce, Sync, and Delay Response packets are
             sent from the peer PTP clock to the local PTP clock, and PTP Delay
             Request packets are sent from the local PTP clock to the peer PTP
             clock.

             This type of PTP peer may exist when tmnxPtpClockClockType is
             either 'ordinarySlave (1)' or boundary (3)'.

         2)  If tmnxPtpPeerRemoteMaster is 'false', and tmnxPtpPeerRemoteSlave
             is 'true', the local PTP clock is providing timing to the peer
             PTP clock.

             In this case, PTP Announce, Sync, and Delay Response packets are
             sent from the local PTP clock to the peer PTP clock, and PTP Delay
             Request packets are sent from the peer PTP clock to the local PTP
             clock.

             This type of PTP peer may exist when tmnxPtpClockClockType is
             either 'ordinaryMaster (2)' or boundary (3)'.

         3)  If tmnxPtpPeerRemoteMaster and tmnxPtpPeerRemoteSlave are both
             set to 'true', the local clock and remote PTP clock have a peer
             relationship.

             Timing information may flow in either direction, depending on the
             decision of the PTP Best Master Clock Algorithm running on each
             PTP clock.

             This type of PTP peer may only exist when tmnxPtpClockClockType is
             'boundary (3)'.

          There is a system limit to the number of PTP peers that can be
          configured via SNMP set operations, and another limit to the number
          of PTP peers that can be automatically created upon reception of
          PTP signaling packets.

          When tmnxPtpClockClockType is 'boundary (3)', a peer entry may be
          changed from one that is only receiving timing from the local clock,
          to one that may either receive or provide timing, by setting
          tmnxPtpPeerRemoteMaster to 'true'."
    INDEX       {
        vRtrID,
        tmnxPtpPeerIpAddrType,
        tmnxPtpPeerIpAddress
    }
    ::= { tmnxPtpPeerConfigTable 1 }

TmnxPtpPeerConfigEntry           ::= SEQUENCE
{
    tmnxPtpPeerIpAddrType            InetAddressType,
    tmnxPtpPeerIpAddress             InetAddress,
    tmnxPtpPeerRowStatus             RowStatus,
    tmnxPtpPeerLastChanged           TimeStamp,
    tmnxPtpPeerAdminState            TmnxAdminState,
    tmnxPtpPeerPortState             TmnxPtpPortState,
    tmnxPtpPeerLocalPriority         TmnxPtpPriority,
    tmnxPtpPeerRemoteMaster          TruthValue,
    tmnxPtpPeerRemoteSlave           TruthValue,
    tmnxPtpPeerClockId               TmnxPtpClockIdentity,
    tmnxPtpPeerLocalPortNumber       TmnxPtpPortNumber,
    tmnxPtpPeerRemotePortNumber      TmnxPtpPortNumber,
    tmnxPtpPeerTxTimeStampPoint      TmnxPtpTimeStampReferencePoint,
    tmnxPtpPeerLastTxPortId          TmnxPortID,
    tmnxPtpPeerLastTxPortEncapType   TmnxPortEncapType,
    tmnxPtpPeerLastTxPortEncapValue  TmnxEncapVal,
    tmnxPtpPeerRxTimeStampPoint      TmnxPtpTimeStampReferencePoint,
    tmnxPtpPeerLastRxPortId          TmnxPortID,
    tmnxPtpPeerLastRxPortEncapType   TmnxPortEncapType,
    tmnxPtpPeerLastRxPortEncapValue  TmnxEncapVal,
    tmnxPtpPeerSyncInterval          TmnxPtpLogInterval,
    tmnxPtpPeerAlternateProfile      TLNamedItemOrEmpty,
    tmnxPtpPeerMonitorReceiver       TruthValue,
    tmnxPtpPeerNotMaster             TruthValue
}

tmnxPtpPeerIpAddrType            OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerIpAddrType specifies the type of address of
         the PTP 1588 peer. This object represents the first index in the
         table."
    ::= { tmnxPtpPeerConfigEntry 1 }

tmnxPtpPeerIpAddress             OBJECT-TYPE
    SYNTAX      InetAddress (SIZE (0|4|16))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerIpAddress specifies the address of the PTP
         1588 peer. This object represents the second index in the table."
    ::= { tmnxPtpPeerConfigEntry 2 }

tmnxPtpPeerRowStatus             OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerRowStatus specifies the row status of the PTP
         1588 peer.

         This object controls the creation and deletion of peer PTP grandmaster
         and boundary clocks that may provide timing to the local PTP clock.
         These PTP peers may only be created when tmnxPtpClockClockType is set
         to 'ordinarySlave (1)' or 'boundary (3)'.  For these peers,
         tmnxPtpPeerRemoteMaster will be set to 'true'.

         Before deleting one of these PTP peers, tmnxPtpPeerAdminState must be
         set to 'outOfService (3)'.

         Peers that correspond to slave or boundary PTP clocks that may receive
         timing information from the local clock can not be created or deleted
         by the use of this object.  Instead, they are dynamically created by
         the system through the operation of the Precision Time Protocol."
    ::= { tmnxPtpPeerConfigEntry 3 }

tmnxPtpPeerLastChanged           OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerLastChanged indicates the time, since system
         startup, that the PTP 1588 peer was created or modified."
    ::= { tmnxPtpPeerConfigEntry 4 }

tmnxPtpPeerAdminState            OBJECT-TYPE
    SYNTAX      TmnxAdminState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerAdminState specifies the administrative state
         of the PTP 1588 peer, that is, whether or not the peer will be used by
         the Precision Time Protocol (PTP)."
    DEFVAL      { inService }
    ::= { tmnxPtpPeerConfigEntry 5 }

tmnxPtpPeerPortState             OBJECT-TYPE
    SYNTAX      TmnxPtpPortState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPortState indicates the current state of the
         PTP port used when communicating with the remote peer.

         The value of this object corresponds to the portDS.portState data set
         member defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 8.2.5.3.1"
    ::= { tmnxPtpPeerConfigEntry 6 }

tmnxPtpPeerLocalPriority         OBJECT-TYPE
    SYNTAX      TmnxPtpPriority (1..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerLocalPriority specifies the local priority
         used to choose between PTP masters in the Best Master Clock Algorithm
         (BMCA). This object is only relevant when tmnxPtpClockProfile is set
         to 'g8265dot1-2010 (1) or 'g8275dot1-2014 (3)'. The parameter is
         ignored when tmnxPtpClockProfile is 'ieee1588-2008 (2)'."
    REFERENCE
        "ITU-T draft G.8265.1 V0.3, Section 6.7.2"
    DEFVAL      { 128 }
    ::= { tmnxPtpPeerConfigEntry 7 }

tmnxPtpPeerRemoteMaster          OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerRemoteMaster indicates whether or not the peer
         is configured as a remote grandmaster or boundary clock that may
         provide timing information to the local clock.

         If tmnxPtpClockClockType is 'ordinarySlave (1)', all entries in this
         table will have tmnxPtpPeerRemoteMaster set to 'true', and it cannot
         be changed.

         If tmnxPtpClockClockType is 'ordinaryMaster (2)', all entries in this
         table will have tmnxPtpPeerRemoteMaster set to 'false', and it cannot
         be changed.

         If tmnxPtpClockClockType is 'boundary (3)', there may be entries in
         this table with tmnxPtpPeerRemoteMaster set to 'false', indicating
         that the local clock is only providing timing information to the
         remote PTP peer.  This peer may be changed to one that may either
         receive or provide timing, by setting tmnxPtpPeerRemoteMaster to
         'true'.

         When the value of this object is 'true', a corresponding row in the
         tmnxPtpPeerMasterStatusTable will exist for this peer."
    ::= { tmnxPtpPeerConfigEntry 8 }

tmnxPtpPeerRemoteSlave           OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerRemoteSlave specifies whether or not the peer
         is acting as a remote slave or boundary clock that may be receiving
         timing information from the local clock.  Remote slave clocks are
         learned by the local clock upon reception of PTP signaling packets,
         and cannot be configured via SNMP set operations.

         If tmnxPtpPeerRemoteSlave is 'true', it indicates that the local PTP
         clock may provide timing information to the PTP peer.

         If tmnxPtpClockClockType is 'ordinarySlave (1)', all entries in this
         table will have tmnxPtpPeerRemoteSlave set to 'false'.

         If tmnxPtpClockClockType is 'ordinaryMaster (2)', all entries in this
         table will have tmnxPtpPeerRemoteSlave set to 'true'."
    ::= { tmnxPtpPeerConfigEntry 9 }

tmnxPtpPeerClockId               OBJECT-TYPE
    SYNTAX      TmnxPtpClockIdentity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerClockId indicates the clock identity of the
         peer."
    ::= { tmnxPtpPeerConfigEntry 10 }

tmnxPtpPeerLocalPortNumber       OBJECT-TYPE
    SYNTAX      TmnxPtpPortNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerLocalPortNumber indicates the PTP port number
         assigned by the local clock and used when communicating with the
         remote clock.

         If tmnxPtpClockClockType is either 'ordinarySlave (1)' or
         'ordinaryMaster (2)', tmnxPtpPeerLocalPortNumber has a value of 1.

         The value of this object corresponds to the
         portDS.portIdentity.portNumber data set member defined in IEEE Std
         1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 7.5.2"
    ::= { tmnxPtpPeerConfigEntry 11 }

tmnxPtpPeerRemotePortNumber      OBJECT-TYPE
    SYNTAX      TmnxPtpPortNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerRemotePortNumber indicates the PTP port number
         used by the remote peer when communicating with the local clock."
    REFERENCE
        "IEEE Std 1588-2008 Section 7.5.2.3"
    ::= { tmnxPtpPeerConfigEntry 12 }

tmnxPtpPeerTxTimeStampPoint      OBJECT-TYPE
    SYNTAX      TmnxPtpTimeStampReferencePoint
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerTxTimeStampPoint indicates the reference point
         used to generate the PTP timestamp for the last transmitted PTP event
         packet.  If no event packets have been transmitted, the value is
         'unknown(0)'.  If PTP event packets are transmitted out an interface
         with tmnxPtpVRtrIfAdminState set to 'inService(2)', the value is
         'port(1)'.  If PTP event packets are transmitted out an interface with
         tmnxPtpVRtrIfAdminState set to 'outOfService(3)', the value is
         'cpm(2)'."
    ::= { tmnxPtpPeerConfigEntry 13 }

tmnxPtpPeerLastTxPortId          OBJECT-TYPE
    SYNTAX      TmnxPortID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerLastTxPortId along with
         tmnxPtpPeerLastTxPortEncapType and tmnxPtpPeerLastTxPortEncapValue
         indicates the last port used to transmit PTP packets to the PTP peer.
         If no packets have been transmitted, tmnxPtpPeerLastTxPortId contains
         the 'invalid portid' value of 0x1e000000."
    ::= { tmnxPtpPeerConfigEntry 14 }

tmnxPtpPeerLastTxPortEncapType   OBJECT-TYPE
    SYNTAX      TmnxPortEncapType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerLastTxPortEncapType along with
         tmnxPtpPeerLastTxPortId and tmnxPtpPeerLastTxPortEncapValue indicates
         the last port used to transmit PTP packets to the PTP peer."
    ::= { tmnxPtpPeerConfigEntry 15 }

tmnxPtpPeerLastTxPortEncapValue  OBJECT-TYPE
    SYNTAX      TmnxEncapVal
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerLastTxPortEncapValue along with
         tmnxPtpPeerLastTxPortId and tmnxPtpPeerLastTxPortEncapType indicates
         the last port used to transmit PTP packets to the PTP peer."
    ::= { tmnxPtpPeerConfigEntry 16 }

tmnxPtpPeerRxTimeStampPoint      OBJECT-TYPE
    SYNTAX      TmnxPtpTimeStampReferencePoint
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerRxTimeStampPoint indicates the reference point
         used to generate the PTP timestamp for the last received PTP event
         packet.  If no event packets have been received, the value is
         'unknown(0)'.  If PTP event packets are received on an interface
         with tmnxPtpVRtrIfAdminState set to 'inService(2)', and the destination
         IP address of the received packet is either the local IPv4 address
         of the interface or the PTP system IPv4 address, the value is
         'port(1)'.  Otherwise, the value is 'cpm(2)'."
    ::= { tmnxPtpPeerConfigEntry 17 }

tmnxPtpPeerLastRxPortId          OBJECT-TYPE
    SYNTAX      TmnxPortID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerLastRxPortId along with
         tmnxPtpPeerLastRxPortEncapType and tmnxPtpPeerLastRxPortEncapValue
         indicates the last port used to receive PTP packets from the PTP peer.
         If no packets have been received, tmnxPtpPeerLastRxPortId contains the
         'invalid portid' value of 0x1e000000."
    ::= { tmnxPtpPeerConfigEntry 18 }

tmnxPtpPeerLastRxPortEncapType   OBJECT-TYPE
    SYNTAX      TmnxPortEncapType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerLastRxPortEncapType along with
         tmnxPtpPeerLastRxPortId and tmnxPtpPeerLastRxPortEncapValue indicates
         the last port used to receive PTP packets from the PTP peer."
    ::= { tmnxPtpPeerConfigEntry 19 }

tmnxPtpPeerLastRxPortEncapValue  OBJECT-TYPE
    SYNTAX      TmnxEncapVal
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerLastRxPortEncapValue along with
         tmnxPtpPeerLastRxPortId and tmnxPtpPeerLastRxPortEncapType indicates
         the last port used to receive PTP packets from the PTP peer."
    ::= { tmnxPtpPeerConfigEntry 20 }

tmnxPtpPeerSyncInterval          OBJECT-TYPE
    SYNTAX      TmnxPtpLogInterval (-6..0)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerSyncInterval specifies the packet rate
         requested in REQUEST_UNICAST_TRANSMISSION signaling messages for sync
         packets when negotiating the sync unicast session with the peer clock.

         This object is only applicable to peers that are created and deleted
         via SNMP set operations, with tmnxPtpPeerRemoteMaster set to 'true'.
         For other peers, this object will have a value of 0, and cannot be
         modified.

         The default value of tmnxPtpPeerSyncInterval depends on the current
         value of tmnxPtpClockProfile.  If tmnxPtpClockProfile is
         'g8265dot1-2010 (1)' or 'ieee1588-2008 (2)', entries are created with
         tmnxPtpPeerSyncInterval set to the default value of -6, or 64 packets
         per second.  If tmnxPtpClockProfile is 'g8275dot1-2014 (3)', entries
         are created with tmnxPtpPeerSyncInterval set to the default value of
         -4, or 16 packets per second.

         This object can only be modified if tmnxPtpPeerAdminState is set to
         'outOfService (3)', otherwise an 'inconsistentValue' error is
         returned."
    REFERENCE
        "ITU-T draft G.8265.1 V0.3, Section 6.5"
    ::= { tmnxPtpPeerConfigEntry 21 }

tmnxPtpPeerAlternateProfile      OBJECT-TYPE
    SYNTAX      TLNamedItemOrEmpty
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The non-empty value of tmnxPtpPeerAlternateProfile indicates an
         existing alternate PTP profile tmnxPtpAltProfileName is applied to the
         PTP peer."
    ::= { tmnxPtpPeerConfigEntry 22 }

tmnxPtpPeerMonitorReceiver       OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMonitorReceiver specifies whether this
         configured peer is enabled as a Monitor Receiver for PTP monitoring.

         When configured to true and not in slave mode, the PTP peer will run
         time recovery engine for PTP monitoring.

         This object is supported only when the PTP profile is set for G.8275.1
         or G.8275.2"
    DEFVAL      { false }
    ::= { tmnxPtpPeerConfigEntry 23 }

tmnxPtpPeerNotMaster             OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerNotMaster when set to true prevents this peer
         from acting as a master when the profile is G.8275.1 or G.8275.2"
    DEFVAL      { false }
    ::= { tmnxPtpPeerConfigEntry 24 }

tmnxPtpVRtrIfTable               OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpVRtrIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpVRtrIfTable table contains PTP configuration pertaining to
         IP interfaces."
    ::= { tmnxPtp1588Configurations 4 }

tmnxPtpVRtrIfEntry               OBJECT-TYPE
    SYNTAX      TmnxPtpVRtrIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each row entry represents the PTP configuration corresponding to
         an interface configured in a virtual router.  Entries are created
         and deleted when entries in the vRtrIfTable are created and deleted."
    AUGMENTS    { vRtrIfEntry }
    ::= { tmnxPtpVRtrIfTable 1 }

TmnxPtpVRtrIfEntry               ::= SEQUENCE
{ tmnxPtpVRtrIfAdminState          TmnxAdminState }

tmnxPtpVRtrIfAdminState          OBJECT-TYPE
    SYNTAX      TmnxAdminState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpVRtrIfAdminState specifies the administrative
         state of the PTP hardware assist configuration of the interface.

         If the value is 'inService(2)', the timestamp point for PTP event
         packets is configured to be the physical layer.  This corresponds to
         timestamp point 'A' in IEEE 1588-2008, Figure 14.

         If the value is 'outOfService(3)', the timestamp point for PTP event
         packets is configured to be the operating system kernel.  This
         corresponds to timestamp point 'B' in IEEE 1588-2008, Figure 14.

         The value may only be configured to 'inService(2)' if all of the
         following are true:
         1. An IPv4 address is configured against the interface.
         2. An Ethernet physical port or link aggregation group (or VLAN tag on
            an Ethernet physical port or link aggregation group) has been
            associated with the interface.
         3. The Ethernet port or all member ports of the link aggregation group
            associated with the interface must not be configured for WAN mode.
            In other words, the tmnxPortEtherXGigMode attribute for the port
            must be either 'notApplicable' or 'lan'.
         4. The MDA associated with the interface has synchronous Ethernet
            enabled.  In other words, the tmnxMDASynchronousEthernet attribute
            for the MDA must be 'enabled'.
         5. The port or every member port of the link aggregation group
            associated with the interface is on an IOM that supports the
            hardware assist configuration.
         6. The port or every member port of the link aggregation group
            associated with the interface supports the hardware assist
            configuration.
         7. The firmware currently in use by the active CPM support the hardware
            assist configuration.
         8. The firmware currently in use by the IOM card supports the
            hardware assist configuration.  After an upgrade from an older
            release, the IOM may continue using older firmware.  A hard reset
            of the IOM is then needed to bring the IOM firmware up to date.
         9. The firmware currently in use by the MDA supports the hardware
            assist configuration.  After an upgrade from an older release, the
            MDA may continue using older firmware.  A hard reset of the MDA or
            IOM is then needed to bring the MDA firmware up to date.

         If the physical port bound to the interface is removed,
         tmnxPtpVRtrIfAdminState is set to 'outOfService(3)'.

         If the IPv4 address assigned to the interface is removed,
         tmnxPtpVRtrIfAdminState is set to 'outOfService(3)'."
    REFERENCE
        "IEEE 1588-2008, section 6.5.5."
    ::= { tmnxPtpVRtrIfEntry 1 }

tmnxPtpVRtrTable                 OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpVRtrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpVRtrTable consists of PTP configuration and status
         information that is specific to a virtual router instance."
    ::= { tmnxPtp1588Configurations 5 }

tmnxPtpVRtrEntry                 OBJECT-TYPE
    SYNTAX      TmnxPtpVRtrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A tmnxPtpVRtrEntry contains information pertaining to PTP on a
         specific virtual router instance.

         The system automatically creates one entry in this table that
         corresponds to the base router instance.  This entry cannot be deleted.

         Additional rows in this table may be created and destroyed by SNMP Set
         operations on the object tmnxPtpVRtrRowStatus.  Rows may only be
         created for virtual router instances that correspond to VPRN services.

         In order to delete an entry, tmnxPtpVRtrAdminState must first be
         set to 'outOfService (3)'.  As well, any configured PTP peers must
         be first deleted."
    INDEX       { vRtrID }
    ::= { tmnxPtpVRtrTable 1 }

TmnxPtpVRtrEntry                 ::= SEQUENCE
{
    tmnxPtpVRtrRowStatus             RowStatus,
    tmnxPtpVRtrLastChanged           TimeStamp,
    tmnxPtpVRtrAdminState            TmnxAdminState,
    tmnxPtpVRtrOperState             TmnxOperState,
    tmnxPtpVRtrPeerLimit             Integer32
}

tmnxPtpVRtrRowStatus             OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpVRtrRowStatus controls the creation and deletion
         of PTP on a virtual router instance.

         Before removing PTP configuration from a virtual router instance,
         tmnxPtpVRtrAdminState must be set to 'outOfService (3)'."
    ::= { tmnxPtpVRtrEntry 1 }

tmnxPtpVRtrLastChanged           OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpVRtrLastChanged indicates the time, since system
         startup, that the configuration of PTP on the virtual router instance
         was created or modified."
    ::= { tmnxPtpVRtrEntry 2 }

tmnxPtpVRtrAdminState            OBJECT-TYPE
    SYNTAX      TmnxAdminState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpVRtrAdminState specifies the administrative state
         of PTP on the virtual router instance.

         If tmnxPtpVRtrAdminState is 'outOfService (3)', no PTP packets will be
         transmitted on that virtual router instance, and all PTP packets
         received on that virtual router instance will be ignored.

         For the base routing virtual router instance, tmnxPtpVRtrAdminState is
         a copy of the tmnxPtpClockAdminState object, and cannot be modified."
    DEFVAL      { inService }
    ::= { tmnxPtpVRtrEntry 3 }

tmnxPtpVRtrOperState             OBJECT-TYPE
    SYNTAX      TmnxOperState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpVRtrOperState indicates the operational state of
         PTP on the virtual router instance.  The operational state will only be
         'inService (2)' if PTP is administratively enabled on the virtual
         router instance, if PTP is globally operational on the system, and if
         the service is operationally up.  In other words, tmnxPtpVRtrAdminState
         must be 'inService (2)', tmnxPtpClockOperState must be 'inService (2)',
         and svcOperStatus must be 'up (1)'.  Otherwise, tmnxPtpVRtrOperState
         will be 'outOfService (3)'."
    ::= { tmnxPtpVRtrEntry 4 }

tmnxPtpVRtrPeerLimit             OBJECT-TYPE
    SYNTAX      Integer32 (-1 | 0..512)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpVRtrPeerLimit specifies the maximum number of PTP
         peers that may be automatically created by the system on this virtual
         router instance.

         The SROS system has a global limit on the number of PTP peers that may
         be created by the system upon reception of PTP signaling packets.
         Specifying a value for tmnxPtpVRtrPeerLimit ensures that a specific
         virtual router instance will not exhaust this global resource.

         A value of -1 indicates that there is no configured limit for this
         virtual router instance, and the system may create PTP peers up to the
         global limit of PTP peers on the PTP clock.

         A non-zero value does not explicitly reserve resources for this
         virtual router instance.  However, if all PTP virtual router instances
         have configured tmnxPtpVRtrPeerLimit to a value other than -1, and the
         total of these limits is less than or equal to the global system limit,
         this effectively reserves resources for each virtual router instance."
    DEFVAL      { -1 }
    ::= { tmnxPtpVRtrEntry 5 }

tmnxPtpPortTable                 OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPortTable consists of PTP configuration information that is
         specific to Ethernet ports configured for direct transport of PTP over
         Ethernet, as described in IEEE 1588-2008, Annex F."
    REFERENCE
        "IEEE Std 1588-2008 Annex F"
    ::= { tmnxPtp1588Configurations 6 }

tmnxPtpPortEntry                 OBJECT-TYPE
    SYNTAX      TmnxPtpPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A tmnxPtpPortEntry contains configuration pertaining to PTP on a
         specific Ethernet port.

         Rows in this table may be created and destroyed by SNMP Set operations
         on the object tmnxPtpPortRowStatus.  Each row corresponds to PTP
         transport directly over a specific Ethernet port, as described in IEEE
         1588-2008, Annex F.

         Rows may only be created corresponding to Ethernet ports.  Each row
         must have a corresponding row in tmnxPortTable, with tmnxPortClass
         equal to one of the Ethernet port classes.

         Rows may be created corresponding to Ethernet ports configured for no
         encapsulation protocol, 802.1Q encapsulation ('dot1q'), or 802.1ad
         encapsulation ('qinq').  The tmnxPortEncapType object for the
         corresponding row in tmnxPortTable may be either 'nullEncap (1)',
         'qEncap (2)', or 'qinqEncap (10)', respectively.  Regardless of the
         configured encapsulation protocol, PTP packets are always transmitted
         'raw', without any VLAN tags.

         Rows may not be created when tmnxPtpClockProfile is set to
         'g8265dot1-2010 (1)'.

         If capable, the Ethernet port will timestamp PTP event packets at the
         physical port, between the Ethernet Media Access Control layer and the
         physical layer, corresponding to reference point 'A' in IEEE 1588-2008,
         Figure 14.  If not, all PTP event packets transported over the port
         will be timestamped by the operating system kernel on the CPM card,
         corresponding to reference point 'B' in IEEE 1588-2008, Figure 14.

         Timestamping PTP event packets at the physical port requires the MDA to
         be configured for Synchronous Ethernet operation.  Specifically,
         tmnxMDASynchronousEthernet must be set to 'enabled (1)'.  When the
         user creates a PTP port entry, if the MDA supports synchronous Ethernet
         operation, and the MDA is not already configured for synchronous
         Ethernet operation, the system will configure the MDA for synchronous
         Ethernet operation.

         In order to delete an entry, tmnxPtpPortAdminState must first be set
         to 'outOfService (3)'."
    INDEX       {
        tmnxChassisIndex,
        tmnxPortPortID
    }
    ::= { tmnxPtpPortTable 1 }

TmnxPtpPortEntry                 ::= SEQUENCE
{
    tmnxPtpPortRowStatus             RowStatus,
    tmnxPtpPortLastChanged           TimeStamp,
    tmnxPtpPortAdminState            TmnxAdminState,
    tmnxPtpPortSyncInterval          TmnxPtpLogInterval,
    tmnxPtpPortDelayInterval         TmnxPtpLogInterval,
    tmnxPtpPortMulticastAddress      MacAddress,
    tmnxPtpPortLocalPriority         TmnxPtpPriority,
    tmnxPtpPortMasterOnly            TruthValue,
    tmnxPtpPortAlternateProfile      TLNamedItemOrEmpty,
    tmnxPtpPortMonitorSender         TruthValue,
    tmnxPtpPortMonitorReceiver       TruthValue,
    tmnxPtpPortNotMaster             TruthValue
}

tmnxPtpPortRowStatus             OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortRowStatus controls the creation and deletion
         of PTP transport directly over Ethernet ports.

         Before removing PTP configuration from an Ethernet port,
         tmnxPtpPortAdminState must be set to 'outOfService (3)'."
    ::= { tmnxPtpPortEntry 1 }

tmnxPtpPortLastChanged           OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortLastChanged indicates the time, since system
         startup, that the configuration of PTP transport on the Ethernet port
         was created or modified."
    ::= { tmnxPtpPortEntry 2 }

tmnxPtpPortAdminState            OBJECT-TYPE
    SYNTAX      TmnxAdminState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortAdminState specifies the administrative state
         of PTP on the Ethernet port.

         If tmnxPtpPortAdminState is 'outOfService (3)', no PTP packets will be
         directly transmitted on that Ethernet port, and all PTP packets that
         are directly received on that Ethernet port will be ignored."
    DEFVAL      { inService }
    ::= { tmnxPtpPortEntry 3 }

tmnxPtpPortSyncInterval          OBJECT-TYPE
    SYNTAX      TmnxPtpLogInterval (-6..0)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortSyncInterval specifies the mean interval
         between successive multicast sync packets transmitted on this Ethernet
         port when the corresponding PTP port is in the MASTER state.

         The default value of tmnxPtpPortSyncInterval depends on the current
         value of tmnxPtpClockProfile.  If tmnxPtpClockProfile is
         'g8265dot1-2010 (1)', 'ieee1588-2008 (2)', or 'g8275dot2-2016 (4)',
         entries are created with tmnxPtpPortSyncInterval set to the default
         value of -6, or 64 packets per second.  If tmnxPtpClockProfile is
         'g8275dot1-2014 (3)', entries are created with tmnxPtpPortSyncInterval
         set to the default value of -4, or 16 packets per second.
         If tmnxPtpClockProfile is 'iec-61850-9-3-2016 (5)' or 'c37dot238-2017 (6)',
         entries are created with tmnxPtpPortSyncInterval set to the default
         value of 0, or 1 packet per second.

         The value of this object corresponds to the portDS.logSyncInterval
         data set member defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 8.2.5.4.3"
    ::= { tmnxPtpPortEntry 4 }

tmnxPtpPortDelayInterval         OBJECT-TYPE
    SYNTAX      TmnxPtpLogInterval (-6..0)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortDelayInterval specifies the mean interval
         initially sent between successive multicast delay packets transmitted
         on this Ethernet port when the corresponding PTP port is in the SLAVE
         state.

         It also specifies the minimum interval advertised to slave clocks,
         when this port is in the MASTER state.

         The default value of tmnxPtpPortDelayInterval depends on the current
         value of tmnxPtpClockProfile.  If tmnxPtpClockProfile is
         'g8265dot1-2010 (1)', 'ieee1588-2008 (2)', or g8275dot2-2016 (4),
         entries are created with  tmnxPtpPortDelayInterval set to the default
         value of -6, or 64 packets per second.  If tmnxPtpClockProfile is
         'g8275dot1-2014 (3)', entries are created with tmnxPtpPortDelayInterval
         set to the default value of -4, or 16 packets per second.
         If tmnxPtpClockProfile is 'iec-61850-9-3-2016 (5)' or 'c37dot238-2017 (6)',
         entries are created with tmnxPtpPortDelayInterval set to the default
         value of 0, corresponding to an announce packet rate of 1 packet per second.

         The value of this object corresponds to the
         portDS.logMinDelayReqInterval data set member defined in IEEE Std
         1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 8.2.5.3.2"
    ::= { tmnxPtpPortEntry 5 }

tmnxPtpPortMulticastAddress      OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortMulticastAddress specifies the multicast MAC
         address that the system will use to transport PTP messages directly
         over Ethernet.

         The value of tmnxPtpPortMulticastAddress may only be configured to
         either 01:1B:19:00:00:00 or 01:80:C2:00:00:0E.

         The local clock will transmit all PTP packets using the value
         configured in tmnxPtpPortMulticastAddress as the destination MAC
         address in all Ethernet frames.  Similarly, the local clock will only
         process received PTP Ethernet packets that have a destination MAC
         address equal to tmnxPtpPortMulticastAddress."
    REFERENCE
        "IEEE Std 1588-2008 Annex F"
    DEFVAL      { '011B19000000'H }
    ::= { tmnxPtpPortEntry 6 }

tmnxPtpPortLocalPriority         OBJECT-TYPE
    SYNTAX      TmnxPtpPriority (1..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortLocalPriority specifies the local priority
         used in the best master clock algorithm for the PTP port when
         tmnxPtpClockProfile is 'g8275dot1-2014 (3)'.

         This value is not applicable when tmnxPtpClockProfile is configured to
         some other value, and cannot be configured.

         This object corresponds to the portDS.localPriority data set member
         defined in ITU-T G.8275.1."
    REFERENCE
        "ITU-T G.8275.1, Section 6.3.1"
    DEFVAL      { 128 }
    ::= { tmnxPtpPortEntry 7 }

tmnxPtpPortMasterOnly            OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortMasterOnly specifies whether the PTP clock can
         synchronize using PTP timestamp information exchanged over this PTP
         Ethernet port.

         This value is only applicable when tmnxPtpClockProfile is configured
         to 'g8275dot1-2014 (3)'.

         This object corresponds to the portDS.notSlave data set member defined
         in ITU-T G.8275.1."
    REFERENCE
        "ITU-T G.8275.1, Section 6.3.1"
    ::= { tmnxPtpPortEntry 8 }

tmnxPtpPortAlternateProfile      OBJECT-TYPE
    SYNTAX      TLNamedItemOrEmpty
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortAlternateProfile specifies an existing
         alternate PTP profile tmnxPtpAltProfileName to be used for this PTP
         port.

         When tmnxPtpPortAlternateProfile is non-empty, this PTP port uses the
         tmnxPtpAltProfileProfile, tmnxPtpAltProfileDomain, and
         tmnxPtpAltProfileLogAnnoInterval in the corresponding
         tmnxPtpAltProfileEntry.

         When tmnxPtpPortAlternateProfile is empty, this PTP port uses the
         values of tmnxPtpClockProfile, tmnxPtpClockDomain, and
         tmnxPtpClockAnnounceInterval."
    DEFVAL      { "" }
    ::= { tmnxPtpPortEntry 9 }

tmnxPtpPortMonitorSender         OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortMonitorSender specifies whether this PTP port
         is enabled as a Monitor Sender for PTP monitoring.

         When configured to true and not in master mode, the PTP port will send
         Announce, Sync, and Delay_Resp messages with the alternateMasterFlag
         set to TRUE, for PTP monitoring at the remote clock.

         This object is supported only when the PTP profile is set for G.8275.1
         or G.8275.2"
    DEFVAL      { false }
    ::= { tmnxPtpPortEntry 10 }

tmnxPtpPortMonitorReceiver       OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortMonitorReceiver specifies whether this PTP
         port is enabled as a Monitor Receiver for PTP monitoring.

         When configured to true and not in slave mode, the PTP port will run
         time recovery engine for PTP monitoring.

         This object is supported only when the PTP profile is set for G.8275.1
         or G.8275.2"
    DEFVAL      { false }
    ::= { tmnxPtpPortEntry 11 }

tmnxPtpPortNotMaster             OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortNotMaster when set to true prevents this port
         from acting as a master when the profile is G.8275.1 or G.8275.2"
    DEFVAL      { false }
    ::= { tmnxPtpPortEntry 12 }

tmnxPtpAltProfileTable           OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpAltProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table tmnxPtpAltProfileTable contains information for
         alternate PTP profiles.  The system may distribute timing to
         other PTP clocks via an alternate PTP profile than the main
         PTP profile that it uses to recover timing information."
    ::= { tmnxPtp1588Configurations 7 }

tmnxPtpAltProfileEntry           OBJECT-TYPE
    SYNTAX      TmnxPtpAltProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "tmnxPtpAltProfileEntry contains information pertaining to an alternate
         PTP profile.

         Rows in table tmnxPtpAltProfileTable are created and destroyed by SNMP
         set operations on the object tmnxPtpAltProfileRowStatus."
    INDEX       { tmnxPtpAltProfileName }
    ::= { tmnxPtpAltProfileTable 1 }

TmnxPtpAltProfileEntry           ::= SEQUENCE
{
    tmnxPtpAltProfileName            TLNamedItem,
    tmnxPtpAltProfileLastChanged     TimeStamp,
    tmnxPtpAltProfileRowStatus       RowStatus,
    tmnxPtpAltProfileAdminState      TmnxEnabledDisabledAdminState,
    tmnxPtpAltProfileProfile         TmnxPtpProfile,
    tmnxPtpAltProfileDomain          TmnxPtpDomain,
    tmnxPtpAltProfileLogAnnoInterval TmnxPtpLogInterval
}

tmnxPtpAltProfileName            OBJECT-TYPE
    SYNTAX      TLNamedItem
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpAltProfileName specifies the unique name given to
         this alternate PTP profile."
    ::= { tmnxPtpAltProfileEntry 1 }

tmnxPtpAltProfileLastChanged     OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpAltProfileLastChanged indicates the time, since
         system startup, this row in tmnxPtpAltProfileTable was created or
         modified."
    ::= { tmnxPtpAltProfileEntry 2 }

tmnxPtpAltProfileRowStatus       OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpAltProfileRowStatus specifies the row status, and
         it is used to control the creation and deletion of an alternate PTP
         profile.

         To delete an alternate PTP profile, tmnxPtpAltProfileAdminState must
         be set to 'disabled (2)' and the profile must not be assigned to any
         tmnxPtpPortAlternateProfile.

         An alternate PTP profile entry cannot be created when
         tmnxPtpClockClockType is 'ordinarySlave (1)'."
    ::= { tmnxPtpAltProfileEntry 3 }

tmnxPtpAltProfileAdminState      OBJECT-TYPE
    SYNTAX      TmnxEnabledDisabledAdminState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpAltProfileAdminState specifies the administrative
         state of this alternate PTP profile.

         When the value of tmnxPtpAltProfileAdminState is 'disabled (2)', the
         system will set the value tmnxPtpPortOperState to 'outOfService(3)'
         for all PTP ports using this alternate PTP profile."
    DEFVAL      { disabled }
    ::= { tmnxPtpAltProfileEntry 4 }

tmnxPtpAltProfileProfile         OBJECT-TYPE
    SYNTAX      TmnxPtpProfile
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpAltProfileProfile specifies the conformance of the
         PTP profile in the ITU-T specification.

         This object can only be modified if tmnxPtpAltProfileAdminState is set
         to 'disabled (2)'."
    DEFVAL      { g8275dot1-2014 }
    ::= { tmnxPtpAltProfileEntry 5 }

tmnxPtpAltProfileDomain          OBJECT-TYPE
    SYNTAX      TmnxPtpDomain
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpAltProfileDomain specifies the configured clock
         domain value for this alternate PTP profile.

         This object can only be modified if tmnxPtpAltProfileAdminState is set
         to 'disabled (2)'."
    DEFVAL      { 24 }
    ::= { tmnxPtpAltProfileEntry 6 }

tmnxPtpAltProfileLogAnnoInterval OBJECT-TYPE
    SYNTAX      TmnxPtpLogInterval (-3..4)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpAltProfileLogAnnoInterval specifies the interval
         between Announce packets transmitted on PTP ports using this alternate
         PTP profile.

         This object can only be modified if tmnxPtpAltProfileAdminState is set
         to 'disabled (2)'."
    DEFVAL      { -3 }
    ::= { tmnxPtpAltProfileEntry 7 }

tmnxPtpPbtPortFilterTable        OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPbtPortFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table tmnxPtpPbtPortFilterTable contains configuration pertaining
         to filtering for the ingress timestamping of Precision Timing Protocol
         (PTP) messages for multiple interfaces on a given Ethernet port or a
         Link Aggregation Group (LAG)."
    ::= { tmnxPtp1588Configurations 8 }

tmnxPtpPbtPortFilterEntry        OBJECT-TYPE
    SYNTAX      TmnxPtpPbtPortFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each row contains configuration defining a filter for the ingress
         timestamping of Precision Timing Protocol (PTP) messages for multiple
         interfaces on a given Ethernet port or a Link Aggregation Group (LAG).
         Rows in table tmnxPtpPbtPortFilterTable are created and destroyed by SNMP
         set operations on the object tmnxPtpPbtPortFilterRowStatus.
         Each row in tmnxPtpPbtPortFilterTable is dependent on a corresponding entry
         existing in either tmnxPortTable or tLagConfigTable for Ethernet port or
         LAG respectively.
         Therefore, a row in tmnxPtpPbtPortFilterTable will fail to be created
         if such entry does not exist.  Similarly, an existing row in tmnxPtpPbtPortFilterTable
         will prevent the deletion of the corresponding entry in tmnxPortTable or tLagConfigTable"
    INDEX       {
        tmnxChassisIndex,
        tmnxPtpPbtPortFilterPortID
    }
    ::= { tmnxPtpPbtPortFilterTable 1 }

TmnxPtpPbtPortFilterEntry        ::= SEQUENCE
{
    tmnxPtpPbtPortFilterPortID       TmnxPortID,
    tmnxPtpPbtPortFilterRowStatus    RowStatus,
    tmnxPtpPbtPortFilterLastChanged  TimeStamp,
    tmnxPtpPbtPortFilterAdminState   TmnxEnabledDisabled,
    tmnxPtpPbtPortFilterIpv4Addr     InetAddressIPv4,
    tmnxPtpPbtPortFilterIpv6Addr     InetAddressIPv6
}

tmnxPtpPbtPortFilterPortID       OBJECT-TYPE
    SYNTAX      TmnxPortID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "tmnxPtpPbtPortFilterPortID is an index into this table."
    ::= { tmnxPtpPbtPortFilterEntry 1 }

tmnxPtpPbtPortFilterRowStatus    OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "RowStatus for this entry."
    ::= { tmnxPtpPbtPortFilterEntry 2 }

tmnxPtpPbtPortFilterLastChanged  OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPbtPortFilterLastChanged indicates the time, since
         system startup, this row in tmnxPtpPbtPortFilterTable was created or
         modified.."
    ::= { tmnxPtpPbtPortFilterEntry 3 }

tmnxPtpPbtPortFilterAdminState   OBJECT-TYPE
    SYNTAX      TmnxEnabledDisabled
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPbtPortFilterAdminState specifies the
         administrative state of ptp-timestamping."
    DEFVAL      { disabled }
    ::= { tmnxPtpPbtPortFilterEntry 4 }

tmnxPtpPbtPortFilterIpv4Addr     OBJECT-TYPE
    SYNTAX      InetAddressIPv4
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPbtPortFilterIpv4Addr specifies the IPv4
         destination address for PTP messages into this port. A value of all
         zeros indicates that no IPv4 address was configured"
    DEFVAL      { '00000000'H }
    ::= { tmnxPtpPbtPortFilterEntry 5 }

tmnxPtpPbtPortFilterIpv6Addr     OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPbtPortFilterIpv6Addr specifies the IPv6
         destination address for PTP messages into this port. A value of all
         zeros indicates that no IPv6 address was configured"
    DEFVAL      { '00000000000000000000000000000000'H }
    ::= { tmnxPtpPbtPortFilterEntry 6 }

tmnxPtp1588Status                OBJECT IDENTIFIER ::= { tmnxPtp1588Objs 3 }

tmnxPtpClockOperTable            OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpClockOperEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpClockOperTable contains the operational information for the
         individual Precision Timing Protocol (PTP) for each CPM card in the
         SROS system."
    ::= { tmnxPtp1588Status 1 }

tmnxPtpClockOperEntry            OBJECT-TYPE
    SYNTAX      TmnxPtpClockOperEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpClockOperEntry consists of the operational information for
         the PTP clock on an individual CPM card."
    AUGMENTS    { tmnxCpmCardEntry }
    ::= { tmnxPtpClockOperTable 1 }

TmnxPtpClockOperEntry            ::= SEQUENCE
{
    tmnxPtpClockIdentity             TmnxPtpClockIdentity,
    tmnxPtpClockOperState            TmnxOperState,
    tmnxPtpClockStepType             TmnxPtpClockStepType,
    tmnxPtpClockClass                TmnxPtpClockClass,
    tmnxPtpClockAccuracy             TmnxPtpClockAccuracy,
    tmnxPtpClockVariance             TmnxPtpClockVariance,
    tmnxPtpClockPortState            TmnxPtpPortState,
    tmnxPtpClockPortStateLastChanged TimeStamp,
    tmnxPtpClockRecoveryState        INTEGER,
    tmnxPtpClockRecoveryStateLastChg TimeStamp,
    tmnxPtpClockFrequencyOffset      Integer32,
    tmnxPtpTimeRecoveryState         INTEGER,
    tmnxPtpTimeRecoveryStateLastChg  TimeStamp,
    tmnxPtpClockStepsRemoved         Counter32
}

tmnxPtpClockIdentity             OBJECT-TYPE
    SYNTAX      TmnxPtpClockIdentity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockIdentity indicates the identify of the local
         Clock.  This object corresponds to the value of the
         defaultDS.clockIdentity data set member defined by IEEE Std 1588-2008.

         The clock identity is derived from tmnxChassisBaseMacAddress."
    ::= { tmnxPtpClockOperEntry 1 }

tmnxPtpClockOperState            OBJECT-TYPE
    SYNTAX      TmnxOperState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockOperState indicates the operational state of
         PTP 1588 on the system.

         On some SROS systems, PTP may remain operationally out of service
         even when PTP is administratively in service.  This occurs when
         the value of tmnxPtpClockProfile or tmnxPtpClockClockType has changed
         since system initialization, and indicates that a system reset is
         required to make PTP operationally in service."
    ::= { tmnxPtpClockOperEntry 2 }

tmnxPtpClockStepType             OBJECT-TYPE
    SYNTAX      TmnxPtpClockStepType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockStepType indicates how the system provides
         timing information.  SROS systems always have a tmnxPtpClockStepType of
         'oneStep (1)', and never transmit PTP 'follow up' packets."
    ::= { tmnxPtpClockOperEntry 3 }

tmnxPtpClockClass                OBJECT-TYPE
    SYNTAX      TmnxPtpClockClass
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockClass indicates the local clock class. The
         value of this object corresponds to the defaultDS.clockQuality data
         set member defined in IEEE Std 1588-2008.

         When tmnxPtpClockClockType is 'ordinarySlave (1)', tmnxPtpClockClass
         is 'slaveOnly (255)'. Otherwise, when tmnxPtpClockProfile is
         'ieee1588-2008 (2)' tmnxPtpClockClass is 'default (248)'. When
         tmnxPtpClockProfile is 'g8265dot1-2010 (1)', tmnxPtpClockClass changes
         depending on the value of tmnxSyncIfTimingSystemQltyLevel.

         The mapping between ITU-T synchronization quality levels and PTP clock
         class is given in ITU-T recommendation G.8265.1."
    REFERENCE
        "IEEE Std 1588-2008, Section 8.2.1.3.1.1 and
         ITU-T draft G.8265.1 V0.3, Section 6.7.3.2."
    ::= { tmnxPtpClockOperEntry 4 }

tmnxPtpClockAccuracy             OBJECT-TYPE
    SYNTAX      TmnxPtpClockAccuracy
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockAccuracy indicates the accuracy of the clock.
         The value of this object corresponds to the
         defaultDS.clockQuality.clockAccuracy data set member defined in IEEE
         Std 1588-2008. For SROS systems, this is always reported as 254
         (0xFE), meaning 'Unknown'."
    REFERENCE
        "IEEE Std 1588-2008, Section 8.2.1.3.1.2"
    ::= { tmnxPtpClockOperEntry 5 }

tmnxPtpClockVariance             OBJECT-TYPE
    SYNTAX      TmnxPtpClockVariance
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockVariance indicates the inherent precision of
         the local clock. The value of this object corresponds to the
         defaultDS.clockQuality.clockVariance data set member defined in IEEE
         Std 1588-2008."
    ::= { tmnxPtpClockOperEntry 6 }

tmnxPtpClockPortState            OBJECT-TYPE
    SYNTAX      TmnxPtpPortState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockPortState indicates the current state of the
         single PTP port when tmnxPtpClockClockType is either
         'ordinarySlave (1)' or 'ordinaryMaster (2)'.  Otherwise,
         tmnxPtpClockPortState is 'notApplicable (0)'.

         The value of this object corresponds to the portDS.portState data set
         member defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 9.2.5"
    ::= { tmnxPtpClockOperEntry 7 }

tmnxPtpClockPortStateLastChanged OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockPortStateLastChanged indicates the time,
         since system startup, when the tmnxPtpClockPortState last changed
         state."
    ::= { tmnxPtpClockOperEntry 8 }

tmnxPtpClockRecoveryState        OBJECT-TYPE
    SYNTAX      INTEGER {
        notApplicable (0),
        initial       (1),
        acquiring     (2),
        phaseTracking (3),
        holdover      (4),
        locked        (5)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecoveryState indicates the state of the clock
         recovery process on a PTP system.  The various states are:
            notApplicable (0) - The system is not attempting to recover a clock
            initial       (1) - The system is configured to recover a clock,
                                but not enough information has yet been received
                                to adjust the local clock to match a master
                                clock
            acquiring     (2) - The system has enough information to attempt
                                clock recovery, and has started the process of
                                adjusting its local clock frequency to match the
                                master clock
            phaseTracking (3) - The system has adjusted its local clock to the
                                approximate frequency of the master clock, and
                                is adjusting the local clock to minimize the
                                phase difference between the two clocks
            holdover      (4) - The system has stopped receiving useful
                                information from the chosen master clock, and is
                                maintaining the last estimated frequency for its
                                local clock
            locked        (5) - The system is locked to the chosen master clock
                                and the phase error between the master clock and
                                the local clock is relatively small"
    ::= { tmnxPtpClockOperEntry 9 }

tmnxPtpClockRecoveryStateLastChg OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecoveryStateLastChg indicates the time,
         since system startup, when tmnxPtpClockRecoveryState last changed
         state."
    ::= { tmnxPtpClockOperEntry 10 }

tmnxPtpClockFrequencyOffset      OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "parts per trillion"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockFrequencyOffset indicates the frequency offset
         of the recovered clock, from the nominal clock rate, in parts per
         trillion.  Positive values indicate that the recovered clock is faster
         than nominal, and negative values indicate that the recovered clock is
         slower than nominal."
    REFERENCE
        "IEEE Std 1588-2008 Section 3.1.12"
    ::= { tmnxPtpClockOperEntry 11 }

tmnxPtpTimeRecoveryState         OBJECT-TYPE
    SYNTAX      INTEGER {
        disabled  (0),
        initial   (1),
        acquiring (2),
        locked    (3),
        holdover  (4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeRecoveryState indicates the state of the time
         recovery process to the parent clock on a PTP system.
         The various states are:
            disabled      (0) - The system is not attempting to recover time.
            initial       (1) - PTP is enabled but the system has not chosen a parent clock yet.
            acquiring     (2) - The system is attempting to recover time from the parent clock.
            locked        (3) - The system has locked to the parent clock.
            holdover      (4) - The system had previously locked, but lost synchronization
                                with the parent clock."
    ::= { tmnxPtpClockOperEntry 12 }

tmnxPtpTimeRecoveryStateLastChg  OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeRecoveryStateLastChg indicates the time, since
         system startup, when tmnxPtpTimeRecoveryState last changed state."
    ::= { tmnxPtpClockOperEntry 13 }

tmnxPtpClockStepsRemoved         OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockStepsRemoved indicates the number of hops
         separating the PTP clock from the grandmaster clock."
    ::= { tmnxPtpClockOperEntry 14 }

tmnxPtpMasterClockOper           OBJECT IDENTIFIER ::= { tmnxPtp1588Status 2 }

tmnxPtpMasterClockAddressType    OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockAddressType indicates, along with the
         value of tmnxPtpMasterClockAddress, the IP address of the Parent
         Clock.

         This object is only valid when tmnxPtpMasterClockTransportType is
         'udpIp (2)'."
    REFERENCE
        "IEEE 1588-2008, Annex D"
    ::= { tmnxPtpMasterClockOper 1 }

tmnxPtpMasterClockAddress        OBJECT-TYPE
    SYNTAX      InetAddress (SIZE (0|4|16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockAddress indicates, along with the value
         of tmnxPtpMasterClockAddressType, the IP address of the Parent Clock.

         This object is only valid when tmnxPtpMasterClockTransportType is
         'udpIp (2)'."
    REFERENCE
        "IEEE 1588-2008, Annex D"
    ::= { tmnxPtpMasterClockOper 2 }

tmnxPtpMasterClockGMClockId      OBJECT-TYPE
    SYNTAX      TmnxPtpClockIdentity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockGMClockId indicates the Grand Master
         Clock Identity for the Master Clock.

         This corresponds to the parentDS.grandmasterIdentity data set member
         defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE 1588-2008, Section 8.2.3.6"
    ::= { tmnxPtpMasterClockOper 3 }

tmnxPtpMasterClockGMClockPrio1   OBJECT-TYPE
    SYNTAX      TmnxPtpPriority
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockGMClockPrio1 indicates the priority1
         set by the Grandmaster clock. The value of this object corresponds to
         the parentDS.grandmasterPriority1 data set member defined in IEEE Std
         1588-2008."
    REFERENCE
        "IEEE 1588-2008, Section 8.2.3.8"
    ::= { tmnxPtpMasterClockOper 4 }

tmnxPtpMasterClockGMClockPrio2   OBJECT-TYPE
    SYNTAX      TmnxPtpPriority
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockGMClockPrio2 indicates the priority2
         set by the Grandmaster clock. The value of this object corresponds to
         the parentDS.grandmasterPriority2 data set member defined in IEEE Std
         1588-2008."
    REFERENCE
        "IEEE 1588-2008, Section 8.2.3.9"
    ::= { tmnxPtpMasterClockOper 5 }

tmnxPtpMasterClockGMClockClass   OBJECT-TYPE
    SYNTAX      TmnxPtpClockClass
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockGMClockClass indicates the grand master
         clock class. The value of this object corresponds to the
         parentDS.grandMasterClockQuality.clockClass data set member defined in
         IEEE Std 1588-2008."
    REFERENCE
        "IEEE 1588-2008, Section 8.2.3.7"
    ::= { tmnxPtpMasterClockOper 6 }

tmnxPtpMasterClockGMAccuracy     OBJECT-TYPE
    SYNTAX      TmnxPtpClockAccuracy
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockGMAccuracy indicates the accuracy of
         the Grand Master clock. The value of this object corresponds to the
         parentDS.grandMasterClockQuality.clockAccuracy data set member defined
         in IEEE Std 1588-2008."
    REFERENCE
        "IEEE 1588-2008, Section 8.2.3.7"
    ::= { tmnxPtpMasterClockOper 7 }

tmnxPtpMasterClockGMVariance     OBJECT-TYPE
    SYNTAX      TmnxPtpClockVariance
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockGMVariance indicates the variance of
         the Grand Master clock time. The value of this object corresponds to
         the parentDS.grandMasterClockQuality.offsetScaledLogVariance data set
         member defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE 1588-2008, Section 8.2.3.7"
    ::= { tmnxPtpMasterClockOper 8 }

tmnxPtpMasterClockParentClockId  OBJECT-TYPE
    SYNTAX      TmnxPtpClockIdentity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockParentClockId indicates the clock
         identity of the Master Clock's Parent. The value of this object
         corresponds to the parentDS.parentPortIdentity.clockIdentity data set
         member defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE 1588-2008, Section 8.2.3.2"
    ::= { tmnxPtpMasterClockOper 9 }

tmnxPtpMasterClockParentPortNum  OBJECT-TYPE
    SYNTAX      TmnxPtpPortNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockParentPortNum indicates the identifying
         port number used by the remote peer when communicating with the local
         clock.  The value of this object corresponds to the
         parentDS.parentPortIdentity.portNumber data set member defined in
         IEEE Std 1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 8.2.3.2"
    ::= { tmnxPtpMasterClockOper 10 }

tmnxPtpMasterClockTransportType  OBJECT-TYPE
    SYNTAX      TmnxPtpTransportType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockTransportType indicates the transport
         type of the PTP packets exchanged between the local clock and the
         parent clock.

         If the local clock has not chosen another PTP clock as its parent
         clock,  or if the parent clock is a GNSS port,
         tmnxPtpMasterClockTransportType has a value of 'none (1)'"
    ::= { tmnxPtpMasterClockOper 11 }

tmnxPtpMasterClockEthernetPort   OBJECT-TYPE
    SYNTAX      TmnxPortID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockEthernetPort indicates the Ethernet
         port of the parent clock. This object is only valid when
         tmnxPtpMasterClockTransportType is 'ethernet (3)'."
    REFERENCE
        "IEEE Std 1588-2008, Annex F"
    ::= { tmnxPtpMasterClockOper 12 }

tmnxPtpMasterClockMacAddress     OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockMacAddress indicates the Ethernet MAC
         address of the parent clock. This object is only valid when
         tmnxPtpMasterClockTransportType is 'ethernet (3)'."
    REFERENCE
        "IEEE Std 1588-2008, Annex F"
    ::= { tmnxPtpMasterClockOper 13 }

tmnxPtpMasterClockSyncUncertain  OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockSyncUncertain indicates whether
          the master clock is reporting Sync Uncertain or not.

         The value of this object corresponds to the
         parentDS.synchronizationUncertain data set member defined in IEEE Std
         1588-2019."
    REFERENCE
        "IEEE Std 1588-2019 Section 8.2.3.11 'parentDS.synchronizationUncertain'"
    ::= { tmnxPtpMasterClockOper 14 }

tmnxPtpMasterClockPortId         OBJECT-TYPE
    SYNTAX      TmnxPortID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockPortId indicates the port of the parent
         clock. This port is an Ethernet port  or a GNSS port. If there is no
         parent clock, or the parent clock is not reachable via a port,
         tmnxPtpMasterClockPortId contains a value of '1E000000'H."
    ::= { tmnxPtpMasterClockOper 15 }

tmnxPtpPeerMasterStatusTable     OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPeerMasterStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPeerMasterStatusTable consists of Precision Time Protocol
         Master Peer state information. This table extends the
         tmnxPtpPeerConfigTable for peers configured as grandmaster or boundary
         PTP clocks that may provide timing information to the local clock."
    ::= { tmnxPtp1588Status 3 }

tmnxPtpPeerMasterStatusEntry     OBJECT-TYPE
    SYNTAX      TmnxPtpPeerMasterStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPeerMasterStatusEntry contains the information pertaining
         to Precision Time Protocol peers configured as master clocks.

         Rows in this table are created and destroyed by the system based on
         the configuration in the associated tmnxPtpPeerConfigEntry.  All
         peers in this table have tmnxPtpPeerRemoteMaster set to 'true'."
    INDEX       {
        vRtrID,
        tmnxPtpPeerIpAddrType,
        tmnxPtpPeerIpAddress
    }
    ::= { tmnxPtpPeerMasterStatusTable 1 }

TmnxPtpPeerMasterStatusEntry     ::= SEQUENCE
{
    tmnxPtpPeerMasterCurrentMaster   TruthValue,
    tmnxPtpPeerMasterClockStepType   TmnxPtpClockStepType,
    tmnxPtpPeerMasterClockStepsRemvd Unsigned32,
    tmnxPtpPeerMasterGMClockId       TmnxPtpClockIdentity,
    tmnxPtpPeerMasterGMClockPrio1    TmnxPtpPriority,
    tmnxPtpPeerMasterGMClockPrio2    TmnxPtpPriority,
    tmnxPtpPeerMasterGMClockClass    TmnxPtpClockClass,
    tmnxPtpPeerMasterGMClockAccuracy TmnxPtpClockAccuracy,
    tmnxPtpPeerMasterGMClockVariance TmnxPtpClockVariance,
    tmnxPtpPeerMasterAlarm           BITS,
    tmnxPtpPeerMasterBestMaster      TruthValue,
    tmnxPtpPeerMasterDelayAsymmetry  TmnxPtpDelayAsymmetry,
    tmnxPtpPeerMasterDelayAsymCalc   TimeStamp,
    tmnxPtpPeerMasterBackup          TruthValue,
    tmnxPtpPeerOffsetFrLocal         TmnxPtpTimeInterval,
    tmnxPtpPeerOffsetFrLocalCalc     TimeStamp,
    tmnxPtpPeerOffsetFrLocalNs       Integer32
}

tmnxPtpPeerMasterCurrentMaster   OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterCurrentMaster indicates whether or not
         this PTP Peer has been chosen by the PTP Best Master Clock Algorithm
         as the current parent clock."
    ::= { tmnxPtpPeerMasterStatusEntry 1 }

tmnxPtpPeerMasterClockStepType   OBJECT-TYPE
    SYNTAX      TmnxPtpClockStepType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterClockStepType indicates the step type of
         the PTP peer."
    ::= { tmnxPtpPeerMasterStatusEntry 2 }

tmnxPtpPeerMasterClockStepsRemvd OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterClockStepsRemvd indicates the number of
         steps the master is removed from the grandmaster clock.  This value is
         taken from the last announce packet received from the peer clock."
    REFERENCE
        "IEEE Std 1588-2008 Section 13.5.2.7"
    ::= { tmnxPtpPeerMasterStatusEntry 3 }

tmnxPtpPeerMasterGMClockId       OBJECT-TYPE
    SYNTAX      TmnxPtpClockIdentity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterGMClockId indicates the identity of the
         grandmaster PTP clock. This value is taken from the last Announce
         packet received from the peer clock."
    ::= { tmnxPtpPeerMasterStatusEntry 4 }

tmnxPtpPeerMasterGMClockPrio1    OBJECT-TYPE
    SYNTAX      TmnxPtpPriority
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterGMClockPrio1 indicates the 'priority1'
         value of the grandmaster clock.  This value is taken from the last
         announce packet received from the peer clock."
    ::= { tmnxPtpPeerMasterStatusEntry 5 }

tmnxPtpPeerMasterGMClockPrio2    OBJECT-TYPE
    SYNTAX      TmnxPtpPriority
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterGMClockPrio2 indicates the 'priority2'
         value of the grandmaster clock.  This value is taken from the last
         announce packet received from the peer clock."
    ::= { tmnxPtpPeerMasterStatusEntry 6 }

tmnxPtpPeerMasterGMClockClass    OBJECT-TYPE
    SYNTAX      TmnxPtpClockClass
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterGMClockClass indicates the clock class
         of the grandmaster clock. This value is taken from the last announce
         packet received from the peer clock."
    ::= { tmnxPtpPeerMasterStatusEntry 7 }

tmnxPtpPeerMasterGMClockAccuracy OBJECT-TYPE
    SYNTAX      TmnxPtpClockAccuracy
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterGMClockAccuracy indicates the clock
         accuracy of the grandmaster clock. This value is taken from the last
         announce packet received from the peer clock."
    ::= { tmnxPtpPeerMasterStatusEntry 8 }

tmnxPtpPeerMasterGMClockVariance OBJECT-TYPE
    SYNTAX      TmnxPtpClockVariance
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterGMClockVariance indicates the clock
         variance of the grandmaster clock. This value is taken from the last
         announce packet received from the peer clock."
    ::= { tmnxPtpPeerMasterStatusEntry 9 }

tmnxPtpPeerMasterAlarm           OBJECT-TYPE
    SYNTAX      BITS {
        ptsfLossAnnounce (0),
        ptsfLossSync     (1)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterAlarm indicates the alarm status of the
         PTP peer clock:

            ptsfLossAnnounce(0)
                The peer is in the 'Packet Timing Signal Fail (Loss Announce)'
                state, indicating that it is not receiving PTP announce messages
                from the remote master.

                The ptsfLossAnnounce bit is set if no PTP announce messages are
                received for a duration equal to ANNOUNCE_RECEIPT_TIMEOUT
                seconds, as described in G.8251.1, section 6.7.3.3.

                The ptsfLossAnnounce bit is cleared if a PTP announce message is
                received from the remote master.

            ptsfLossSync(1)
                The peer is in the 'Packet Timing Signal Fail (Loss Sync)'
                state, indicating that it is not receiving PTP timing messages
                from the remote master.

                The ptsfLossSync bit is set if no PTP timing messages are
                received from the remote master for a specific duration.  The
                duration to enter the ptsfLossSync state is the same as the
                duration for the ptsfLossAnnounce state.

                The ptsfLossSync bit is cleared when PTP timing messages are
                received from the remote master.

         These bits will only be set when tmnxPtpClockClockType is
         'ordinarySlave (1)'.  They do not apply when tmnxPtpClockClockType is
         'ordinaryMaster (2)' or 'boundary (3)'."
    REFERENCE
        "ITU-T G.8265.1, section 6.7.3.3."
    ::= { tmnxPtpPeerMasterStatusEntry 11 }

tmnxPtpPeerMasterBestMaster      OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterBestMaster indicates whether or not this
         PTP Peer is the best master clock, as decided by the Best Master Clock
         Algorithm (BMCA).

         Even if tmnxPtpPeerMasterBestMaster is true, this clock may not be the
         parent clock.

         For the case where the local GNSS is present and it is providing time
         into PTP, then this object indicates if this peer would be the best
         master if the GNSS were to fail.  For this case, the local clock still
         runs a recovery of time and possibly for frequency (G.8275.2)
         and calculates the delay asymmetry between the two clocks."
    ::= { tmnxPtpPeerMasterStatusEntry 12 }

tmnxPtpPeerMasterDelayAsymmetry  OBJECT-TYPE
    SYNTAX      TmnxPtpDelayAsymmetry
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The value of tmnxPtpPeerMasterDelayAsymmetry indicates the estimated
         delay asymmetry in the path between the master clock and the local
         clock.

         This leaf was obsoleted in Release 24.3 and was replaced by
         tmnxPtpPeerOffsetFrLocal"
    ::= { tmnxPtpPeerMasterStatusEntry 13 }

tmnxPtpPeerMasterDelayAsymCalc   OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The value of tmnxPtpPeerMasterDelayAsymCalc indicates the time, since
         system startup, when tmnxPtpPeerMasterDelayAsymmetry was last
         calculated.

         A value of 0 indicates that the local clock has not estimated the
         delay asymmetry.

         This leaf was obsoleted in Release 24.3 and was replaced by
         tmnxPtpPeerOffsetFrLocalCalc"
    ::= { tmnxPtpPeerMasterStatusEntry 14 }

tmnxPtpPeerMasterBackup          OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMasterBackup indicates whether this peer is
         the backup when the clock is using GNSS"
    ::= { tmnxPtpPeerMasterStatusEntry 15 }

tmnxPtpPeerOffsetFrLocal         OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerOffsetFrLocal indicates the time offset
         between the clock recovered from the peer and the local clock's time.
         This time offset may be caused by delay asymmetry in the path between
         the peer's clock and the local clock.

         This object is now deprecated and replaced with
         tmnxPtpPeerOffsetFrLocalNs"
    ::= { tmnxPtpPeerMasterStatusEntry 16 }

tmnxPtpPeerOffsetFrLocalCalc     OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerOffsetFrLocalCalc indicates the time, since
         system startup, when tmnxPtpPeerOffsetFrLocalNs was last calculated.

         A value of 0 indicates that the local clock has not estimated the
         delay asymmetry."
    ::= { tmnxPtpPeerMasterStatusEntry 17 }

tmnxPtpPeerOffsetFrLocalNs       OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerOffsetFrLocalNs indicates the time offset
         between the clock recovered from the peer and the local clock's time.
         This time offset may be caused by delay asymmetry in the path between
         the peer's clock and the local clock."
    ::= { tmnxPtpPeerMasterStatusEntry 18 }

tmnxPtpPeerUnicastTable          OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPeerUnicastEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPeerUnicastTable consists of the status of unicast
         messaging service between the local PTP clock and all other PTP
         clocks."
    ::= { tmnxPtp1588Status 4 }

tmnxPtpPeerUnicastEntry          OBJECT-TYPE
    SYNTAX      TmnxPtpPeerUnicastEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPeerUnicastEntry contains the status of unicast messaging
         service between PTP clocks for the specified packet type in the
         direction specified.

         Rows in this table are created and destroyed by the system based on
         the existence of rows in the tmnxPtpPeerConfigTable, and based on the
         transfer of unicast negotiation signaling TLVs between the PTP clocks."
    REFERENCE
        "IEEE Std 1588-2008 Section 16.1."
    INDEX       {
        vRtrID,
        tmnxPtpPeerIpAddrType,
        tmnxPtpPeerIpAddress,
        tmnxPtpPeerUnicastDirection,
        tmnxPtpPeerUnicastPktType
    }
    ::= { tmnxPtpPeerUnicastTable 1 }

TmnxPtpPeerUnicastEntry          ::= SEQUENCE
{
    tmnxPtpPeerUnicastDirection      TmnxPtpDirection,
    tmnxPtpPeerUnicastPktType        INTEGER,
    tmnxPtpPeerUnicastStatus         INTEGER,
    tmnxPtpPeerUnicastRate           TmnxPtpLogInterval,
    tmnxPtpPeerUnicastDuration       Unsigned32,
    tmnxPtpPeerUnicastEventTime      TimeStamp
}

tmnxPtpPeerUnicastDirection      OBJECT-TYPE
    SYNTAX      TmnxPtpDirection
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerUnicastDirection specifies the direction
         of packet flow for tmnxPtpPeerUnicastPktType packets (announce,
         sync, or delay response).   Ordinary slave clocks will only have
         entries in tmnxPtpPeerUnicastTable with a tmnxPtpPeerUnicastDirection
         of 'rx (1)'.  Ordinary master clocks will only have entries with a
         tmnxPtpPeerUnicastDirection of 'tx (2)'.  Boundary clocks may have
         entries in both directions."
    ::= { tmnxPtpPeerUnicastEntry 1 }

tmnxPtpPeerUnicastPktType        OBJECT-TYPE
    SYNTAX      INTEGER {
        announce      (1),
        sync          (2),
        delayResponse (3)
    }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerUnicastPktType specifies the packet type
         described by the values in this table entry."
    ::= { tmnxPtpPeerUnicastEntry 2 }

tmnxPtpPeerUnicastStatus         OBJECT-TYPE
    SYNTAX      INTEGER {
        pending  (1),
        granted  (2),
        denied   (3),
        expired  (4),
        canceled (5)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerUnicastStatus indicates:
         pending  (1) - a request for unicast transmission has been sent to
                        the master, but no reply has been received.
         granted  (2) - the packet rate and duration has been accepted by
                        the master clock
         denied   (3) - the packet rate and/or duration has been denied by
                        the master clock
         expired  (4) - the unicast transmission duration has expired
                        without being renewed
         canceled (5) - unicast transmission has been canceled by either
                        the local or remote clock"
    ::= { tmnxPtpPeerUnicastEntry 3 }

tmnxPtpPeerUnicastRate           OBJECT-TYPE
    SYNTAX      TmnxPtpLogInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerUnicastRate indicates the packet rate
         requested or granted for unicast transmission between the PTP peers."
    ::= { tmnxPtpPeerUnicastEntry 4 }

tmnxPtpPeerUnicastDuration       OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerUnicastDuration indicates the duration, in
         seconds, requested or granted for unicast transmission between the PTP
         peers."
    ::= { tmnxPtpPeerUnicastEntry 5 }

tmnxPtpPeerUnicastEventTime      OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerUnicastEventTime indicates the time, since
         system startup, that tmnxPtpPeerUnicastStatus last changed or the
         unicast session between the PTP clocks was renewed."
    ::= { tmnxPtpPeerUnicastEntry 6 }

tmnxPtpTimeInformation           OBJECT IDENTIFIER ::= { tmnxPtp1588Status 5 }

tmnxPtpTimeInfoTimescale         OBJECT-TYPE
    SYNTAX      INTEGER {
        ptp       (1),
        arbitrary (2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoTimescale indicates the time scale of the
         time reported by PTP."
    REFERENCE
        "IEEE 1588-2008, sections 7.2 and 8.2.4.8."
    ::= { tmnxPtpTimeInformation 1 }

tmnxPtpTimeInfoCurrentTime       OBJECT-TYPE
    SYNTAX      DateAndTime (SIZE (8))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoCurrentTime contains the date and time. If
         tmnxPtpTimeInfoTimescale is 'ptp (1)', the time is converted to UTC
         time, based on the current offset between UTC and PTP time."
    REFERENCE
        "IEEE 1588-2008, sections 7.2 and 8.2.4.8."
    ::= { tmnxPtpTimeInformation 2 }

tmnxPtpTimeInfoFreqTraceable     OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoFreqTraceable indicates whether the
         frequency of time is traceable to a primary reference.  This
         corresponds to the 'frequencyTraceable' member of the 'time properties'
         data set."
    REFERENCE
        "IEEE 1588-2008, section 8.2.4.7."
    ::= { tmnxPtpTimeInformation 3 }

tmnxPtpTimeInfoTimeTraceable     OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoTimeTraceable indicates whether the
         time is traceable to a primary reference.  This corresponds to the
         'timeTraceable' member of the 'time properties' data set."
    REFERENCE
        "IEEE 1588-2008, section 8.2.4.6."
    ::= { tmnxPtpTimeInformation 4 }

tmnxPtpTimeInfoTimeSource        OBJECT-TYPE
    SYNTAX      INTEGER {
        atomicClock        (16),
        gps                (32),
        terrestrialRadio   (48),
        ptp                (64),
        ntp                (80),
        handSet            (96),
        other              (144),
        internalOscillator (160),
        reserved           (255)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoTimeSource indicates the source of time
         used by the grandmaster clock.  This corresponds to the 'timeSource'
         member of the 'time properties' data set."
    REFERENCE
        "IEEE 1588-2008, sections 7.6.2.6 and 8.2.4.9."
    ::= { tmnxPtpTimeInformation 5 }

tmnxPtpTimeInfoOffsetFromMaster  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoOffsetFromMaster indicates the current
         offset of the local PTP clock from the parent PTP clock, calculated by
         the local clock, as per IEEE Std 1588-2008, section 11.2.

         It represents the 'instantaneous' value of calculated time offset
         from the parent PTP clock, using timestamp information from the most
         recent exchange of sync and delay request/response messages.  There is
         no filtering applied to the received sync and delay response messages,
         and there is no averaging of this calculation over multiple exchanges
         of sync and delay request/response messages.

         The time that this offset was last calculated is provided in
         tmnxPtpTimeInfoLastCalc.

         The active CPM calculates this offset each time the local PTP clock and
         the parent PTP clock exchange sync, delay request, and delay response
         messages.  The standby CPM does not calculate this offset, returning a
         value of 0 for tmnxPtpTimeInfoOffsetFromMaster.

         If PTP sync and delay request packets have not yet been exchanged
         between the local clock and the parent clock, both
         tmnxPtpTimeInfoOffsetFromMaster and tmnxPtpTimeInfoLastCalc return a
         value of 0.

         Due to asymmetry in the latencies experienced by PTP sync and delay
         request packets, the calculated offset from master may not be a true
         indication of the actual offset of the local clock from the
         master/parent clock.  As well, due to packet delay variation in the PTP
         sync and delay request flows, there may be significant variation
         between successive calculated values of
         tmnxPtpTimeInfoOffsetFromMaster.

         The system does not calculate the time offset between the local clock
         and the parent PTP clock when tmnxPtpClockProfile is 'g8265dot1-2010
         (1)'.

         This corresponds to the 'currentDS.offsetFromMaster' data set member
         defined in IEEE Std 1588-2008.

         This object is now deprecated and replaced with
         tmnxPtpTimeInfoOffFromMasterNs"
    REFERENCE
        "IEEE Std 1588-2008 Sections 8.2.2.3 and 11.2"
    ::= { tmnxPtpTimeInformation 6 }

tmnxPtpTimeInfoMeanPathDelay     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoMeanPathDelay indicates the current value
         of the mean propagation time between the local PTP clock and the
         parent PTP clock, calculated by the local clock, as per IEEE Std
         1588-2008, section 11.3.

         It represents the 'instantaneous' value of the calculated mean path
         delay, using timestamp information from the most recent exchange of
         sync and delay request/response messages.  There is no filtering
         applied to the received sync and delay response messages, and there is
         no averaging of this calculation over multiple exchanges of sync and
         delay request/response messages.

         The time that this mean path delay was last calculated is provided in
         tmnxPtpTimeInfoLastCalc.

         The active CPM calculates the mean path delay each time the local PTP
         clock and the parent PTP clock exchange sync, delay request, and delay
         response messages.  The standby CPM does not calculate the mean path
         delay, returning a value of 0 for tmnxPtpTimeInfoMeanPathDelay.

         If PTP sync and delay request packets have not yet been exchanged
         between the local clock and the parent clock, both
         tmnxPtpTimeInfoMeanPathDelay and tmnxPtpTimeInfoLastCalc return a
         value of 0.

         This mean path delay includes cable/fiber latency in the sync and delay
         request path, and includes latency within network devices that do not
         correct for internal latencies.  The mean path delay does not include
         latency within network devices that are PTP transparent clocks, which
         correct for these internal latencies.

         Due to packet delay variation in the PTP sync and delay request flows,
         there may be significant variation between successive calculated
         values of tmnxPtpTimeInfoMeanPathDelay.

         The system does not calculate the mean path delay when
         tmnxPtpClockProfile is 'g8265dot1-2010 (1)'.

         This corresponds to the 'currentDS.meanPathDelay' data set member
         defined in IEEE Std 1588-2008.

         This object is now deprecated and replaced with
         tmnxPtpTimeInfoMeanDelayNs"
    REFERENCE
        "IEEE Std 1588-2008 Sections 8.2.2.3 and 11.2"
    ::= { tmnxPtpTimeInformation 7 }

tmnxPtpTimeInfoLastCalc          OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoLastCalc indicates the time, since system
         startup, when tmnxPtpTimeInfoOffFromMasterNs was last calculated."
    ::= { tmnxPtpTimeInformation 8 }

tmnxPtpTimeInfoCurrentUtcOffset  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoCurrentUtcOffset indicates the offset
         between International Atomic Time (TAI) and Coordinated Universal Time
         (UTC), in seconds.

         This value is only valid when tmnxPtpTimeInfoUtcOffsetValid is true.

         This corresponds to the 'currentUtcOffset' member of the time
         properties data set defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 8.2.4.2"
    ::= { tmnxPtpTimeInformation 9 }

tmnxPtpTimeInfoUtcOffsetValid    OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoUtcOffsetValid indicates whether the
         offset indicated by tmnxPtpTimeInfoCurrentUtcOffset is known to be
         correct.

         This corresponds to the 'currentUtcOffsetValid' member of the time
         properties data set defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 8.2.4.3"
    ::= { tmnxPtpTimeInformation 10 }

tmnxPtpTimeInfoLeap59            OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoLeap59 indicates whether the last minute
         of the current UTC day contains 59 seconds.

         This corresponds to the 'leap59' member of the time properties data
         set defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 8.2.4.4"
    ::= { tmnxPtpTimeInformation 11 }

tmnxPtpTimeInfoLeap61            OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoLeap61 indicates whether the last minute
         of the current UTC day contains 61 seconds.

         This corresponds to the 'leap61' member of the time properties data
         set defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 8.2.4.5"
    ::= { tmnxPtpTimeInformation 12 }

tmnxPtpTimeInfoSyncUncertain     OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoSyncUncertain indicates the
         synchronization uncertain indication of the local PTP clock.

         This object corresponds to the currentDS.synchronizationUncertain data
         set member of IEEE 1588-2019."
    REFERENCE
        "IEEE Std 1588-2019 Table 37 'Values of flagField' and section 8.2.2.5 'currentDS.synchronizationUncertain',
         ITU-T G.8275.1 (03/2020), Annex E 'Synchronization uncertain indication', and
         ITU-T G.8275.2 (03/2020), Annex E 'Synchronization uncertain indication'."
    ::= { tmnxPtpTimeInformation 13 }

tmnxPtpTimeInfoSyncUncertReason  OBJECT-TYPE
    SYNTAX      INTEGER {
        notApplicable      (0),
        clockStabilization (1),
        parentUncertain    (2),
        parentClockClass   (3),
        localClockClass    (4),
        setsNotLocked      (5),
        setsQuality        (6),
        timeNotLocked      (7),
        freqNotLocked      (8)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "When tmnxPtpTimeInfoSyncUncertain is TRUE, the value of
         tmnxPtpTimeInfoSyncUncertReason indicates the reason why the value is
         true."
    ::= { tmnxPtpTimeInformation 14 }

tmnxPtpTimeInfoLastAdjustment    OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoLastAdjustment indicates the last
         adjustment in nanoseconds to the local time of the PTP clock."
    ::= { tmnxPtpTimeInformation 15 }

tmnxPtpTimeInfoAdjustTimestamp   OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoAdjustTimestamp indicates the time, since
         system startup, when tmnxPtpTimeInfoLastAdjustment was last
         calculated."
    ::= { tmnxPtpTimeInformation 16 }

tmnxPtpTimeInfoOffFromMasterNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoOffFromMasterNs indicates the current
         offset of the local PTP clock from the parent PTP clock, calculated by
         the local clock, as per IEEE Std 1588-2008, section 11.2.

         It represents the 'instantaneous' value of calculated time offset
         from the parent PTP clock, using timestamp information from the most
         recent exchange of sync and delay request/response messages.  There is
         no filtering applied to the received sync and delay response messages,
         and there is no averaging of this calculation over multiple exchanges
         of sync and delay request/response messages.

         The time that this offset was last calculated is provided in
         tmnxPtpTimeInfoLastCalc.

         The active CPM calculates this offset each time the local PTP clock and
         the parent PTP clock exchange sync, delay request, and delay response
         messages.  The standby CPM does not calculate this offset, returning a
         value of 0 for tmnxPtpTimeInfoOffFromMasterNs.

         If PTP sync and delay request packets have not yet been exchanged
         between the local clock and the parent clock, both
         tmnxPtpTimeInfoOffFromMasterNs and tmnxPtpTimeInfoLastCalc return a
         value of 0.

         Due to asymmetry in the latencies experienced by PTP sync and delay
         request packets, the calculated offset from master may not be a true
         indication of the actual offset of the local clock from the
         master/parent clock.  As well, due to packet delay variation in the PTP
         sync and delay request flows, there may be significant variation
         between successive calculated values of
         tmnxPtpTimeInfoOffFromMasterNs.

         The system does not calculate the time offset between the local clock
         and the parent PTP clock when tmnxPtpClockProfile is 'g8265dot1-2010
         (1)'.

         This corresponds to the 'currentDS.offsetFromMaster' data set member
         defined in IEEE Std 1588-2008. "
    REFERENCE
        "IEEE Std 1588-2008 Sections 8.2.2.3 and 11.2"
    ::= { tmnxPtpTimeInformation 17 }

tmnxPtpTimeInfoMeanDelayNs       OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoMeanDelayNs indicates the current value of
         the mean propagation time between the local PTP clock and the parent
         PTP clock, calculated by the local clock, as per IEEE Std 1588-2019,
         section 11.3.

         It represents the 'instantaneous' value of the calculated mean delay,
         using timestamp information from the most recent exchange of
         sync and delay request/response messages.  There is no filtering
         applied to the received sync and delay response messages, and there is
         no averaging of this calculation over multiple exchanges of sync and
         delay request/response messages.

         The time that this mean delay was last calculated is provided in
         tmnxPtpTimeInfoMeanDelayLastCalc.
         The active CPM calculates the mean delay each time the local PTP clock
         and the parent PTP clock exchange sync,
         delay/pdelay request, and delay/pdelay response
         messages.  The standby CPM does not calculate the mean delay,
         returning a value of 0 for tmnxPtpTimeInfoMeanDelayNs.

         If PTP sync and delay/pdelay request, and delay/pdelay response
         packets have not yet been exchanged between the local clock and the
         parent clock, both tmnxPtpTimeInfoMeanDelayNs and
         tmnxPtpTimeInfoLastCalc return a value of 0.

         This mean delay includes cable/fiber latency in the sync and delay
         request path, and includes latency within network devices that do not
         correct for internal latencies.  The mean delay does not include
         latency within network devices that are PTP transparent clocks, which
         correct for these internal latencies.

         Due to packet delay variation in the PTP sync and delay request flows,
         there may be significant variation between successive calculated
         values of tmnxPtpTimeInfoMeanDelayNs.

         The system does not calculate the mean delay when tmnxPtpClockProfile
         is 'g8265dot1-2010 (1)'.

         This corresponds to the 'currentDS.meanDelay' data set member defined
         in IEEE Std 1588-2019."
    REFERENCE
        "IEEE Std 1588-2019 Sections 8.2.2.4 and 11.3"
    ::= { tmnxPtpTimeInformation 18 }

tmnxPtpTimeInfoMeanDelayLastCalc OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpTimeInfoMeanDelayLastCalc indicates the time,
         since system startup, when tmnxPtpTimeInfoMeanDelayNs was last
         calculated."
    ::= { tmnxPtpTimeInformation 19 }

tmnxPtpPortStatusTable           OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPortStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPortStatusTable consists of PTP status information that is
         specific to Ethernet ports configured for direct transport of PTP over
         Ethernet, as described in IEEE 1588-2008, Annex F."
    REFERENCE
        "IEEE Std 1588-2008 Annex F"
    ::= { tmnxPtp1588Status 6 }

tmnxPtpPortStatusEntry           OBJECT-TYPE
    SYNTAX      TmnxPtpPortStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A tmnxPtpPortStatusEntry contains status information pertaining to PTP
         on a specific Ethernet port.  Entries are created and deleted
         when entries in the tmnxPtpPortTable are created and deleted."
    AUGMENTS    { tmnxPtpPortEntry }
    ::= { tmnxPtpPortStatusTable 1 }

TmnxPtpPortStatusEntry           ::= SEQUENCE
{
    tmnxPtpPortLocalPortNumber       TmnxPtpPortNumber,
    tmnxPtpPortOperState             TmnxOperState,
    tmnxPtpPortState                 TmnxPtpPortState,
    tmnxPtpPortTimeStampRefPoint     TmnxPtpTimeStampReferencePoint,
    tmnxPtpPortNeighbors             Unsigned32,
    tmnxPtpPortTxPacketRate          Unsigned32,
    tmnxPtpPortRxPacketRate          Unsigned32,
    tmnxPtpPortSrcMacAddr            MacAddress,
    tmnxPtpPortMeanLinkDelayNs       Integer32,
    tmnxPtpPortMeanLinkDelayLastCalc TimeStamp
}

tmnxPtpPortLocalPortNumber       OBJECT-TYPE
    SYNTAX      TmnxPtpPortNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortLocalPortNumber indicates the PTP port number
         assigned by the local clock and used when communicating directly over
         the Ethernet physical port corresponding to this table row.

         If tmnxPtpClockClockType is either 'ordinarySlave (1)' or
         'ordinaryMaster (2)', tmnxPtpPortLocalPortNumber has a value of 1.

         The value of this object corresponds to the
         portDS.portIdentity.portNumber data set member defined in IEEE Std
         1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 7.5.2"
    ::= { tmnxPtpPortStatusEntry 1 }

tmnxPtpPortOperState             OBJECT-TYPE
    SYNTAX      TmnxOperState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortOperState indicates the operational state of
         PTP on the Ethernet port.

         The operational state will only be 'inService (2)' if PTP is
         administratively enabled on the port, if PTP is globally operational
         on the system, and if the Ethernet port is operationally up.  In other
         words, tmnxPtpPortAdminState, tmnxPtpClockOperState, and
         tmnxPortOperStatus  are all 'inService (2)'."
    ::= { tmnxPtpPortStatusEntry 2 }

tmnxPtpPortState                 OBJECT-TYPE
    SYNTAX      TmnxPtpPortState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortState indicates the current state of the PTP
         port.

         The value of this object corresponds to the portDS.portState data set
         member defined in IEEE Std 1588-2008."
    REFERENCE
        "IEEE Std 1588-2008 Section 8.2.5.3.1"
    ::= { tmnxPtpPortStatusEntry 3 }

tmnxPtpPortTimeStampRefPoint     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeStampReferencePoint
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortTimeStampRefPoint indicates the reference point
         used to generate PTP timestamps for transmitted and received PTP event
         packets on the port.  If the port is capable of timestamping PTP
         packets at the port, and the MDA is configured for synchronous Ethernet
         operation, the value will be 'port(1)'.  Otherwise, the value will be
         'cpm(2)'."
    ::= { tmnxPtpPortStatusEntry 4 }

tmnxPtpPortNeighbors             OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortNeighbors indicates the numbers of neighboring
         PTP clocks visible to the local clock on the Ethernet port."
    ::= { tmnxPtpPortStatusEntry 5 }

tmnxPtpPortTxPacketRate          OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per second"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortTxPacketRate indicates the current rate of PTP
         packets that the local PTP clock is transmitting on the Ethernet port.

         This packet rate includes all PTP packets transmitted by the local
         clock, which may include announce, sync, delay request, and delay
         response PTP packets.

         This value is periodically updated by the local clock."
    ::= { tmnxPtpPortStatusEntry 6 }

tmnxPtpPortRxPacketRate          OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per second"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortRxPacketRate indicates the current rate of PTP
         packets received by the local PTP clock on the Ethernet port.

         This packet rate includes all PTP packets received on the port.  These
         packets may originate from multiple PTP clocks.  Since Ethernet packets
         are transmitted using a multicast destination MAC address, the local
         clock will receive all PTP packets on the Ethernet segment, including
         packets that are not intended to be handled by the local clock.

         This value is periodically updated by the local clock."
    ::= { tmnxPtpPortStatusEntry 7 }

tmnxPtpPortSrcMacAddr            OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortSrcMacAddr is the MAC address of the PTP port
         that is used as source MAC address of the Ethernet frames carrying
         L2-PTP messages, transmitted through associated physical port.

         This is typically the MAC address of the physical port associated with
         the PTP port, but for some cases it may be an alternate MAC address
         taken from the pool of addresses allocated to the host system.

         This value is updated by the local clock."
    ::= { tmnxPtpPortStatusEntry 8 }

tmnxPtpPortMeanLinkDelayNs       OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortMeanLinkDelayNs contains the estimated one-way
         propagation delay on the PTP link, computed using the peer-to-peer
         delay mechanism.

         It represents the 'instantaneous' value of the calculated mean link
         delay, using timestamp information from the most recent exchange of
         Pdelay_Req, Pdelay_Resp, and possibly Pdelay_Resp_Follow_Up messages.

         There is no filtering applied to the received messages, and there is
         no averaging of this calculation over multiple exchanges of peer delay
         messages.

         The active CPM calculates the mean link delay each time it exchanges
         Pdelay_Req, Pdelay_Resp, and possibly Pdelay_Resp_Follow_Up messages
         over the link.  The standby CPM does not calculate the mean link
         delay, returning a value of 0 for tmnxPtpPortMeanLinkDelayNs.

         The time that this mean link delay was last calculated is provided in
         tmnxPtpPortMeanLinkDelayLastCalc.

         If the clock has not calculated the mean link delay,
         tmnxPtpPortMeanLinkDelayNs returns a value of 0.

         This corresponds to the 'portDS.meanLinkDelay' data set member defined
         in IEEE Std 1588-2019."
    REFERENCE
        "IEEE Std 1588-2019, section 8.2.15.3.3"
    ::= { tmnxPtpPortStatusEntry 9 }

tmnxPtpPortMeanLinkDelayLastCalc OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortMeanLinkDelayLastCalc indicates the time,
         since system startup, when tmnxPtpPortMeanLinkDelayNs was last
         calculated.

         If the clock has not calculated the mean link delay,
         tmnxPtpPortMeanLinkDelayLastCalc returns a value of 0."
    ::= { tmnxPtpPortStatusEntry 10 }

tmnxPtpPortNeighborTable         OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPortNeighborEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPortNeighborTable contains information on the neighbor PTP
         clocks communicating using direct transport of PTP over Ethernet and
         visible to the local PTP clock.

         Table entries are created automatically by the system upon reception of
         PTP Ethernet multicast packets from neighboring PTP clocks.  Individual
         table entries are deleted automatically by the system if no PTP packets
         are received from the neighbor clock for a period of time."
    ::= { tmnxPtp1588Status 7 }

tmnxPtpPortNeighborEntry         OBJECT-TYPE
    SYNTAX      TmnxPtpPortNeighborEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A tmnxPtpPortNeighborEntry contains information about an individual
         PTP clock visible to the local PTP clock."
    INDEX       {
        tmnxChassisIndex,
        tmnxPortPortID,
        tmnxPtpPortNeighborMacAddress
    }
    ::= { tmnxPtpPortNeighborTable 1 }

TmnxPtpPortNeighborEntry         ::= SEQUENCE
{
    tmnxPtpPortNeighborMacAddress    MacAddress,
    tmnxPtpPortNeighborClockId       TmnxPtpClockIdentity,
    tmnxPtpPortNeighborPtpPortNumber TmnxPtpPortNumber,
    tmnxPtpPortNeighborRxPacketRate  Unsigned32,
    tmnxPtpPortNeighborPtsfUnusable  TruthValue,
    tmnxPtpNeighborBestMaster        TruthValue,
    tmnxPtpNeighborParentClock       TruthValue,
    tmnxPtpNeighborDelayAsymmetry    TmnxPtpDelayAsymmetry,
    tmnxPtpNeighborDelayAsymCalc     TimeStamp,
    tmnxPtpNeighborBackup            TruthValue,
    tmnxPtpNeighborOffsetFrLocal     TmnxPtpTimeInterval,
    tmnxPtpNeighborOffsetFrLocalCalc TimeStamp,
    tmnxPtpNeighborMonTimeRecovState INTEGER,
    tmnxPtpNeighbMonTimeRecStLastChg TimeStamp,
    tmnxPtpNeighbMonTimeOffFrMaster  TmnxPtpTimeInterval,
    tmnxPtpNeighbMonTimeMeanPathDlay TmnxPtpTimeInterval,
    tmnxPtpNeighborMonTimeLastCalc   TimeStamp,
    tmnxPtpNeighborOffsetFrLocalNs   Integer32,
    tmnxPtpNeighbMonTimeOffFrMastNs  Integer32,
    tmnxPtpNeighbMonTimeMnPathDlyNs  Integer32
}

tmnxPtpPortNeighborMacAddress    OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortNeighborMacAddress indicates the MAC address
         of the neighboring PTP clock."
    ::= { tmnxPtpPortNeighborEntry 1 }

tmnxPtpPortNeighborClockId       OBJECT-TYPE
    SYNTAX      TmnxPtpClockIdentity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortNeighborClockId indicates the PTP clock
         identity of the neighboring PTP clock."
    ::= { tmnxPtpPortNeighborEntry 2 }

tmnxPtpPortNeighborPtpPortNumber OBJECT-TYPE
    SYNTAX      TmnxPtpPortNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortNeighborPtpPortNumber indicates the PTP port
         number of the PTP port on the neighbor clock that is connected to the
         local clock on this Ethernet port."
    ::= { tmnxPtpPortNeighborEntry 3 }

tmnxPtpPortNeighborRxPacketRate  OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per second"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortNeighborRxPacketRate indicates the current
         rate of PTP packets received by the local clock from the neighboring
         PTP clock."
    ::= { tmnxPtpPortNeighborEntry 4 }

tmnxPtpPortNeighborPtsfUnusable  OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortNeighborPtsfUnusable indicates whether or not
         the neighboring PTP clock has Packet Timing Signal Fail (PTSF)
         unusable set."
    REFERENCE
        "ITU-T Draft Amendment 1 to G.8275.1 (2020/03), Section 6.3.9"
    ::= { tmnxPtpPortNeighborEntry 5 }

tmnxPtpNeighborBestMaster        OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighborBestMaster indicates whether or not this
         neighboring clock is the best master clock, as decided by the Best
         Master Clock Algorithm (BMCA).

         Even if tmnxPtpNeighborBestMaster is true, this clock may not be the
         parent clock.

         For Assisted Partial Timing Support (APTS), when the best master clock
         is not the parent clock, the local clock recovers frequency and time
         from this clock, and calculates the delay asymmetry between the two
         clocks."
    ::= { tmnxPtpPortNeighborEntry 6 }

tmnxPtpNeighborParentClock       OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighborParentClock indicates whether or not this
         neighboring clock is the parent clock, as decided by the Best Master
         Clock Algorithm (BMCA)."
    ::= { tmnxPtpPortNeighborEntry 7 }

tmnxPtpNeighborDelayAsymmetry    OBJECT-TYPE
    SYNTAX      TmnxPtpDelayAsymmetry
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The value of tmnxPtpNeighborDelayAsymmetry indicates the estimated
         delay asymmetry in the path between the neighboring clock and the
         local clock.

         This leaf was obsoleted in Release 24.3 and was replaced by
         tmnxPtpNeighborOffsetFrLocal"
    ::= { tmnxPtpPortNeighborEntry 8 }

tmnxPtpNeighborDelayAsymCalc     OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The value of tmnxPtpNeighborDelayAsymCalc indicates the time, since
         system startup, when tmnxPtpNeighborDelayAsymmetry was last
         calculated.

         A value of 0 indicates that the local clock has not estimated the
         delay asymmetry.

         This leaf was obsoleted in Release 24.3 and was replaced by
         tmnxPtpNeighborOffsetFrLocalCalc"
    ::= { tmnxPtpPortNeighborEntry 9 }

tmnxPtpNeighborBackup            OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighborBackup indicates whether this port is the
         backup when the clock is using GNSS"
    ::= { tmnxPtpPortNeighborEntry 10 }

tmnxPtpNeighborOffsetFrLocal     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighborOffsetFrLocal indicates the time offset
         between the clock recovered from the neighboring clock and the local
         clock's time. This time offset may be caused by delay asymmetry in the
         path between the neighboring clock and the local clock.

         This object is now deprecated and replaced with
         tmnxPtpNeighborOffsetFrLocalNs"
    ::= { tmnxPtpPortNeighborEntry 11 }

tmnxPtpNeighborOffsetFrLocalCalc OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighborOffsetFrLocalCalc indicates the time,
         since system startup, when tmnxPtpNeighborOffsetFrLocalNs was last
         calculated.

         A value of 0 indicates that the local clock has not estimated the
         delay asymmetry."
    ::= { tmnxPtpPortNeighborEntry 12 }

tmnxPtpNeighborMonTimeRecovState OBJECT-TYPE
    SYNTAX      INTEGER {
        disabled  (0),
        initial   (1),
        acquiring (2),
        locked    (3),
        holdover  (4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighborMonTimeRecovState indicates the state of
         the time recovery to a master clock on a PTP system.

         The various states are:
         disabled      (0) - The process is not attempting to recover time.
         initial       (1) - PTP is enabled but the process has not started recovering time from a master clock.
         acquiring     (2) - The process is attempting to recover time from a master clock.
         locked        (3) - The process has locked to a master clock.
         holdover      (4) - The process had previously locked, but lost synchronization
                            with a master clock."
    ::= { tmnxPtpPortNeighborEntry 13 }

tmnxPtpNeighbMonTimeRecStLastChg OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighbMonTimeRecStLastChg indicates the time,
         since system startup, when the time recovery state object last changed
         state."
    ::= { tmnxPtpPortNeighborEntry 14 }

tmnxPtpNeighbMonTimeOffFrMaster  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighbMonTimeOffFrMaster indicates the current
         offset of the local PTP clock from a master PTP clock, calculated by
         the local clock, as per IEEE Std 1588-2008, section 11.2 when Monitor
         Receiver has been enabled on a given port.

         It represents the 'instantaneous' value of calculated time offset
         from a master PTP clock, using timestamp information from the most
         recent exchange of sync and delay request/response messages.  There is
         no filtering applied to the received sync and delay response messages,
         and there is no averaging of this calculation over multiple exchanges
         of sync and delay request/response messages.

         The time that this offset was last calculated is provided by
         tmnxPtpNeighborMonTimeLastCalc.

         The active CPM calculates this offset each time the local PTP clock and
         a master clock exchange sync, delay request, and delay response
         messages.  The standby CPM does not calculate this offset, returning a
         value of 0 for this object.

         If PTP sync and delay request packets have not yet been exchanged
         between the local clock and a master clock, both
         tmnxPtpNeighbMonTimeOffFrMaster and tmnxPtpNeighborMonTimeLastCalc
         return a value of 0.

         Due to asymmetry in the latencies experienced by PTP sync and delay
         request packets, the calculated offset from master may not be a true
         indication of the actual offset of the local clock from a
         master clock.  As well, due to packet delay variation in the PTP
         sync and delay request flows, there may be significant variation
         between successive calculated values of tmnxPtpNeighbMonTimeOffFrMaster.

         The system only calculates the time offset between the local clock and
         a master clock when tmnxPtpClockProfile is 'g8275dot1-2014 (3)' or
         'g8275dot2-2016 (4)' and Monitor Receiver has been enabled on the
         specific port.

         This object is now deprecated and replaced with
         tmnxPtpNeighbMonTimeOffFrMastNs"
    REFERENCE
        "IEEE Std 1588-2008 Sections 8.2.2.3 and 11.2"
    ::= { tmnxPtpPortNeighborEntry 15 }

tmnxPtpNeighbMonTimeMeanPathDlay OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighbMonTimeMeanPathDlay indicates the current
         value of the mean propagation time between the local PTP clock and a
         master PTP clock, calculated by the local clock, as per IEEE Std
         1588-2008, section 11.3, when Monitor Receiver has been enabled on a
         given port

         It represents the 'instantaneous' value of the calculated mean path
         delay, using timestamp information from the most recent exchange of
         sync and delay request/response messages.  There is no filtering
         applied to the received sync and delay response messages, and there is
         no averaging of this calculation over multiple exchanges of sync and
         delay request/response messages.

         The time that this mean path delay was last calculated is provided by
         tmnxPtpNeighborMonTimeLastCalc.

         The active CPM calculates the mean path delay each time the local PTP
         clock and a master clock exchange sync, delay request, and delay
         response messages.  The standby CPM does not calculate the mean path
         delay, returning a value of 0 for this object.

         If PTP sync and delay request packets have not yet been exchanged
         between the local clock and a master clock, both
         tmnxPtpNeighbMonTimeMeanPathDlay and tmnxPtpNeighborMonTimeLastCalc
         return a value of 0.

         This mean path delay includes cable/fiber latency in the sync and delay
         request path, and includes latency within network devices that do not
         correct for internal latencies.  The mean path delay does not include
         latency within network devices that are PTP transparent clocks, which
         correct for these internal latencies.

         Due to packet delay variation in the PTP sync and delay request flows,
         there may be significant variation between successive calculated
         values of tmnxPtpNeighbMonTimeMeanPathDlay.

         The system only calculates the mean path delay between the local clock
         and a master clock when tmnxPtpClockProfile is 'g8275dot1-2014 (3)' or
         'g8275dot2-2016 (4)' and Monitor Receiver has been enabled on the
         specific port.

         This object is now deprecated and replaced with
         tmnxPtpNeighbMonTimeMnPathDlyNs"
    REFERENCE
        "IEEE Std 1588-2008 Sections 8.2.2.3 and 11.2"
    ::= { tmnxPtpPortNeighborEntry 16 }

tmnxPtpNeighborMonTimeLastCalc   OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighborMonTimeLastCalc indicates the time, since
         system startup, when tmnxPtpNeighbMonTimeOffFrMastNs and
         tmnxPtpNeighbMonTimeMnPathDlyNs were last calculated."
    ::= { tmnxPtpPortNeighborEntry 17 }

tmnxPtpNeighborOffsetFrLocalNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighborOffsetFrLocalNs indicates the time offset
         between the clock recovered from the neighboring clock and the local
         clock's time. This time offset may be caused by delay asymmetry in the
         path between the neighboring clock and the local clock."
    ::= { tmnxPtpPortNeighborEntry 18 }

tmnxPtpNeighbMonTimeOffFrMastNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighbMonTimeOffFrMastNs indicates the current
         offset of the local PTP clock from a master PTP clock, calculated by
         the local clock, as per IEEE Std 1588-2008, section 11.2 when Monitor
         Receiver has been enabled on a given port.

         It represents the 'instantaneous' value of calculated time offset
         from a master PTP clock, using timestamp information from the most
         recent exchange of sync and delay request/response messages.  There is
         no filtering applied to the received sync and delay response messages,
         and there is no averaging of this calculation over multiple exchanges
         of sync and delay request/response messages.

         The time that this offset was last calculated is provided by
         tmnxPtpNeighborMonTimeLastCalc.

         The active CPM calculates this offset each time the local PTP clock and
         a master clock exchange sync, delay request, and delay response
         messages.  The standby CPM does not calculate this offset, returning a
         value of 0 for this object.

         If PTP sync and delay request packets have not yet been exchanged
         between the local clock and a master clock, both
         tmnxPtpNeighbMonTimeOffFrMastNs and tmnxPtpNeighborMonTimeLastCalc
         return a value of 0.

         Due to asymmetry in the latencies experienced by PTP sync and delay
         request packets, the calculated offset from master may not be a true
         indication of the actual offset of the local clock from a
         master clock.  As well, due to packet delay variation in the PTP
         sync and delay request flows, there may be significant variation
         between successive calculated values of tmnxPtpNeighbMonTimeOffFrMastNs.

         The system only calculates the time offset between the local clock and
         a master clock when tmnxPtpClockProfile is 'g8275dot1-2014 (3)' or
         'g8275dot2-2016 (4)' and Monitor Receiver has been enabled on the
         specific port."
    REFERENCE
        "IEEE Std 1588-2008 Sections 8.2.2.3 and 11.2"
    ::= { tmnxPtpPortNeighborEntry 19 }

tmnxPtpNeighbMonTimeMnPathDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNeighbMonTimeMnPathDlyNs indicates the current
         value of the mean propagation time between the local PTP clock and a
         master PTP clock, calculated by the local clock, as per IEEE Std
         1588-2008, section 11.3, when Monitor Receiver has been enabled on a
         given port

         It represents the 'instantaneous' value of the calculated mean path
         delay, using timestamp information from the most recent exchange of
         sync and delay request/response messages.  There is no filtering
         applied to the received sync and delay response messages, and there is
         no averaging of this calculation over multiple exchanges of sync and
         delay request/response messages.

         The time that this mean path delay was last calculated is provided by
         tmnxPtpNeighborMonTimeLastCalc.

         The active CPM calculates the mean path delay each time the local PTP
         clock and a master clock exchange sync, delay request, and delay
         response messages.  The standby CPM does not calculate the mean path
         delay, returning a value of 0 for this object.

         If PTP sync and delay request packets have not yet been exchanged
         between the local clock and a master clock, both
         tmnxPtpNeighbMonTimeMnPathDlyNs and tmnxPtpNeighborMonTimeLastCalc
         return a value of 0.

         This mean path delay includes cable/fiber latency in the sync and delay
         request path, and includes latency within network devices that do not
         correct for internal latencies.  The mean path delay does not include
         latency within network devices that are PTP transparent clocks, which
         correct for these internal latencies.

         Due to packet delay variation in the PTP sync and delay request flows,
         there may be significant variation between successive calculated
         values of tmnxPtpNeighbMonTimeMnPathDlyNs.

         The system only calculates the mean path delay between the local clock
         and a master clock when tmnxPtpClockProfile is 'g8275dot1-2014 (3)' or
         'g8275dot2-2016 (4)' and Monitor Receiver has been enabled on the
         specific port."
    REFERENCE
        "IEEE Std 1588-2008 Sections 8.2.2.3 and 11.2"
    ::= { tmnxPtpPortNeighborEntry 20 }

tmnxPtpGnssPortStatusTable       OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpGnssPortStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpGnssPortStatusTable consists of PTP status information that
         is specific to GNSS ports.

         This table contains an entry for each GNSS port in the system when
         tmnxPtpClockClockType is 'boundary (3)'.  When tmnxPtpClockClockType is 'ordinarySlave (1)'
         or 'ordinaryMaster (2)', this table does not contains any entries."
    ::= { tmnxPtp1588Status 8 }

tmnxPtpGnssPortStatusEntry       OBJECT-TYPE
    SYNTAX      TmnxPtpGnssPortStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A tmnxPtpGnssPortStatusEntry contains status information pertaining to
         PTP on a specific GNSS port."
    INDEX       {
        tmnxChassisIndex,
        tmnxPortPortID
    }
    ::= { tmnxPtpGnssPortStatusTable 1 }

TmnxPtpGnssPortStatusEntry       ::= SEQUENCE
{
    tmnxPtpPortLocalGnssPortNumber   TmnxPtpPortNumber,
    tmnxPtpGnssPortState             TmnxPtpPortState
}

tmnxPtpPortLocalGnssPortNumber   OBJECT-TYPE
    SYNTAX      TmnxPtpPortNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortLocalGnssPortNumber indicates the PTP port
         number assigned by the local clock.

         The value of this object corresponds to the
         portDS.portIdentity.portNumber data set member defined in IEEE Std
         1588-2008."
    ::= { tmnxPtpGnssPortStatusEntry 1 }

tmnxPtpGnssPortState             OBJECT-TYPE
    SYNTAX      TmnxPtpPortState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpGnssPortState indicates the current state of the
         PTP port.

         The value of this object corresponds to the portDS.portState data set
         member defined in IEEE Std 1588-2008."
    ::= { tmnxPtpGnssPortStatusEntry 2 }

tmnxPtpTimestampingTable         OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpTimestampingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table tmnxPtpTimestampingTable contains status information that is
         specific to PTP timestamping"
    ::= { tmnxPtp1588Status 9 }

tmnxPtpTimestampingEntry         OBJECT-TYPE
    SYNTAX      TmnxPtpTimestampingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A tmnxPtpTimestampingEntry contains status information pertaining to
         PTP timestamping on a specific port."
    AUGMENTS    { tmnxPortEtherEntry }
    ::= { tmnxPtpTimestampingTable 1 }

TmnxPtpTimestampingEntry         ::= SEQUENCE
{ tmnxPtpPortTSCapabilities        BITS }

tmnxPtpPortTSCapabilities        OBJECT-TYPE
    SYNTAX      BITS {
        ethernet (0),
        ipv4     (1),
        ipv6     (2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortTSCapabilities indicates the capability of
         the Ethernet port to support port-based-timestamping when the Ethernet
         port transports PTP packets using the given encapsulation.
            ethernet  - PTP in Ethernet,
            ipv4      - PTP in UDP/IPv4,
            ipv6      - PTP in UDP/IPv6."
    REFERENCE
        "IEEE Std 1588-2008 Annex D (for IPv4), Annex E (for IPv6) and Annex F (for ethernet)"
    ::= { tmnxPtpTimestampingEntry 1 }

tmnxPtpPeerStatusTable           OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPeerStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table tmnxPtpPeerStatusTable contains status information that is
         specific to the Precision Time Protocol (PTP) peers"
    ::= { tmnxPtp1588Status 10 }

tmnxPtpPeerStatusEntry           OBJECT-TYPE
    SYNTAX      TmnxPtpPeerStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPeerStatusEntry contains status information pertaining to
         an individual peer for the Precision Time Protocol (PTP)."
    INDEX       {
        vRtrID,
        tmnxPtpPeerIpAddrType,
        tmnxPtpPeerIpAddress
    }
    ::= { tmnxPtpPeerStatusTable 1 }

TmnxPtpPeerStatusEntry           ::= SEQUENCE
{
    tmnxPtpPeerMonTimeRecoveryState  INTEGER,
    tmnxPtpPeerMonTimeRecStateLstChg TimeStamp,
    tmnxPtpPeerMonTimeOffsetFrMaster TmnxPtpTimeInterval,
    tmnxPtpPeerMonTimeMeanPathDelay  TmnxPtpTimeInterval,
    tmnxPtpPeerMonTimeLastCalc       TimeStamp,
    tmnxPtpPeerMonTimeOffsetFrMastNs Integer32,
    tmnxPtpPeerMonTimeMeanPathDlyNs  Integer32
}

tmnxPtpPeerMonTimeRecoveryState  OBJECT-TYPE
    SYNTAX      INTEGER {
        disabled  (0),
        initial   (1),
        acquiring (2),
        locked    (3),
        holdover  (4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMonTimeRecoveryState indicates the state of
         the time recovery to a master clock on a PTP system.

         The various states are:
         disabled      (0) - The process is not attempting to recover time.
         initial       (1) - PTP is enabled but the process has not started recovering time from a master clock.
         acquiring     (2) - The process is attempting to recover time from a master clock.
         locked        (3) - The process has locked to a master clock.
         holdover      (4) - The process had previously locked, but lost synchronization
                            with a master clock."
    ::= { tmnxPtpPeerStatusEntry 1 }

tmnxPtpPeerMonTimeRecStateLstChg OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMonTimeRecStateLstChg indicates the time,
         since system startup, when the time recovery state object last changed
         state."
    ::= { tmnxPtpPeerStatusEntry 2 }

tmnxPtpPeerMonTimeOffsetFrMaster OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMonTimeOffsetFrMaster indicates the current
         offset of the local PTP clock from a master PTP clock, calculated by
         the local clock, as per IEEE Std 1588-2008, section 11.2 when Monitor
         Receiver has been enabled on a given peer.

         It represents the 'instantaneous' value of calculated time offset
         from a master PTP clock, using timestamp information from the most
         recent exchange of sync and delay request/response messages.  There is
         no filtering applied to the received sync and delay response messages,
         and there is no averaging of this calculation over multiple exchanges
         of sync and delay request/response messages.

         The time that this offset was last calculated is provided by
         tmnxPtpPeerMonTimeLastCalc.

         The active CPM calculates this offset each time the local PTP clock and
         a master clock exchange sync, delay request, and delay response
         messages.  The standby CPM does not calculate this offset, returning a
         value of 0 for this object.

         If PTP sync and delay request packets have not yet been exchanged
         between the local clock and a master clock, both
         tmnxPtpPeerMonTimeOffsetFrMaster and tmnxPtpPeerMonTimeLastCalc return
         a value of 0.

         Due to asymmetry in the latencies experienced by PTP sync and delay
         request packets, the calculated offset from master may not be a true
         indication of the actual offset of the local clock from a
         master clock.  As well, due to packet delay variation in the PTP
         sync and delay request flows, there may be significant variation
         between successive calculated values of tmnxPtpPeerMonTimeOffsetFrMaster.

         The system only calculates the time offset between the local clock and
         a master clock when tmnxPtpClockProfile is 'g8275dot1-2014 (3)' or
         'g8275dot2-2016 (4)' and Monitor Receiver has been enabled on the
         specific peer.

         This object is now deprecated and replaced with
         tmnxPtpPeerMonTimeOffsetFrMastNs"
    REFERENCE
        "IEEE Std 1588-2008 Sections 8.2.2.3 and 11.2"
    ::= { tmnxPtpPeerStatusEntry 3 }

tmnxPtpPeerMonTimeMeanPathDelay  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMonTimeMeanPathDelay indicates the current
         value of the mean propagation time between the local PTP clock and a
         master PTP clock, calculated by the local clock, as per IEEE Std
         1588-2008, section 11.3, when Monitor Receiver has been enabled on a
         given peer

         It represents the 'instantaneous' value of the calculated mean path
         delay, using timestamp information from the most recent exchange of
         sync and delay request/response messages.  There is no filtering
         applied to the received sync and delay response messages, and there is
         no averaging of this calculation over multiple exchanges of sync and
         delay request/response messages.

         The time that this mean path delay was last calculated is provided by
         tmnxPtpPeerMonTimeLastCalc.

         The active CPM calculates the mean path delay each time the local PTP
         clock and a master clock exchange sync, delay request, and delay
         response messages.  The standby CPM does not calculate the mean path
         delay, returning a value of 0 for this object.

         If PTP sync and delay request packets have not yet been exchanged
         between the local clock and a master clock, both
         tmnxPtpPeerMonTimeMeanPathDelay and tmnxPtpPeerMonTimeLastCalc return
         a value of 0.

         This mean path delay includes cable/fiber latency in the sync and delay
         request path, and includes latency within network devices that do not
         correct for internal latencies.  The mean path delay does not include
         latency within network devices that are PTP transparent clocks, which
         correct for these internal latencies.

         Due to packet delay variation in the PTP sync and delay request flows,
         there may be significant variation between successive calculated
         values of tmnxPtpPeerMonTimeMeanPathDelay.

         The system only calculates the mean path delay between the local clock
         and a master clock when tmnxPtpClockProfile is 'g8275dot1-2014 (3)' or
         'g8275dot2-2016 (4)' and Monitor Receiver has been enabled on the
         specific peer.

         This object is now deprecated and replaced with
         tmnxPtpPeerMonTimeMeanPathDlyNs"
    REFERENCE
        "IEEE Std 1588-2008 Sections 8.2.2.3 and 11.2"
    ::= { tmnxPtpPeerStatusEntry 4 }

tmnxPtpPeerMonTimeLastCalc       OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMonTimeLastCalc indicates the time, since
         system startup, when tmnxPtpPeerMonTimeOffsetFrMastNs and
         tmnxPtpPeerMonTimeMeanPathDlyNs were last calculated."
    ::= { tmnxPtpPeerStatusEntry 5 }

tmnxPtpPeerMonTimeOffsetFrMastNs OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMonTimeOffsetFrMastNs indicates the current
         offset of the local PTP clock from a master PTP clock, calculated by
         the local clock, as per IEEE Std 1588-2008, section 11.2 when Monitor
         Receiver has been enabled on a given peer.

         It represents the 'instantaneous' value of calculated time offset
         from a master PTP clock, using timestamp information from the most
         recent exchange of sync and delay request/response messages.  There is
         no filtering applied to the received sync and delay response messages,
         and there is no averaging of this calculation over multiple exchanges
         of sync and delay request/response messages.

         The time that this offset was last calculated is provided by
         tmnxPtpPeerMonTimeLastCalc.

         The active CPM calculates this offset each time the local PTP clock and
         a master clock exchange sync, delay request, and delay response
         messages.  The standby CPM does not calculate this offset, returning a
         value of 0 for this object.

         If PTP sync and delay request packets have not yet been exchanged
         between the local clock and a master clock, both
         tmnxPtpPeerMonTimeOffsetFrMastNs and tmnxPtpPeerMonTimeLastCalc return
         a value of 0.

         Due to asymmetry in the latencies experienced by PTP sync and delay
         request packets, the calculated offset from master may not be a true
         indication of the actual offset of the local clock from a
         master clock.  As well, due to packet delay variation in the PTP
         sync and delay request flows, there may be significant variation
         between successive calculated values of tmnxPtpPeerMonTimeOffsetFrMastNs.

         The system only calculates the time offset between the local clock and
         a master clock when tmnxPtpClockProfile is 'g8275dot1-2014 (3)' or
         'g8275dot2-2016 (4)' and Monitor Receiver has been enabled on the
         specific peer."
    REFERENCE
        "IEEE Std 1588-2008 Sections 8.2.2.3 and 11.2"
    ::= { tmnxPtpPeerStatusEntry 6 }

tmnxPtpPeerMonTimeMeanPathDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerMonTimeMeanPathDlyNs indicates the current
         value of the mean propagation time between the local PTP clock and a
         master PTP clock, calculated by the local clock, as per IEEE Std
         1588-2008, section 11.3, when Monitor Receiver has been enabled on a
         given peer

         It represents the 'instantaneous' value of the calculated mean path
         delay, using timestamp information from the most recent exchange of
         sync and delay request/response messages.  There is no filtering
         applied to the received sync and delay response messages, and there is
         no averaging of this calculation over multiple exchanges of sync and
         delay request/response messages.

         The time that this mean path delay was last calculated is provided by
         tmnxPtpPeerMonTimeLastCalc.

         The active CPM calculates the mean path delay each time the local PTP
         clock and a master clock exchange sync, delay request, and delay
         response messages.  The standby CPM does not calculate the mean path
         delay, returning a value of 0 for this object.

         If PTP sync and delay request packets have not yet been exchanged
         between the local clock and a master clock, both
         tmnxPtpPeerMonTimeMeanPathDlyNs and tmnxPtpPeerMonTimeLastCalc return
         a value of 0.

         This mean path delay includes cable/fiber latency in the sync and delay
         request path, and includes latency within network devices that do not
         correct for internal latencies.  The mean path delay does not include
         latency within network devices that are PTP transparent clocks, which
         correct for these internal latencies.

         Due to packet delay variation in the PTP sync and delay request flows,
         there may be significant variation between successive calculated
         values of tmnxPtpPeerMonTimeMeanPathDlyNs.

         The system only calculates the mean path delay between the local clock
         and a master clock when tmnxPtpClockProfile is 'g8275dot1-2014 (3)' or
         'g8275dot2-2016 (4)' and Monitor Receiver has been enabled on the
         specific peer."
    REFERENCE
        "IEEE Std 1588-2008 Sections 8.2.2.3 and 11.2"
    ::= { tmnxPtpPeerStatusEntry 7 }

tmnxPtp1588Statistics            OBJECT IDENTIFIER ::= { tmnxPtp1588Objs 5 }

tmnxPtpClockPacketStatsTable     OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpClockPacketStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpClockPacketStatsTable consists of the packet statistics
         associated with the Precision Time Protocol (PTP)."
    ::= { tmnxPtp1588Statistics 1 }

tmnxPtpClockPacketStatsEntry     OBJECT-TYPE
    SYNTAX      TmnxPtpClockPacketStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpClockPacketStatsEntry contain the directional packet
         statistics for the Precision Time Protocol (PTP).

         Rows are created and destroyed by the system."
    INDEX       { tmnxPtpClkPktStatsDirection }
    ::= { tmnxPtpClockPacketStatsTable 1 }

TmnxPtpClockPacketStatsEntry     ::= SEQUENCE
{
    tmnxPtpClkPktStatsDirection      TmnxPtpDirection,
    tmnxPtpClkPktStatsAnnounce       Counter32,
    tmnxPtpClkPktStatsSync           Counter32,
    tmnxPtpClkPktStatsFollowUp       Counter32,
    tmnxPtpClkPktStatsDelayRequest   Counter32,
    tmnxPtpClkPktStatsDelayResp      Counter32,
    tmnxPtpClkPktStatsSignaling      Counter32,
    tmnxPtpClkPktStatsOther          Counter32,
    tmnxPtpClkPktStatsUniReqAnno     Counter32,
    tmnxPtpClkPktStatsUniReqSync     Counter32,
    tmnxPtpClkPktStatsUniReqDelayRsp Counter32,
    tmnxPtpClkPktStatsUniGrantAnno   Counter32,
    tmnxPtpClkPktStatsUniGrantSync   Counter32,
    tmnxPtpClkPktStatsUniGrantDelRsp Counter32,
    tmnxPtpClkPktStatsUniDenyAnno    Counter32,
    tmnxPtpClkPktStatsUniDenySync    Counter32,
    tmnxPtpClkPktStatsUniDenyDelRsp  Counter32,
    tmnxPtpClkPktStatsUniCancelAnno  Counter32,
    tmnxPtpClkPktStatsUniCancelSync  Counter32,
    tmnxPtpClkPktStatsUniCancelDelay Counter32,
    tmnxPtpClkPktStatsUniAckCnclAnno Counter32,
    tmnxPtpClkPktStatsUniAckCnclSync Counter32,
    tmnxPtpClkPktStatsUniAckCnclDly  Counter32,
    tmnxPtpClkPktStatsOtherTLVs      Counter32,
    tmnxPtpClkPktStatsDropBadDomain  Counter32,
    tmnxPtpClkPktStatsDropAltMaster  Counter32,
    tmnxPtpClkPktStatsDropOther      Counter32,
    tmnxPtpClkPktStatsTimeStampPort  Counter32,
    tmnxPtpClkPktStatsTimeStampCpm   Counter32,
    tmnxPtpClkPktStatsDropOutOfSeq   Counter32,
    tmnxPtpClkPktStatsDropPeerShut   Counter32,
    tmnxPtpClkPktStatsDropPtsf       Counter32,
    tmnxPtpClkPktStatsDropFreerun    Counter32,
    tmnxPtpClkPktStatsPDelayRequest  Counter32,
    tmnxPtpClkPktStatsPDelayResponse Counter32,
    tmnxPtpClkPktStatsPDlyRespFollUp Counter32,
    tmnxPtpClkPktStatsAnnoC37238Tlv  Counter32,
    tmnxPtpClkPktStatsAnnoAtoiTlv    Counter32,
    tmnxPtpClkPktStatsAnnoOtherTlv   Counter32
}

tmnxPtpClkPktStatsDirection      OBJECT-TYPE
    SYNTAX      TmnxPtpDirection
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsDirection specifies which direction the
         packet statistics for the particular row are accumulated."
    ::= { tmnxPtpClockPacketStatsEntry 1 }

tmnxPtpClkPktStatsAnnounce       OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsAnnounce indicates the accumulated
         packet statistics for PTP Announce messages."
    ::= { tmnxPtpClockPacketStatsEntry 2 }

tmnxPtpClkPktStatsSync           OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsSync indicates the accumulated packet
         statistics for PTP Sync messages."
    ::= { tmnxPtpClockPacketStatsEntry 3 }

tmnxPtpClkPktStatsFollowUp       OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsFollowUp indicates the accumulated
         packet statistics for PTP Follow Up messages."
    ::= { tmnxPtpClockPacketStatsEntry 4 }

tmnxPtpClkPktStatsDelayRequest   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsDelayRequest indicates the accumulated
         packet statistics for PTP Delay Request messages."
    ::= { tmnxPtpClockPacketStatsEntry 5 }

tmnxPtpClkPktStatsDelayResp      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsDelayResp indicates the accumulated
         packet statistics for PTP Delay Response messages."
    ::= { tmnxPtpClockPacketStatsEntry 6 }

tmnxPtpClkPktStatsSignaling      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsSignaling indicates the accumulated
         packet statistics for PTP signaling messages."
    ::= { tmnxPtpClockPacketStatsEntry 7 }

tmnxPtpClkPktStatsOther          OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsOther indicates the accumulated packet
         statistics for all other PTP messages.

         This object is accumulated in the 'rx' direction only."
    ::= { tmnxPtpClockPacketStatsEntry 8 }

tmnxPtpClkPktStatsUniReqAnno     OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniReqAnno indicates the accumulated
         packet statistics for Unicast Request Announce TLVs."
    ::= { tmnxPtpClockPacketStatsEntry 9 }

tmnxPtpClkPktStatsUniReqSync     OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniReqSync indicates the accumulated
         packet statistics for Unicast Request Sync TLVs."
    ::= { tmnxPtpClockPacketStatsEntry 10 }

tmnxPtpClkPktStatsUniReqDelayRsp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniReqDelayRsp indicates the
         accumulated packet statistics for Unicast Request Delay Response TLVs."
    ::= { tmnxPtpClockPacketStatsEntry 11 }

tmnxPtpClkPktStatsUniGrantAnno   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniGrantAnno indicates the accumulated
         packet statistics for Unicast Grant Announce TLVs, where the request
         was granted.  The request was granted if the duration indicated in the
         TLV was non-zero."
    ::= { tmnxPtpClockPacketStatsEntry 12 }

tmnxPtpClkPktStatsUniGrantSync   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniGrantSync indicates the accumulated
         packet statistics for Unicast Grant Sync TLVs, where the request was
         granted.  The request was granted if the duration indicated in the TLV
         was non-zero."
    ::= { tmnxPtpClockPacketStatsEntry 13 }

tmnxPtpClkPktStatsUniGrantDelRsp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniGrantDelRsp indicates the accumulated
         packet statistics for Unicast Grant Delay Response TLVs, where the
         request was granted.  The request was granted if the duration indicated
         in the TLV was non-zero."
    ::= { tmnxPtpClockPacketStatsEntry 14 }

tmnxPtpClkPktStatsUniDenyAnno    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniDenyAnno indicates the accumulated
         packet statistics for Unicast Grant Announce TLVs, where the request
         was denied.  The request was denied if the duration indicated in the
         TLV was zero."
    ::= { tmnxPtpClockPacketStatsEntry 15 }

tmnxPtpClkPktStatsUniDenySync    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniDenySync indicates the accumulated
         packet statistics for Unicast Grant Sync TLVs, where the request was
         denied.  The request was denied if the duration indicated in the TLV
         was zero."
    ::= { tmnxPtpClockPacketStatsEntry 16 }

tmnxPtpClkPktStatsUniDenyDelRsp  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniDenyDelRsp indicates the accumulated
         packet statistics for Unicast Grant Delay Response TLVs, where the
         request was denied.  The request was denied if the duration indicated
         in the TLV was zero."
    ::= { tmnxPtpClockPacketStatsEntry 17 }

tmnxPtpClkPktStatsUniCancelAnno  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniCancelAnno indicates the accumulated
         packet statistics for Unicast Cancel Announce TLVs."
    ::= { tmnxPtpClockPacketStatsEntry 18 }

tmnxPtpClkPktStatsUniCancelSync  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniCancelSync indicates the accumulated
         packet statistics for Unicast Cancel Sync TLVs."
    ::= { tmnxPtpClockPacketStatsEntry 19 }

tmnxPtpClkPktStatsUniCancelDelay OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniCancelDelay indicates the
         accumulated packet statistics for Unicast Cancel Delay TLVs."
    ::= { tmnxPtpClockPacketStatsEntry 20 }

tmnxPtpClkPktStatsUniAckCnclAnno OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniAckCnclAnno indicates the
         accumulated packet statistics for Unicast Acknowledge Cancel Announce
         TLVs."
    ::= { tmnxPtpClockPacketStatsEntry 21 }

tmnxPtpClkPktStatsUniAckCnclSync OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniAckCnclSync indicates the
         accumulated packet statistics for Unicast Acknowledge Cancel Sync
         TLVs."
    ::= { tmnxPtpClockPacketStatsEntry 22 }

tmnxPtpClkPktStatsUniAckCnclDly  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsUniAckCnclDly indicates the accumulated
         packet statistics for Unicast Acknowledge Cancel Delay Response TLVs."
    ::= { tmnxPtpClockPacketStatsEntry 23 }

tmnxPtpClkPktStatsOtherTLVs      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsOtherTLVs indicates the accumulated
         packet statistics for other PTP TLV signaling messages.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpClockPacketStatsEntry 24 }

tmnxPtpClkPktStatsDropBadDomain  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsDropBadDomain indicates the accumulated
         packet statistics for PTP packets dropped because the PTP domain
         indicated in the packet does not match the configured PTP domain.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpClockPacketStatsEntry 25 }

tmnxPtpClkPktStatsDropAltMaster  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsDropAltMaster indicates the accumulated
         packet statistics for PTP packets dropped because the PTP header has
         the 'alternateMasterFlag' set.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpClockPacketStatsEntry 26 }

tmnxPtpClkPktStatsDropOther      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsDropOther indicates the accumulated
         packet statistics for PTP packets dropped and not counted in
            - tmnxPtpClkPktStatsDropBadDomain
            - tmnxPtpClkPktStatsDropAltMaster
            - tmnxPtpClkPktStatsDropOutOfSeq
            - tmnxPtpClkPktStatsDropPeerShut
            - tmnxPtpClkPktStatsDropPtsf
            - tmnxPtpClkPktStatsDropFreerun

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpClockPacketStatsEntry 27 }

tmnxPtpClkPktStatsTimeStampPort  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsTimeStampPort indicates the accumulated
         packet statistics for PTP event packets where the timestamp point is
         at the physical layer."
    REFERENCE
        "IEEE 1588-2008, Figure 14, timestamp point 'A'."
    ::= { tmnxPtpClockPacketStatsEntry 28 }

tmnxPtpClkPktStatsTimeStampCpm   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsTimeStampCpm indicates the accumulated
         packet statistics for PTP event packets where the timestamp point is
         at the operating system kernel."
    REFERENCE
        "IEEE 1588-2008, Figure 14, timestamp point 'B'."
    ::= { tmnxPtpClockPacketStatsEntry 29 }

tmnxPtpClkPktStatsDropOutOfSeq   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsDropOutOfSeq indicates the accumulated
         packet statistics for PTP packets dropped because the packets were
         received out of sequence.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpClockPacketStatsEntry 30 }

tmnxPtpClkPktStatsDropPeerShut   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsDropPeerShut indicates the accumulated
         packet statistics for PTP packets dropped because the packets were
         received from a PTP peer that has been administratively disabled.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpClockPacketStatsEntry 31 }

tmnxPtpClkPktStatsDropPtsf       OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsDropPtsf indicates the accumulated
         packet statistics for PTP packets dropped because the packet timing
         signal from the neighboring clock is considered unusable.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpClockPacketStatsEntry 32 }

tmnxPtpClkPktStatsDropFreerun    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsDropFreerun indicates the accumulated
         packet statistics for PTP packets dropped because the central clock is
         in freerun.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpClockPacketStatsEntry 33 }

tmnxPtpClkPktStatsPDelayRequest  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsPDelayRequest indicates the accumulated
         packet statistics for PTP Pdelay_Req messages."
    ::= { tmnxPtpClockPacketStatsEntry 34 }

tmnxPtpClkPktStatsPDelayResponse OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsPDelayResponse indicates the
         accumulated packet statistics for PTP Pdelay_Resp messages."
    ::= { tmnxPtpClockPacketStatsEntry 35 }

tmnxPtpClkPktStatsPDlyRespFollUp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsPDlyRespFollUp indicates the
         accumulated packet statistics for PTP Pdelay_Resp_Follow_Up messages."
    ::= { tmnxPtpClockPacketStatsEntry 36 }

tmnxPtpClkPktStatsAnnoC37238Tlv  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsAnnoC37238Tlv indicates the accumulated
         packet statistics for IEEE_C37_238 TLVs in Announce messages."
    REFERENCE
        "IEEE Std C37.238-2017, section 6.2.1."
    ::= { tmnxPtpClockPacketStatsEntry 37 }

tmnxPtpClkPktStatsAnnoAtoiTlv    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsAnnoAtoiTlv indicates the accumulated
         packet statistics for ALTERNATE_TIME_OFFSET_INDICATOR TLVs in Announce
         messages."
    REFERENCE
        "IEEE 1588-2008, section 16.3."
    ::= { tmnxPtpClockPacketStatsEntry 38 }

tmnxPtpClkPktStatsAnnoOtherTlv   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClkPktStatsAnnoOtherTlv indicates the accumulated
         packet statistics for other TLVs in announce messages."
    ::= { tmnxPtpClockPacketStatsEntry 39 }

tmnxPtpPeerPacketStatsTable      OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPeerPacketStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPeerPacketStatsTable consists of the per peer packet
         statistics associated with the Precision Time Protocol (PTP)."
    ::= { tmnxPtp1588Statistics 2 }

tmnxPtpPeerPacketStatsEntry      OBJECT-TYPE
    SYNTAX      TmnxPtpPeerPacketStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPeerPacketStatsEntry contain the directional packet
         statistics for the Precision Time Protocol (PTP).

         Rows are created and destroyed by the system."
    INDEX       {
        vRtrID,
        tmnxPtpPeerIpAddrType,
        tmnxPtpPeerIpAddress,
        tmnxPtpPeerPktStatDirection
    }
    ::= { tmnxPtpPeerPacketStatsTable 1 }

TmnxPtpPeerPacketStatsEntry      ::= SEQUENCE
{
    tmnxPtpPeerPktStatDirection      TmnxPtpDirection,
    tmnxPtpPeerPktStatAnnounce       Counter32,
    tmnxPtpPeerPktStatSync           Counter32,
    tmnxPtpPeerPktStatFollowUp       Counter32,
    tmnxPtpPeerPktStatDelayRequest   Counter32,
    tmnxPtpPeerPktStatDelayResp      Counter32,
    tmnxPtpPeerPktStatSignaling      Counter32,
    tmnxPtpPeerPktStatOther          Counter32,
    tmnxPtpPeerPktStatUniReqAnno     Counter32,
    tmnxPtpPeerPktStatUniReqSync     Counter32,
    tmnxPtpPeerPktStatUniReqDelayRsp Counter32,
    tmnxPtpPeerPktStatUniGrantAnno   Counter32,
    tmnxPtpPeerPktStatUniGrantSync   Counter32,
    tmnxPtpPeerPktStatUniGrantDelRsp Counter32,
    tmnxPtpPeerPktStatUniDenyAnno    Counter32,
    tmnxPtpPeerPktStatUniDenySync    Counter32,
    tmnxPtpPeerPktStatUniDenyDelRsp  Counter32,
    tmnxPtpPeerPktStatUniCancelAnno  Counter32,
    tmnxPtpPeerPktStatUniCancelSync  Counter32,
    tmnxPtpPeerPktStatUniCancelDelay Counter32,
    tmnxPtpPeerPktStatUniAckCnclAnno Counter32,
    tmnxPtpPeerPktStatUniAckCnclSync Counter32,
    tmnxPtpPeerPktStatUniAckCnclDly  Counter32,
    tmnxPtpPeerPktStatOtherTLVs      Counter32,
    tmnxPtpPeerPktStatDropBadDomain  Counter32,
    tmnxPtpPeerPktStatDropAltMaster  Counter32,
    tmnxPtpPeerPktStatDropOther      Counter32,
    tmnxPtpPeerPktStatTimeStampPort  Counter32,
    tmnxPtpPeerPktStatTimeStampCpm   Counter32,
    tmnxPtpPeerPktStatDropOutOfSeq   Counter32,
    tmnxPtpPeerPktStatDropPeerShut   Counter32,
    tmnxPtpPeerPktStatDropFreerun    Counter32
}

tmnxPtpPeerPktStatDirection      OBJECT-TYPE
    SYNTAX      TmnxPtpDirection
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatDirection specifies which direction the
         packet statistics for the particular row are accumulated."
    ::= { tmnxPtpPeerPacketStatsEntry 1 }

tmnxPtpPeerPktStatAnnounce       OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatAnnounce indicates the accumulated
         packet statistics for PTP Announce messages."
    ::= { tmnxPtpPeerPacketStatsEntry 2 }

tmnxPtpPeerPktStatSync           OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatSync indicates the accumulated packet
         statistics for PTP Sync messages."
    ::= { tmnxPtpPeerPacketStatsEntry 3 }

tmnxPtpPeerPktStatFollowUp       OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatFollowUp indicates the accumulated
         packet statistics for PTP Follow Up messages."
    ::= { tmnxPtpPeerPacketStatsEntry 4 }

tmnxPtpPeerPktStatDelayRequest   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatDelayRequest indicates the accumulated
         packet statistics for PTP Delay Request messages."
    ::= { tmnxPtpPeerPacketStatsEntry 5 }

tmnxPtpPeerPktStatDelayResp      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatDelayResp indicates the accumulated
         packet statistics for PTP Delay Response messages."
    ::= { tmnxPtpPeerPacketStatsEntry 6 }

tmnxPtpPeerPktStatSignaling      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatSignaling indicates the accumulated
         packet statistics for PTP signaling messages."
    ::= { tmnxPtpPeerPacketStatsEntry 7 }

tmnxPtpPeerPktStatOther          OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatOther indicates the accumulated packet
         statistics for all other PTP messages.

         This object is accumulated in the 'rx' direction only."
    ::= { tmnxPtpPeerPacketStatsEntry 8 }

tmnxPtpPeerPktStatUniReqAnno     OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniReqAnno indicates the accumulated
         packet statistics for Unicast Request Announce TLVs."
    ::= { tmnxPtpPeerPacketStatsEntry 9 }

tmnxPtpPeerPktStatUniReqSync     OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniReqSync indicates the accumulated
         packet statistics for Unicast Request Sync TLVs."
    ::= { tmnxPtpPeerPacketStatsEntry 10 }

tmnxPtpPeerPktStatUniReqDelayRsp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniReqDelayRsp indicates the
         accumulated packet statistics for Unicast Request Delay Response TLVs."
    ::= { tmnxPtpPeerPacketStatsEntry 11 }

tmnxPtpPeerPktStatUniGrantAnno   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniGrantAnno indicates the accumulated
         packet statistics for Unicast Grant Announce TLVs, where the request
         was granted.   The request was granted if the duration indicated in the
         TLV was non-zero."
    ::= { tmnxPtpPeerPacketStatsEntry 12 }

tmnxPtpPeerPktStatUniGrantSync   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniGrantSync indicates the accumulated
         packet statistics for Unicast Grant Sync TLVs, where the request was
         granted.  The request was granted if the duration indicated in the TLV
         was non-zero."
    ::= { tmnxPtpPeerPacketStatsEntry 13 }

tmnxPtpPeerPktStatUniGrantDelRsp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniGrantDelRsp indicates the accumulated
         packet statistics for Unicast Grant Delay Response TLVs, where the
         request was granted.  The request was granted if the duration indicated
         in the TLV was non-zero."
    ::= { tmnxPtpPeerPacketStatsEntry 14 }

tmnxPtpPeerPktStatUniDenyAnno    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniDenyAnno indicates the accumulated
         packet statistics for Unicast Grant Announce TLVs, where the request
         was denied.  The request was denied if the duration indicated in the
         TLV was zero."
    ::= { tmnxPtpPeerPacketStatsEntry 15 }

tmnxPtpPeerPktStatUniDenySync    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniDenySync indicates the accumulated
         packet statistics for Unicast Grant Sync TLVs, where the request was
         denied.  The request was denied if the duration indicated in the TLV
         was zero."
    ::= { tmnxPtpPeerPacketStatsEntry 16 }

tmnxPtpPeerPktStatUniDenyDelRsp  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniDenyDelRsp indicates the accumulated
         packet statistics for Unicast Grant Delay Response TLVs, where the
         request was denied.  The request was denied if the duration indicated
         in the TLV was zero."
    ::= { tmnxPtpPeerPacketStatsEntry 17 }

tmnxPtpPeerPktStatUniCancelAnno  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniCancelAnno indicates the accumulated
         packet statistics for Unicast Cancel Announce TLVs."
    ::= { tmnxPtpPeerPacketStatsEntry 18 }

tmnxPtpPeerPktStatUniCancelSync  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniCancelSync indicates the accumulated
         packet statistics for Unicast Cancel Sync TLVs."
    ::= { tmnxPtpPeerPacketStatsEntry 19 }

tmnxPtpPeerPktStatUniCancelDelay OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniCancelDelay indicates the
         accumulated packet statistics for Unicast Cancel Delay TLVs."
    ::= { tmnxPtpPeerPacketStatsEntry 20 }

tmnxPtpPeerPktStatUniAckCnclAnno OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniAckCnclAnno indicates the
         accumulated packet statistics for Unicast Acknowledge Cancel Announce
         TLVs."
    ::= { tmnxPtpPeerPacketStatsEntry 21 }

tmnxPtpPeerPktStatUniAckCnclSync OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniAckCnclSync indicates the
         accumulated packet statistics for Unicast Acknowledge Cancel Sync
         TLVs."
    ::= { tmnxPtpPeerPacketStatsEntry 22 }

tmnxPtpPeerPktStatUniAckCnclDly  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatUniAckCnclDly indicates the accumulated
         packet statistics for Unicast Acknowledge Cancel Delay Response TLVs."
    ::= { tmnxPtpPeerPacketStatsEntry 23 }

tmnxPtpPeerPktStatOtherTLVs      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatOtherTLVs indicates the accumulated
         packet statistics for other PTP TLV signaling messages.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPeerPacketStatsEntry 24 }

tmnxPtpPeerPktStatDropBadDomain  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatDropBadDomain indicates the accumulated
         packet statistics for PTP packets dropped because the PTP domain
         indicated in the packet does not match the configured PTP domain.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPeerPacketStatsEntry 25 }

tmnxPtpPeerPktStatDropAltMaster  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatDropAltMaster indicates the accumulated
         packet statistics for PTP packets dropped because the PTP header has
         the 'alternateMasterFlag' set.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPeerPacketStatsEntry 26 }

tmnxPtpPeerPktStatDropOther      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatDropOther indicates the accumulated
         packet statistics for PTP packets dropped and not counted in
            - tmnxPtpPeerPktStatDropBadDomain
            - tmnxPtpPeerPktStatDropAltMaster
            - tmnxPtpPeerPktStatDropOutOfSeq
            - tmnxPtpPeerPktStatDropPeerShut
            - tmnxPtpPeerPktStatDropFreerun

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPeerPacketStatsEntry 27 }

tmnxPtpPeerPktStatTimeStampPort  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatTimeStampPort indicates the accumulated
         packet statistics for PTP event packets where the timestamp point is
         at the physical layer."
    REFERENCE
        "IEEE 1588-2008, Figure 14, timestamp point 'A'."
    ::= { tmnxPtpPeerPacketStatsEntry 28 }

tmnxPtpPeerPktStatTimeStampCpm   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatTimeStampCpm indicates the accumulated
         packet statistics for PTP event packets where the timestamp point is
         at the operating system kernel."
    REFERENCE
        "IEEE 1588-2008, Figure 14, timestamp point 'B'."
    ::= { tmnxPtpPeerPacketStatsEntry 29 }

tmnxPtpPeerPktStatDropOutOfSeq   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatDropOutOfSeq indicates the accumulated
         packet statistics for PTP packets dropped because the packets were
         received out of sequence.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPeerPacketStatsEntry 30 }

tmnxPtpPeerPktStatDropPeerShut   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatDropPeerShut indicates the accumulated
         packet statistics for PTP packets dropped because the packets were
         received from a PTP peer that has been administratively disabled.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPeerPacketStatsEntry 31 }

tmnxPtpPeerPktStatDropFreerun    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPeerPktStatDropFreerun indicates the accumulated
         packet statistics for PTP packets dropped because the central clock is
         in freerun.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPeerPacketStatsEntry 32 }

tmnxPtpClockRecoveryStatistics   OBJECT IDENTIFIER ::= { tmnxPtp1588Statistics 3 }

tmnxPtpClockRecStatsInitial      OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsInitial indicates the number of
         seconds that the clock recovery system has been in the initial state."
    ::= { tmnxPtpClockRecoveryStatistics 1 }

tmnxPtpClockRecStatsAcquiring    OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsAcquiring indicates the number of
         seconds that the clock recovery system has been in the acquiring
         state."
    ::= { tmnxPtpClockRecoveryStatistics 2 }

tmnxPtpClockRecStatsPhaseTrack   OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsPhaseTrack indicates the number of
         seconds that the clock recovery system has been in the phase tracking
         state."
    ::= { tmnxPtpClockRecoveryStatistics 3 }

tmnxPtpClockRecStatsLocked       OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsLocked indicates the number of
         seconds that the clock recovery system has been in the locked state."
    ::= { tmnxPtpClockRecoveryStatistics 4 }

tmnxPtpClockRecStatsHoldover     OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsHoldover indicates the number of
         seconds that the clock recovery system has been in the hold-over
         state."
    ::= { tmnxPtpClockRecoveryStatistics 5 }

tmnxPtpClockRecStatsSyncPktLoss  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsSyncPktLoss indicates the number of
         times that the clock recovery process detected packet loss in the sync
         packet flow from the best master clock."
    ::= { tmnxPtpClockRecoveryStatistics 6 }

tmnxPtpClockRecStatsSyncHiPktLss OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsSyncHiPktLss indicates the number of
         times that the clock recovery process detected a large amount of
         packet loss in the sync flow from the remote master clock. When this
         event occurs, the clock recovery process restarts."
    ::= { tmnxPtpClockRecoveryStatistics 7 }

tmnxPtpClockRecStatsSyncStep     OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsSyncStep indicates the number of
         times that the clock recovery process detected a large change in the
         amount of time taken for sync packets to be sent from the best master
         clock. This normally occurs if the route taken by packets from the
         best master changes."
    ::= { tmnxPtpClockRecoveryStatistics 8 }

tmnxPtpClockRecStatsSyncHighPDV  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsSyncHighPDV indicates the number of
         times that the clock recovery process has determined that a sample of
         sync packets from the best master clock had too much packet delay
         variation to be useful in recovering the clock from the best master.
         When this event occurs, the entire sample of packets is not used in
         the clock recovery process."
    ::= { tmnxPtpClockRecoveryStatistics 9 }

tmnxPtpClockRecStatsDlyPktLoss   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsDlyPktLoss indicates the number of
         times that the clock recovery process detected packet loss in the
         delay request/response packet flow from the best master clock."
    ::= { tmnxPtpClockRecoveryStatistics 10 }

tmnxPtpClockRecStatsDlyHiPktLss  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsDlyHiPktLss indicates the number of
         times that the clock recovery process detected a large amount of
         packet loss in the delay request/response flow from the remote master
         clock. When this event occurs, the clock recovery process restarts."
    ::= { tmnxPtpClockRecoveryStatistics 11 }

tmnxPtpClockRecStatsDlyStep      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsDlyStep indicates the number of times
         that the clock recovery process detected a large change in the amount
         of time taken for delay request packets to be sent to the best master
         clock. This normally occurs if the route taken by packets to the best
         master changes."
    ::= { tmnxPtpClockRecoveryStatistics 12 }

tmnxPtpClockRecStatsDlyHighPDV   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsDlyHighPDV indicates the number of
         times that the clock recovery process has determined that a sample of
         delay request packets to the best master clock had too much packet
         delay variation to be useful in recovering the clock from the best
         master. When this event occurs, the entire sample of packets is not
         used in the clock recovery process."
    ::= { tmnxPtpClockRecoveryStatistics 13 }

tmnxPtpClockRecStatsTimeInitial  OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsTimeInitial indicates the number of
         seconds that the time recovery system has been active but has not yet
         chosen a parent clock."
    ::= { tmnxPtpClockRecoveryStatistics 14 }

tmnxPtpClockRecStatsTimeAcquire  OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsTimeAcquire indicates the number of
         seconds that the time recovery system has been active but not in
         locked or holdover state."
    ::= { tmnxPtpClockRecoveryStatistics 15 }

tmnxPtpClockRecStatsTimeLocked   OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsTimeLocked indicates the number of
         seconds that the time recovery system is time locked to the parent
         clock."
    ::= { tmnxPtpClockRecoveryStatistics 16 }

tmnxPtpClockRecStatsTimeHoldover OBJECT-TYPE
    SYNTAX      Counter32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsTimeHoldover indicates the number of
         seconds that the clock recovery system has made no adjustment out of
         the time recovery algorithm."
    ::= { tmnxPtpClockRecoveryStatistics 17 }

tmnxPtpClockRecStatsTimeSyncHPDV OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsTimeSyncHPDV indicates the number of
         times that the time recovery process has determined that a sample of
         sync packets from the best master clock had too much packet delay
         variation to be useful in recovering the time from the best master.
         When this event occurs, the entire sample of packets is not used in
         the time recovery process."
    ::= { tmnxPtpClockRecoveryStatistics 18 }

tmnxPtpClockRecStatsTimeDlyHPDV  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsTimeDlyHPDV indicates the number of
         times that the time recovery process has determined that a sample of
         delay request packets to the best master clock had too much packet
         delay variation to be useful in recovering the time from the best
         master. When this event occurs, the entire sample of packets is not
         used in the time recovery process."
    ::= { tmnxPtpClockRecoveryStatistics 19 }

tmnxPtpClockRecStatsSyncExcFreq  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsSyncExcFreq indicates the number of
         times that the clock recovery process has determined that a sample of
         sync packets from the best master clock resulted in an unexpected,
         excessive frequency adjustment. On detection, the algorithm is reset.

         This counter is not supported on some systems."
    ::= { tmnxPtpClockRecoveryStatistics 20 }

tmnxPtpClockRecStatsDlyExcFreq   OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpClockRecStatsDlyExcFreq indicates the number of
         times that the clock recovery process has determined that a sample of
         delay request packets to the best master clock resulted in an
         unexpected, excessive frequency adjustment. On detection, the
         algorithm is reset.

         This counter is not supported on some systems"
    ::= { tmnxPtpClockRecoveryStatistics 21 }

tmnxPtpPortStatsTable            OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPortStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPortStatsTable contains packet statistics for Ethernet
         ports configured for direct transport of PTP over Ethernet."
    ::= { tmnxPtp1588Statistics 4 }

tmnxPtpPortStatsEntry            OBJECT-TYPE
    SYNTAX      TmnxPtpPortStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPortStatsEntry contains the directional packet statistics
         for a specific Ethernet port configured for direct transport of PTP
         over Ethernet.

         Rows are created and destroyed by the system, when corresponding
         entries in the tmnxPtpPortTable are created and deleted."
    INDEX       {
        tmnxChassisIndex,
        tmnxPortPortID,
        tmnxPtpPortStatDirection
    }
    ::= { tmnxPtpPortStatsTable 1 }

TmnxPtpPortStatsEntry            ::= SEQUENCE
{
    tmnxPtpPortStatDirection         TmnxPtpDirection,
    tmnxPtpPortStatAnnounce          Counter32,
    tmnxPtpPortStatSync              Counter32,
    tmnxPtpPortStatFollowUp          Counter32,
    tmnxPtpPortStatDelayRequest      Counter32,
    tmnxPtpPortStatDelayResponse     Counter32,
    tmnxPtpPortStatSignaling         Counter32,
    tmnxPtpPortStatOther             Counter32,
    tmnxPtpPortStatTimeStampPort     Counter32,
    tmnxPtpPortStatTimeStampCpm      Counter32,
    tmnxPtpPortStatDropBadDomain     Counter32,
    tmnxPtpPortStatDropAltMaster     Counter32,
    tmnxPtpPortStatDropOutOfSeq      Counter32,
    tmnxPtpPortStatDropOther         Counter32,
    tmnxPtpPortStatDropPtsf          Counter32,
    tmnxPtpPortStatDropFreerun       Counter32,
    tmnxPtpPortStatPDelayRequest     Counter32,
    tmnxPtpPortStatPDelayResponse    Counter32,
    tmnxPtpPortStatPDlyRespFollowUp  Counter32,
    tmnxPtpPortStatAnnoC37238Tlv     Counter32,
    tmnxPtpPortStatAnnoAtoiTlv       Counter32,
    tmnxPtpPortStatAnnoOtherTlv      Counter32
}

tmnxPtpPortStatDirection         OBJECT-TYPE
    SYNTAX      TmnxPtpDirection
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatDirection specifies which direction the
         packet statistics for the particular row are accumulated."
    ::= { tmnxPtpPortStatsEntry 1 }

tmnxPtpPortStatAnnounce          OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatAnnounce indicates the number of
         accumulated PTP Announce packets transmitted or received on the
         Ethernet port."
    ::= { tmnxPtpPortStatsEntry 2 }

tmnxPtpPortStatSync              OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatSync indicates the number of accumulated
         PTP Sync packets transmitted or received on the Ethernet port."
    ::= { tmnxPtpPortStatsEntry 3 }

tmnxPtpPortStatFollowUp          OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatFollowUp indicates the number of
         accumulated PTP Follow-Up packets transmitted or received on the
         Ethernet port.

         Because 'tmnxPtpClockStepType' is 'oneStep (1)', the system will
         never transmit PTP Follow-Up packets.  However, it may receive
         PTP Follow-Up packets from a two-step master or boundary clock."
    ::= { tmnxPtpPortStatsEntry 4 }

tmnxPtpPortStatDelayRequest      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatDelayRequest indicates the number of
         accumulated PTP Delay Request packets transmitted or received on the
         Ethernet port."
    ::= { tmnxPtpPortStatsEntry 5 }

tmnxPtpPortStatDelayResponse     OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatDelayResponse indicates the number of
         accumulated PTP Delay Response packets transmitted or received on the
         Ethernet port."
    ::= { tmnxPtpPortStatsEntry 6 }

tmnxPtpPortStatSignaling         OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatSignaling indicates the number of
         accumulated PTP Signaling packets received on the Ethernet port.

         This object is accumulated in the 'rx' direction only."
    ::= { tmnxPtpPortStatsEntry 7 }

tmnxPtpPortStatOther             OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatOther indicates the number of accumulated
         PTP packets of all other types.

         This object is accumulated in the 'rx' direction only."
    ::= { tmnxPtpPortStatsEntry 8 }

tmnxPtpPortStatTimeStampPort     OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatTimeStampPort indicates the accumulated
         packet statistics for PTP event packets on the Ethernet port where the
         timestamp is taken at the physical layer on the Ethernet port."
    REFERENCE
        "IEEE 1588-2008, Figure 14, timestamp point 'A'."
    ::= { tmnxPtpPortStatsEntry 9 }

tmnxPtpPortStatTimeStampCpm      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatTimeStampCpm indicates the accumulated
         packet statistics for PTP event packets where the timestamp is taken
         at the operating system kernel on the CPM card."
    REFERENCE
        "IEEE 1588-2008, Figure 14, timestamp point 'B'."
    ::= { tmnxPtpPortStatsEntry 10 }

tmnxPtpPortStatDropBadDomain     OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatDropBadDomain indicates the accumulated
         packet statistics for PTP packets dropped because the PTP domain
         indicated in the packet does not match the configured PTP domain.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPortStatsEntry 11 }

tmnxPtpPortStatDropAltMaster     OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatDropAltMaster indicates the accumulated
         packet statistics for PTP packets dropped because the PTP header has
         the 'alternateMasterFlag' set.

         This object is accumulated for the 'rx' direction only."
    REFERENCE
        "IEEE Std 1588-2008 Section 13.3.2.6"
    ::= { tmnxPtpPortStatsEntry 12 }

tmnxPtpPortStatDropOutOfSeq      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatDropOutOfSeq indicates the accumulated
         packet statistics for PTP packets dropped because the packets were
         received out of sequence.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPortStatsEntry 13 }

tmnxPtpPortStatDropOther         OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatDropOther indicates the accumulated
         packet statistics for PTP packets dropped and not counted in
            - tmnxPtpPortStatDropBadDomain
            - tmnxPtpPortStatDropAltMaster
            - tmnxPtpPortStatDropOutOfSeq
            - tmnxPtpPortStatDropPtsf
            - tmnxPtpPortStatDropFreerun

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPortStatsEntry 14 }

tmnxPtpPortStatDropPtsf          OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatDropPtsf indicates the accumulated packet
         statistics for PTP packets dropped because the packet timing signal
         from the neighboring clock is considered unusable.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPortStatsEntry 15 }

tmnxPtpPortStatDropFreerun       OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatDropFreerun indicates the accumulated
         packet statistics for PTP packets dropped because the central clock is
         in freerun.

         This object is accumulated for the 'rx' direction only."
    ::= { tmnxPtpPortStatsEntry 16 }

tmnxPtpPortStatPDelayRequest     OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatPDelayRequest indicates the number of
         accumulated PTP Pdelay_Req packets transmitted or received on the
         Ethernet port."
    ::= { tmnxPtpPortStatsEntry 17 }

tmnxPtpPortStatPDelayResponse    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatPDelayResponse indicates the number of
         accumulated PTP Pdelay_Resp packets transmitted or received on the
         Ethernet port."
    ::= { tmnxPtpPortStatsEntry 18 }

tmnxPtpPortStatPDlyRespFollowUp  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatPDlyRespFollowUp indicates the number of
         accumulated PTP Pdelay_Resp_Follow_Up packets transmitted or received
         on the Ethernet port."
    ::= { tmnxPtpPortStatsEntry 19 }

tmnxPtpPortStatAnnoC37238Tlv     OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatAnnoC37238Tlv indicates the accumulated
         packet statistics for IEEE_C37_238 TLVs in Announce messages
         transmitted or received on the Ethernet port."
    REFERENCE
        "IEEE Std C37.238-2017, section 6.2.1."
    ::= { tmnxPtpPortStatsEntry 20 }

tmnxPtpPortStatAnnoAtoiTlv       OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatAnnoAtoiTlv indicates the accumulated
         packet statistics for ALTERNATE_TIME_OFFSET_INDICATOR TLVs in Announce
         messages transmitted or received on the Ethernet port."
    REFERENCE
        "IEEE 1588-2008, section 16.3."
    ::= { tmnxPtpPortStatsEntry 21 }

tmnxPtpPortStatAnnoOtherTlv      OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPortStatAnnoOtherTlv indicates the accumulated
         packet statistics for other TLVs in announce messages transmitted or
         received on the Ethernet port."
    ::= { tmnxPtpPortStatsEntry 22 }

tmnxPtpPacketRateStatsTable      OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPacketRateStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPacketRateStatsTable contains packet rate statistics for
         PTP."
    ::= { tmnxPtp1588Statistics 5 }

tmnxPtpPacketRateStatsEntry      OBJECT-TYPE
    SYNTAX      TmnxPtpPacketRateStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A tmnxPtpPacketRateStatsEntry contains the current observed rate of
         PTP packets transmitted or received over either UDP/IP or directly
         over Ethernet.

         The packet rates in each entry are aggregated based on transport type,
         and periodically updated by the local clock.

         The packet rates are given in units of 'packets per decasecond', in
         order to accurately indicate packet rates of less than one packet per
         second.  For example, the default announce rate is only one packet
         every two seconds.  This corresponds to tmnxPtpPacketRateStatsAnnounce
         having a value of 5, which is 0.5 packets per second.

         Entries in tmnxPtpPacketRateStatsTable are automatically created by the
         system during system initialization.  The system creates rows with
         tmnxPtpPacketRateStatsTransport equal to 'udpIp (2)' and
         'ethernet (3)', but not 'none (1)'."
    INDEX       {
        tmnxPtpPacketRateStatsTransport,
        tmnxPtpPacketRateStatsDirection
    }
    ::= { tmnxPtpPacketRateStatsTable 1 }

TmnxPtpPacketRateStatsEntry      ::= SEQUENCE
{
    tmnxPtpPacketRateStatsTransport  TmnxPtpTransportType,
    tmnxPtpPacketRateStatsDirection  TmnxPtpDirection,
    tmnxPtpPacketRateStatsAnnounce   Unsigned32,
    tmnxPtpPacketRateStatsSync       Unsigned32,
    tmnxPtpPacketRateStatsFollowUp   Unsigned32,
    tmnxPtpPacketRateStatsDelayReq   Unsigned32,
    tmnxPtpPacketRateStatsDelayResp  Unsigned32,
    tmnxPtpPacketRateStatsOther      Unsigned32,
    tmnxPtpPacketRateStatsPDelayReq  Unsigned32,
    tmnxPtpPacketRateStatsPDelayResp Unsigned32,
    tmnxPtpPktRateStatsPDlyRespFolUp Unsigned32
}

tmnxPtpPacketRateStatsTransport  OBJECT-TYPE
    SYNTAX      TmnxPtpTransportType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPacketRateStatsTransport specifies the transport
         type of the PTP packets whose rate is calculated."
    ::= { tmnxPtpPacketRateStatsEntry 1 }

tmnxPtpPacketRateStatsDirection  OBJECT-TYPE
    SYNTAX      TmnxPtpDirection
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPacketRateStatsDirection specifies which direction
         the packet rates for the particular row are calculated."
    ::= { tmnxPtpPacketRateStatsEntry 2 }

tmnxPtpPacketRateStatsAnnounce   OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per decasecond"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPacketRateStatsAnnounce indicates the rate of PTP
         announce packets transmitted or received by the local PTP clock."
    ::= { tmnxPtpPacketRateStatsEntry 3 }

tmnxPtpPacketRateStatsSync       OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per decasecond"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPacketRateStatsSync indicates the rate of PTP sync
         packets transmitted or received by the local PTP clock over either
         UDP/IP or Ethernet."
    ::= { tmnxPtpPacketRateStatsEntry 4 }

tmnxPtpPacketRateStatsFollowUp   OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per decasecond"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPacketRateStatsFollowUp indicates the rate of PTP
         follow-up packets transmitted or received by the local PTP clock.

         When tmnxPtpPacketRateStatsDirection is 'tx (2)',
         tmnxPtpPacketRateStatsFollowUp will have a value of 0, since PTP is
         implemented as a one-step clock."
    ::= { tmnxPtpPacketRateStatsEntry 5 }

tmnxPtpPacketRateStatsDelayReq   OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per decasecond"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPacketRateStatsDelayReq indicates the rate of PTP
         delay request packets transmitted or received by the local PTP clock."
    ::= { tmnxPtpPacketRateStatsEntry 6 }

tmnxPtpPacketRateStatsDelayResp  OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per decasecond"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPacketRateStatsDelayResp indicates the rate of PTP
         delay response packets transmitted or received by the local PTP clock."
    ::= { tmnxPtpPacketRateStatsEntry 7 }

tmnxPtpPacketRateStatsOther      OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per decasecond"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPacketRateStatsOther indicates the rate of PTP
         packets of all other types not covered by the previous five objects,
         which are transmitted or received by the local PTP clock.

         When tmnxPtpPacketRateStatsTransport is 'udpIp (2)', this will include
         PTP signaling packets.

         When tmnxPtpPacketRateStatsDirection is 'rx (1)', this will include
         PTP packet types that are not supported by the current implementation,
         such as PTP management or peer delay request and response packets."
    ::= { tmnxPtpPacketRateStatsEntry 8 }

tmnxPtpPacketRateStatsPDelayReq  OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per decasecond"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPacketRateStatsPDelayReq indicates the rate of PTP
         Pdelay_Req packets transmitted or received by the local PTP clock."
    ::= { tmnxPtpPacketRateStatsEntry 9 }

tmnxPtpPacketRateStatsPDelayResp OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per decasecond"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPacketRateStatsPDelayResp indicates the rate of
         PTP Pdelay_Resp packets transmitted or received by the local PTP
         clock."
    ::= { tmnxPtpPacketRateStatsEntry 10 }

tmnxPtpPktRateStatsPDlyRespFolUp OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "packets per decasecond"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpPktRateStatsPDlyRespFolUp indicates the rate of
         PTP Pdelay_Resp_Follow_Up packets transmitted or received by the local
         PTP clock."
    ::= { tmnxPtpPacketRateStatsEntry 11 }

tmnxPtpPerfMonitoringTable       OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPerfMonitoringEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPerfMonitoringTable is used for PTP performance monitoring
         statistics as described in IEEE Std 1588-2019 Annex J, Table J.1"
    REFERENCE
        "IEEE Std 1588-2019 Annex J"
    ::= { tmnxPtp1588Statistics 6 }

tmnxPtpPerfMonitoringEntry       OBJECT-TYPE
    SYNTAX      TmnxPtpPerfMonitoringEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "PTP Instance Performance Monitoring statistics, related to the PTP
         Port or Link Port in the slave state."
    INDEX       { tmnxPtpPerfMonIndex }
    ::= { tmnxPtpPerfMonitoringTable 1 }

TmnxPtpPerfMonitoringEntry       ::= SEQUENCE
{
    tmnxPtpPerfMonIndex              TmnxPtpPerfMonIndexType,
    tmnxPtpPerfMonMeasureValid       TruthValue,
    tmnxPtpPerfMonPeriodComplete     TruthValue,
    tmnxPtpPerfMonStartTime          DateAndTime,
    tmnxPtpPerfMonDuration           Unsigned32,
    tmnxPtpPerfMonAvgMastSlavDly     TmnxPtpTimeInterval,
    tmnxPtpPerfMonMinMastSlavDly     TmnxPtpTimeInterval,
    tmnxPtpPerfMonMaxMastSlavDly     TmnxPtpTimeInterval,
    tmnxPtpPerfMonSDevMastSlavDly    TmnxPtpTimeInterval,
    tmnxPtpPerfMonAvgSlavMastDly     TmnxPtpTimeInterval,
    tmnxPtpPerfMonMinSlavMastDly     TmnxPtpTimeInterval,
    tmnxPtpPerfMonMaxSlavMastDly     TmnxPtpTimeInterval,
    tmnxPtpPerfMonSDevSlavMastDly    TmnxPtpTimeInterval,
    tmnxPtpPerfMonAvgMeanPathDly     TmnxPtpTimeInterval,
    tmnxPtpPerfMonMinMeanPathDly     TmnxPtpTimeInterval,
    tmnxPtpPerfMonMaxMeanPathDly     TmnxPtpTimeInterval,
    tmnxPtpPerfMonSDevMeanPathDly    TmnxPtpTimeInterval,
    tmnxPtpPerfMonAvgOffsetFrMaster  TmnxPtpTimeInterval,
    tmnxPtpPerfMonMinOffsetFrMaster  TmnxPtpTimeInterval,
    tmnxPtpPerfMonMaxOffsetFrMaster  TmnxPtpTimeInterval,
    tmnxPtpPerfMonSDevOffsetFrMaster TmnxPtpTimeInterval,
    tmnxPtpPMonAvgMastSlavDlyNs      Integer32,
    tmnxPtpPMonMinMastSlavDlyNs      Integer32,
    tmnxPtpPMonMaxMastSlavDlyNs      Integer32,
    tmnxPtpPMonSDevMastSlavDlyNs     Integer32,
    tmnxPtpPMonAvgSlavMastDlyNs      Integer32,
    tmnxPtpPMonMinSlavMastDlyNs      Integer32,
    tmnxPtpPMonMaxSlavMastDlyNs      Integer32,
    tmnxPtpPMonSDevSlavMastDlyNs     Integer32,
    tmnxPtpPMonAvgMeanPathDlyNs      Integer32,
    tmnxPtpPMonMinMeanPathDlyNs      Integer32,
    tmnxPtpPMonMaxMeanPathDlyNs      Integer32,
    tmnxPtpPMonSDevMeanPathDlyNs     Integer32,
    tmnxPtpPMonAvgOffsetFrMasterNs   Integer32,
    tmnxPtpPMonMinOffsetFrMasterNs   Integer32,
    tmnxPtpPMonMaxOffsetFrMasterNs   Integer32,
    tmnxPtpPMonSDevOffsetFrMasterNs  Integer32
}

tmnxPtpPerfMonIndex              OBJECT-TYPE
    SYNTAX      TmnxPtpPerfMonIndexType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Index to each record in the list."
    ::= { tmnxPtpPerfMonitoringEntry 1 }

tmnxPtpPerfMonMeasureValid       OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonMeasureValid indicates the data can be correctly
         interpreted. For example, if for some periods the data is not valid
         for part of the data collection interval (e.g. the clock is not
         receiving any PTP timing packets), tmnxPtpPerfMonMeasureValid will be
         set to false.

         This flag applies to all statistics for a given measurement period."
    ::= { tmnxPtpPerfMonitoringEntry 2 }

tmnxPtpPerfMonPeriodComplete     OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonPeriodComplete is set to true when the recording period
         closes and measurements were performed during the entire period (1
         minute, 15 minute, or 24 hour).

         For example, if the PTP instance is disabled for 5 minutes of a 15
         minute period, tmnxPtpPerfMonPeriodComplete is false.

         The tmnxPtpPerfMonPeriodComplete flag is not related to the validity
         of measurements that were performed.

         The tmnxPtpPerfMonPeriodComplete flag applies to all statistics for a
         given measurement period.

         A recording period closes at the next boundary for the record type 15
         minute: 0, 15, 30, 45 minutes after the hour. UTC. 24 hour: 00:00.
         UTC. 1 minute: integral minute. UTC."
    ::= { tmnxPtpPerfMonitoringEntry 3 }

tmnxPtpPerfMonStartTime          OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonStartTime indicates the time of the beginning of the
         measurement record."
    ::= { tmnxPtpPerfMonitoringEntry 4 }

tmnxPtpPerfMonDuration           OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonDuration indicates the amount of time, in seconds, for
         which the data for this record was collected"
    ::= { tmnxPtpPerfMonitoringEntry 5 }

tmnxPtpPerfMonAvgMastSlavDly     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonAvgMastSlavDly indicates the average of the master-slave
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonAvgMastSlavDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 6 }

tmnxPtpPerfMonMinMastSlavDly     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonMinMastSlavDly indicates the Minimum of the master-slave
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonMinMastSlavDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 7 }

tmnxPtpPerfMonMaxMastSlavDly     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonMaxMastSlavDly indicates the maximum of the master-slave
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonMaxMastSlavDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 8 }

tmnxPtpPerfMonSDevMastSlavDly    OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonSDevMastSlavDly indicates the standard deviation of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonSDevMastSlavDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 9 }

tmnxPtpPerfMonAvgSlavMastDly     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonAvgSlavMastDly indicates the average of the slave-master
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonAvgSlavMastDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 10 }

tmnxPtpPerfMonMinSlavMastDly     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonMinSlavMastDly indicates the minimum of the slave-master
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonMinSlavMastDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 11 }

tmnxPtpPerfMonMaxSlavMastDly     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonMaxSlavMastDly indicates the maximum of the slave-master
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonMaxSlavMastDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 12 }

tmnxPtpPerfMonSDevSlavMastDly    OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonSDevSlavMastDly indicates the standard deviation of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonSDevSlavMastDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 13 }

tmnxPtpPerfMonAvgMeanPathDly     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonAvgMeanPathDly indicates the average of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonAvgMeanPathDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 14 }

tmnxPtpPerfMonMinMeanPathDly     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonMinMeanPathDly indicates the minimum of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonMinMeanPathDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 15 }

tmnxPtpPerfMonMaxMeanPathDly     OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonMaxMeanPathDly indicates the maximum of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonMaxMeanPathDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 16 }

tmnxPtpPerfMonSDevMeanPathDly    OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonSDevMeanPathDly indicates the standard deviation of the
         mean path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonSDevMeanPathDlyNs"
    ::= { tmnxPtpPerfMonitoringEntry 17 }

tmnxPtpPerfMonAvgOffsetFrMaster  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonAvgOffsetFrMaster indicates the average of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonAvgOffsetFrMasterNs"
    ::= { tmnxPtpPerfMonitoringEntry 18 }

tmnxPtpPerfMonMinOffsetFrMaster  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonMinOffsetFrMaster indicates the minimum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonMinOffsetFrMasterNs"
    ::= { tmnxPtpPerfMonitoringEntry 19 }

tmnxPtpPerfMonMaxOffsetFrMaster  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonMaxOffsetFrMaster indicates the maximum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonMaxOffsetFrMasterNs"
    ::= { tmnxPtpPerfMonitoringEntry 20 }

tmnxPtpPerfMonSDevOffsetFrMaster OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPerfMonSDevOffsetFrMaster indicates the standard deviation of
         the offset from master for this interval. An invalid value (not
         measured correctly) shall be indicated with one in all bits, except
         the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPMonSDevOffsetFrMasterNs"
    ::= { tmnxPtpPerfMonitoringEntry 21 }

tmnxPtpPMonAvgMastSlavDlyNs      OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonAvgMastSlavDlyNs indicates the average of the master-slave
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPerfMonitoringEntry 22 }

tmnxPtpPMonMinMastSlavDlyNs      OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonMinMastSlavDlyNs indicates the Minimum of the master-slave
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPerfMonitoringEntry 23 }

tmnxPtpPMonMaxMastSlavDlyNs      OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonMaxMastSlavDlyNs indicates the maximum of the master-slave
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPerfMonitoringEntry 24 }

tmnxPtpPMonSDevMastSlavDlyNs     OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonSDevMastSlavDlyNs indicates the standard deviation of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPerfMonitoringEntry 25 }

tmnxPtpPMonAvgSlavMastDlyNs      OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonAvgSlavMastDlyNs indicates the average of the slave-master
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPerfMonitoringEntry 26 }

tmnxPtpPMonMinSlavMastDlyNs      OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonMinSlavMastDlyNs indicates the minimum of the slave-master
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPerfMonitoringEntry 27 }

tmnxPtpPMonMaxSlavMastDlyNs      OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonMaxSlavMastDlyNs indicates the maximum of the slave-master
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPerfMonitoringEntry 28 }

tmnxPtpPMonSDevSlavMastDlyNs     OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonSDevSlavMastDlyNs indicates the standard deviation of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPerfMonitoringEntry 29 }

tmnxPtpPMonAvgMeanPathDlyNs      OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonAvgMeanPathDlyNs indicates the average of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPerfMonitoringEntry 30 }

tmnxPtpPMonMinMeanPathDlyNs      OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonMinMeanPathDlyNs indicates the minimum of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPerfMonitoringEntry 31 }

tmnxPtpPMonMaxMeanPathDlyNs      OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonMaxMeanPathDlyNs indicates the maximum of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPerfMonitoringEntry 32 }

tmnxPtpPMonSDevMeanPathDlyNs     OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonSDevMeanPathDlyNs indicates the standard deviation of the
         mean path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPerfMonitoringEntry 33 }

tmnxPtpPMonAvgOffsetFrMasterNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonAvgOffsetFrMasterNs indicates the average of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPerfMonitoringEntry 34 }

tmnxPtpPMonMinOffsetFrMasterNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonMinOffsetFrMasterNs indicates the minimum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPerfMonitoringEntry 35 }

tmnxPtpPMonMaxOffsetFrMasterNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonMaxOffsetFrMasterNs indicates the maximum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPerfMonitoringEntry 36 }

tmnxPtpPMonSDevOffsetFrMasterNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPMonSDevOffsetFrMasterNs indicates the standard deviation of
         the offset from master for this interval. An invalid value (not
         measured correctly) shall be indicated with one in all bits, except
         the most significant."
    ::= { tmnxPtpPerfMonitoringEntry 37 }

tmnxPtpPeerPerfMonitoringTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPeerPerfMonitoringEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPeerPerfMonitoringTable is used for PTP peer performance
         monitoring statistics when Monitor Receiver has been enabled on a
         peer, as described in IEEE Std 1588-2019 Annex J, Table J.1"
    REFERENCE
        "IEEE Std 1588-2019 Annex J"
    ::= { tmnxPtp1588Statistics 7 }

tmnxPtpPeerPerfMonitoringEntry   OBJECT-TYPE
    SYNTAX      TmnxPtpPeerPerfMonitoringEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Peer Instance Performance Monitoring statistics, related to the PTP
         Peer when Monitor Receiver has been enabled."
    INDEX       {
        vRtrID,
        tmnxPtpPeerIpAddrType,
        tmnxPtpPeerIpAddress,
        tmnxPtpPeerPerfMonIndex
    }
    ::= { tmnxPtpPeerPerfMonitoringTable 1 }

TmnxPtpPeerPerfMonitoringEntry   ::= SEQUENCE
{
    tmnxPtpPeerPerfMonIndex          TmnxPtpPerfMonIndexType,
    tmnxPtpPeerPerfMonMeasureValid   TruthValue,
    tmnxPtpPeerPerfMonPeriodComplete TruthValue,
    tmnxPtpPeerPerfMonStartTime      DateAndTime,
    tmnxPtpPeerPerfMonDuration       Unsigned32,
    tmnxPtpPeerPerfMonAvgMastSlavDly TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonMinMastSlavDly TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonMaxMastSlavDly TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonSDMastSlavDly  TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonAvgSlavMastDly TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonMinSlavMastDly TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonMaxSlavMastDly TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonSDSlavMastDly  TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonAvgMeanPathDly TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonMinMeanPathDly TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonMaxMeanPathDly TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonSDMeanPathDly  TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonAvgOffFrMaster TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonMinOffFrMaster TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonMaxOffFrMaster TmnxPtpTimeInterval,
    tmnxPtpPeerPerfMonSDOffFrMaster  TmnxPtpTimeInterval,
    tmnxPtpPeerPMonAvgMastSlavDlyNs  Integer32,
    tmnxPtpPeerPMonMinMastSlavDlyNs  Integer32,
    tmnxPtpPeerPMonMaxMastSlavDlyNs  Integer32,
    tmnxPtpPeerPMonSDMastSlavDlyNs   Integer32,
    tmnxPtpPeerPMonAvgSlavMastDlyNs  Integer32,
    tmnxPtpPeerPMonMinSlavMastDlyNs  Integer32,
    tmnxPtpPeerPMonMaxSlavMastDlyNs  Integer32,
    tmnxPtpPeerPMonSDSlavMastDlyNs   Integer32,
    tmnxPtpPeerPMonAvgMeanPathDlyNs  Integer32,
    tmnxPtpPeerPMonMinMeanPathDlyNs  Integer32,
    tmnxPtpPeerPMonMaxMeanPathDlyNs  Integer32,
    tmnxPtpPeerPMonSDMeanPathDlyNs   Integer32,
    tmnxPtpPeerPMonAvgOffFrMasterNs  Integer32,
    tmnxPtpPeerPMonMinOffFrMasterNs  Integer32,
    tmnxPtpPeerPMonMaxOffFrMasterNs  Integer32,
    tmnxPtpPeerPMonSDOffFrMasterNs   Integer32
}

tmnxPtpPeerPerfMonIndex          OBJECT-TYPE
    SYNTAX      TmnxPtpPerfMonIndexType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Index to each record in the list."
    ::= { tmnxPtpPeerPerfMonitoringEntry 1 }

tmnxPtpPeerPerfMonMeasureValid   OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonMeasureValid indicates the data can be correctly
         interpreted. For example, if for some periods the data is not valid
         for part of the data collection interval (e.g. the clock is not
         receiving any PTP timing packets), tmnxPtpPeerPerfMonMeasureValid will
         be set to false.

         This flag applies to all statistics for a given measurement period."
    ::= { tmnxPtpPeerPerfMonitoringEntry 2 }

tmnxPtpPeerPerfMonPeriodComplete OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonPeriodComplete is set to true when the recording
         period closes and measurements were performed during the entire period
         (1 minute, 15 minute, or 24 hour).

         For example, if the PTP instance is disabled for 5 minutes of a 15
         minute period, tmnxPtpPeerPerfMonPeriodComplete is false.

         The tmnxPtpPeerPerfMonPeriodComplete flag is not related to the
         validity of measurements that were performed.

         The tmnxPtpPeerPerfMonPeriodComplete flag applies to all statistics
         for a given measurement period.

         A recording period closes at the next boundary for the record type 15
         minute: 0, 15, 30, 45 minutes after the hour. UTC. 24 hour: 00:00.
         UTC. 1 minute: integral minute. UTC."
    ::= { tmnxPtpPeerPerfMonitoringEntry 3 }

tmnxPtpPeerPerfMonStartTime      OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonStartTime indicates the time of the beginning of the
         measurement record."
    ::= { tmnxPtpPeerPerfMonitoringEntry 4 }

tmnxPtpPeerPerfMonDuration       OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonDuration indicates the amount of time, in seconds,
         for which the data for this record was collected"
    ::= { tmnxPtpPeerPerfMonitoringEntry 5 }

tmnxPtpPeerPerfMonAvgMastSlavDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonAvgMastSlavDly indicates the average of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonAvgMastSlavDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 6 }

tmnxPtpPeerPerfMonMinMastSlavDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonMinMastSlavDly indicates the Minimum of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonMinMastSlavDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 7 }

tmnxPtpPeerPerfMonMaxMastSlavDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonMaxMastSlavDly indicates the maximum of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonMaxMastSlavDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 8 }

tmnxPtpPeerPerfMonSDMastSlavDly  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonSDMastSlavDly indicates the standard deviation of
         the master-slave delay for this interval. An invalid value (not
         measured correctly) shall be indicated with one in all bits, except
         the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonSDMastSlavDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 9 }

tmnxPtpPeerPerfMonAvgSlavMastDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonAvgSlavMastDly indicates the average of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonAvgSlavMastDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 10 }

tmnxPtpPeerPerfMonMinSlavMastDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonMinSlavMastDly indicates the minimum of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonMinSlavMastDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 11 }

tmnxPtpPeerPerfMonMaxSlavMastDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonMaxSlavMastDly indicates the maximum of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonMaxSlavMastDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 12 }

tmnxPtpPeerPerfMonSDSlavMastDly  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonSDSlavMastDly indicates the standard deviation of
         the slave-master delay for this interval. An invalid value (not
         measured correctly) shall be indicated with one in all bits, except
         the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonSDSlavMastDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 13 }

tmnxPtpPeerPerfMonAvgMeanPathDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonAvgMeanPathDly indicates the average of the mean
         path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonAvgMeanPathDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 14 }

tmnxPtpPeerPerfMonMinMeanPathDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonMinMeanPathDly indicates the minimum of the mean
         path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonMinMeanPathDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 15 }

tmnxPtpPeerPerfMonMaxMeanPathDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonMaxMeanPathDly indicates the maximum of the mean
         path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonMaxMeanPathDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 16 }

tmnxPtpPeerPerfMonSDMeanPathDly  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonSDMeanPathDly indicates the standard deviation of
         the mean path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonSDMeanPathDlyNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 17 }

tmnxPtpPeerPerfMonAvgOffFrMaster OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonAvgOffFrMaster indicates the average of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonAvgOffFrMasterNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 18 }

tmnxPtpPeerPerfMonMinOffFrMaster OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonMinOffFrMaster indicates the minimum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonMinOffFrMasterNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 19 }

tmnxPtpPeerPerfMonMaxOffFrMaster OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonMaxOffFrMaster indicates the maximum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonMaxOffFrMasterNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 20 }

tmnxPtpPeerPerfMonSDOffFrMaster  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPerfMonSDOffFrMaster indicates the standard deviation of
         the offset from master for this interval. An invalid value (not
         measured correctly) shall be indicated with one in all bits, except
         the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPeerPMonSDOffFrMasterNs"
    ::= { tmnxPtpPeerPerfMonitoringEntry 21 }

tmnxPtpPeerPMonAvgMastSlavDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonAvgMastSlavDlyNs indicates the average of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 22 }

tmnxPtpPeerPMonMinMastSlavDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonMinMastSlavDlyNs indicates the Minimum of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 23 }

tmnxPtpPeerPMonMaxMastSlavDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonMaxMastSlavDlyNs indicates the maximum of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 24 }

tmnxPtpPeerPMonSDMastSlavDlyNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonSDMastSlavDlyNs indicates the standard deviation of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 25 }

tmnxPtpPeerPMonAvgSlavMastDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonAvgSlavMastDlyNs indicates the average of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 26 }

tmnxPtpPeerPMonMinSlavMastDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonMinSlavMastDlyNs indicates the minimum of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 27 }

tmnxPtpPeerPMonMaxSlavMastDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonMaxSlavMastDlyNs indicates the maximum of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 28 }

tmnxPtpPeerPMonSDSlavMastDlyNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonSDSlavMastDlyNs indicates the standard deviation of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 29 }

tmnxPtpPeerPMonAvgMeanPathDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonAvgMeanPathDlyNs indicates the average of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 30 }

tmnxPtpPeerPMonMinMeanPathDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonMinMeanPathDlyNs indicates the minimum of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 31 }

tmnxPtpPeerPMonMaxMeanPathDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonMaxMeanPathDlyNs indicates the maximum of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 32 }

tmnxPtpPeerPMonSDMeanPathDlyNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonSDMeanPathDlyNs indicates the standard deviation of the
         mean path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 33 }

tmnxPtpPeerPMonAvgOffFrMasterNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonAvgOffFrMasterNs indicates the average of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 34 }

tmnxPtpPeerPMonMinOffFrMasterNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonMinOffFrMasterNs indicates the minimum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 35 }

tmnxPtpPeerPMonMaxOffFrMasterNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonMaxOffFrMasterNs indicates the maximum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 36 }

tmnxPtpPeerPMonSDOffFrMasterNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPeerPMonSDOffFrMasterNs indicates the standard deviation of the
         offset from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPeerPerfMonitoringEntry 37 }

tmnxPtpPortPerfMonitoringTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPtpPortPerfMonitoringEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPtpPortPerfMonitoringTable is used for PTP port neighbor
         performance monitoring statistics when Monitor Receiver has been
         enabled on a port, as described in IEEE Std 1588-2019 Annex J, Table
         J.1"
    REFERENCE
        "IEEE Std 1588-2019 Annex J"
    ::= { tmnxPtp1588Statistics 8 }

tmnxPtpPortPerfMonitoringEntry   OBJECT-TYPE
    SYNTAX      TmnxPtpPortPerfMonitoringEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Port Instance Performance Monitoring statistics, related to the PTP
         Port when Monitor Receiver has been enabled."
    INDEX       {
        tmnxChassisIndex,
        tmnxPortPortID,
        tmnxPtpPortNeighborMacAddress,
        tmnxPtpPortPerfMonIndex
    }
    ::= { tmnxPtpPortPerfMonitoringTable 1 }

TmnxPtpPortPerfMonitoringEntry   ::= SEQUENCE
{
    tmnxPtpPortPerfMonIndex          TmnxPtpPerfMonIndexType,
    tmnxPtpPortPerfMonMeasureValid   TruthValue,
    tmnxPtpPortPerfMonPeriodComplete TruthValue,
    tmnxPtpPortPerfMonStartTime      DateAndTime,
    tmnxPtpPortPerfMonDuration       Unsigned32,
    tmnxPtpPortPerfMonAvgMastSlavDly TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonMinMastSlavDly TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonMaxMastSlavDly TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonSDMastSlavDly  TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonAvgSlavMastDly TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonMinSlavMastDly TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonMaxSlavMastDly TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonSDSlavMastDly  TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonAvgMeanPathDly TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonMinMeanPathDly TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonMaxMeanPathDly TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonSDMeanPathDly  TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonAvgOffFrMaster TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonMinOffFrMaster TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonMaxOffFrMaster TmnxPtpTimeInterval,
    tmnxPtpPortPerfMonSDOffFrMaster  TmnxPtpTimeInterval,
    tmnxPtpPortPMonAvgMastSlavDlyNs  Integer32,
    tmnxPtpPortPMonMinMastSlavDlyNs  Integer32,
    tmnxPtpPortPMonMaxMastSlavDlyNs  Integer32,
    tmnxPtpPortPMonSDMastSlavDlyNs   Integer32,
    tmnxPtpPortPMonAvgSlavMastDlyNs  Integer32,
    tmnxPtpPortPMonMinSlavMastDlyNs  Integer32,
    tmnxPtpPortPMonMaxSlavMastDlyNs  Integer32,
    tmnxPtpPortPMonSDSlavMastDlyNs   Integer32,
    tmnxPtpPortPMonAvgMeanPathDlyNs  Integer32,
    tmnxPtpPortPMonMinMeanPathDlyNs  Integer32,
    tmnxPtpPortPMonMaxMeanPathDlyNs  Integer32,
    tmnxPtpPortPMonSDMeanPathDlyNs   Integer32,
    tmnxPtpPortPMonAvgOffFrMasterNs  Integer32,
    tmnxPtpPortPMonMinOffFrMasterNs  Integer32,
    tmnxPtpPortPMonMaxOffFrMasterNs  Integer32,
    tmnxPtpPortPMonSDOffFrMasterNs   Integer32
}

tmnxPtpPortPerfMonIndex          OBJECT-TYPE
    SYNTAX      TmnxPtpPerfMonIndexType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Index to each record in the list."
    ::= { tmnxPtpPortPerfMonitoringEntry 1 }

tmnxPtpPortPerfMonMeasureValid   OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonMeasureValid indicates the data can be correctly
         interpreted. For example, if for some periods the data is not valid
         for part of the data collection interval (e.g. the clock is not
         receiving any PTP timing packets), tmnxPtpPortPerfMonMeasureValid will
         be set to false.

         This flag applies to all statistics for a given measurement period."
    ::= { tmnxPtpPortPerfMonitoringEntry 2 }

tmnxPtpPortPerfMonPeriodComplete OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonPeriodComplete is set to true when the recording
         period closes and measurements were performed during the entire period
         (1 minute, 15 minute, or 24 hour).

         For example, if the PTP instance is disabled for 5 minutes of a 15
         minute period, tmnxPtpPortPerfMonPeriodComplete is false.

         The tmnxPtpPortPerfMonPeriodComplete flag is not related to the
         validity of measurements that were performed.

         The tmnxPtpPortPerfMonPeriodComplete flag applies to all statistics
         for a given measurement period.

         A recording period closes at the next boundary for the record type 15
         minute: 0, 15, 30, 45 minutes after the hour. UTC. 24 hour: 00:00.
         UTC. 1 minute: integral minute. UTC."
    ::= { tmnxPtpPortPerfMonitoringEntry 3 }

tmnxPtpPortPerfMonStartTime      OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonStartTime indicates the time of the beginning of the
         measurement record."
    ::= { tmnxPtpPortPerfMonitoringEntry 4 }

tmnxPtpPortPerfMonDuration       OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonDuration indicates the amount of time, in seconds,
         for which the data for this record was collected"
    ::= { tmnxPtpPortPerfMonitoringEntry 5 }

tmnxPtpPortPerfMonAvgMastSlavDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonAvgMastSlavDly indicates the average of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonAvgMastSlavDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 6 }

tmnxPtpPortPerfMonMinMastSlavDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonMinMastSlavDly indicates the Minimum of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonMinMastSlavDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 7 }

tmnxPtpPortPerfMonMaxMastSlavDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonMaxMastSlavDly indicates the maximum of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonMaxMastSlavDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 8 }

tmnxPtpPortPerfMonSDMastSlavDly  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonSDMastSlavDly indicates the standard deviation of
         the master-slave delay for this interval. An invalid value (not
         measured correctly) shall be indicated with one in all bits, except
         the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonSDMastSlavDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 9 }

tmnxPtpPortPerfMonAvgSlavMastDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonAvgSlavMastDly indicates the average of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonAvgSlavMastDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 10 }

tmnxPtpPortPerfMonMinSlavMastDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonMinSlavMastDly indicates the minimum of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonMinSlavMastDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 11 }

tmnxPtpPortPerfMonMaxSlavMastDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonMaxSlavMastDly indicates the maximum of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonMaxSlavMastDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 12 }

tmnxPtpPortPerfMonSDSlavMastDly  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonSDSlavMastDly indicates the standard deviation of
         the slave-master delay for this interval. An invalid value (not
         measured correctly) shall be indicated with one in all bits, except
         the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonSDSlavMastDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 13 }

tmnxPtpPortPerfMonAvgMeanPathDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonAvgMeanPathDly indicates the average of the mean
         path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonAvgMeanPathDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 14 }

tmnxPtpPortPerfMonMinMeanPathDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonMinMeanPathDly indicates the minimum of the mean
         path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonMinMeanPathDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 15 }

tmnxPtpPortPerfMonMaxMeanPathDly OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonMaxMeanPathDly indicates the maximum of the mean
         path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonMaxMeanPathDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 16 }

tmnxPtpPortPerfMonSDMeanPathDly  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonSDMeanPathDly indicates the standard deviation of
         the mean path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonSDMeanPathDlyNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 17 }

tmnxPtpPortPerfMonAvgOffFrMaster OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonAvgOffFrMaster indicates the average of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonAvgOffFrMasterNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 18 }

tmnxPtpPortPerfMonMinOffFrMaster OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonMinOffFrMaster indicates the minimum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonMinOffFrMasterNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 19 }

tmnxPtpPortPerfMonMaxOffFrMaster OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonMaxOffFrMaster indicates the maximum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonMaxOffFrMasterNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 20 }

tmnxPtpPortPerfMonSDOffFrMaster  OBJECT-TYPE
    SYNTAX      TmnxPtpTimeInterval
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPerfMonSDOffFrMaster indicates the standard deviation of
         the offset from master for this interval. An invalid value (not
         measured correctly) shall be indicated with one in all bits, except
         the most significant.

         This object is now deprecated and replaced with
         tmnxPtpPortPMonSDOffFrMasterNs"
    ::= { tmnxPtpPortPerfMonitoringEntry 21 }

tmnxPtpPortPMonAvgMastSlavDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonAvgMastSlavDlyNs indicates the average of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 22 }

tmnxPtpPortPMonMinMastSlavDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonMinMastSlavDlyNs indicates the Minimum of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 23 }

tmnxPtpPortPMonMaxMastSlavDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonMaxMastSlavDlyNs indicates the maximum of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 24 }

tmnxPtpPortPMonSDMastSlavDlyNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonSDMastSlavDlyNs indicates the standard deviation of the
         master-slave delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 25 }

tmnxPtpPortPMonAvgSlavMastDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonAvgSlavMastDlyNs indicates the average of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 26 }

tmnxPtpPortPMonMinSlavMastDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonMinSlavMastDlyNs indicates the minimum of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 27 }

tmnxPtpPortPMonMaxSlavMastDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonMaxSlavMastDlyNs indicates the maximum of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 28 }

tmnxPtpPortPMonSDSlavMastDlyNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonSDSlavMastDlyNs indicates the standard deviation of the
         slave-master delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 29 }

tmnxPtpPortPMonAvgMeanPathDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonAvgMeanPathDlyNs indicates the average of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 30 }

tmnxPtpPortPMonMinMeanPathDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonMinMeanPathDlyNs indicates the minimum of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 31 }

tmnxPtpPortPMonMaxMeanPathDlyNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonMaxMeanPathDlyNs indicates the maximum of the mean path
         delay for this interval. An invalid value (not measured correctly)
         shall be indicated with one in all bits, except the most significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 32 }

tmnxPtpPortPMonSDMeanPathDlyNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonSDMeanPathDlyNs indicates the standard deviation of the
         mean path delay for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 33 }

tmnxPtpPortPMonAvgOffFrMasterNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonAvgOffFrMasterNs indicates the average of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 34 }

tmnxPtpPortPMonMinOffFrMasterNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonMinOffFrMasterNs indicates the minimum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 35 }

tmnxPtpPortPMonMaxOffFrMasterNs  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonMaxOffFrMasterNs indicates the maximum of the offset
         from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 36 }

tmnxPtpPortPMonSDOffFrMasterNs   OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "nanoseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tmnxPtpPortPMonSDOffFrMasterNs indicates the standard deviation of the
         offset from master for this interval. An invalid value (not measured
         correctly) shall be indicated with one in all bits, except the most
         significant."
    ::= { tmnxPtpPortPerfMonitoringEntry 37 }

tmnxPtp1588NotifyObjects         OBJECT IDENTIFIER ::= { tmnxPtp1588Objs 10 }

tmnxPtpMasterClockLastIpAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockLastIpAddrType indicates, along with
         the value of tmnxPtpMasterClockLastIpAddress, the IP Address of the
         parent clock that was last chosen by the local clock.

         This object is only valid when tmnxPtpMasterClockLastTransType is
         'udpIp (2)'."
    ::= { tmnxPtp1588NotifyObjects 1 }

tmnxPtpMasterClockLastIpAddress  OBJECT-TYPE
    SYNTAX      InetAddress (SIZE (0|4|16))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockLastIpAddress indicates, along with the
         value of tmnxPtpMasterClockLastIpAddrType, the IP Address of the
         parent clock that was last chosen by the local clock.

         This object is only valid when tmnxPtpMasterClockLastTransType is
         'udpIp (2)'."
    ::= { tmnxPtp1588NotifyObjects 2 }

tmnxPtpNotifyRowPointer          OBJECT-TYPE
    SYNTAX      RowPointer
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNotifyRowPointer indicates a row in a table that
         has triggered a notification."
    ::= { tmnxPtp1588NotifyObjects 3 }

tmnxPtpNotifyRowDescription      OBJECT-TYPE
    SYNTAX      TItemLongDescription
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNotifyRowDescription indicates the description
         explaining the cause of the notification."
    ::= { tmnxPtp1588NotifyObjects 4 }

tmnxPtpMasterClockLastTransType  OBJECT-TYPE
    SYNTAX      TmnxPtpTransportType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockLastTransType indicates the type of
         transport that was last used by the parent clock.

         When the value is 'none (1)', either a GNSS port or the local clock
         was last used as the parent clock.

         When the value is 'udpIp (2)', tmnxPtpMasterClockLastIpAddrType and
         tmnxPtpMasterClockLastIpAddress contain information about the parent
         clock that was last used.

         When the value is 'ethernet (3)', tmnxPtpMasterClockLastEthPort and
         tmnxPtpMasterClockLastMacAddress contain information about the parent
         clock that was last used."
    ::= { tmnxPtp1588NotifyObjects 5 }

tmnxPtpMasterClockLastEthPort    OBJECT-TYPE
    SYNTAX      TmnxPortID
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockLastEthPort indicates the Ethernet port
         of the parent clock that was last used. This object is only valid in
         tmnxPtpMasterClockChangedEvent when tmnxPtpMasterClockLastTransType is
         'ethernet (3)'."
    ::= { tmnxPtp1588NotifyObjects 6 }

tmnxPtpMasterClockLastMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockLastMacAddress indicates the MAC
         address of the parent clock that was last used. This object is only
         valid in tmnxPtpMasterClockChangedEvent when
         tmnxPtpMasterClockLastTransType is 'ethernet (3)'."
    ::= { tmnxPtp1588NotifyObjects 7 }

tmnxPtpNotifyPortId              OBJECT-TYPE
    SYNTAX      TmnxPortID
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNotifyPortId indicates the port identifier of the
         PTP port."
    ::= { tmnxPtp1588NotifyObjects 8 }

tmnxPtpNotifyInitialClockType    OBJECT-TYPE
    SYNTAX      TmnxPtpClockType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNotifyInitialClockType indicates the value of
         tmnxPtpClockClockType after system initialization."
    ::= { tmnxPtp1588NotifyObjects 9 }

tmnxPtpNotifyInitialProfile      OBJECT-TYPE
    SYNTAX      TmnxPtpProfile
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpNotifyInitialProfile indicates the value of
         tmnxPtpClockProfile after system initialization."
    ::= { tmnxPtp1588NotifyObjects 10 }

tmnxPtpMasterClockLastPortId     OBJECT-TYPE
    SYNTAX      TmnxPortID
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The value of tmnxPtpMasterClockLastPortId indicates the port of the
         parent clock that was last used. This object is only valid in
         tmnxPtpMasterClockChangedEvent when tmnxPtpMasterClockLastTransType is
         'ethernet (3)' or none (1) if the last port was GNSS."
    ::= { tmnxPtp1588NotifyObjects 11 }

tmnxPtp1588Conformance           OBJECT IDENTIFIER ::= { tmnxSRConfs 74 }

tmnxPtp1588Compliances           OBJECT IDENTIFIER ::= { tmnxPtp1588Conformance 1 }

tmnxPtpCompliance                MODULE-COMPLIANCE
    STATUS      obsolete
    DESCRIPTION
        "The compliance statement for the management of the Precision Timing
         Protocol for Release 9.0 on SROS series systems."
    MODULE
        MANDATORY-GROUPS {
            tmnxPtpTimeStampGroup,
            tmnxPtpLocalConfigGroup,
            tmnxPtpLocalOperGroup,
            tmnxPtpMasterClockGroup,
            tmnxPtpPeerBaseConfigGroup,
            tmnxPtpPeerMasterStatusGroup,
            tmnxPtpPacketStatsGroup,
            tmnxPtpClockRecoveryGroup,
            tmnxPtpPeerUnicastStatusGroup,
            tmnxPtpNotificationsGroup
        }
    ::= { tmnxPtp1588Compliances 1 }

tmnxPtpComplianceV10v0           MODULE-COMPLIANCE
    STATUS      obsolete
    DESCRIPTION
        "The compliance statement for the management of the Precision Timing
         Protocol for Release 10.0 on SROS series systems."
    MODULE
        MANDATORY-GROUPS {
            tmnxPtpTimeStampGroup,
            tmnxPtpLocalConfigGroup,
            tmnxPtpLocalOperGroup,
            tmnxPtpMasterClockGroup,
            tmnxPtpPeerBaseConfigGroup,
            tmnxPtpPeerMasterStatusGroup,
            tmnxPtpPacketStatsGroup,
            tmnxPtpClockRecoveryGroup,
            tmnxPtpPeerUnicastStatusGroup,
            tmnxPtpNotificationsGroup,
            tmnxPtpVRtrIfTimeStampGroup,
            tmnxPtpVRtrIfConfigGroup,
            tmnxPtpTimeInfoGroup,
            tmnxPtpPeerOperGroup,
            tmnxPtpPacketStatsV10v0Group
        }
    ::= { tmnxPtp1588Compliances 2 }

tmnxPtpComplianceV11v0           MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the management of the Precision Timing
         Protocol for Release 11.0 on SROS series systems."
    MODULE
        MANDATORY-GROUPS {
            tmnxPtpTimeStampGroup,
            tmnxPtpLocalConfigGroup,
            tmnxPtpLocalOperGroup,
            tmnxPtpMasterClockGroup,
            tmnxPtpPeerBaseConfigGroup,
            tmnxPtpPeerMasterStatusGroup,
            tmnxPtpPacketStatsGroup,
            tmnxPtpClockRecoveryGroup,
            tmnxPtpPeerUnicastStatusGroup,
            tmnxPtpNotificationsGroup,
            tmnxPtpVRtrIfTimeStampGroup,
            tmnxPtpVRtrIfConfigGroup,
            tmnxPtpTimeInfoGroup,
            tmnxPtpPeerOperGroup,
            tmnxPtpPacketStatsV10v0Group,
            tmnxPtpVRtrGroup
        }
    ::= { tmnxPtp1588Compliances 3 }

tmnxPtpComplianceV12v0           MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the management of the Precision Timing
         Protocol for Release 12.0 on SROS series systems.  The corresponding
         base module compliance statement is tmnxPtpComplianceV11v0."
    MODULE
        MANDATORY-GROUPS {
            tmnxPtpLocalConfigV12v0Group,
            tmnxPtpPeerBaseConfigV12v0Group,
            tmnxPtpMasterClockV12v0Group,
            tmnxPtpPortGroup,
            tmnxPtpPortStatsGroup,
            tmnxPtpPacketRateStatsGroup,
            tmnxPtpNotifyObjsV12v0Group,
            tmnxPtpNotificationsV12v0Group
        }
    ::= { tmnxPtp1588Compliances 4 }

tmnxPtpComplianceV13v0           MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the management of the Precision Timing
         Protocol for Release 13.0 on SROS series systems.  The corresponding
         base module compliance statement is tmnxPtpComplianceV12v0."
    MODULE
        MANDATORY-GROUPS {
            tmnxPtpConfigV13v0Group
        }
    ::= { tmnxPtp1588Compliances 5 }

tmnxPtpComplianceV21v0           MODULE-COMPLIANCE
    STATUS      obsolete
    DESCRIPTION
        "The compliance statement for the management of the Precision Timing
         Protocol for Release 21.0 on SROS series systems.  The corresponding
         base module compliance statement is tmnxPtpComplianceV13v0."
    MODULE
        MANDATORY-GROUPS {
            tmnxPtpPtsfUnusableV21v0Group,
            tmnxPtpTimeInfoV21v0Group,
            tmnxPtpNotificationsV21v0Group,
            tmnxPtpG8275Dot2Group,
            tmnxPtpNotifyObjsV21v0Group
        }
    ::= { tmnxPtp1588Compliances 6 }

tmnxPtpComplianceV22v0           MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the management of the Precision Timing
         Protocol (PTP) for Release 22.0 on SROS series systems."
    MODULE
        MANDATORY-GROUPS {
            tmnxPtpConfigV22v0Group,
            tmnxPtpTimeRecoveryV22v0Group,
            tmnxPtpNotificationsV22v0Group,
            tmnxPtpResetClkRecoveryGrpV23v0
        }
    ::= { tmnxPtp1588Compliances 7 }

tmnxPtpComplianceV23v0           MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the management of the Precision Timing
         Protocol (PTP) for Release 23.0 on SROS series systems."
    MODULE
        MANDATORY-GROUPS {
            tmnxPtpGnssPortV23v0Group,
            tmnxPtpPerfMonV23v0Group,
            tmnxPtpMasterClockPortV23v0Group,
            tmnxPtpTimestampingGroupV23v0,
            tmnxPtpTsNotificationsV23v0Group,
            tmnxPtpAptsBackupSrcGroupV23v0,
            tmnxPtpResetClkRecoveryGrpV23v0
        }
    ::= { tmnxPtp1588Compliances 8 }

tmnxPtpComplianceV24v0           MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the management of the Precision Timing
         Protocol (PTP) for Release 24.0 on SROS series systems."
    MODULE
        MANDATORY-GROUPS {
            tmnxPtp8275MonitoringGroupV24v0,
            tmnxPtpMonAltMasterGroupV24v0,
            tmnxPtpG8275Dot2GroupV24v0,
            tmnxPtpPtsfUnusableV21v0Group,
            tmnxPtpTimeInfoV21v0Group,
            tmnxPtpNotificationsV21v0Group,
            tmnxPtpNotifyObjsV21v0Group,
            tmnxPtpPbtPortFilterV24v0Grp
        }
    ::= { tmnxPtp1588Compliances 9 }

tmnxPtpComplianceV25v0           MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the management of the Precision Timing
         Protocol (PTP) for Release 25.0 on SROS series systems."
    MODULE
        MANDATORY-GROUPS {
            tmnxPtpPortDsNotMasterGrp,
            tmnxPtpRmonPerfStatsGrp,
            tmnxPtpPeerDelayGrp,
            tmnxPtpAnnounceTlvPropagationGrp,
            tmnxPtpPortPowerProfilesGrp
        }
    ::= { tmnxPtp1588Compliances 10 }

tmnxPtp1588Groups                OBJECT IDENTIFIER ::= { tmnxPtp1588Conformance 2 }

tmnxPtpV9v0Groups                OBJECT IDENTIFIER ::= { tmnxPtp1588Groups 1 }

tmnxPtpTimeStampGroup            OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerConfigTblLastChanged
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining table/row statistics for Precision
         Timing Protocol (PTP) on the SROS series system."
    ::= { tmnxPtpV9v0Groups 1 }

tmnxPtpLocalConfigGroup          OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClockAdminState,
        tmnxPtpClockClockType,
        tmnxPtpClockProfile,
        tmnxPtpClockDomain,
        tmnxPtpClockPriority1,
        tmnxPtpClockPriority2,
        tmnxPtpClockNetworkType
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining system configuration for the
         Precision Timing Protocol (PTP) on SROS series systems."
    ::= { tmnxPtpV9v0Groups 2 }

tmnxPtpLocalOperGroup            OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClockIdentity,
        tmnxPtpClockOperState,
        tmnxPtpClockStepType,
        tmnxPtpClockClass,
        tmnxPtpClockAccuracy,
        tmnxPtpClockVariance,
        tmnxPtpClockPortState,
        tmnxPtpClockPortStateLastChanged,
        tmnxPtpClockRecoveryState,
        tmnxPtpClockRecoveryStateLastChg,
        tmnxPtpClockFrequencyOffset
    }
    STATUS      current
    DESCRIPTION
        "The group of objects indicating system operational states for the
         Precision Timing Protocol (PTP) on SROS series systems."
    ::= { tmnxPtpV9v0Groups 3 }

tmnxPtpMasterClockGroup          OBJECT-GROUP
    OBJECTS     {
        tmnxPtpMasterClockAddressType,
        tmnxPtpMasterClockAddress,
        tmnxPtpMasterClockGMClockId,
        tmnxPtpMasterClockGMClockPrio1,
        tmnxPtpMasterClockGMClockPrio2,
        tmnxPtpMasterClockGMClockClass,
        tmnxPtpMasterClockGMAccuracy,
        tmnxPtpMasterClockGMVariance,
        tmnxPtpMasterClockParentClockId,
        tmnxPtpMasterClockParentPortNum
    }
    STATUS      current
    DESCRIPTION
        "The group of objects indicating system operational states for the
         Master Clock for the Precision Timing Protocol (PTP) on SROS series
         systems."
    ::= { tmnxPtpV9v0Groups 4 }

tmnxPtpPeerBaseConfigGroup       OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerRowStatus,
        tmnxPtpPeerLastChanged,
        tmnxPtpPeerAdminState,
        tmnxPtpPeerPortState,
        tmnxPtpPeerLocalPriority,
        tmnxPtpPeerRemoteMaster,
        tmnxPtpPeerRemoteSlave,
        tmnxPtpPeerClockId,
        tmnxPtpPeerLocalPortNumber,
        tmnxPtpPeerRemotePortNumber
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining Peer configuration for the Precision
         Timing Protocol (PTP) on SROS series systems."
    ::= { tmnxPtpV9v0Groups 5 }

tmnxPtpPeerMasterStatusGroup     OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerMasterCurrentMaster,
        tmnxPtpPeerMasterClockStepType,
        tmnxPtpPeerMasterClockStepsRemvd,
        tmnxPtpPeerMasterGMClockId,
        tmnxPtpPeerMasterGMClockPrio1,
        tmnxPtpPeerMasterGMClockPrio2,
        tmnxPtpPeerMasterGMClockClass,
        tmnxPtpPeerMasterGMClockAccuracy,
        tmnxPtpPeerMasterGMClockVariance,
        tmnxPtpPeerMasterAlarm
    }
    STATUS      current
    DESCRIPTION
        "The group of objects indicating operational states for Master Peers
         for the Precision Timing Protocol (PTP) on SROS series systems."
    ::= { tmnxPtpV9v0Groups 6 }

tmnxPtpPacketStatsGroup          OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClkPktStatsAnnounce,
        tmnxPtpClkPktStatsSync,
        tmnxPtpClkPktStatsFollowUp,
        tmnxPtpClkPktStatsDelayRequest,
        tmnxPtpClkPktStatsDelayResp,
        tmnxPtpClkPktStatsSignaling,
        tmnxPtpClkPktStatsOther,
        tmnxPtpClkPktStatsUniReqAnno,
        tmnxPtpClkPktStatsUniReqSync,
        tmnxPtpClkPktStatsUniReqDelayRsp,
        tmnxPtpClkPktStatsUniGrantAnno,
        tmnxPtpClkPktStatsUniGrantSync,
        tmnxPtpClkPktStatsUniGrantDelRsp,
        tmnxPtpClkPktStatsUniDenyAnno,
        tmnxPtpClkPktStatsUniDenySync,
        tmnxPtpClkPktStatsUniDenyDelRsp,
        tmnxPtpClkPktStatsUniCancelAnno,
        tmnxPtpClkPktStatsUniCancelSync,
        tmnxPtpClkPktStatsUniCancelDelay,
        tmnxPtpClkPktStatsUniAckCnclAnno,
        tmnxPtpClkPktStatsUniAckCnclSync,
        tmnxPtpClkPktStatsUniAckCnclDly,
        tmnxPtpClkPktStatsOtherTLVs,
        tmnxPtpClkPktStatsDropBadDomain,
        tmnxPtpClkPktStatsDropAltMaster,
        tmnxPtpClkPktStatsDropOther,
        tmnxPtpClkPktStatsDropOutOfSeq,
        tmnxPtpClkPktStatsDropPeerShut,
        tmnxPtpClkPktStatsDropPtsf,
        tmnxPtpPeerPktStatAnnounce,
        tmnxPtpPeerPktStatSync,
        tmnxPtpPeerPktStatFollowUp,
        tmnxPtpPeerPktStatDelayRequest,
        tmnxPtpPeerPktStatDelayResp,
        tmnxPtpPeerPktStatSignaling,
        tmnxPtpPeerPktStatOther,
        tmnxPtpPeerPktStatUniReqAnno,
        tmnxPtpPeerPktStatUniReqSync,
        tmnxPtpPeerPktStatUniReqDelayRsp,
        tmnxPtpPeerPktStatUniGrantAnno,
        tmnxPtpPeerPktStatUniGrantSync,
        tmnxPtpPeerPktStatUniGrantDelRsp,
        tmnxPtpPeerPktStatUniDenyAnno,
        tmnxPtpPeerPktStatUniDenySync,
        tmnxPtpPeerPktStatUniDenyDelRsp,
        tmnxPtpPeerPktStatUniCancelAnno,
        tmnxPtpPeerPktStatUniCancelSync,
        tmnxPtpPeerPktStatUniCancelDelay,
        tmnxPtpPeerPktStatUniAckCnclAnno,
        tmnxPtpPeerPktStatUniAckCnclSync,
        tmnxPtpPeerPktStatUniAckCnclDly,
        tmnxPtpPeerPktStatOtherTLVs,
        tmnxPtpPeerPktStatDropBadDomain,
        tmnxPtpPeerPktStatDropAltMaster,
        tmnxPtpPeerPktStatDropOther,
        tmnxPtpPeerPktStatDropOutOfSeq,
        tmnxPtpPeerPktStatDropPeerShut
    }
    STATUS      current
    DESCRIPTION
        "The group of objects indicating packet statistics for the Precision
         Timing Protocol (PTP) on SROS series systems."
    ::= { tmnxPtpV9v0Groups 7 }

tmnxPtpClockRecoveryGroup        OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClockRecStatsInitial,
        tmnxPtpClockRecStatsAcquiring,
        tmnxPtpClockRecStatsPhaseTrack,
        tmnxPtpClockRecStatsLocked,
        tmnxPtpClockRecStatsHoldover,
        tmnxPtpClockRecStatsSyncPktLoss,
        tmnxPtpClockRecStatsSyncHiPktLss,
        tmnxPtpClockRecStatsSyncStep,
        tmnxPtpClockRecStatsSyncHighPDV,
        tmnxPtpClockRecStatsDlyPktLoss,
        tmnxPtpClockRecStatsDlyHiPktLss,
        tmnxPtpClockRecStatsDlyStep,
        tmnxPtpClockRecStatsDlyHighPDV
    }
    STATUS      current
    DESCRIPTION
        "The group of objects indicating the clock recovery state and event
         statistics for the Precision Timing Protocol (PTP) on SROS series
         systems."
    ::= { tmnxPtpV9v0Groups 8 }

tmnxPtpPeerUnicastStatusGroup    OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerUnicastStatus,
        tmnxPtpPeerUnicastRate,
        tmnxPtpPeerUnicastDuration,
        tmnxPtpPeerUnicastEventTime
    }
    STATUS      current
    DESCRIPTION
        "The group of objects indicating the Peer Unicast Status information
         for the Precision Timing Protocol (PTP) on SROS series systems."
    ::= { tmnxPtpV9v0Groups 9 }

tmnxPtpNotifyObjsGroup           OBJECT-GROUP
    OBJECTS     {
        tmnxPtpMasterClockLastIpAddrType,
        tmnxPtpMasterClockLastIpAddress,
        tmnxPtpNotifyRowPointer,
        tmnxPtpNotifyRowDescription
    }
    STATUS      current
    DESCRIPTION
        "The group of objects used in notifications generated by the Precision
         Timing Protocol (PTP) on SROS series systems."
    ::= { tmnxPtpV9v0Groups 10 }

tmnxPtpNotificationsGroup        NOTIFICATION-GROUP
    NOTIFICATIONS {
        tmnxPtpCardNotSupported,
        tmnxPtpCardNotSupportedClear,
        tmnxPtpMasterClockChangedEvent,
        tmnxPtpClockRecoveryStateChange,
        tmnxPtpOutOfResources,
        tmnxPtpOutOfResourcesClear,
        tmnxPtpDynamicChange
    }
    STATUS      current
    DESCRIPTION
        "The group of notifications generated by the Precision Timing Protocol
         (PTP) on SROS series systems."
    ::= { tmnxPtpV9v0Groups 11 }

tmnxPtpV10v0Groups               OBJECT IDENTIFIER ::= { tmnxPtp1588Groups 2 }

tmnxPtpVRtrIfTimeStampGroup      OBJECT-GROUP
    OBJECTS     {
        tmnxPtpVRtrIfTableLastChanged
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining table/row statistics for the
         Precision Timing Protocol (PTP) on version 10.0 of SROS series
         systems."
    ::= { tmnxPtpV10v0Groups 1 }

tmnxPtpVRtrIfConfigGroup         OBJECT-GROUP
    OBJECTS     {
        tmnxPtpVRtrIfAdminState
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining interface configuration for the
         Precision Timing Protocol (PTP) on version 10.0 of SROS series
         systems."
    ::= { tmnxPtpV10v0Groups 2 }

tmnxPtpTimeInfoGroup             OBJECT-GROUP
    OBJECTS     {
        tmnxPtpTimeInfoTimescale,
        tmnxPtpTimeInfoCurrentTime,
        tmnxPtpTimeInfoFreqTraceable,
        tmnxPtpTimeInfoTimeTraceable,
        tmnxPtpTimeInfoTimeSource
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining interface operational state for the
         Precision Timing Protocol (PTP) on version 10.0 of SROS series
         systems."
    ::= { tmnxPtpV10v0Groups 3 }

tmnxPtpPeerOperGroup             OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerTxTimeStampPoint,
        tmnxPtpPeerLastTxPortId,
        tmnxPtpPeerLastTxPortEncapType,
        tmnxPtpPeerLastTxPortEncapValue,
        tmnxPtpPeerRxTimeStampPoint,
        tmnxPtpPeerLastRxPortId,
        tmnxPtpPeerLastRxPortEncapType,
        tmnxPtpPeerLastRxPortEncapValue
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining peer operational state for the
         Precision Timing Protocol (PTP) on version 10.0 of SROS series
         systems."
    ::= { tmnxPtpV10v0Groups 5 }

tmnxPtpPacketStatsV10v0Group     OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClkPktStatsTimeStampPort,
        tmnxPtpClkPktStatsTimeStampCpm,
        tmnxPtpPeerPktStatTimeStampPort,
        tmnxPtpPeerPktStatTimeStampCpm
    }
    STATUS      current
    DESCRIPTION
        "The group of objects indicating packet statistics for the Precision
         Timing Protocol (PTP) on version 10.0 of SROS series systems."
    ::= { tmnxPtpV10v0Groups 6 }

tmnxPtpV11v0Groups               OBJECT IDENTIFIER ::= { tmnxPtp1588Groups 3 }

tmnxPtpVRtrGroup                 OBJECT-GROUP
    OBJECTS     {
        tmnxPtpVRtrTableLastChanged,
        tmnxPtpVRtrRowStatus,
        tmnxPtpVRtrLastChanged,
        tmnxPtpVRtrAdminState,
        tmnxPtpVRtrOperState,
        tmnxPtpVRtrPeerLimit
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining virtual router instance configuration
         and status for the Precision Timing Protocol (PTP) on version 11.0 of
         SROS series systems."
    ::= { tmnxPtpV11v0Groups 1 }

tmnxPtpV12v0Groups               OBJECT IDENTIFIER ::= { tmnxPtp1588Groups 4 }

tmnxPtpLocalConfigV12v0Group     OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClockAnnounceInterval,
        tmnxPtpClockAnnoRxTimeout
    }
    STATUS      current
    DESCRIPTION
        "The group of additional objects that maintain system configuration for
         the Precision Timing Protocol (PTP) on version 12.0 of SROS series
         systems."
    ::= { tmnxPtpV12v0Groups 1 }

tmnxPtpPeerBaseConfigV12v0Group  OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerSyncInterval
    }
    STATUS      current
    DESCRIPTION
        "The group of additional objects that maintain Peer configuration for
         the Precision Timing Protocol (PTP) on version 12.0 of SROS series
         systems."
    ::= { tmnxPtpV12v0Groups 2 }

tmnxPtpMasterClockV12v0Group     OBJECT-GROUP
    OBJECTS     {
        tmnxPtpMasterClockTransportType,
        tmnxPtpMasterClockEthernetPort,
        tmnxPtpMasterClockMacAddress
    }
    STATUS      current
    DESCRIPTION
        "The group of objects indicating system operational states for the
         Parent/Master Clock for the Precision Timing Protocol (PTP) on version
         12.0 of SROS series systems."
    ::= { tmnxPtpV12v0Groups 3 }

tmnxPtpPortGroup                 OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPortTableLastChanged,
        tmnxPtpPortRowStatus,
        tmnxPtpPortLastChanged,
        tmnxPtpPortAdminState,
        tmnxPtpPortSyncInterval,
        tmnxPtpPortDelayInterval,
        tmnxPtpPortMulticastAddress,
        tmnxPtpPortLocalPortNumber,
        tmnxPtpPortOperState,
        tmnxPtpPortState,
        tmnxPtpPortTimeStampRefPoint,
        tmnxPtpPortNeighbors,
        tmnxPtpPortTxPacketRate,
        tmnxPtpPortRxPacketRate,
        tmnxPtpPortSrcMacAddr,
        tmnxPtpPortNeighborClockId,
        tmnxPtpPortNeighborPtpPortNumber,
        tmnxPtpPortNeighborRxPacketRate
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining Ethernet port configuration and
         status for the Precision Timing Protocol (PTP) on version 12.0 of SROS
         series systems."
    ::= { tmnxPtpV12v0Groups 4 }

tmnxPtpPortStatsGroup            OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPortStatAnnounce,
        tmnxPtpPortStatSync,
        tmnxPtpPortStatFollowUp,
        tmnxPtpPortStatDelayRequest,
        tmnxPtpPortStatDelayResponse,
        tmnxPtpPortStatSignaling,
        tmnxPtpPortStatOther,
        tmnxPtpPortStatTimeStampPort,
        tmnxPtpPortStatTimeStampCpm,
        tmnxPtpPortStatDropBadDomain,
        tmnxPtpPortStatDropAltMaster,
        tmnxPtpPortStatDropOutOfSeq,
        tmnxPtpPortStatDropOther,
        tmnxPtpPortStatDropPtsf
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining Ethernet port statistics for the
         Precision Timing Protocol (PTP) on version 12.0 of SROS series
         systems."
    ::= { tmnxPtpV12v0Groups 5 }

tmnxPtpPacketRateStatsGroup      OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPacketRateStatsAnnounce,
        tmnxPtpPacketRateStatsSync,
        tmnxPtpPacketRateStatsFollowUp,
        tmnxPtpPacketRateStatsDelayReq,
        tmnxPtpPacketRateStatsDelayResp,
        tmnxPtpPacketRateStatsOther
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining overall packet rate statistics for
         the Precision Timing Protocol (PTP) on version 12.0 of SROS series
         systems."
    ::= { tmnxPtpV12v0Groups 6 }

tmnxPtpNotifyObjsV12v0Group      OBJECT-GROUP
    OBJECTS     {
        tmnxPtpMasterClockLastTransType,
        tmnxPtpMasterClockLastEthPort,
        tmnxPtpMasterClockLastMacAddress,
        tmnxPtpNotifyPortId
    }
    STATUS      current
    DESCRIPTION
        "The group of objects used in notifications generated by the Precision
         Timing Protocol (PTP) on version 12.0 of SROS series systems."
    ::= { tmnxPtpV12v0Groups 7 }

tmnxPtpNotificationsV12v0Group   NOTIFICATION-GROUP
    NOTIFICATIONS {
        tmnxPtpPortNoTimestamping
    }
    STATUS      current
    DESCRIPTION
        "The group of notifications generated by the Precision Timing Protocol
         (PTP) on version 12.0 of SROS series systems."
    ::= { tmnxPtpV12v0Groups 8 }

tmnxPtpV13v0Groups               OBJECT IDENTIFIER ::= { tmnxPtp1588Groups 5 }

tmnxPtpConfigV13v0Group          OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClockLocalPriority,
        tmnxPtpPortLocalPriority,
        tmnxPtpPortMasterOnly
    }
    STATUS      current
    DESCRIPTION
        "The group of additional objects that maintain system configuration for
         the Precision Timing Protocol (PTP) on version 13.0 of SROS series
         systems."
    ::= { tmnxPtpV13v0Groups 1 }

tmnxPtpV21v0Groups               OBJECT IDENTIFIER ::= { tmnxPtp1588Groups 6 }

tmnxPtpPtsfUnusableV21v0Group    OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClockPtsfUnusabAdminState,
        tmnxPtpPortNeighborPtsfUnusable
    }
    STATUS      current
    DESCRIPTION
        "The group of additional objects that maintain system configuration and
         state for support of Precision Timing Protocol (PTP) Packet Timing
         Signal Fail (PTSF) on version 21.0 of SROS series systems."
    ::= { tmnxPtpV21v0Groups 1 }

tmnxPtpTimeInfoV21v0Group        OBJECT-GROUP
    OBJECTS     {
        tmnxPtpTimeInfoOffsetFromMaster,
        tmnxPtpTimeInfoMeanPathDelay,
        tmnxPtpTimeInfoLastCalc,
        tmnxPtpTimeInfoCurrentUtcOffset,
        tmnxPtpTimeInfoUtcOffsetValid,
        tmnxPtpTimeInfoLeap59,
        tmnxPtpTimeInfoLeap61
    }
    STATUS      current
    DESCRIPTION
        "The group of additional objects that maintain time state for support
         of Precision Timing Protocol on version 21.0 of SROS series systems."
    ::= { tmnxPtpV21v0Groups 2 }

tmnxPtpG8275Dot2Group            OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerMasterBestMaster,
        tmnxPtpPeerMasterDelayAsymmetry,
        tmnxPtpPeerMasterDelayAsymCalc,
        tmnxPtpNeighborBestMaster,
        tmnxPtpNeighborParentClock,
        tmnxPtpNeighborDelayAsymmetry,
        tmnxPtpNeighborDelayAsymCalc
    }
    STATUS      obsolete
    DESCRIPTION
        "The group of additional objects that maintain state for support of the
         G.8275.2 profile on version 21.0 of SROS series systems."
    ::= { tmnxPtpV21v0Groups 3 }

tmnxPtpNotifyObjsV21v0Group      OBJECT-GROUP
    OBJECTS     {
        tmnxPtpNotifyInitialClockType,
        tmnxPtpNotifyInitialProfile
    }
    STATUS      current
    DESCRIPTION
        "The group of objects used in notifications generated by the Precision
         Timing Protocol (PTP) on version 21.0 of SROS series systems."
    ::= { tmnxPtpV21v0Groups 4 }

tmnxPtpNotificationsV21v0Group   NOTIFICATION-GROUP
    NOTIFICATIONS {
        tmnxPtpPortPtsfUnusable,
        tmnxPtpRequiresSystemReboot,
        tmnxPtpRequiresSystemRebootClear
    }
    STATUS      current
    DESCRIPTION
        "The group of notifications generated by the Precision Timing Protocol
         (PTP) on version 21.0 of SROS series systems."
    ::= { tmnxPtpV21v0Groups 5 }

tmnxPtpV22v0Groups               OBJECT IDENTIFIER ::= { tmnxPtp1588Groups 7 }

tmnxPtpConfigV22v0Group          OBJECT-GROUP
    OBJECTS     {
        tmnxPtpAltProfileTableLastChg,
        tmnxPtpAltProfileLastChanged,
        tmnxPtpAltProfileRowStatus,
        tmnxPtpAltProfileAdminState,
        tmnxPtpAltProfileProfile,
        tmnxPtpAltProfileDomain,
        tmnxPtpAltProfileLogAnnoInterval,
        tmnxPtpPortAlternateProfile,
        tmnxPtpClockTxWhileSyncUncertain,
        tmnxPtpTimeInfoSyncUncertain,
        tmnxPtpTimeInfoSyncUncertReason,
        tmnxPtpMasterClockSyncUncertain,
        tmnxPtpPeerAlternateProfile
    }
    STATUS      current
    DESCRIPTION
        "The group of additional objects supporting management of the Precision
         Timing Protocol (PTP) on version 22.0 of SROS series systems."
    ::= { tmnxPtpV22v0Groups 1 }

tmnxPtpTimeRecoveryV22v0Group    OBJECT-GROUP
    OBJECTS     {
        tmnxPtpTimeRecoveryState,
        tmnxPtpTimeRecoveryStateLastChg,
        tmnxPtpClockRecStatsTimeInitial,
        tmnxPtpClockRecStatsTimeAcquire,
        tmnxPtpClockRecStatsTimeLocked,
        tmnxPtpClockRecStatsTimeHoldover,
        tmnxPtpClkPktStatsDropFreerun,
        tmnxPtpPeerPktStatDropFreerun,
        tmnxPtpPortStatDropFreerun,
        tmnxPtpClockStepsRemoved,
        tmnxPtpTimeInfoLastAdjustment,
        tmnxPtpTimeInfoAdjustTimestamp,
        tmnxPtpClockRecStatsTimeSyncHPDV,
        tmnxPtpClockRecStatsTimeDlyHPDV
    }
    STATUS      current
    DESCRIPTION
        "The group of objects that maintain the Precision Timing Protocol (PTP)
         time recovery on version 22.0 of SROS series systems."
    ::= { tmnxPtpV22v0Groups 2 }

tmnxPtpNotificationsV22v0Group   NOTIFICATION-GROUP
    NOTIFICATIONS {
        tmnxPtpTimeRecoveryStateChange
    }
    STATUS      current
    DESCRIPTION
        "The group of notifications generated by the Precision Timing Protocol
         (PTP) on version 22.0 of SROS series systems."
    ::= { tmnxPtpV22v0Groups 3 }

tmnxPtpV23v0Groups               OBJECT IDENTIFIER ::= { tmnxPtp1588Groups 8 }

tmnxPtpGnssPortV23v0Group        OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPortLocalGnssPortNumber,
        tmnxPtpGnssPortState
    }
    STATUS      current
    DESCRIPTION
        "The group of additional objects supporting management of the Precision
         Timing Protocol (PTP) with GNSS on version 23.0 of SROS series
         systems."
    ::= { tmnxPtpV23v0Groups 1 }

tmnxPtpPerfMonV23v0Group         OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPerfMonIndex,
        tmnxPtpPerfMonMeasureValid,
        tmnxPtpPerfMonPeriodComplete,
        tmnxPtpPerfMonStartTime,
        tmnxPtpPerfMonDuration,
        tmnxPtpPerfMonAvgMastSlavDly,
        tmnxPtpPerfMonMinMastSlavDly,
        tmnxPtpPerfMonMaxMastSlavDly,
        tmnxPtpPerfMonSDevMastSlavDly,
        tmnxPtpPerfMonAvgSlavMastDly,
        tmnxPtpPerfMonMinSlavMastDly,
        tmnxPtpPerfMonMaxSlavMastDly,
        tmnxPtpPerfMonSDevSlavMastDly,
        tmnxPtpPerfMonAvgMeanPathDly,
        tmnxPtpPerfMonMinMeanPathDly,
        tmnxPtpPerfMonMaxMeanPathDly,
        tmnxPtpPerfMonSDevMeanPathDly,
        tmnxPtpPerfMonAvgOffsetFrMaster,
        tmnxPtpPerfMonMinOffsetFrMaster,
        tmnxPtpPerfMonMaxOffsetFrMaster,
        tmnxPtpPerfMonSDevOffsetFrMaster
    }
    STATUS      current
    DESCRIPTION
        "The group of additional objects supporting PTP clock performance
         monitoring statistics on version 23.0 of SROS series systems."
    ::= { tmnxPtpV23v0Groups 2 }

tmnxPtpNotifyObjsV23v0Group      OBJECT-GROUP
    OBJECTS     {
        tmnxPtpMasterClockLastPortId
    }
    STATUS      current
    DESCRIPTION
        "The group of objects used in notifications generated by the Precision
         Timing Protocol (PTP) on version 23.0 of SROS series systems."
    ::= { tmnxPtpV23v0Groups 3 }

tmnxPtpMasterClockPortV23v0Group OBJECT-GROUP
    OBJECTS     {
        tmnxPtpMasterClockPortId
    }
    STATUS      current
    DESCRIPTION
        "The group of additional objects supporting description of the master
         clock port on version 23.0 of SROS series systems."
    ::= { tmnxPtpV23v0Groups 4 }

tmnxPtpTimestampingGroupV23v0    OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPortTSCapabilities
    }
    STATUS      current
    DESCRIPTION
        "The group of objects supporting management of ethernet ports with
         Precision Timing Protocol (PTP) for version 23.0 on the Nokia SROS
         series systems."
    ::= { tmnxPtpV23v0Groups 5 }

tmnxPtpTsNotificationsV23v0Group NOTIFICATION-GROUP
    NOTIFICATIONS {
        tmnxPtpPeerNoTxTimestamping,
        tmnxPtpPeerNoTxTimestampingClear,
        tmnxPtpPeerNoRxTimestamping,
        tmnxPtpPeerNoRxTimestampingClear
    }
    STATUS      current
    DESCRIPTION
        "The group of objects used in notifications generated by the Precision
         Timing Protocol (PTP) for peer timestamp changes on version 23.0 of
         SROS series systems."
    ::= { tmnxPtpV23v0Groups 6 }

tmnxPtpAptsBackupSrcGroupV23v0   OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerMasterBackup,
        tmnxPtpNeighborBackup
    }
    STATUS      current
    DESCRIPTION
        "The group of objects to clarify when a port/peer is the APTS backup
         with Precision Timing Protocol (PTP) for version 23.0 on the Nokia
         SROS series systems."
    ::= { tmnxPtpV23v0Groups 7 }

tmnxPtpResetClkRecoveryGrpV23v0  OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClockRecStatsSyncExcFreq,
        tmnxPtpClockRecStatsDlyExcFreq
    }
    STATUS      current
    DESCRIPTION
        "The group of objects used by the Precision Timing Protocol (PTP) for
         recovery algorithm errors in version 23.0 on the Nokia SROS series
         systems."
    ::= { tmnxPtpV23v0Groups 8 }

tmnxPtpV24v0Groups               OBJECT IDENTIFIER ::= { tmnxPtp1588Groups 9 }

tmnxPtp8275MonitoringGroupV24v0  OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerOffsetFrLocal,
        tmnxPtpPeerOffsetFrLocalCalc,
        tmnxPtpNeighborOffsetFrLocal,
        tmnxPtpNeighborOffsetFrLocalCalc
    }
    STATUS      current
    DESCRIPTION
        "The group of objects used by the Precision Timing Protocol (PTP) when
         monitoring a peer or neighboring clock when using profile G.8275.1 or
         G.8275.2 for version 24.0 on the Nokia SROS series systems."
    ::= { tmnxPtpV24v0Groups 1 }

tmnxPtpMonAltMasterGroupV24v0    OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerMonitorReceiver,
        tmnxPtpPeerPerfMonIndex,
        tmnxPtpPeerPerfMonMeasureValid,
        tmnxPtpPeerPerfMonPeriodComplete,
        tmnxPtpPeerPerfMonStartTime,
        tmnxPtpPeerPerfMonDuration,
        tmnxPtpPeerPerfMonAvgMastSlavDly,
        tmnxPtpPeerPerfMonMinMastSlavDly,
        tmnxPtpPeerPerfMonMaxMastSlavDly,
        tmnxPtpPeerPerfMonSDMastSlavDly,
        tmnxPtpPeerPerfMonAvgSlavMastDly,
        tmnxPtpPeerPerfMonMinSlavMastDly,
        tmnxPtpPeerPerfMonMaxSlavMastDly,
        tmnxPtpPeerPerfMonSDSlavMastDly,
        tmnxPtpPeerPerfMonAvgMeanPathDly,
        tmnxPtpPeerPerfMonMinMeanPathDly,
        tmnxPtpPeerPerfMonMaxMeanPathDly,
        tmnxPtpPeerPerfMonSDMeanPathDly,
        tmnxPtpPeerPerfMonAvgOffFrMaster,
        tmnxPtpPeerPerfMonMinOffFrMaster,
        tmnxPtpPeerPerfMonMaxOffFrMaster,
        tmnxPtpPeerPerfMonSDOffFrMaster,
        tmnxPtpPeerMonTimeRecoveryState,
        tmnxPtpPeerMonTimeRecStateLstChg,
        tmnxPtpPeerMonTimeOffsetFrMaster,
        tmnxPtpPeerMonTimeMeanPathDelay,
        tmnxPtpPeerMonTimeLastCalc,
        tmnxPtpPortMonitorReceiver,
        tmnxPtpPortMonitorSender,
        tmnxPtpPortPerfMonIndex,
        tmnxPtpPortPerfMonMeasureValid,
        tmnxPtpPortPerfMonPeriodComplete,
        tmnxPtpPortPerfMonStartTime,
        tmnxPtpPortPerfMonDuration,
        tmnxPtpPortPerfMonAvgMastSlavDly,
        tmnxPtpPortPerfMonMinMastSlavDly,
        tmnxPtpPortPerfMonMaxMastSlavDly,
        tmnxPtpPortPerfMonSDMastSlavDly,
        tmnxPtpPortPerfMonAvgSlavMastDly,
        tmnxPtpPortPerfMonMinSlavMastDly,
        tmnxPtpPortPerfMonMaxSlavMastDly,
        tmnxPtpPortPerfMonSDSlavMastDly,
        tmnxPtpPortPerfMonAvgMeanPathDly,
        tmnxPtpPortPerfMonMinMeanPathDly,
        tmnxPtpPortPerfMonMaxMeanPathDly,
        tmnxPtpPortPerfMonSDMeanPathDly,
        tmnxPtpPortPerfMonAvgOffFrMaster,
        tmnxPtpPortPerfMonMinOffFrMaster,
        tmnxPtpPortPerfMonMaxOffFrMaster,
        tmnxPtpPortPerfMonSDOffFrMaster,
        tmnxPtpNeighborMonTimeRecovState,
        tmnxPtpNeighbMonTimeRecStLastChg,
        tmnxPtpNeighbMonTimeOffFrMaster,
        tmnxPtpNeighbMonTimeMeanPathDlay,
        tmnxPtpNeighborMonTimeLastCalc
    }
    STATUS      current
    DESCRIPTION
        "The group of objects used by the Precision Timing Protocol (PTP) when
         using Monitor Receiver and Monitor Sender for version 24.0 on the
         Nokia SROS series systems."
    ::= { tmnxPtpV24v0Groups 2 }

tmnxPtpG8275Dot2GroupV24v0       OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerMasterBestMaster,
        tmnxPtpNeighborBestMaster,
        tmnxPtpNeighborParentClock
    }
    STATUS      current
    DESCRIPTION
        "The group of objects that maintain state for support of the G.8275.2
         profile on version 24.0 of SROS series systems."
    ::= { tmnxPtpV24v0Groups 3 }

tmnxPtpG8275Dot2ObsoleteGrpV24v0 OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerMasterDelayAsymmetry,
        tmnxPtpPeerMasterDelayAsymCalc,
        tmnxPtpNeighborDelayAsymmetry,
        tmnxPtpNeighborDelayAsymCalc
    }
    STATUS      current
    DESCRIPTION
        "The group of obsoleted objects that maintain state for support of the
         G.8275.2 profile for version 24.0 of SROS series systems."
    ::= { tmnxPtpV24v0Groups 4 }

tmnxPtpPbtPortFilterV24v0Grp     OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPbtPortFilterTableLastChg,
        tmnxPtpPbtPortFilterRowStatus,
        tmnxPtpPbtPortFilterLastChanged,
        tmnxPtpPbtPortFilterAdminState,
        tmnxPtpPbtPortFilterIpv4Addr,
        tmnxPtpPbtPortFilterIpv6Addr
    }
    STATUS      current
    DESCRIPTION
        "The group of objects supporting Port Based Timestamping (PBT) port
         filter added in release 24.0 of Nokia SROS series systems."
    ::= { tmnxPtpV24v0Groups 5 }

tmnxPtpPortDsNotMasterGrp        OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerNotMaster,
        tmnxPtpPortNotMaster
    }
    STATUS      current
    DESCRIPTION
        "The group of objects supporting portDS.notMaster added in release 25.0
         of Nokia SROS series systems."
    ::= { tmnxPtpV24v0Groups 6 }

tmnxPtpV25v0Groups               OBJECT IDENTIFIER ::= { tmnxPtp1588Groups 10 }

tmnxPtpRmonPerfStatsGrp          OBJECT-GROUP
    OBJECTS     {
        tmnxPtpPeerOffsetFrLocalNs,
        tmnxPtpTimeInfoOffFromMasterNs,
        tmnxPtpTimeInfoMeanDelayNs,
        tmnxPtpNeighborOffsetFrLocalNs,
        tmnxPtpNeighbMonTimeOffFrMastNs,
        tmnxPtpNeighbMonTimeMnPathDlyNs,
        tmnxPtpPeerPMonAvgMastSlavDlyNs,
        tmnxPtpPeerPMonMinMastSlavDlyNs,
        tmnxPtpPeerPMonMaxMastSlavDlyNs,
        tmnxPtpPeerPMonSDMastSlavDlyNs,
        tmnxPtpPeerPMonAvgSlavMastDlyNs,
        tmnxPtpPeerPMonMinSlavMastDlyNs,
        tmnxPtpPeerPMonMaxSlavMastDlyNs,
        tmnxPtpPeerPMonSDSlavMastDlyNs,
        tmnxPtpPeerPMonAvgMeanPathDlyNs,
        tmnxPtpPeerPMonMinMeanPathDlyNs,
        tmnxPtpPeerPMonMaxMeanPathDlyNs,
        tmnxPtpPeerPMonSDMeanPathDlyNs,
        tmnxPtpPeerPMonAvgOffFrMasterNs,
        tmnxPtpPeerPMonMinOffFrMasterNs,
        tmnxPtpPeerPMonMaxOffFrMasterNs,
        tmnxPtpPeerPMonSDOffFrMasterNs,
        tmnxPtpPeerMonTimeOffsetFrMastNs,
        tmnxPtpPeerMonTimeMeanPathDlyNs,
        tmnxPtpPMonAvgMastSlavDlyNs,
        tmnxPtpPMonMinMastSlavDlyNs,
        tmnxPtpPMonMaxMastSlavDlyNs,
        tmnxPtpPMonSDevMastSlavDlyNs,
        tmnxPtpPMonAvgSlavMastDlyNs,
        tmnxPtpPMonMinSlavMastDlyNs,
        tmnxPtpPMonMaxSlavMastDlyNs,
        tmnxPtpPMonSDevSlavMastDlyNs,
        tmnxPtpPMonAvgMeanPathDlyNs,
        tmnxPtpPMonMinMeanPathDlyNs,
        tmnxPtpPMonMaxMeanPathDlyNs,
        tmnxPtpPMonSDevMeanPathDlyNs,
        tmnxPtpPMonAvgOffsetFrMasterNs,
        tmnxPtpPMonMinOffsetFrMasterNs,
        tmnxPtpPMonMaxOffsetFrMasterNs,
        tmnxPtpPMonSDevOffsetFrMasterNs,
        tmnxPtpPortPMonAvgMastSlavDlyNs,
        tmnxPtpPortPMonMinMastSlavDlyNs,
        tmnxPtpPortPMonMaxMastSlavDlyNs,
        tmnxPtpPortPMonSDMastSlavDlyNs,
        tmnxPtpPortPMonAvgSlavMastDlyNs,
        tmnxPtpPortPMonMinSlavMastDlyNs,
        tmnxPtpPortPMonMaxSlavMastDlyNs,
        tmnxPtpPortPMonSDSlavMastDlyNs,
        tmnxPtpPortPMonAvgMeanPathDlyNs,
        tmnxPtpPortPMonMinMeanPathDlyNs,
        tmnxPtpPortPMonMaxMeanPathDlyNs,
        tmnxPtpPortPMonSDMeanPathDlyNs,
        tmnxPtpPortPMonAvgOffFrMasterNs,
        tmnxPtpPortPMonMinOffFrMasterNs,
        tmnxPtpPortPMonMaxOffFrMasterNs,
        tmnxPtpPortPMonSDOffFrMasterNs
    }
    STATUS      current
    DESCRIPTION
        "The group of objects supporting RMON of performance statistics added
         in release 25.0 of Nokia SROS series systems."
    ::= { tmnxPtpV25v0Groups 1 }

tmnxPtpPeerDelayGrp              OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClkPktStatsPDelayRequest,
        tmnxPtpClkPktStatsPDelayResponse,
        tmnxPtpClkPktStatsPDlyRespFollUp,
        tmnxPtpPortStatPDelayRequest,
        tmnxPtpPortStatPDelayResponse,
        tmnxPtpPortStatPDlyRespFollowUp,
        tmnxPtpPacketRateStatsPDelayReq,
        tmnxPtpPacketRateStatsPDelayResp,
        tmnxPtpPktRateStatsPDlyRespFolUp
    }
    STATUS      current
    DESCRIPTION
        "The group of objects supporting PTP peer delay added in release 25.0
         of Nokia SROS series systems."
    ::= { tmnxPtpV25v0Groups 2 }

tmnxPtpAnnounceTlvPropagationGrp OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClkPktStatsAnnoAtoiTlv,
        tmnxPtpClkPktStatsAnnoOtherTlv,
        tmnxPtpPortStatAnnoAtoiTlv,
        tmnxPtpPortStatAnnoOtherTlv
    }
    STATUS      current
    DESCRIPTION
        "The group of objects supporting PTP Announce TLV Propagation added in
         release 25.0 of Nokia SROS series systems."
    ::= { tmnxPtpV25v0Groups 3 }

tmnxPtpPortPowerProfilesGrp      OBJECT-GROUP
    OBJECTS     {
        tmnxPtpClockTimeInaccuracy,
        tmnxPtpClockInitTimeInaccuracy,
        tmnxPtpPortMeanLinkDelayNs,
        tmnxPtpPortMeanLinkDelayLastCalc,
        tmnxPtpClkPktStatsAnnoC37238Tlv,
        tmnxPtpPortStatAnnoC37238Tlv,
        tmnxPtpTimeInfoMeanDelayLastCalc
    }
    STATUS      current
    DESCRIPTION
        "The group of objects supporting PTP power profiles added in release
         25.0 of Nokia SROS series systems."
    ::= { tmnxPtpV25v0Groups 4 }

tmnxPtp1588NotifyPrefix          OBJECT IDENTIFIER ::= { tmnxSRNotifyPrefix 74 }

tmnxPtp1588Notifications         OBJECT IDENTIFIER ::= { tmnxPtp1588NotifyPrefix 0 }

tmnxPtpCardNotSupported          NOTIFICATION-TYPE
    OBJECTS     {
        tmnxCpmCardOscillatorType,
        tmnxPtpClockClockType,
        tmnxPtpClockAdminState
    }
    STATUS      current
    DESCRIPTION
        "The tmnxPtpCardNotSupported notification is generated when the
         Precision Timing Protocol (PTP) is enabled on a card that is not
         capable of clock recovery using PTP.

         This notification is triggered when the
         TIMETRA-CHASSIS-MIB::tmnxCpmCardOscillatorType is not 'ocxo (3)', the
         tmnxPtpClockClockType is set to 'ordinarySlave (1)' or 'boundary (3)',
         and tmnxPtpClockAdminState is set to 'inService (2)'.

         [EFFECT] While this event is active, tmnxPtpClockOperState will be
         'outOfService (3)' on the card that this notification was generated.

         [RECOVERY] This event is cleared when a replacement CPM card with an
         Oscillator of type 'ocxo (3)' is inserted.

         tmnxPtpCardNotSupportedClear is generated when this event is cleared."
    ::= { tmnxPtp1588Notifications 1 }

tmnxPtpCardNotSupportedClear     NOTIFICATION-TYPE
    OBJECTS     {
        tmnxCpmCardOscillatorType,
        tmnxPtpClockClockType,
        tmnxPtpClockAdminState
    }
    STATUS      current
    DESCRIPTION
        "The tmnxPtpCardNotSupportedClear notification is generated when the
         tmnxPtpCardNotSupported event is cleared for a particular CPM card."
    ::= { tmnxPtp1588Notifications 2 }

tmnxPtpMasterClockChangedEvent   NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpMasterClockAddressType,
        tmnxPtpMasterClockAddress,
        tmnxPtpMasterClockLastIpAddrType,
        tmnxPtpMasterClockLastIpAddress,
        tmnxPtpMasterClockTransportType,
        tmnxPtpMasterClockEthernetPort,
        tmnxPtpMasterClockMacAddress,
        tmnxPtpMasterClockLastTransType,
        tmnxPtpMasterClockLastEthPort,
        tmnxPtpMasterClockLastMacAddress,
        tmnxPtpMasterClockPortId,
        tmnxPtpMasterClockLastPortId
    }
    STATUS      current
    DESCRIPTION
        "The tmnxPtpMasterClockChangedEvent is generated when the Master/Parent
         Clock for the Precision Timing Protocol (PTP) changes on the system."
    ::= { tmnxPtp1588Notifications 3 }

tmnxPtpClockRecoveryStateChange  NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpClockRecoveryState
    }
    STATUS      current
    DESCRIPTION
        "The tmnxPtpClockRecoveryStateChange is generated when the Precision
         Timing Protocol (PTP) clock recovery state changes on the system."
    ::= { tmnxPtp1588Notifications 4 }

tmnxPtpOutOfResources            NOTIFICATION-TYPE
    OBJECTS     {
        tmnxChassisNotifyChassisId,
        tmnxChassisNotifyHwIndex
    }
    STATUS      current
    DESCRIPTION
        "The tmnxPtpOutOfResources notification is generated when the Precision
         Timing Protocol (PTP) process on the card is out of resources.

         This may occur in either two situations:
         1.  The number of PTP peers exceeds the system limit.
         2.  The total unicast packet rate negotiated with all PTP peers
             has reached the maximum packet rate supported by the system.
             Exceeding this rate would impact the ability of the master clock
             to provide an accurate stream of timing packets to each remote
             slave clock.

         If either of the two situations above occur, the PTP process will
         reject any new unicast packet requests from remote slave PTP peers.

         tmnxPtpOutOfResourcesClear is generated when this event is cleared."
    ::= { tmnxPtp1588Notifications 5 }

tmnxPtpOutOfResourcesClear       NOTIFICATION-TYPE
    OBJECTS     {
        tmnxChassisNotifyChassisId,
        tmnxChassisNotifyHwIndex
    }
    STATUS      current
    DESCRIPTION
        "The tmnxPtpOutOfResourcesClear notification is generated when both the
         total number of active PTP peers and the total negotiated unicast
         packet rate goes below 90% of the system limit."
    ::= { tmnxPtp1588Notifications 6 }

tmnxPtpDynamicChange             NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpNotifyRowPointer,
        tmnxPtpNotifyRowDescription
    }
    STATUS      current
    DESCRIPTION
        "The tmnxPtpDynamicChange notification is generated when an object
         dynamically (i.e. not by configuration) changes state. This
         notification identifies the affected row."
    ::= { tmnxPtp1588Notifications 7 }

tmnxPtpPortNoTimestamping        NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpNotifyPortId
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The tmnxPtpPortNoTimestamping notification is generated when a
         PTP port is created and the associated Ethernet port does not support
         IEEE 1588-2008 port-based timestamping.

         [EFFECT] The PTP port is created but the performance may be degraded
         due to timestamping at the CPM. For optimal performance, ensure PTP is
         enabled on ports with IEEE 1588-2008 port-based timestamping
         capability.

         [RECOVERY] The Ethernet port used for the PTP port should be changed
         to a port on an MDA that supports IEEE 1588-2008 port-based
         timestamping."
    ::= { tmnxPtp1588Notifications 8 }

tmnxPtpPortPtsfUnusable          NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpPortNeighborClockId,
        tmnxPtpPortNeighborPtpPortNumber
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The PTP process detected excessive noise between the local
         port and the indicated external Master port.

         [EFFECT] Any Announce messages received from the indicated neighbor
         shall be excluded from the BMCA algorithm until this condition is
         cleared.

         [RECOVERY] The cause of the excessive noise should be identified and
         corrected.  Once resolved, the clear command for this neighbor port must
         be executed to clear the condition and allow Announces from this neighbor
         to be considered in the BMCA."
    ::= { tmnxPtp1588Notifications 9 }

tmnxPtpRequiresSystemReboot      NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpClockClockType,
        tmnxPtpClockProfile,
        tmnxPtpNotifyInitialClockType,
        tmnxPtpNotifyInitialProfile
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The PTP configuration has changed since system initialization.
         On some SROS series systems, changing the tmnxPtpClockClockType or
         tmnxPtpClockProfile requires a system reboot to take effect.

         [EFFECT] PTP remains operationally out of service, even though it has
         been administratively enabled.

         [RECOVERY] Reboot the system, or change the clock configuration to the
         original configuration."
    ::= { tmnxPtp1588Notifications 10 }

tmnxPtpRequiresSystemRebootClear NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpClockClockType,
        tmnxPtpClockProfile
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The system generates the tmnxPtpRequiresSystemRebootClear
         notification when the user changes the PTP configuration to match the
         initial configuration.

         [EFFECT] PTP does not require a system reboot to become operationally
         in service.

         [RECOVERY] There is no recovery required for this notification."
    ::= { tmnxPtp1588Notifications 11 }

tmnxPtpTimeRecoveryStateChange   NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpTimeRecoveryState
    }
    STATUS      current
    DESCRIPTION
        "The tmnxPtpTimeRecoveryStateChange is generated when the Precision
         Timing Protocol (PTP) time recovery state changes on the system."
    ::= { tmnxPtp1588Notifications 12 }

tmnxPtpPeerNoTxTimestamping      NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpPeerTxTimeStampPoint
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The tmnxPtpPeerNoTxTimestamping notification is generated on
         initial exchange of PTP event messages with a peer and whenever the
         location of the timestamping of the event messages transmitted to the
         peer changes, and the location is 'cpm (2)'.

         [EFFECT] When the timestamping location is 'cpm (2)', the accuracy of
         the PTP event messages is less then if the messages are timestamped at
         the port and performance will be negatively impacted.

         [RECOVERY] It may be necessary to check the capabilities of the port
         being used for the messages and/or to modify routing to direct the
         messages to an alternate port. Some reasons for a port to not perform
         timestamping include: not configured, port not configured for
         ptp-hw-assist, port does not support ptp-hw-assist."
    ::= { tmnxPtp1588Notifications 13 }

tmnxPtpPeerNoTxTimestampingClear NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpPeerTxTimeStampPoint
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The tmnxPtpPeerNoTxTimestampingClear notification is generated
         when the conditions that caused the tmnxPtpPeerNoTxTimestamping event
         have been resolved and result in the location of the timestamping of
         the event messages transmitted to the peer being changed from 'cpm
         (2)' to 'port (1)'.

         [EFFECT] When the timestamping location is the 'port (2)', the
         accuracy of the PTP event messages is optimal.

         [RECOVERY] No recovery is required for this notification."
    ::= { tmnxPtp1588Notifications 14 }

tmnxPtpPeerNoRxTimestamping      NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpPeerRxTimeStampPoint
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The tmnxPtpPeerNoRxTimestamping notification is generated on
         initial exchange of PTP event messages with a peer and whenever the
         location of the timestamping of the event messages received from the
         peer changes, and the location is 'cpm (2)'.

         [EFFECT] When the timestamping location is 'cpm (2)', the accuracy of
         the PTP event messages is less then if the messages are timestamped at
         the port and performance will be negatively impacted.

         [RECOVERY] It may be necessary to check the capabilities of the port
         being used for the messages and/or to modify routing to direct the
         messages to an alternate port. Some reasons for a port to not perform
         timestamping include: not configured, port not configured for
         ptp-hw-assist, port does not support ptp-hw-assist."
    ::= { tmnxPtp1588Notifications 15 }

tmnxPtpPeerNoRxTimestampingClear NOTIFICATION-TYPE
    OBJECTS     {
        tmnxPtpPeerRxTimeStampPoint
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The tmnxPtpPeerNoRxTimestampingClear notification is generated
         when the conditions that caused the tmnxPtpPeerNoRxTimestamping event
         have been resolved and result in the location of the timestamping of
         the event messages received from the peer being changed from 'cpm (2)'
         to 'port (1)'.

         [EFFECT] When the timestamping location is the 'port (2)', the
         accuracy of the PTP event messages is optimal.

         [RECOVERY] No recovery is required for this notification."
    ::= { tmnxPtp1588Notifications 16 }

END
