TROPIC-ROE-MIB DEFINITIONS ::= BEGIN

-- (c) Copyright 2019 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
      OBJECT-GROUP,
      MODULE-COMPLIANCE                       FROM SNMPv2-CONF
      Integer32, Unsigned32,
      MODULE-IDENTITY, OBJECT-TYPE            FROM SNMPv2-SMI
      TEXTUAL-CONVENTION,
      RowStatus, MacAddress                   FROM SNMPv2-TC
      SnmpAdminString                         FROM SNMP-FRAMEWORK-MIB
      TmnxPortID, TItemDescription            FROM TN-TC-MIB
      tnPortModules, tnRoeMib                 FROM TROPIC-GLOBAL-REG;

tnRoeMibModule MODULE-IDENTITY
      LAST-UPDATED    "201808241200Z"
      ORGANIZATION    "Nokia"
      CONTACT-INFO    "Nokia
                       Attn: Linhai Qiu

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

      DESCRIPTION "The ROE Managed Solution MIB."

      REVISION    "201808241200Z"
      DESCRIPTION "Initial version."

      ::= { tnPortModules 10 }

-------------------------------------------------------------------------------
-- subtrees in the RoE MIB
-------------------------------------------------------------------------------
  tnRoeNotifications     OBJECT IDENTIFIER ::= { tnRoeMib 0 }
  tnRoeObjects           OBJECT IDENTIFIER ::= { tnRoeMib 1 }
  tnRoeEConf             OBJECT IDENTIFIER ::= { tnRoeMib 2 }
  tnRoeGroups            OBJECT IDENTIFIER ::= { tnRoeEConf 1 }
  tnEoeCompliances       OBJECT IDENTIFIER ::= { tnRoeEConf 2 }
  tnRoeParameters        OBJECT IDENTIFIER ::= { tnRoeObjects 1 }

-------------------------------------------------------------------------------
-- Type Definitions
-------------------------------------------------------------------------------
    TropicRoeCardType ::= TEXTUAL-CONVENTION
        STATUS         current
        DESCRIPTION    "Card Type for TPS products."
        SYNTAX         INTEGER {
                         t24PS1(1),
                         t24PS2(2),
                         t12PS(3)
                       }

