C-PRODUCT-IMA-MIB DEFINITIONS ::= BEGIN


IMPORTS
    ima                 FROM C-PRODUCT-GROUP-MIB
    portSlot,
    portNumber,
    PortOperStatus      FROM C-PRODUCT-BASE-MIB
    OBJECT-TYPE         FROM RFC-1212;

-- Data Types
AfaStatus    ::= INTEGER { off(1), 
                           on(2) }

AfaActRate   ::= INTEGER { act-rate-10-4(1),
                           act-rate-10-5(2),
                           act-rate-10-6(3),
                           act-rate-10-7(4)}

AfaDeactRate ::= INTEGER { deact-rate-10-6(1),
                           deact-rate-10-7(2),
                           deact-rate-10-8(3),
                           deact-rate-10-9(4)}

InbLoopBackStatus ::= INTEGER { disabled(1), 
                                enabled(2) }

-- IMA groups
imaCard         OBJECT IDENTIFIER ::= { ima   1 }
imaPort         OBJECT IDENTIFIER ::= { ima   2 }
imaCardGroup    OBJECT IDENTIFIER ::= { ima   3 }


imaCardTable OBJECT-TYPE
    SYNTAX SEQUENCE OF ImaCardEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "The IMA card information table."
    ::= {imaCard 1}

imaCardEntry OBJECT-TYPE
    SYNTAX ImaCardEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This entry object contains IMA card configuration objects." 
    INDEX { portSlot }
    ::= {imaCardTable 1}

ImaCardEntry ::=
    SEQUENCE {
        imaCardGroupSize
            INTEGER,
        imaCardTrafficType
            INTEGER,
	imaCardRefPort
	    INTEGER,
        imaCardNextAvailableGroup
            INTEGER
    }

imaCardGroupSize OBJECT-TYPE
    SYNTAX INTEGER (1..8)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
	"This object indicates the number of ports in a Group for an 
         IMA Trunk Card. If use CTX+, this GroupSize is irrelevant."
    DEFVAL { 1 }
    ::= {imaCardEntry 1}

imaCardTrafficType OBJECT-TYPE
    SYNTAX INTEGER {
               cbr     (1),
               non-cbr (2)
    } 
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the traffic type selected for the card,
         cbr traffic will get higer priority. This parameter is not   
         for a trunk card."
    DEFVAL { 1 }
    ::= {imaCardEntry 2}

imaCardRefPort OBJECT-TYPE
    SYNTAX INTEGER (1..8)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the clock reference port. It is altered 
         only when the card is set to out-of-service.  If is currently
         used by the shelf as system clock source then it can not
         be changed from here either." 
    DEFVAL { 1 }
    ::= {imaCardEntry 3}

imaCardNextAvailableGroup OBJECT-TYPE
    SYNTAX INTEGER (0..8)
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the next available IMA group number
         within this card, user shall reference this number as part 
         of the indices for adding an group.
         The max number of group is depending on number of port of
         the card, 0 is returned if all groups are used." 
    ::= {imaCardEntry 4}


imaPortTable OBJECT-TYPE
    SYNTAX SEQUENCE OF ImaPortEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "The IMA port information table."
    ::= { imaPort 1 }

imaPortEntry OBJECT-TYPE
    SYNTAX ImaPortEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This entry object contains IMA port configuration objects.  
         The slot (portSlot) of an card entry can be from 3 to 6
         (trunk or port). The port (portNumber) can be from 1 to 8."
    INDEX { portSlot, portNumber }
    ::= { imaPortTable 1 }

ImaPortEntry ::=
    SEQUENCE {
	imaPortLBO
            INTEGER,
	imaPortLineCode
            INTEGER,
	imaPortFraming
            INTEGER,
	imaPortTiming
            INTEGER,
	imaPortGainLimit
            INTEGER,
        imaPortImaGroupId
            INTEGER,
	imaPortImaTxLid
            INTEGER,
        imaPortImaRxLid
            INTEGER,
        imaPortImaOperLinkDelay
            INTEGER,
        imaPortAfa
            AfaStatus,
        imaPortAfaActMin
            INTEGER,
        imaPortAfaDeactMin
            INTEGER,
        imaPortAfaActRate
            AfaActRate,
        imaPortAfaDeactRate
            AfaDeactRate,
        imaPortInbLoopBack
            InbLoopBackStatus,
        imaPortApplication
            INTEGER
    }

