TROPIC-IEEE8023br-MIB DEFINITIONS ::= BEGIN

-- (c) Copyright 2018 Nokia Networks.  All rights reserved.
-- This software is the confidential and proprietary property of
-- Nokia and may only be used in accordance with the terms of the
-- license agreement provided with this software.

IMPORTS
      MODULE-COMPLIANCE, OBJECT-GROUP         FROM SNMPv2-CONF
      MODULE-IDENTITY, OBJECT-TYPE,
      Integer32, Counter64, Unsigned32        FROM SNMPv2-SMI
      TruthValue                              FROM SNMPv2-TC
      TmnxPortID                              FROM TN-TC-MIB
      tnPortModules,tnIEEE8023brMIB           FROM TROPIC-GLOBAL-REG;

  tnIEEE8023brMibModule MODULE-IDENTITY
      LAST-UPDATED    "201608150000Z"
      ORGANIZATION    "Nokia"
      CONTACT-INFO    "Nokia
                       Attn: Linhai Qiu

                       Phone: +86 21 38433293
                       Email: michael.qiu@nokia-sbell.com"

      DESCRIPTION "Initial version, IEEE 802.3br-2016 MIB definition."

      REVISION    "201608150000Z" -- August 15, 2016
      DESCRIPTION "Initial version published as part of IEEE Std 802.1Qbu."

      ::= { tnPortModules 9 }

-------------------------------------------------------------------------------
-- subtrees in the Preemption MIB
-------------------------------------------------------------------------------
  tnIEEE8023brEquipmentObjectsNotifications     OBJECT IDENTIFIER ::= { tnIEEE8023brMIB 0 }
  tnIEEE8023brObjects                           OBJECT IDENTIFIER ::= { tnIEEE8023brMIB 1 }
  tnIEEE8023brObjectsConformance                OBJECT IDENTIFIER ::= { tnIEEE8023brMIB 2 }
  ieee8023brCompliances                         OBJECT IDENTIFIER ::= { tnIEEE8023brObjectsConformance 1 }
  ieee8023brGroups                              OBJECT IDENTIFIER ::= { tnIEEE8023brObjectsConformance 2 }
  tnIEEE8023brObjectsParameters                 OBJECT IDENTIFIER ::= { tnIEEE8023brObjects 1 }

-------------------------------------------------------------------------------
-- lldpXdot3LocSystemsGroupTable
-------------------------------------------------------------------------------
    lldpXdot3LocSystemsGroupTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF LldpXdot3LocSystemsGroupEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "LLDP Local System Group."
        ::= { tnIEEE8023brObjectsParameters 1 }

    lldpXdot3LocSystemsGroupEntry OBJECT-TYPE
        SYNTAX         LldpXdot3LocSystemsGroupEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Entry in lldpXdot3LocSystemsGroupTable"
        INDEX { aLldpXdot3LocPortID }
        ::= { lldpXdot3LocSystemsGroupTable 1 }

    LldpXdot3LocSystemsGroupEntry ::=
        SEQUENCE {
            aLldpXdot3LocPortID               TmnxPortID,
            aLldpXdot3LocPreemptSupported     TruthValue,
            aLldpXdot3LocPreemptEnabled       TruthValue,
            aLldpXdot3LocPreemptActive        TruthValue,
            aLldpXdot3LocAddFragSize          TruthValue
        }

    aLldpXdot3LocPortID OBJECT-TYPE
        SYNTAX         TmnxPortID
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "aLldpXdot3LocPortID is an index into this table.  It
                        maps this port to its entry in the mib-2 interfaces
                        table."
        ::= { lldpXdot3LocSystemsGroupEntry 1 }

    aLldpXdot3LocPreemptSupported OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A read-only Boolean value used to indicate whether the
                        given port (associated with the local System) supports
                        the preemption capability."
        ::= { lldpXdot3LocSystemsGroupEntry 2 }

    aLldpXdot3LocPreemptEnabled OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A read-only Boolean value used to indicate whether the
                        preemption capability is enabled on the given port
                        associated with the local System."
        ::= { lldpXdot3LocSystemsGroupEntry 3 }

    aLldpXdot3LocPreemptActive OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A read-only Boolean value used to indicate whether the
                        preemption capability is active on the given port
                        associated with the local System."
        ::= { lldpXdot3LocSystemsGroupEntry 4 }

    aLldpXdot3LocAddFragSize OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "A 2-bit integer value used to indicate the minimum size
                        of non-final fragments supported by the receiver on the
                        given port associated with the local System.  This value
                        is expressed in units of 64 octets of additional fragment
                        length.  The minimum non-final fragment size is
                        (aLldpXdot3LocAddFragSize+1) x 64 octets."
        ::= { lldpXdot3LocSystemsGroupEntry 5 }