-------------------------------------------------------------------------------
-- Roe Sequence Number Table
-------------------------------------------------------------------------------
    tnRoeSeqProfTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF TnRoeSeqProfEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Roe sequence number table."
        ::= { tnRoeParameters 1 }

    tnRoeSeqProfEntry OBJECT-TYPE
        SYNTAX         TnRoeSeqProfEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Entry in tnRoeSeqTable table.  The seq-num-profile is
                        used to specifie the composition of the sequence number
                        field in RoE header for the RoE packets.  By default,
                        the seq-num-profile with seq-num-prof-id = 1 exist,
                        which is a system-defined profile applied to RoE mapper
                        and RoE demapper whe no other profile is explicitly
                        specified.  The seq-num-profile 1 has seq-num-type =
                        frmr-num.  The system seq-num-profile can be modified
                        but not deleted.  A profile cannot be modified until all
                        RoE mapper and demappers using this profile are shutdown.
                        A profile cannot be deleted until it is removed from all
                        RoE mapper and demappers where it is applied."
        INDEX { tnRoeSeqProfCardType,
                tnRoeSeqProfPortID,
                tnRoeSeqProfID }
        ::= { tnRoeSeqProfTable 1 }

    TnRoeSeqProfEntry ::=
        SEQUENCE {
            tnRoeSeqProfCardType        TropicRoeCardType,
            tnRoeSeqProfPortID          TmnxPortID,
            tnRoeSeqProfID              Integer32,
            tnRoeSeqProfDescription     TItemDescription,
            tnRoeSeqProfType            INTEGER,
            tnRoeSeqProfPMax            Unsigned32,
            tnRoeSeqProfPIncProp        INTEGER,
            tnRoeSeqProfPInc            Unsigned32,
            tnRoeSeqProfQMax            Unsigned32,
            tnRoeSeqProfQIncProp        INTEGER,
            tnRoeSeqProfQInc            Unsigned32,
            tnRoeSeqProfRowStatus       RowStatus
        }

    tnRoeSeqProfCardType OBJECT-TYPE
        SYNTAX         TropicRoeCardType
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "The card type for TPS."
        ::= { tnRoeSeqProfEntry 1 }

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

    tnRoeSeqProfID OBJECT-TYPE
        SYNTAX         Integer32 (1..80)
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "The sequency number profile id, unique within a roe
                        entity."
        ::= { tnRoeSeqProfEntry 3 }

    tnRoeSeqProfDescription OBJECT-TYPE
        SYNTAX         TItemDescription
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The description character string.  Strings can be up to
                        80 characters long composed of printable, 7-bit ASCII
                        characters.  If the string contains special characters
                        (#, $, spaces, and so on), the entire string must be
                        enclosed within double quotes."
        ::= { tnRoeSeqProfEntry 4 }

    tnRoeSeqProfType OBJECT-TYPE
        SYNTAX         INTEGER {
                         frmrnum(0),
                         seqnum(1)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The type of the composition of sequence number file in
                        RoE header.
                          frmrNum - Use 28-bit (BFN,HFN,bFN) in the Sequence
                                    number field.
                                    Bit 0-4 are zeroes.
                                    Bit 5-16 represents BFN.
                                    Bit 17-24 represents HFN.
                                    Bit 25-31 represents Basic Frame Number.
                          seqNum  - Use the compostion of 1914.3 Sequence Numbers.
                                    The size of p-counter and q-counter are defined
                                    in sub-commands."
        DEFVAL         { frmrnum }
        ::= { tnRoeSeqProfEntry 5 }

    tnRoeSeqProfPMax OBJECT-TYPE
        SYNTAX         Unsigned32 (0..'ffffffff'h)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Applicable only when seq-num-type = frmrnum.  It configures
                        the maximum numerical value of the p-counter field."
        DEFVAL         { 'ffffffff'h }
        ::= { tnRoeSeqProfEntry 6 }

    tnRoeSeqProfPIncProp OBJECT-TYPE
        SYNTAX         INTEGER {
                         fixed(0),
                         payloadsize(1)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Applicable only when seq-num-type = frmrnum.  It configures
                        the method to increment the p-counter."
        DEFVAL         { 0 }
        ::= { tnRoeSeqProfEntry 7 }

    tnRoeSeqProfPInc OBJECT-TYPE
        SYNTAX         Unsigned32 (1..'ffffffff'h)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Applicable only when seq-num-type = frmrnum.  It configures
                        the increment value of p-counter on every sent packet."
        DEFVAL         { 1 }
        ::= { tnRoeSeqProfEntry 8 }

    tnRoeSeqProfQMax OBJECT-TYPE
        SYNTAX         Unsigned32 (0..'ffffffff'h)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Applicable only when seq-num-type = frmrnum.  It configures
                        the maximum numerical value of the q-counter field."
        DEFVAL         { 0 }
        ::= { tnRoeSeqProfEntry 9 }

    tnRoeSeqProfQIncProp OBJECT-TYPE
        SYNTAX         INTEGER {
                         fixed(0),
                         payloadsize(1)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Applicable only when seq-num-type = frmrnum.  This command
                        enables to increment the q-counter."
        DEFVAL         { 0 }
        ::= { tnRoeSeqProfEntry 10 }

    tnRoeSeqProfQInc OBJECT-TYPE
        SYNTAX         Unsigned32 (1..'ffffffff'h)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Applicable only when seq-num-type = frmrnum.  This command
                        enables to increment the q-counter."
        DEFVAL         { 1 }
        ::= { tnRoeSeqProfEntry 11 }

    tnRoeSeqProfRowStatus OBJECT-TYPE
        SYNTAX         RowStatus
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The value of tnRoeEthlinkRowStatus defines the status
                        of the row."
        ::= { tnRoeSeqProfEntry 12 }

-------------------------------------------------------------------------------
-- Roe Table
-------------------------------------------------------------------------------
    tnRoeTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF TnRoeEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Roe table."
        ::= { tnRoeParameters 2 }

    tnRoeEntry OBJECT-TYPE
        SYNTAX         TnRoeEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Entry in Roe table.  The roe entity is automatically
                        created when the client interface of CPRI/OBSAI type
                        with the mapping type = tunneling / structure-agnostic
                        / structure-aware is created.  And it has one-to-one
                        mapping with CPRI/OBSAI interface.  When the corresponding
                        interface entity is deleted, the roe entity is deleted
                        automatically.  The roe entity is automatically
                        administratively up when the corresponding interface
                        entity is administratively up.The roe entity is
                        automatically administratively down when the corresponding
                        interface entity is administratively down."
        INDEX { tnRoeCardType,
                tnRoePortID }
        ::= { tnRoeTable 1 }

    TnRoeEntry ::=
        SEQUENCE {
            tnRoeCardType            TropicRoeCardType,
            tnRoePortID              TmnxPortID,
            tnRoeDescription         TItemDescription,
            tnRoeOrderInfoType       INTEGER,
            tnRoePresTimeOffset      Integer32,
            tnRoeCpriTxGenOffset     OCTET STRING,
            tnRoeAutoUponChange      INTEGER,
            tnRoeSeqNumProfID        Integer32,
            tnRoeInitialTxBFN        Integer32,
            tnRoeInitialTxHFN        Integer32,
            tnRoeEncapMode           INTEGER,
            tnRoeAdminState          INTEGER,
            tnRoePmonPolicy          Integer32,
            tnRoeRowStatus           RowStatus
        }

    tnRoeCardType OBJECT-TYPE
        SYNTAX         TropicRoeCardType
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "The card type for TPS."
        ::= { tnRoeEntry 1 }

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

    tnRoeDescription OBJECT-TYPE
        SYNTAX         TItemDescription
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The description character string.  Strings can be up to
                        80 characters long composed of printable, 7-bit ASCII
                        characters.  If the string contains special characters
                        (#, $, spaces, and so on), the entire string must be
                        enclosed within double quotes."
        ::= { tnRoeEntry 3 }

    tnRoeOrderInfoType OBJECT-TYPE
        SYNTAX         INTEGER {
                         prestime(0),
                         seqnum(1)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The orderInfo field in RoE header.  This parameter can
                        be modified only when roe is shutdown.
                          prestime - Presentation Time filled in OrderInfo field
                                     of RoE header.
                          seqnum   - Sequence Number filled in OrderInfo field
                                     of RoE header."
        DEFVAL         { 0 }
        ::= { tnRoeEntry 4 }

    tnRoePresTimeOffset OBJECT-TYPE
        SYNTAX         Integer32 (0..1677721600)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The time in the unit of 1/100 of nanosecond.  0 is a
                        specical value, which means the offset is automatically
                        adjusted by the RoE mapper based on the latency
                        measurement."
        DEFVAL         { 0 }
        ::= { tnRoeEntry 5 }

    tnRoeCpriTxGenOffset OBJECT-TYPE
        SYNTAX         OCTET STRING (SIZE (7))
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The time in the unit of 1/100 of nanosecond.
                        Applicable only when order-info-type is set to seq-num.
                        Specifies the offset time to start the transmission of
                        CPRI frames at CPRI egress.  CPRI egress starts to send
                        CPRI frame when the global reference time is greater than
                        or equal to CPRI Tx gen offset.  cpri-tx-gen-offset is
                        aligned to the time epoc of the time source of this node.
                        This parameter can be modified only when roe is shutdown."
        ::= { tnRoeEntry 6 }

    tnRoeAutoUponChange OBJECT-TYPE
        SYNTAX         INTEGER {
                         disable(0),
                         enable(1)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Enable the automatic adjustment of ts-gen-offset when the
                        network delay changes due to the topology change, e.g.,
                        protection switch.  Applicable only when order-info-type
                        is set to seq-num.  This parameter can be modified only
                        when roe is shutdown."
        ::= { tnRoeEntry 7 }

    tnRoeSeqNumProfID OBJECT-TYPE
        SYNTAX         Integer32 (1..80)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Applicable only when order-info-type is set to seq-num.
                        Associate a sequence number profile with the RoE entity.
                        This paramete can be modified only when roe is shutdown."
        DEFVAL         { 1 }
        ::= { tnRoeEntry 8 }

    tnRoeInitialTxBFN OBJECT-TYPE
        SYNTAX         Integer32 (0..4095)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The BFN in the initial Hyperframe control word at CPRI
                        egress.  Applicable only when order-info-type is set to
                        seq-num.  It configures the bfn (BFN field in CPRI control
                        word) in the initial hyperframe.  It can be modified only
                        when roe is shutdown."
        DEFVAL         { 1 }
        ::= { tnRoeEntry 9 }

    tnRoeInitialTxHFN OBJECT-TYPE
        SYNTAX         Integer32 (0..149)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "HFN in the next hyperframe control word.  Aplicable only
                        when order-info-type is set to seq-num.  It specifies the
                        HFN in initial CPRI hyperframe control word at CPRI egress.
                        It can be modified only when roe is shutdown."
        DEFVAL         { 0 }
        ::= { tnRoeEntry 10 }

    tnRoeEncapMode OBJECT-TYPE
        SYNTAX         INTEGER {
                         tunneling(0),
                         structure-agnostic(1),
                         structure-aware(2)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "tunneling -          10B or 66B line codes are encapsulted
                                             into RoE packets.
                        structure-agnostic - CPRI basic frames in 8B or 64B
                                             symbols removing the line coding and
                                             (if any) scrambling and   FEC, are
                                             encapsulated into RoE packets.
                        structure-aware -    CPRI/OBSAI AxC and Control signals are
                                             extracted and excapsulated into separate
                                             flows of RoE packets."
        ::= { tnRoeEntry 11 }

    tnRoeAdminState OBJECT-TYPE
        SYNTAX         INTEGER {
                         up(0),
                         down(1)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "up   - The administrative state is up.
                        down - The administrative state is down."
        ::= { tnRoeEntry 12 }

    tnRoePmonPolicy OBJECT-TYPE
        SYNTAX         Integer32 (0..99)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "PMON policy id assoicated to the RoE."
        ::= { tnRoeEntry 13 }

    tnRoeRowStatus OBJECT-TYPE
        SYNTAX         RowStatus
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The value of tnRoeRowStatus defines the status of the row."
        ::= { tnRoeEntry 14 }

-------------------------------------------------------------------------------
-- Roe Mapper Table
-------------------------------------------------------------------------------
    tnRoeMapperTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF TnRoeMapperEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Roe Mapper table."
        ::= { tnRoeParameters 3 }

    tnRoeMapperEntry OBJECT-TYPE
        SYNTAX         TnRoeMapperEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Entry in Roe Mapper table.  It creates or edits a
                        mapper of structure-agnostic type when the encap-mode
                        of the corresponding roe is structure-agnostic.  In
                        structure-agnostic mode, at most 1 mapper can be created
                        in a roe entity.  When a mapper is created, the create
                        keyword must be specified.  By default, no mappers exist
                        until they are explicitly created.  The mapper can be
                        deleted only after it is shutdown."
        INDEX { tnRoeMapperCardType,
                tnRoeMapperPortID,
                tnRoeMapperID  }
        ::= { tnRoeMapperTable 1 }

    TnRoeMapperEntry ::=
        SEQUENCE {
            tnRoeMapperCardType          TropicRoeCardType,
            tnRoeMapperPortID            TmnxPortID,
            tnRoeMapperID                Integer32,
            tnRoeMapperDescription       TItemDescription,
            tnRoeMapperFlowID            Integer32,
            tnRoeMappeEtherlinkID        Integer32,
            tnRoeMapperPayloadLen        Integer32,
            tnRoeMapperSyncMode          INTEGER,
            tnRoeMapperBfn               Integer32,
            tnRoeMapperHfn               Integer32,
            tnRoeMapperBfrm              Integer32,
            tnRoeMapperShutdown          INTEGER,
            tnRoeMapperType              INTEGER,
            tnRoeMapperOrderInfoType     INTEGER,
            tnRoeMapperPmonPolicy        Integer32,
            tnRoeMapperRowStatus         RowStatus
    }

    tnRoeMapperCardType OBJECT-TYPE
        SYNTAX         TropicRoeCardType
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "The card type for TPS."
        ::= { tnRoeMapperEntry 1 }

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

    tnRoeMapperID OBJECT-TYPE
        SYNTAX         Integer32 (1..80)
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Specifies the mapper id, unique within a roe entity."
        ::= { tnRoeMapperEntry 3 }

    tnRoeMapperDescription OBJECT-TYPE
        SYNTAX         TItemDescription
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The description character string.  Strings can be up to
                        80 characters long composed of printable, 7-bit ASCII
                        characters.  If the string contains special characters
                        (#, $, spaces, and so on), the entire string must be
                        enclosed within double quotes."
        ::= { tnRoeMapperEntry 4 }

    tnRoeMapperFlowID OBJECT-TYPE
        SYNTAX         Integer32 (0..254)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "This command configures the flowid used in 'flowID'
                        field in RoE header.  flowid has no default value, and
                        must be specified by the user.  This parameter can be
                        modified only when roe is shutdown."
        ::= { tnRoeMapperEntry 5 }

    tnRoeMappeEtherlinkID OBJECT-TYPE
        SYNTAX         Integer32 (1..80)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the ethlink id, used to configure the ethernet
                        frame header.  This parameter has no default value.  It
                        must be explicitly configured.  This parameter can be
                        modified only when roe is shutdown."
        ::= { tnRoeMapperEntry 6 }

    tnRoeMapperPayloadLen OBJECT-TYPE
        SYNTAX         Integer32 (512 .. 1500)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The payload length in units of bytes.  In Structure
                        Agnostic mode with line coding aware, the payload length
                        can only be the 1, 1.5 , 2, 4, 8 times of basic frames.
                        The length of the payload in RoE packets after the RoE
                        common header and before FCS.  For structure-agnostic mode,
                        it must be multiple of basic frames.  And correspondingly,
                        the encap buffer is fixed to 2 x payload-len.  This
                        parameter can be modified only when roe is shutdown."
        DEFVAL         { 512 }
        ::= { tnRoeMapperEntry 7 }

    tnRoeMapperSyncMode OBJECT-TYPE
        SYNTAX         INTEGER {
                         hyper(0),
                         radio(1),
                         basic(2)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The sync mode to control when to generate the presentation
                        time.  Only when the basic frame number and/or bfn/hfn in
                        received CPRI frame matches the basic frame number and/or
                        bfn/hfn specified by the user based on the sync mode, roe
                        mapper generates the presentation time for it.

                        It can be modified only when mapper is shutdown."
        DEFVAL         { 2 }
        ::= { tnRoeMapperEntry 8 }

    tnRoeMapperBfn OBJECT-TYPE
        SYNTAX         Integer32 (0..4095)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the bfn used for sync."
        DEFVAL         { 0 }
        ::= { tnRoeMapperEntry 9 }

    tnRoeMapperHfn OBJECT-TYPE
        SYNTAX         Integer32 (0..149)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the bfn used for sync."
        DEFVAL         { 0 }
        ::= { tnRoeMapperEntry 10 }

    tnRoeMapperBfrm OBJECT-TYPE
        SYNTAX         Integer32 (0..255)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the basic frame number used for sync."
        DEFVAL         { 0 }
        ::= { tnRoeMapperEntry 11 }

    tnRoeMapperShutdown OBJECT-TYPE
        SYNTAX         INTEGER {
                         shutdown (0),
                         no-shutdwn (1)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Shutdown an RoE mapper entity.  When disabled, an
                        entity does not change, reset, or remove any
                        configuration settings or statistics.  RoE Mappers
                        must be shut down before they may be deleted.  RoE
                        mappers are created in the administratively down
                        (shutdown) state.  When a no shutdown command is
                        entered, the entity becomes administratively up."
        ::= { tnRoeMapperEntry 12 }

    tnRoeMapperType OBJECT-TYPE
        SYNTAX         INTEGER {
                         tunneling(0),
                         structure-agnostic(1),
                         structure-Aware-Data(2),
                         structure-Aware-Control(3)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "The Type of the mapper: Tunneling, Structure Agnostic,
                        Structure-Aware Data, Structure-Aware Control."
        ::= { tnRoeMapperEntry 13 }

    tnRoeMapperOrderInfoType OBJECT-TYPE
        SYNTAX         INTEGER {
                         prestime(0),
                         seqnum(1)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "SeqNum or Presentation Time."
        ::= { tnRoeMapperEntry 14 }

    tnRoeMapperPmonPolicy OBJECT-TYPE
        SYNTAX         Integer32 (0..99)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "PMON policy id assoicated to the RoE Mapper."
        ::= { tnRoeMapperEntry 15 }

    tnRoeMapperRowStatus OBJECT-TYPE
        SYNTAX         RowStatus
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The value of tnRoeMapperRowStatus defines the status
                        of the row."
        ::= { tnRoeMapperEntry 16 }

-------------------------------------------------------------------------------
-- Roe De-Mapper Table
-------------------------------------------------------------------------------
    tnRoeDeMapperTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF TnRoeDeMapperEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Roe DeMapper table."
        ::= { tnRoeParameters 4 }

    tnRoeDeMapperEntry OBJECT-TYPE
        SYNTAX         TnRoeDeMapperEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Entry in Roe DeMapper table.  It creates or edits a
                        demapper of structure-agnostic type when the encap-mode
                        of the corresponding roe is structure-agnostic.  In
                        structure-agnostic mode, at most 1 demapper can be
                        created in a roe entity.  When a demapper is created,
                        the create keyword must be specified.  By default, no
                        demappers exist until they are explicitly created.  The
                        demapper can be deleted only after it is shutdown."
        INDEX { tnRoeDeMapperCardType,
                tnRoePortID,
                tnRoeDeMapperID  }
        ::= { tnRoeDeMapperTable 1 }

    TnRoeDeMapperEntry ::=
        SEQUENCE {
            tnRoeDeMapperCardType              TropicRoeCardType,
            tnRoeDeMapperPortID                TmnxPortID,
            tnRoeDeMapperID                    Integer32,
            tnRoeDeMapperDescription           TItemDescription,
            tnRoeDeMappeEtherlinkID            Integer32,
            tnRoeDeMapperPayloadLen            Integer32,
            tnRoeDeMapperSyncMode              INTEGER,
            tnRoeDeMapperBfn                   Integer32,
            tnRoeDeMapperHfn                   Integer32,
            tnRoeDeMapperBfrm                  Integer32,
            tnRoeDeMapperJitterBufferDepth     Integer32,
            tnRoeDeMapperShutdown              INTEGER,
            tnRoeDeMapperType                  INTEGER,
            tnRoeDeMapperFlowID                Integer32,
            tnRoeDeMapperOrderInfoType         INTEGER,
            tnRoeDeMapperPmonPolicy            Integer32,
            tnRoeDeMapperRowStatus             RowStatus
    }

    tnRoeDeMapperCardType OBJECT-TYPE
        SYNTAX         TropicRoeCardType
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "The card type for TPS."
        ::= { tnRoeDeMapperEntry 1 }

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

    tnRoeDeMapperID OBJECT-TYPE
        SYNTAX         Integer32 (1..80)
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Specifies the de-mapper id, unique within a roe entity."
        ::= { tnRoeDeMapperEntry 3 }

    tnRoeDeMapperDescription OBJECT-TYPE
        SYNTAX         TItemDescription
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The description character string.  Strings can be up to
                        80 characters long composed of printable, 7-bit ASCII
                        characters.  If the string contains special characters
                        (#, $, spaces, and so on), the entire string must be
                        enclosed within double quotes."
        ::= { tnRoeDeMapperEntry 4 }

    tnRoeDeMappeEtherlinkID OBJECT-TYPE
        SYNTAX         Integer32 (1..80)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the ethlink id, used to configure the ethernet
                        frame header.  This parameter has no default value.  It
                        must be explicitly configured.  This parameter can be
                        modified only when roe is shutdown."
        ::= { tnRoeDeMapperEntry 5 }

    tnRoeDeMapperPayloadLen OBJECT-TYPE
        SYNTAX         Integer32 (512..1500)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the length of the payload in RoE packets after
                        the RoE common header and before FCS.  For structure-agnostic
                        mode, it must be multiple of basic frames.  And
                        correspondingly, the encap buffer is fixed to 2 x payload-len."
        DEFVAL         { 512 }
        ::= { tnRoeDeMapperEntry 6 }

    tnRoeDeMapperSyncMode OBJECT-TYPE
        SYNTAX         INTEGER {
                         hyper(0),
                         radio(1),
                         basic(2)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "This command configures the sync mode to control when to
                        generate the presentation time.  Only when the basic frame
                        number and/or bfn/hfn in received CPRI frame matches the
                        basic frame number and/or bfn/hfn specified by the user
                        based on the sync mode, roe mapper generates the presentation
                        time for it.

                        This parameter can be modified only when mapper is shutdown."
        DEFVAL         { 0 }
        ::= { tnRoeDeMapperEntry 7 }

    tnRoeDeMapperBfn OBJECT-TYPE
        SYNTAX         Integer32 (0..4095)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the bfn used for sync."
        DEFVAL         { 0 }
        ::= { tnRoeDeMapperEntry 8 }

    tnRoeDeMapperHfn OBJECT-TYPE
        SYNTAX         Integer32 (0..149)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the bfn used for sync."
        DEFVAL         { 0 }
        ::= { tnRoeDeMapperEntry 9 }

    tnRoeDeMapperBfrm OBJECT-TYPE
        SYNTAX         Integer32 (0..255)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the basic frame number used for sync."
        DEFVAL         { 0 }
        ::= { tnRoeDeMapperEntry 10 }

    tnRoeDeMapperJitterBufferDepth OBJECT-TYPE
        SYNTAX         Integer32 (1..256)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the basic frame number used for sync."
        DEFVAL         { 256 }
        ::= { tnRoeDeMapperEntry 11 }

    tnRoeDeMapperShutdown OBJECT-TYPE
        SYNTAX         INTEGER {
                         shutdown(0),
                         no-shutdwn(1)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "This command administratively disables an RoE mapper
                        entity.  When disabled, an entity does not change, reset,
                        or remove any configuration settings or statistics.  RoE
                        mappers must be shut down before they may be deleted.  RoE
                        mappers are created in the administratively down (shutdown)
                        state.  When a no shutdown command is entered, the entity
                        becomes administratively up."
        DEFVAL         { 1 }
        ::= { tnRoeDeMapperEntry 12 }

    tnRoeDeMapperType OBJECT-TYPE
        SYNTAX         INTEGER {
                         tunneling(0),
                         structureAgnostic(1),
                         structureAwareData(2)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "The Type of the mapper: Tunneling, Structure Agnostic,
                        Structure-Aware Data."
        ::= { tnRoeDeMapperEntry 13 }

    tnRoeDeMapperFlowID OBJECT-TYPE
        SYNTAX         Integer32 (0..254)
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "The flowid used in 'flowID' field in RoE header."
        ::= { tnRoeDeMapperEntry 14 }

    tnRoeDeMapperOrderInfoType OBJECT-TYPE
        SYNTAX         INTEGER {
                         prestime(0),
                         seqnum(1)
                       }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "The flowid used in 'flowID' field in RoE header."
        ::= { tnRoeDeMapperEntry 15 }

    tnRoeDeMapperPmonPolicy OBJECT-TYPE
        SYNTAX         Integer32 (0..99)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "PMON policy id assoicated to the RoE DeMapper."
        ::= { tnRoeDeMapperEntry 16 }

    tnRoeDeMapperRowStatus OBJECT-TYPE
        SYNTAX         RowStatus
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The value of tnRoeMapperRowStatus defines the status
                        of the row."
        ::= { tnRoeDeMapperEntry 17 }

-------------------------------------------------------------------------------
-- Roe ethlink Table
-------------------------------------------------------------------------------
    tnRoeEthlinkTable OBJECT-TYPE
        SYNTAX         SEQUENCE OF TnRoeEthlinkEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Roe Eth Link table."
        ::= { tnRoeParameters 5 }

    tnRoeEthlinkEntry OBJECT-TYPE
        SYNTAX         TnRoeEthlinkEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Entry in Roe DeMapper table.  It creates or edits an
                        ethlink entity, which specifies the Ethernet frame header
                        for the RoE packets.  The ethlink ID is unique within the
                        RoE entity.  When a ethlink is created, the create keyword
                        must be specified.  By default, no ethlink entities exist
                        until they are explicitly created."
        INDEX { tnRoeEthlinkCardType,
                tnRoeEthlinkPortID,
                tnRoeEthlinkID  }
        ::= { tnRoeEthlinkTable 1 }

    TnRoeEthlinkEntry ::=
        SEQUENCE {
            tnRoeEthlinkCardType           TropicRoeCardType,
            tnRoeEthlinkPortID             TmnxPortID,
            tnRoeEthlinkID                 Integer32,
            tnRoeEthlinkDescription        TItemDescription,
            tnRoeEthlinkDestMac            MacAddress,
            tnRoeEthlinkSourceMac          MacAddress,
            tnRoeEthlinkTagDepth           INTEGER,
            tnRoeEthlinkOuterEthertype     Integer32,
            tnRoeEthlinkOuterVid           Integer32,
            tnRoeEthlinkOuterPri           Integer32,
            tnRoeEthlinkInnerEthertype     Integer32,
            tnRoeEthlinkInnerVid           Integer32,
            tnRoeEthlinkInnerPri           Integer32,
            tnRoeEthlinkEthertype          Integer32,
            tnRoeEthlinkRowStatus          RowStatus
    }

    tnRoeEthlinkCardType OBJECT-TYPE
        SYNTAX         TropicRoeCardType
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "tnRoeEthlinkCardType is an index into this table.  It
                        specify the card type for TPS."
        ::= { tnRoeEthlinkEntry 1 }

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

    tnRoeEthlinkID OBJECT-TYPE
        SYNTAX         Integer32 (1..80)
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION    "Specifies the ethlink id, unique within a roe entity."
        ::= { tnRoeEthlinkEntry 3 }

    tnRoeEthlinkDescription OBJECT-TYPE
        SYNTAX         TItemDescription
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The description character string.  Strings can be up to
                        80 characters long composed of printable, 7-bit ASCII
                        characters.  If the string contains special characters
                        (#, $, spaces, and so on), the entire string must be
                        enclosed within double quotes."
        ::= { tnRoeEthlinkEntry 4 }

    tnRoeEthlinkDestMac OBJECT-TYPE
        SYNTAX         MacAddress
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the 48-bit MAC address.  Allowed values are any
                        non-broadcast, non-multicast MAC and non-IEEE reserved MAC
                        addresses.
                          {xx:xx:xx:xx:xx:xx | xx-xx-xx-xx-xx-xx} - MAC address,
                          where xx is hexadecimal numbers."
        ::= { tnRoeEthlinkEntry 5 }

    tnRoeEthlinkSourceMac OBJECT-TYPE
        SYNTAX         MacAddress
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the 48-bit MAC address of the port.  Allowed
                        values are any non-broadcast, non-multicast MAC and
                        non-IEEE reserved MAC addresses.
                          {xx:xx:xx:xx:xx:xx | xx-xx-xx-xx-xx-xx} - MAC address,
                          where xx is hexadecimal numbers."
        ::= { tnRoeEthlinkEntry 6 }

    tnRoeEthlinkTagDepth OBJECT-TYPE
        SYNTAX         INTEGER {
                         untagged(0),
                         single(1),
                         double(2)
                       }
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The number of VLAN tags used in the Ethernet frame header."
        DEFVAL         { 0 }
        ::= { tnRoeEthlinkEntry 7 }

    tnRoeEthlinkOuterEthertype OBJECT-TYPE
        SYNTAX         Integer32 ('600'H..'ffff'H)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The ethertype for the outer tag when double tags are used
                        in Ethernet Frame header, i.e., tag-depth is double."
        DEFVAL         { '8100'H }
        ::= { tnRoeEthlinkEntry 8 }

    tnRoeEthlinkOuterVid OBJECT-TYPE
        SYNTAX         Integer32 (0..4094)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The VLAN ID of the outer VLAN tag in Ethernet Frame Header
                        if double tag is used, i.e., tag-depth is double."
        ::= { tnRoeEthlinkEntry 9 }

    tnRoeEthlinkOuterPri OBJECT-TYPE
        SYNTAX         Integer32 (0..7)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Specifies the priority of the outer VLAN tag in Ethernet
                        Frame Header if double tag is used, i.e., tag-depth is
                        double.

                        Default: 7."
        DEFVAL         { 7 }
        ::= { tnRoeEthlinkEntry 10 }

    tnRoeEthlinkInnerEthertype OBJECT-TYPE
        SYNTAX         Integer32 ('600'H..'ffff'H)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The ethertype for the inner tag when single or double
                        tags are used in Ethernet Frame header, i.e., tag-depth
                        is single or double."
        DEFVAL         { '8100'H }
        ::= { tnRoeEthlinkEntry 11 }

    tnRoeEthlinkInnerVid OBJECT-TYPE
        SYNTAX         Integer32 (0..4094)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The VLAN ID of the inner VLAN tag in Ethernet Frame Header
                        if either single or double tag is used, i.e., tag-depth is
                        single or double."
        ::= { tnRoeEthlinkEntry 12 }

    tnRoeEthlinkInnerPri OBJECT-TYPE
        SYNTAX         Integer32 (0..7)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The priority of the inner VLAN tag in Ethernet Frame Header
                        if single or double tag is used, i.e., tag-depth is single
                        or double."
        DEFVAL         { 7 }
        ::= { tnRoeEthlinkEntry 13 }

    tnRoeEthlinkEthertype OBJECT-TYPE
        SYNTAX         Integer32 ('600'H..'ffff'H)
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The ethertype for RoE PDU."
        DEFVAL         { 'FC3D'H }
        ::= { tnRoeEthlinkEntry 14}

    tnRoeEthlinkRowStatus OBJECT-TYPE
        SYNTAX         RowStatus
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "The value of tnRoeEthlinkRowStatus defines the status of
                        the row."
        ::= { tnRoeEthlinkEntry 15 }

-------------------------------------------------------------------------------
-- Compliance Statements
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
-- Conformance Group Definitions
-------------------------------------------------------------------------------
    tnRoeSeqProfGroup OBJECT-GROUP
        OBJECTS {
            tnRoeSeqProfDescription,
            tnRoeSeqProfType,
            tnRoeSeqProfPMax,
            tnRoeSeqProfPIncProp,
            tnRoeSeqProfPInc,
            tnRoeSeqProfQMax,
            tnRoeSeqProfQIncProp,
            tnRoeSeqProfQInc,
            tnRoeSeqProfRowStatus
         }
        STATUS         current
        DESCRIPTION    "."
        ::= { tnRoeGroups 1 }

    tnRoeGroup OBJECT-GROUP
        OBJECTS {
            tnRoeDescription,
            tnRoeOrderInfoType,
            tnRoePresTimeOffset,
            tnRoeCpriTxGenOffset,
            tnRoeAutoUponChange,
            tnRoeSeqNumProfID,
            tnRoeInitialTxBFN,
            tnRoeInitialTxHFN,
            tnRoeEncapMode,
            tnRoeAdminState,
            tnRoePmonPolicy,
            tnRoeRowStatus
        }
        STATUS         current
        DESCRIPTION    "."
        ::= { tnRoeGroups 2 }

    tnRoeMapperGroup OBJECT-GROUP
        OBJECTS {
            tnRoeMapperDescription,
            tnRoeMapperFlowID,
            tnRoeMappeEtherlinkID,
            tnRoeMapperPayloadLen,
            tnRoeMapperSyncMode,
            tnRoeMapperBfn,
            tnRoeMapperHfn,
            tnRoeMapperBfrm,
            tnRoeMapperShutdown,
            tnRoeMapperType,
            tnRoeMapperOrderInfoType,
            tnRoeMapperPmonPolicy,
            tnRoeMapperRowStatus
          }
        STATUS         current
        DESCRIPTION    "."
        ::= { tnRoeGroups 3 }

    tnRoeDeMapperGroup OBJECT-GROUP
        OBJECTS {
            tnRoeDeMapperDescription,
            tnRoeDeMappeEtherlinkID,
            tnRoeDeMapperPayloadLen,
            tnRoeDeMapperSyncMode,
            tnRoeDeMapperBfn,
            tnRoeDeMapperHfn,
            tnRoeDeMapperBfrm,
            tnRoeDeMapperJitterBufferDepth,
            tnRoeDeMapperShutdown,
            tnRoeDeMapperType,
            tnRoeDeMapperFlowID,
            tnRoeDeMapperOrderInfoType,
            tnRoeDeMapperPmonPolicy,
            tnRoeDeMapperRowStatus
          }
        STATUS         current
        DESCRIPTION    "."
        ::= { tnRoeGroups 4 }

    tnRoeEthlinkGroup OBJECT-GROUP
        OBJECTS {
            tnRoeEthlinkDescription,
            tnRoeEthlinkDestMac,
            tnRoeEthlinkSourceMac,
            tnRoeEthlinkTagDepth,
            tnRoeEthlinkOuterEthertype,
            tnRoeEthlinkOuterVid,
            tnRoeEthlinkOuterPri,
            tnRoeEthlinkInnerEthertype,
            tnRoeEthlinkInnerVid,
            tnRoeEthlinkInnerPri,
            tnRoeEthlinkEthertype,
            tnRoeEthlinkRowStatus
          }
        STATUS         current
        DESCRIPTION    "."
        ::= { tnRoeGroups 5 }

-------------------------------------------------------------------------------
-- Compliance Statements (mandatory)
-------------------------------------------------------------------------------
    tnRoeCompliance MODULE-COMPLIANCE
        STATUS         current
        DESCRIPTION    "."
        MODULE
        MANDATORY-GROUPS  {
            tnRoeSeqProfGroup,
            tnRoeGroup,
            tnRoeMapperGroup,
            tnRoeDeMapperGroup,
            tnRoeEthlinkGroup
        }
        ::= { tnEoeCompliances 1 }

END -- DEFINITION OF TROPIC-ROE-MIB
