-- *****************************************************************
-- CISCO-MGX82XX-DSX3-BERT MIB: Bit Error Rate Testing MIB for DSX3
--  interfaces in MGX82xx series.
--
-- January 2003, Subra Hegde
--
-- Copyright (c) 2003 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-MGX82XX-DSX3-BERT-MIB  DEFINITIONS ::= BEGIN
IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE, 
        Integer32          FROM    SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP       FROM    SNMPv2-CONF
        DisplayString      FROM    SNMPv2-TC
        axisDiagnostics    FROM    BASIS-MIB
        ciscoWan           FROM    CISCOWAN-SMI;

ciscoMgx82xxDsx3BertMIB MODULE-IDENTITY
        LAST-UPDATED    "200301020000Z"
        ORGANIZATION    "Cisco Systems, Inc."
        CONTACT-INFO
                "       Cisco Systems
                        Customer Service

                Postal: 170 W Tasman Drive
                        San Jose, CA  95134
                        USA

                        Tel: +1 800 553-NETS

                E-mail: cs-wanatm@cisco.com"
    DESCRIPTION
       "The MIB Module for BERT (Bit Error Rate Testing)
       on ds3 interfaces in some of the cards (Service Modules)
       in MGX products.
      
       This MIB is applicable for following T3/E3 Service Modules:
         FRSM-2T3E3 : Frame Relay Service Module.
         CESM-T3E3  : Circuit Emulation Service Module."

    REVISION    "200301020000Z"
    DESCRIPTION
        "Initial version of the MIB.

        The content of this MIB was originally available
        in CISCO-WAN-AXIPOP-MIB defined using SMIv1.
        The applicable objects from CISCO-WAN-AXIPOP-MIB
        are defined using SMIv2 in this MIB. Also the
        descriptions of some of the objects have been 
        modified."
    ::= { ciscoWan 39 }
 
dsx3bert    OBJECT IDENTIFIER ::= { axisDiagnostics    2 }
 
dsx3bertControl OBJECT-TYPE
    SYNTAX  INTEGER {
                noAction    (0),
                acquireBert (1),
                releaseBert (2),
                cnfBert     (3),
                startBert   (4),
                modBert     (5),
                delBert     (6)
                }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "This object controls all the SET operations on this MIB group. 
          noAction    :  No action is taken. This value can not be written
                         This object contains value noAction(0)
                         just after setting it to delBert(6).
          acquireBert :  Acquire BERT resources.
          cnfBert     :  Configure the required BERT test.
          startBert   :  The configured test has to be started.
          modBert     :  Modify parameters for the ongoing BERT test.
          delBert     :  Running BERT test has to be stopped.
                         This value is write-only. This value is 
                         never returned for a SNMP Get request.

          For Performing BERT : Following sequence need to be done.
             * acquire BERT by setting this object to acquireBert(1).
             * configure BERT by setting this object to cnfBert(3)
             * Start BERT by setting this object to startBert(4).
             * Modify BERT parameters by setting this object to modBert(5)."
        DEFVAL { noAction }
        ::= { dsx3bert 1 }

dsx3bertResourceStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                free  (1),
                inUse (2)
            }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "All of bert resources can be used by only one user at a time.
        This object provides the status of the resources." 
    DEFVAL { free }
    ::= { dsx3bert 2 }

dsx3bertOwner OBJECT-TYPE
    SYNTAX        DisplayString 
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This refers to the user who owns the BERT resources.
        If the user is a CLI user, then this is username.
        If it is SNMP Manager, then this would be the ASCII
        form of the IP address."
    ::= { dsx3bert 3 }

dsx3bertUserId OBJECT-TYPE
    SYNTAX       DisplayString 
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "This identifies the user who wants to do a SET operation
        on this group. This will be compared against bertOwner
        and access will be given only if it matches. Hence, for
        every SET request, this object should have a valid value.
        If the user is a CLI user, then this is login username.
    
        If it is SNMP Manager, then this would be the ASCII
        form of the IP address."
    ::= { dsx3bert 4 }

dsx3bertStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                inactive       (1),
                bertInSync     (2),
                bertOutOfSync  (3),
                farEndInLoop   (4),
                metallicInLoop (5),
                bertFailed     (6)
            }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object provides the status of BERT in the shelf.
        
        The possible values are :
         inactive      (1)  : BERT not in progress
         bertInSync    (2)  : BERT is activated and receive side is
                              synchronized with the incoming sequence
                              of patterns.
         bertOutOfSync (3)  : BERT is activated and receive is out of
                              synchronization with the incoming sequence
                              of patterns.
         farEndInLoop  (4)  : Far End is in loop back.
         metallicInLoop(5)  : Local Loopback set.
         bertFailed    (6)  : BERT Failed.

        farEndInLoop(4) is not applicable for CESM-T3E3 
        and FRSM-2T3E3."
    DEFVAL { inactive }
    ::= { dsx3bert 5 }