-------------------------------------------------------------------------------
-- lldpXdot3RemSystemsGroupTable
-------------------------------------------------------------------------------
    lldpXdot3RemSystemsGroupTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF LldpXdot3RemSystemsGroupEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "LLDP Remote System Group."
        ::= { tnIEEE8023brObjectsParameters 2 }

    lldpXdot3RemSystemsGroupEntry OBJECT-TYPE
        SYNTAX         LldpXdot3RemSystemsGroupEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Entry in lldpXdot3RemSystemsGroupTable"
        INDEX { aLldpXdot3RemPortID }
        ::= { lldpXdot3RemSystemsGroupTable 1 }

    LldpXdot3RemSystemsGroupEntry ::=
        SEQUENCE {
            aLldpXdot3RemPortID               TmnxPortID,
            aLldpXdot3RemPreemptSupported     TruthValue,
            aLldpXdot3RemPreemptEnabled       TruthValue,
            aLldpXdot3RemPreemptActive        TruthValue,
            aLldpXdot3RemAddFragSize          TruthValue
        }

    aLldpXdot3RemPortID OBJECT-TYPE
        SYNTAX         TmnxPortID
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "aLldpXdot3RemPortID is an index into this table.  It
                        maps this port to its entry in the mib-2 interfaces
                        table."
        ::= { lldpXdot3RemSystemsGroupEntry 1 }

    aLldpXdot3RemPreemptSupported OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A read-only Boolean value used to indicate whether the
                        given port (associated with the remote system) supports
                        the preemption capability."
        ::= { lldpXdot3RemSystemsGroupEntry 2 }

    aLldpXdot3RemPreemptEnabled OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A read-only Boolean value used to indicate whether the
                        preemption capability is enabled on the given port
                        associated with the remote system."
        ::= { lldpXdot3RemSystemsGroupEntry 3 }

    aLldpXdot3RemPreemptActive OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A read-only Boolean value used to indicate whether the
                        preemption capability is active on the given port
                        associated with the remote system."
        ::= { lldpXdot3RemSystemsGroupEntry 4 }

    aLldpXdot3RemAddFragSize OBJECT-TYPE
        SYNTAX         TruthValue
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A 2-bit integer value used to indicate, in units of 64
                        octets, the minimum number of octets over 64 octets
                        required in non-final fragments by the receiver on the
                        given port associated with the remote system.  The
                        minimum non-final fragment size is
                        (aLldpXdot3LocAddFragSize+1)x 64 octets."
        ::= { lldpXdot3RemSystemsGroupEntry 5 }