imaPortLBO OBJECT-TYPE
    SYNTAX INTEGER {
               lbo-0-0dB  (1),
               lbo-7-5dB  (2),
               lbo-15-0dB (3),
               lbo-22-5dB (4)
           }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the Line Build Out configured 
         for the port."
    ::= {imaPortEntry 1}

imaPortLineCode OBJECT-TYPE
    SYNTAX INTEGER {
               ami     (1),
               t1-B8ZS (2),
               e1-HDB3 (3)
           }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the line coding configured 
         for the port."
    ::= {imaPortEntry 2}

imaPortFraming OBJECT-TYPE
    SYNTAX INTEGER {
               t1-D4  (1),
               t1-ESF (2),
               e1-Multi-Frame (3)
           }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the framing format configured 
         for the port." 
    ::= {imaPortEntry 3}

imaPortTiming OBJECT-TYPE
    SYNTAX INTEGER {
               system (1),
               loop   (2)
           }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the input clock service type 
         configured for the port." 
    ::= { imaPortEntry 4 }

imaPortGainLimit OBJECT-TYPE
    SYNTAX INTEGER {
               gl-26dB (1),
               gl-36dB (2)
           }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the Line Gain Limit configured 
         for the port."
    ::= { imaPortEntry 5 }

imaPortImaGroupId OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the IMA Group ID configured 
         for the port, it is READ only from this table.
         The port can be selected into an IMA group by setting 
         the imaCardGroupAdminPortsBitMap in imaCardGroupTable." 
    ::= { imaPortEntry 6 }

imaPortImaTxLid OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the IMA Port Tx Link id learned
         from the IMA protocol."
    ::= { imaPortEntry 7 }

imaPortImaRxLid OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the IMA Port Rx Link id learned
         from the IMA protocol."
    ::= { imaPortEntry 8 }

imaPortImaOperLinkDelay OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the IMA Port Operational Link Delay
         of the port." 
    ::= { imaPortEntry 9 }

imaPortAfa OBJECT-TYPE
    SYNTAX AfaStatus
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the AFA status for the port."
    ::= { imaPortEntry 10 }

imaPortAfaActMin OBJECT-TYPE
    SYNTAX INTEGER ( 1..15 )
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the AFA kick-in period for the port."
    ::= { imaPortEntry 11 }

imaPortAfaDeactMin OBJECT-TYPE
    SYNTAX INTEGER ( 15..30 )
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the AFA recover period for the port."
    ::= { imaPortEntry 12 }

imaPortAfaActRate OBJECT-TYPE
    SYNTAX AfaActRate 
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the AFA kick-in error rate for the port." 
    ::= { imaPortEntry 13 }

imaPortAfaDeactRate OBJECT-TYPE
    SYNTAX AfaDeactRate 
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the AFA recover error rate for the port." 
    ::= { imaPortEntry 14 }

imaPortInbLoopBack OBJECT-TYPE
    SYNTAX InbLoopBackStatus
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object specifies the Inband Loopback status for the port."
    ::= { imaPortEntry 15 }

imaPortApplication OBJECT-TYPE
    SYNTAX INTEGER {
               dsx (1),
               csu (2)
           }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the type of application
         configured for that port." 
    ::= { imaPortEntry 16 }


imaCardGroupTable OBJECT-TYPE
    SYNTAX SEQUENCE OF ImaCardGroupEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "The card based IMA group information table."
    ::= {imaCardGroup 1}

imaCardGroupEntry OBJECT-TYPE
    SYNTAX ImaCardGroupEntry
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This entry object contains IMA group configuration objects." 
    INDEX { portSlot, imaCardGroupId }
    ::= {imaCardGroupTable 1}