dsx3bertTestMedium OBJECT-TYPE
    SYNTAX  INTEGER {
                port (1),
                line (2)
            }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Specifies whether the BERT is to be tested on a port or an 
        entire T3/E3 line.
        For a BERT test, this object must be set.
        For CESM-T3E3 and FRSM-@T3E3, this object must be set
        to line(2)."
    ::= { dsx3bert 6 }

dsx3bertPort OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "This object specifies the port number for BERT.
        Port level bert is not supported in CESM-T3E3 and 
        FRSM-2T3E3. So for these cards, the value must be always 1. " 
    ::= { dsx3bert 7 }

dsx3bertLine OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "This object specifies the line number for BERT.
        If the dsx3bertTestMedium is set to port(1),
        this represents the line to which the port
        (dsx3bertPort) belongs.
        The value supported depends upon the type of
        card (service module)."
    ::= { dsx3bert 8 }

dsx3bertMode OBJECT-TYPE
    SYNTAX  INTEGER {
                bertPatternTest (1),
                loopback        (2)
            }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "This object specifies the mode, the BERT module is to be
        configured for.
        The value loopback(2) is not supported in CESM-T3E3 and FRSM-2T3E3 . " 
    ::= { dsx3bert 9 }

dsx3bertPattern OBJECT-TYPE
    SYNTAX  INTEGER {
                allOnes           (1),
                allZeros          (2),
                alternateOneZero  (3),
                doubleOneZero     (4),
                threeInTwentyFour (5),
                oneInSixteen      (6),				
                oneInEight        (7),				
                oneInFour         (8),
                sfLoopUp          (9),
                sfLoopDown        (10),
                threeBit          (11),
                fourBit           (12),
                fiveBit           (13),
                sixBit            (14),
                sevenBit          (15),
                fracT1LoopUp      (16),
                fracT1LoopDown    (17),
                nineBit           (18),
                tenBit            (19),
                elevenBit         (20),
                fifteenBit        (21),
                seventeenBit      (22),
                eighteenBit       (23),
                twentyBit         (24),
                twentyBitQRSS     (25),
                twentyOneBit      (26),
                twentyTwoBit      (27),
                twentyThreeBit    (28),
                twentyFiveBit     (29),
                twentyEightBit    (30),
                twentyNineBit     (31),
                thirtyOneBit      (32),
                thirtyTwo         (33)
                }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "This variable determines BERT pattern to be transmitted
        on the interface identified by dsx3bertLine or dsx3bertPort.

	Bit error measurements are widely used to assess the 
	performance of a digital transmission equipment.  Precise 
	error measurement requires that the bit pattern transmitted 
	is known before hand.  During BER testing a known pattern is 
	transmitted on a interface.  The pattern received on the 
	receive side is checked for bit errors.  In order to measure 
	the performance of digital line under real condition 
	this patterns should also simulate real traffic as closely 
	as possible.  There are two categories of test patterns that 
	can be generated by a BERT equipment: repetitive and 
	pseudo-random.  The former test patterns are zeroes or ones 
	or alternating zeroes and ones; the latter patterns are 
	exponential numbers and conform to CCITT/ITU O.151, O.153.

	There are different patterns for different interface speeds.
	This object allows the user to configure this BERT patterns.

	The supported values are :

	  Repetitive Patterns

	allOnes(1): All Ones(Continuous Marks).  This is repeating
		pattern of ones(...1111...).  This provides 
		testing of maximum power level requirements.
		The all one pattern test causes the repeater 
		to consume the maximum amount of power. 
		If there is insufficient DC span power then the
		repeater may begin to fail.
		Typically this pattern is used for a simple
		continuity check.  It may also be used to detect
		the presence of unwanted loop in the network.

	allZeros(2): All Zeroes(Continuous spaces).  This is 
		repeating pattern of zeros(...000...). 
		The use of this pattern is to test and verify 
		that the ones density policing mechanism is 
		functioning properly.  This pattern must be 
		used in circuits optioned for B8ZS.

	alternateOneZero(3): Alternate one/zero pattern(..1010..).
                This pattern produces a 50% ones density. It is
		used to stress the repeater's DC power
		consumption.

	doubleOneZero(4): Double alternate one/zero(..10101010..).

	threeInTwentyFour(5): This is a 24 bit pattern which 
                contains 3 ones. The largest string of consecutive 
                zeros is fifteen.
		This pattern is used primarily to test timing(clock)
		recovery and may be used framed or unframed for that
		purpose.  This pattern covers both the minimum ones
		density and the maximum number of consecutive zeros.

	oneInSixteen(6): N repetitive pattern, 1 in 16.

	oneInEight(7): This is an eight bit pattern which contains
		single one.
                This pattern is used primarily to test timing(clock)
		recovery and may be used framed or unframed for that
		purpose.
		This pattern is used to verify frame synchronization
		by providing the minimum acceptable pulse density.


	oneInFour(8): This pattern is standard loop up remote code.
		Typically it is used when the loop up remote test 
		fails to place the remote system into loopback.

        sfLoopUp  (9):  D4/SF Loopback activate/up
		        Valid only for T1 line.
        sfLoopDown(10): D4/SF Loopback deactivate/down
		        Valid only for T1 line.
        threeBit   (11): Repetitive patterns of 3 bits in length.
        fourBit    (12): Repetitive patterns of 4 bits in length.
        fiveBit    (13): Repetitive patterns of 5 bits in length.
        sixBit     (14): Repetitive patterns of 6 bits in length.
        sevenBit   (15): Repetitive patterns of 7 bits in length.
        fracT1LoopUp(16): Fractional T1 Loopback activate/up.
        fracT1LoopDown(17): Fractional T1 Loopback deactivate/down.

        nineBit      (18): Repetitive patterns of 9 bits in length.
        tenBit       (19): Repetitive patterns of 10 bits in length.
        elevenBit    (20): Repetitive patterns of 11 bits in length.
        fifteenBit   (21): Repetitive patterns of 15 bits in length.
        seventeenBit (22): Repetitive patterns of 17 bits in length.
        eighteenBit  (23): Repetitive patterns of 18 bits in length.
        twentyBit    (24): Repetitive patterns of 20 bits in length.
        twentyBitQRSS(25): 20 bits of Quasi Random Signal Source.
        twentyOneBit (26): Repetitive patterns of 21 bits in length.
        twentyTwoBit (27): Repetitive patterns of 22 bits in length.
        twentyThreeBit (28): Repetitive patterns of 23 bits in length.
        twentyFiveBit  (29): Repetitive patterns of 25 bits in length.
        twentyEightBit (30): Repetitive patterns of 28 bits in length.
        twentyNineBit  (31): Repetitive patterns of 29 bits in length.
        thirtyOneBit   (32): Repetitive patterns of 32 bits in length.
        thirtyTwo      (33): Repetitive patterns of 33 bits in length.
     "
    REFERENCE 
        "CCITT/ITU O.150, O.151, O.152, O.153, O.161 Standards." 
    ::= { dsx3bert 10 }