-------------------------------------------------------------------------------
-- MACMergeEntityTable
-------------------------------------------------------------------------------
    macMergeEntityTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF MacMergeEntityEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "MACMergeEntity managed object."
        ::= { tnIEEE8023brObjectsParameters 3 }

    macMergeEntityEntry OBJECT-TYPE
        SYNTAX         MacMergeEntityEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Entry in MACMergeEntityTable"
        INDEX { aMACMergePortID }
        ::= { macMergeEntityTable 1 }

    MacMergeEntityEntry ::=
        SEQUENCE {
            aMACMergePortID                 TmnxPortID,
            aMACMergeSupport                INTEGER,
            aMACMergeStatusVerify           INTEGER,
            aMACMergeEnableTx               INTEGER,
            aMACMergeVerifyDisableTx        INTEGER,
            aMACMergeStatusTx               INTEGER,
            aMACMergeVerifyTime             Integer32,
            aMACMergeAddFragSize            Integer32,
            aMACMergeFrameAssErrorCount     Counter64,
            aMACMergeFrameSmdErrorCount     Counter64,
            aMACMergeFrameAssOkCount        Counter64,
            aMACMergeFragCountRx            Counter64,
            aMACMergeFragCountTx            Counter64,
            aMACMergeHoldCount              Counter64,
            aMACMergeAcctPolicyId           Unsigned32
        }

    aMACMergePortID OBJECT-TYPE
        SYNTAX         TmnxPortID
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "aMACMergePortID is an index into this table.  It maps
                        this port to its entry in the mib-2 interfaces table."
        ::= { macMergeEntityEntry 1 }

    aMACMergeSupport OBJECT-TYPE
        SYNTAX         INTEGER {
                         true(1),
                         false(2)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "This attribute indicates (when accessed via a GET
                        operation) whether the given device supports a MAC
                        Merge sublayer.  The SET operation shall have no
                        effect on a device."
        ::= { macMergeEntityEntry 2 }

    aMACMergeStatusVerify OBJECT-TYPE
        SYNTAX         INTEGER {
                         unknown(0),
                         initial(1),
                         verifying(2),
                         succeeded(3),
                         failed(4),
                         disabled(5)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "This attribute indicates (when accessed via a GET
                        operation) the status of the MAC Merge sublayer
                        verification on the given device.  The SET operation
                        shall have no effect on a device:
                          unknown:   Verification status is unknown.
                          initial:   The Verify State diagram (Figure 99¨C8)
                                     is in the state, INIT_VERIFICATION.
                          verifying: The Verify State diagram is in the state
                                     VERIFICATION_IDLE, SEND_VERIFY or
                                     WAIT_FOR_RESPONSE.
                          succeeded: Indicates that the Verify State diagram
                                     is in the state VERIFIED.
                          failed:    The Verify State diagram is in the state
                                     VERIFY_FAIL.
                          disabled:  Verification of preemption operation is
                                     disabled."
        ::= { macMergeEntityEntry 3 }

    aMACMergeEnableTx OBJECT-TYPE
        SYNTAX         INTEGER {
                         true(1),
                         false(2)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "This attribute indicates (when accessed via a GET
                        operation) the status of the MAC Merge sublayer on the
                        given device in the transmit direction.  The status of
                        the MAC Merge sublayer may be modified to the indicated
                        value via a SET operation.  This attribute maps to the
                        variable pEnable;"
        ::= { macMergeEntityEntry 4 }

    aMACMergeVerifyDisableTx OBJECT-TYPE
        SYNTAX         INTEGER {
                         true(1),
                         false(2)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "This attribute indicates (when accessed via a GET
                        operation) the status of the Verify function of MAC
                        Merge sublayer on the given device in the transmit
                        direction.  The status of the Verify function may be
                        modified to the indicated value via a SET operation.
                        This attribute maps to the variable disableVerify."
        ::= { macMergeEntityEntry 5 }

    aMACMergeStatusTx OBJECT-TYPE
        SYNTAX         INTEGER {
                         unknown(0),
                         inactive(1),
                         active(2)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "This attribute indicates (when accessed via a GET
                        operation) the status of the MAC Merge sublayer on
                        the given device in the transmit direction.  The SET
                        operation shall have no effect on a device.  This
                        attribute maps to the variable preempt;
                          unknown:  Transmit preemption status is unknown
                          inactive: Transmit preemption is inactive
                          active:   Transmit preemption is active."
        ::= { macMergeEntityEntry 6 }

    aMACMergeVerifyTime OBJECT-TYPE
        SYNTAX         Integer32 (1..128)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The value of this attribute defines the nominal wait
                        time between verification attempts in milliseconds.
                        Valid range is 1 to 128 inclusive.  The default value
                        is 10.  This attribute maps to the variable verifyTime"
        DEFVAL         { 10 }
        ::= { macMergeEntityEntry 7 }

    aMACMergeAddFragSize OBJECT-TYPE
        SYNTAX         Integer32 (0..3)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "A 2-bit integer value used to indicate the value of
                        addFragSize variable used by the Transmit Processing
                        State Diagram."
        ::= { macMergeEntityEntry 8 }

    aMACMergeFrameAssErrorCount OBJECT-TYPE
        SYNTAX         Counter64
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A count of MAC frames with reassembly errors.  The counter
                        is incremented by one every time the ASSEMBLY_ERROR state
                        in the Receive Processing State Diagram is entered.  This
                        counter has a maximum increment rate of 160 000 counts per
                        second at 100 Mb/s"
        ::= { macMergeEntityEntry 9 }

    aMACMergeFrameSmdErrorCount OBJECT-TYPE
        SYNTAX         Counter64
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A count of received MAC frames / MAC frame fragments rejected
                        due to unknown SMD value or arriving with an SMD-C when no
                        frame is in progress.  The counter is incremented by one
                        every time the BAD_FRAG state in the Receive Processing State
                        Diagram is entered and every time the WAIT_FOR_DV_FALSE state
                        is entered due to the invocation of the SMD_DECODE function
                        returning the value 'ERR'.  This counter has a maximum
                        increment rate of 160 000 counts per second at 100 Mb/s."
        ::= { macMergeEntityEntry 10 }

    aMACMergeFrameAssOkCount OBJECT-TYPE
        SYNTAX         Counter64
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A count of MAC frames that were successfully reassembled
                        and delivered to MAC.  The counter is incremented by one
                        every time the FRAME_COMPLETE state in the Receive Processing
                        state diagram (see Figure 99¨C6) is entered if the state
                        CHECK_FOR_RESUME was previously entered while processing the
                        packet.  This counter has a maximum increment rate of 160 000
                        counts per second at 100 Mb/s."
        ::= { macMergeEntityEntry 11 }

    aMACMergeFragCountRx OBJECT-TYPE
        SYNTAX         Counter64
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A count of the number of additional mPackets received due
                        to preemption.  The counter is incremented by one every time
                        the state CHECK_FRAG_CNT in the Receive Processing State
                        Diagram (see Figure 99¨C6) is entered.  This counter has a
                        maximum increment rate of 160 000 counts per second at 100
                        Mb/s."
        ::= { macMergeEntityEntry 12 }

    aMACMergeFragCountTx OBJECT-TYPE
        SYNTAX         Counter64
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A count of the number of additional mPackets transmitted due
                        to preemption.  This counter is incremented by one every
                        time the SEND_SMD_C state in the Transmit Processing State
                        Diagram (see Figure 99¨C5) is entered.  This counter has a
                        maximum increment rate of 160 000 counts per second at 100
                        Mb/s."
        ::= { macMergeEntityEntry 13 }

    aMACMergeHoldCount OBJECT-TYPE
        SYNTAX         Counter64
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "A count of the number of times the variable hold (see
                        99.4.7.3) transitions from FALSE to TRUE.  This counter
                        has a maximum increment rate of 160 000 counts per
                        second at 100 Mb/s."
        ::= { macMergeEntityEntry 14 }

    aMACMergeAcctPolicyId OBJECT-TYPE
        SYNTAX         Unsigned32 (0..99)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The value of the accounting policy must be defined
                        prior to associating the policy with the mmac port.
                        Accounting policies can only be associated with network
                        ports.  A non-zero value indicates the tmnxLogApPolicyId
                        index identifying the policy entry in the tmnxLogApTable
                        from the TIMETRA-LOG-MIB which is associated with this
                        port.  A zero value indicates that there is no accounting
                        policy associated with this port"
        DEFVAL         { 0 }
        ::= { macMergeEntityEntry 15 }