ImaCardGroupEntry ::=
    SEQUENCE {
        imaCardGroupId
            INTEGER,
        imaCardGroupImaId
            INTEGER,
        imaCardGroupAdminStatus
            INTEGER,
	imaCardGroupMinNumLinksStart
	    INTEGER,
	imaCardGroupMinNumLinksFailed
	    INTEGER,
	imaCardGroupMaxNumLinksAct
	    INTEGER,
	imaCardGroupTxImaId
	    INTEGER,
	imaCardGroupRxImaId
	    INTEGER,
	imaCardGroupTxFrameLength
	    INTEGER,
	imaCardGroupAdminLinkDelayMax
	    INTEGER,
	imaCardGroupOperLinkDelayMax
	    INTEGER,
	imaCardGroupAdminPortsBitMap
	    INTEGER,
	imaCardGroupOperPortsBitMap
	    INTEGER,
        imaCardGroupOperStatus
            PortOperStatus,
        imaCardGroupRowStatus
            INTEGER
    }

imaCardGroupId OBJECT-TYPE
    SYNTAX INTEGER (1..8)
    ACCESS not-accessible
    STATUS mandatory
    DESCRIPTION
        "This object is used as an index to an imaCardGroupEntry."
    ::= {imaCardGroupEntry 1}

imaCardGroupImaId OBJECT-TYPE
    SYNTAX INTEGER (0..255)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is the admin IMA id of the group." 
    ::= { imaCardGroupEntry 2 }

imaCardGroupAdminStatus OBJECT-TYPE
    SYNTAX INTEGER { 
        out-of-service(1),
        in-service(2)
        }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the admin service status of the group." 
    ::= { imaCardGroupEntry 3 }

imaCardGroupMinNumLinksStart OBJECT-TYPE
    SYNTAX INTEGER (1..8)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the minimum number of links to start 
         the group."
    ::= { imaCardGroupEntry 4 }

imaCardGroupMinNumLinksFailed OBJECT-TYPE
    SYNTAX INTEGER (1..8)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the minimum number of links for the 
         group to stay up, links lower than this number will declare
         the group to fail."
    ::= { imaCardGroupEntry 5 }

imaCardGroupMaxNumLinksAct OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the maximum number of links for the group,
         for a trunk IMA card, the value is the imaCardGroupSize, for
         a port card, it is derived from the imaCardGroupAdminPortsBitMap."
    ::= { imaCardGroupEntry 6 }

imaCardGroupTxImaId OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the transmit IMA ID.  This shall show
         the ID assigned to imaCardGroupImaId." 
    ::= { imaCardGroupEntry 7 }

imaCardGroupRxImaId OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the receive IMA ID." 
    ::= { imaCardGroupEntry 8 }

imaCardGroupTxFrameLength OBJECT-TYPE
    SYNTAX INTEGER {
              cells-32 (1),
              cells-64 (2),
              cells-128 (3),
              cells-256 (4)
           }
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the transmit frame length of the group." 
    ::= { imaCardGroupEntry 9 }

imaCardGroupAdminLinkDelayMax OBJECT-TYPE
    SYNTAX INTEGER (0..100)
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object is the group admin maximum link differential delay 
         in msec." 
    ::= { imaCardGroupEntry 10 }

imaCardGroupOperLinkDelayMax OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object is the operational maximum link differential delay 
         in msec." 
    ::= { imaCardGroupEntry 11 }

imaCardGroupAdminPortsBitMap OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This bit map object indicates the ports configured for the 
         group." 
    ::= { imaCardGroupEntry 12 }

imaCardGroupOperPortsBitMap OBJECT-TYPE
    SYNTAX INTEGER
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This bit map object indicates the operational ports in the
         group." 
    ::= { imaCardGroupEntry 13 }

imaCardGroupOperStatus OBJECT-TYPE
    SYNTAX PortOperStatus 
    ACCESS read-only
    STATUS mandatory
    DESCRIPTION
        "This object indicates the group operational service status." 
    ::= { imaCardGroupEntry 14 }

imaCardGroupRowStatus OBJECT-TYPE
    SYNTAX INTEGER { create (1),
                     delete (2)}
    ACCESS read-write
    STATUS mandatory
    DESCRIPTION
        "This object indicates the row set action request."
    ::= { imaCardGroupEntry 15 }

END