dsx3bertLoopback OBJECT-TYPE
    SYNTAX  INTEGER {
                    farEndLoopback   (1),
                    metallicLoopback (2)
                }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "This object specifies the type of loopback to be 
        established/de-established.
        The value farEndLoopback(1) is not supported in 
        CESM-T3E3 and FRSM-2T3E3, where the default value for
        this object shall be 2." 
    ::= { dsx3bert 11 }

dsx3bertStartTime OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (0 | 8))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object contains the time at which
        BERT started. The syntax is hh:mm:ss.
        The time zone is as configured in the shelf.

        This object contains zero length string for following
        values of dsx3bertControl:
           noAction    (0),
           acquireBert (1),
           releaseBert (2),
           cnfBert     (3)."
    ::= { dsx3bert 12 }

dsx3bertStartDate OBJECT-TYPE
    SYNTAX     DisplayString (SIZE (0 | 8))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object contains the date on which
        BERT started. The syntax is yy/mm/dd.

        This object contains zero length string for following
        values of dsx3bertControl:
           noAction    (0),
           acquireBert (1),
           releaseBert (2),
           cnfBert     (3)."
    ::= { dsx3bert 13 }

dsx3bertBitCountUpper OBJECT-TYPE
    SYNTAX     Integer32(0..2147483647) 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This number of bits transmitted is represented in an encoded
        form as a 64-bit counter. This object gives the upper 31 bits
        of the 64 bit counter. The 32nd bit is not available." 
    ::= { dsx3bert 14 }

dsx3bertBitCountLower OBJECT-TYPE
    SYNTAX     Integer32(0..2147483647) 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This number of bits transmitted is represented in an encoded
        form as a 64-bit counter. This object gives the lower 31 bits
        of the 64 bit counter. The 32nd bit is not available." 
    ::= { dsx3bert 15 }

dsx3bertBitErrorCountUpper OBJECT-TYPE
    SYNTAX     Integer32(0..2147483647) 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This number of bits received in error is represented in 
        an encoded form as a 64-bit counter. This object gives the 
        upper 31 bits of the 64 bit counter. The 32nd bit is not
        available." 
    ::= { dsx3bert 16 }