-------------------------------------------------------------------------------
-- units of conformance
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- the ieee803brGroup group
-------------------------------------------------------------------------------
    ieee8023brGroup OBJECT-GROUP
        OBJECTS {
            aLldpXdot3LocPreemptSupported,
            aLldpXdot3LocPreemptEnabled,
            aLldpXdot3LocPreemptActive,
            aLldpXdot3LocAddFragSize,
            aLldpXdot3RemPreemptSupported,
            aLldpXdot3RemPreemptEnabled,
            aLldpXdot3RemPreemptActive,
            aLldpXdot3RemAddFragSize,
            aMACMergeSupport,
            aMACMergeStatusVerify,
            aMACMergeEnableTx,
            aMACMergeVerifyDisableTx,
            aMACMergeStatusTx,
            aMACMergeVerifyTime,
            aMACMergeAddFragSize,
            aMACMergeFrameAssErrorCount,
            aMACMergeFrameSmdErrorCount,
            aMACMergeFrameAssOkCount,
            aMACMergeFragCountRx,
            aMACMergeFragCountTx,
            aMACMergeHoldCount,
            aMACMergeAcctPolicyId
        }
        STATUS         current
        DESCRIPTION    "Objects that allow management of IEEE 802.3br."
        ::= { ieee8023brGroups 1 }

-------------------------------------------------------------------------------
-- compliance statements
-------------------------------------------------------------------------------
    ieee8023brCompliance MODULE-COMPLIANCE
        STATUS         current
        DESCRIPTION    "The compliance statement for devices supporting IEEE 802.3br."
        MODULE -- this module
        MANDATORY-GROUPS {
            ieee8023brGroup
        }
        ::= { ieee8023brCompliances 1 }

END -- DEFINITION OF TROPIC-IEEE8023br-MIB