dsx3bertBitErrorCountLower OBJECT-TYPE
    SYNTAX     Integer32(0..2147483647) 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This number of bits received in error is represented in 
        an encoded form as a 64-bit counter. This object gives the 
        lower 31 bits of the 64 bit counter. The 32nd bit is not 
        available." 
    ::= { dsx3bert 17 }

dsx3bertErrorInsertionRate OBJECT-TYPE
    SYNTAX  INTEGER {
                errorInsertionDisabled (1),
                oneInTen               (2),
                oneInTenPowerTwo       (3),
                oneInTenPowerThree     (4),
                oneInTenPowerFour      (5),
                oneInTenPowerFive      (6),
                oneInTenPowerSix       (7),
                oneInTenPowerSeven     (8)
            }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION 
       "This object is used for injecting continuous errors into 
	transmitted BERT pattern.  The errors are inserted in a BERT 
        pattern sent, in order to do sanity check on receive interface 
        in the event that no bit errors are detected.  Injecting errors 
        allows users to stress communication links and to check the 
	functionality of error monitoring equipment along the path.
        Once set to send continuous errors, errors will be inserted 
        at the configured rate until set to errorInsertionDisabled(1). 
      
        The possible values are :
	
	errorInsertionDisabled(1) : no bit errors are inserted.

	oneInTen(2)	: insert bit errors at the rate of 1 bit
		          error per 10 bits (10^-1) transmitted.

	oneInTenPowerTwo(3) : insert bit errors at the rate of 1 bit
	                      error per 100 bits (10^-2) transmitted.

	oneInTenPowerThree(4): insert bit errors at the rate of 1 bit
	                       error per 1000 bits (10^-3) transmitted.

	oneInTenPowerFour(5): insert bit errors at the rate of 1 bit
		              error per 10000 (10^-4) bits transmitted.

	oneInTenPowerFive(6): insert bit errors at the rate of 1 bit
		              error per 100000 bits (10^-5) transmitted.

	oneInTenPowerSix(7) : insert bit errors at the rate of 1 bit
		              error per 1000000 bits (10^-6) transmitted.

	oneInTenPowerSeven(8): insert bit errors at the rate of 1 bit
		               error per 10,000,000 (10^-7)bits transmitted. "
        ::= { dsx3bert 18 }

dsx3bertErrorInjectCount OBJECT-TYPE
    SYNTAX     Integer32(0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This shows the number of times error was injected." 
    ::= { dsx3bert 19 }

dsx3bertCleanupAction OBJECT-TYPE
    SYNTAX  INTEGER {
                noAction         (1),
                smCleanup        (2),
                metallicLoopdown (3)
        }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "When the BERT has to be stopped or aborted (due to card state 
        changes), this object would give the exact action to take. 
        The bert related changes to  the card, then, can be cleaned up. 

        The value metallicLoopdown(3) is not applicable for 
        CESM-T3E3 and FRSM-2T3E3.

        When its value is metallicLoopdown(3), it implies 
        smCleanup plus the corresponding Loopdown."
    DEFVAL { noAction }
    ::= { dsx3bert 20 }

-- conformance information

cmDsx3BertMIBConformance  OBJECT IDENTIFIER ::= { ciscoMgx82xxDsx3BertMIB 2 }

cmDsx3BertMIBGroups       OBJECT IDENTIFIER ::= 
                                   { cmDsx3BertMIBConformance 1 }

cmDsx3BertMIBCompliances  OBJECT IDENTIFIER ::= 
                                   { cmDsx3BertMIBConformance 2 }

-- compliance statements

cmDsx3BertCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "The compliance statement for objects related
        to Bert MIB."
    MODULE  -- this module
    MANDATORY-GROUPS {
        cmDsx3BertConfGroup
    }
    ::= { cmDsx3BertMIBCompliances 1 }

cmDsx3BertConfGroup OBJECT-GROUP
    OBJECTS {
        dsx3bertControl,
        dsx3bertResourceStatus,
        dsx3bertOwner,
        dsx3bertUserId,
        dsx3bertStatus,
        dsx3bertTestMedium,
        dsx3bertPort,
        dsx3bertLine,
        dsx3bertMode,
        dsx3bertPattern,
        dsx3bertLoopback,
        dsx3bertStartTime,
        dsx3bertStartDate,
        dsx3bertBitCountUpper,
        dsx3bertBitCountLower,
        dsx3bertBitErrorCountUpper,
        dsx3bertBitErrorCountLower,
        dsx3bertErrorInsertionRate,
        dsx3bertErrorInjectCount,
        dsx3bertCleanupAction
      }
      STATUS current
      DESCRIPTION
          "The collection of objects which are used for
          configuring/running BERT on DSX3 interfaces."
      ::= { cmDsx3BertMIBGroups 1 }

END
