-- *****************************************************************
-- UBQS-TC:  Ubiquoss MIB Textual Conventions         
--
-- June 2009, Hyung Eun Park
--
-- Copyright (c) 2009 by Ubiquoss, Corp.
-- All rights reserved.    
-- ****************************************************************

UBQS-TC DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    Gauge32,
    Integer32,
    Unsigned32,
    Counter64
        FROM SNMPv2-SMI
    TEXTUAL-CONVENTION
        FROM SNMPv2-TC;
    

-- 2010.11.26, defined bridge id (IEEE 8021)    
--UbiBridgeId ::= TEXTUAL-CONVENTION
--    STATUS          current
--    DESCRIPTION
--		"Represents the bridge id. 	
--			bridge id : 1 ~ 32
--			backbone
--			beb 
--		"
--	SYNTAX	 OCTET STRING (SIZE (0..64))
	
UbiBridgeId ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
		"Represents the bridge id. 	
			bridge id : 1 ~ 32            
			default bridge (1000)
			backbone(1001)
		"
	SYNTAX	 INTEGER {             
		-- looking for better mechanism to represent the bridge id      
		default(1000),
		backbone(1001)
	}
	
	    
Layer2Cos ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "An integer that is in the range of the layer 2 CoS values. It
        corresponds to the IEEE 802.1P CoS value which defines eight
        (2^3) user priority levels.
        Note: the IEEE 802.1P has been merged into IEEE 802.1D."

    REFERENCE
        "IEEE 802.1D, 2004 Edition, Annex G User priorities and traffic
            classes."
    SYNTAX          Integer32 (0..7 )

UbiNetworkProtocol ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Represents the different types of network layer protocols."
    SYNTAX          INTEGER  {
                        ip(1),
                        decnet(2),
                        pup(3),
                        chaos(4),
                        xns(5),
                        x121(6),
                        appletalk(7),
                        clns(8),
                        lat(9),
                        vines(10),
                        cons(11),
                        apollo(12),
                        stun(13),
                        novell(14),
                        qllc(15),
                        snapshot(16),
                        atmIlmi(17),
                        bstun(18),
                        x25pvc(19),
                        ipv6(20),
                        cdm(21),
                        nbf(22),
                        bpxIgx(23),
                        clnsPfx(24),
                        http(25),
                        unknown(65535)
                    }

UbiNetworkAddress ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Represents a network layer address.  The length and format of
        the address is protocol dependent as follows:
        ip        4 octets
        decnet    2 octets
        pup       obsolete
        chaos     2 octets
        xns       10 octets
                  first 4 octets are the net number
                  last 6 octets are the host number
        x121    
        appletalk 3 octets
                  first 2 octets are the net number
                  last octet is the host number
        clns
        lat
        vines     6 octets
                  first 4 octets are the net number
                  last 2 octets are the host number
        cons
        apollo    10 octets
                  first 4 octets are the net number
                  last 6 octets are the host number
        stun      8 octets
        novell    10 octets
                  first 4 octets are the net number
                  last 6 octets are the host number
        qllc      6 octets
        bstun     1 octet - bi-sync serial tunnel 
        snapshot  1 octet
        atmIlmi   4 octets
        x25 pvc   2 octets (12 bits)
        ipv6      16 octets
        cdm
        nbf
        bgpIgx
        clnsPfx  upto 20 octets
        http     upto 70 octets
                 first 4 octets are the IPv4 host 
                 address
                 next 2 octets are the TCP port 
                 number
                 remaining(1 upto 64) octets are 
                 the URI"
    SYNTAX          OCTET STRING

Unsigned64 ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "An unsigned 64 bit integer. We use SYNTAX Counter64 for the
        encoding rules."
    SYNTAX          Counter64

InterfaceIndexOrZero ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Either the value 0, or the ifIndex value of an
        interface in the ifTable."
    SYNTAX          Integer32 (0..2147483647 )

SAPType ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Service Access Point - is a term that denotes the means
        by which a user entity in layer n+1 accesses a service
        of a provider entity in layer n."
    SYNTAX          Integer32 (0..254 )

CountryCode ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Represents a case-insensitive 2-letter country code taken
        from ISO-3166. Unrecognized countries are represented as 
        empty string."
    SYNTAX          OCTET STRING (SIZE (0  |  2))

CountryCodeITU ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention represents a country or area code for
        non-standard facilities in telematic services."

    REFERENCE       "ITU-T T.35 - Section 3.1 Country Code"
    SYNTAX          Unsigned32 (0..255 )

EntPhysicalIndexOrZero ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention is an extension of entPhysicalIndex.
        If non-zero, the object is an entPhysicalIndex. If zero, no
        appropriate entPhysicalIndex exists. Any additional semantics
        are object specific."
    SYNTAX          Integer32 (0..2147483647 )

UbiRowOperStatus ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Represents the operational status of an table entry.
        This textual convention allows explicitly representing
        the states of rows dependent on rows in other tables.

        active(1) -
            Indicates this entry's RowStatus is active
            and the RowStatus for each dependency is active.

        activeDependencies(2) -
            Indicates that the RowStatus for each dependency
            is active, but the entry's RowStatus is not active.

        inactiveDependency(3) -
            Indicates that the RowStatus for at least one
            dependency is not active.

        missingDependency(4) -
            Indicates that at least one dependency does
            not exist in it's table."
    SYNTAX          INTEGER  {
                        active(1),
                        activeDependencies(2),
                        inactiveDependency(3),
                        missingDependency(4)
                    }

UbiPort ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The TCP or UDP port number range."

    REFERENCE
        "Transmission Control Protocol. J. Postel. RFC793,
            User Datagram Protocol. J. Postel. RFC768"
    SYNTAX          Integer32 (0..65535 )

UbiIpProtocol ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "IP protocol number range."

    REFERENCE       "Internet Protocol. J. Postel. RFC791"
    SYNTAX          Integer32 (0..255 )

UbiLocationClass ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "An enumerated value which provides an indication of
        the general location type of a particular physical and/or
        logical interface.
        chassis - a system framework for mounting one or more 
                  shelves/slots/cards.
        shelf - a cabinet that holds one or more slots.
        slot -  card or subSlot holder.
        subSlot - daughter-card holder.
        port - a physical port (e.g., a DS1 or DS3 physical port).
        subPort - a logical port on a physical port (e.g., a DS1 
                  subPort on a DS3 physical port).
        channel - a logical interface (e.g., a DS0 channel, signaling
                  channel, ATM port, other virtual interfaces).
        subChannel - a sub-channel on a logical interface."
    SYNTAX          INTEGER  {
                        chassis(1),
                        shelf(2),
                        slot(3),
                        subSlot(4),
                        port(5),
                        subPort(6),
                        channel(7),
                        subChannel(8)
                    }

UbiLocationSpecifier ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Use this TC to define objects that indicate the
        physical entity and/or logical interface location 
        of a managed entity on a managed device. In SNMP, a 
        standard mechanism for indicating the physical location
        of entities is via the ENTITY-MIB. However, that approach
        is not satisfactory in some cases because:

        1. The entity requiring a location-based naming may be 
           associated with an entity which can not be represented 
           as a physical entity in the ENTITY-MIB,
        2. NMS applications may desire a more direct 
           name/representation of a physical entity than is 
           available via the ENTITY-MIB, e.g., a physical entity
           which is named via a hierarchy of levels in the ENTITY-MIB.

        The value of an object defined using this TC is an ASCII 
        string consisting of zero or more elements separated by 
        commas. Each element is of the form  = . 

        An example of this syntax is 'slot=5,port=3'.

        The syntax of the string is formally specified using
        ABNF notation (with one exception, noted below), as
        follows:                 

        location-specifier =  elem *(',' elem) 
                       ; subject to 
                       ; size restriction specified in the SYNTAX
                       ; clause below

        elem    =   loctype '=' number

        number  = %x00-FFFFFFFF / %d0-4294967295

        loctype = 1*32VCHAR 

        It is recommended that loctype use one of the enumerated
        labels defined for UbiLocationClass.

        (NOTE: To conform to ABNF notation as defined in RFC2234, 
         substitute the single-quote symbol with a double-quote 
         symbol in the above rules.)

        A zero length of UbiLocationSpecifier is object-specific
        and must be defined as part of the description of any object
        which uses this syntax."

    REFERENCE
        "RFC2234, Augmented BNF for syntax specifications: ABNF"
    SYNTAX          OCTET STRING (SIZE (0..255))

UbiInetAddressMask ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Denotes a generic Internet subnet address mask.
        The Internet subnet address mask is represented as the
        number of contiguous 1-bit from MSB (most significant bit)
        of the Internet subnet address mask.
        A UbiInetAddressMask value is always interpreted within
        the context of an InetAddressType value. The 
        InetAddressType only object or InetAddressType with
        InetAddress objects which define the context must be
        registered immediately before the object which uses the
        UbiInetAddressMask textual convention.  In other words,
        the object identifiers for the InetAddressType object and
        the UbiInetAddressMask object MUST have the same length
        and the last sub-identifier of the InetAddressType object
        MUST be 1 less than the last sub-identifier of the 
        UbiInetAddressMask object and MUST be 2 less than the
        last sub-identifier of the UbiInetAddressMask object if
        an InetAddress object is defined between InetAddressType
        and UbiInetAddressMask objects.
        The maximum value of the UbiInetAddressMask TC is 32 for
        the value 'ipv4(1)' in InetAddressType object and 128 for
        the value 'ipv6(2)' in InetAddressType object.
        The value zero is object-specific and must therefore be
        defined as part of the description of any object which
        uses this syntax.  Examples of the usage of zero might
        include situations where Internet subnet mask was unknown,
        or when none subnet masks need to be referenced."

    REFERENCE
        "RFC2851, Textual Conventions for Internet Network Addresses."
    SYNTAX          Unsigned32 (0..128 )

UbiAbsZeroBasedCounter32 ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This TC describes an object which counts events with the
        following semantics: objects of this type will be set to
        zero(0) on creation and will thereafter count appropriate
        events, it locks at the maximum value of 4,294,967,295 if
        the counter overflows.
        This TC may be used only in situations where wrapping is
        not possible or extremely unlikely situation."
    SYNTAX          Gauge32

UbiSnapShotAbsCounter32 ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This TC describes an object which stores a snap-shot value
        with the following semantics: objects of this type will
        take a snap-shot value from their associated
        UbiAbsZeroBasedCounter32 type objects on creation."
    SYNTAX          Unsigned32

UbiAlarmSeverity ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Represents the perceived alarm severity associated
        with a service or safety affecting condition and/or
        event.  These are based on ITU severities, except
        that info(7) is added.

            cleared(1) -
                Indicates a previous alarm condition has been
                cleared.  It is not required (unless specifically
                stated elsewhere on a case by case basis) that an
                alarm condition that has been cleared will produce
                a notification or other event containing an
                alarm severity with this value.

            indeterminate(2) -
                Indicates that the severity level cannot be
                determined. 

            critical(3) -
                Indicates that a service or safety affecting
                condition has occurred and an immediate
                corrective action is required.

            major(4) -
                Indicates that a service affecting condition has
                occurred and an urgent corrective action is
                required.

            minor(5) -
                Indicates the existence of a non-service affecting
                condition and that corrective action should be
                taken in order to prevent a more serious (for
                example, service or safety affecting) condition.

            warning(6) -
                Indicates the detection of a potential or impending
                service or safety affecting condition, before any
                significant effects have been felt.

            info(7) -
                Indicates an alarm condition that does not
                meet any other severity definition.  This can
                include important, but non-urgent, notices or
                informational events."

    REFERENCE       "ITU-X.733"
    SYNTAX          INTEGER  {
                        cleared(1),
                        indeterminate(2),
                        critical(3),
                        major(4),
                        minor(5),
                        warning(6),
                        info(7)
                    }

PerfHighIntervalCount ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "A 64 bit counter associated with a
        performance measurement in a previous
        15 minute measurement interval. In the
        case where the agent has no valid data
        available for a particular interval the
        corresponding object instance is not
        available and upon a retrieval request
        a corresponding error message shall be
        returned to indicate that this instance
        does not exist (for example, a noSuchName
        error for SNMPv1 and a noSuchInstance for
        SNMPv2 GET operation).
        In a system supporting
        a history of n intervals with
        IntervalCount(1) and IntervalCount(n) the
        most and least recent intervals
        respectively, the following applies at
        the end of a 15 minute interval:
            - discard the value of IntervalCount(n)
            - the value of IntervalCount(i) becomes that
              of IntervalCount(i-1) for n >= i > 1
            - the value of IntervalCount(1) becomes that
              of CurrentCount
            - the TotalCount, if supported, is adjusted.

        This definition is based on CounterBasedGauge64 TEXTUAL
        CONVENTION  defined in RFC2856. The PerfHighIntervalCount
        type represents a non-negative
        integer, which may increase or decrease, but shall never
        exceed a maximum value, nor fall below a minimum value. The
        maximum value can not be greater than 2^64-1
        (18446744073709551615 decimal), and the minimum value can
        not be smaller than 0.  The value of a PerfHighIntervalCount,
        has its maximum value whenever the information being modeled
        is greater than or equal to its maximum value, and has its
        minimum value whenever the information being modeled is
        smaller than or equal to its minimum value.  If the
        information being modeled subsequently decreases below
        (increases above) the maximum (minimum) value, the
        PerfHighIntervalCount also decreases (increases).

        Note that this TC is not strictly supported in SMIv2,
        because the 'always increasing' and 'counter wrap' semantics
        associated with the Counter64 base type are not preserved.
        It is possible that management applications which rely
        solely upon the (Counter64) ASN.1 tag to determine object
        semantics will mistakenly operate upon objects of this type
        as they would for Counter64 objects.

        This textual convention represents a limited and short-term
        solution, and may be deprecated as a long term solution is
        defined and deployed to replace it."

    REFERENCE
        "RFC 2856(HCNUM-TC MIB).
            RFC 2493(PerfHist-TC-MIB)."
    SYNTAX          Counter64

ConfigIterator ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This object type is a control object type which applies to
        writable objects in the same SNMP PDU related to the
        same table containing those objects. It controls an 
        operation which repeatedly applies the specified 
        configuration data to more than one rows in a table. 
        The operation starts from the row specified by the index 
        of the instance and repeats for the number of rows as 
        the value of the object. 

        ConfigIterator object needs to be accompanied by one set of
        writable objects which are of the same instance to apply to.

        For example, a SNMP PDU contains 
           { objectA.10 = 1, 
             objectB.10 = 'E1',
             objectC.10 = 44,
             objectRepetition.10 = 100 }

        The SYNTAX of objectRepetition is ConfigIterator.
        This will apply value 1 to objectA, value 'E1' to objectB,
        value 44 to objectC in the table starting from row 10 
        repeatedly for 100 rows.

        The iteration is based on the number of rows, not based on
        the value of the index. For sparse tables, the index 10, 
        20, 30, 110, and 120 counts for 5 rows, the operation will 
        go beyond index 100 in the previous SNMP PDU example.

        The iteration will stop prematurely when it comes to the 
        following situations:
        (1) When the number of the rows in the table is less than
            the designated row indicated by the ConfigIterator 
            object. 
        (2) When it encounters the first error in any row, the 
            operation won't continue to next row.

        The operation of ConfigIterator object applies only to
        the writable objects having the same index as the
        ConfigIterator object in one SNMP PDU.

        For example, a SNMP PDU contains
           { objectD.5 = 38,
             objectE.6 = 'T1',
             objectF.5 = 'false',
             objectIterator.5 = 10 }

        The SYNTAX of objectIterator is ConfigIterator.
        This will apply value 38 to objectD, value 'false' to 
        objectF in the table starting from row 5 repeatedly 
        for 10 rows. Since the object objectE.6 has different
        index (6) from the index of objectIterator, the 
        repetition won't be applied to it. However the value 
        of objectE in the row 6 will be set to 'T1' according
        to regular SNMP SET orperation. 

        If there is row overlapping of the iteration in a SNMP PDU,
        it will be operated as they are in two different SNMP PDUs.

        For example, a SNMP PDU contains
           { objectD.5 = 38,
             objectD.6 = 40,
             objectE.6 = 'T1',
             objectF.5 = 'false',
             objectIterator.5 = 10
             objectIterator.6 = 10 }

        This will apply value 38 to objectD, value 'false' to 
        objectF starting from row 5 repeatedly for 10 rows, and
        apply value 40 to objectD, value 'T1' to objectE starting
        from row 6 repeatedly for 10 rows. The final value of 
        objectD.6 can be 38 or 40, it depends on the SNMP stack of
        the system starts SNMP SET for the row 5 before the row 6 
        or the other way around.

        The object defined as ConfigIterator will be set to value 1 
        after the iteration operation is kick-off regardless the 
        system has completed the operation to the designated rows 
        or not. Therefore retrieving the value of this object 
        is meaningless. It acts as the one time operation for 
        bulk configuration.

        The object defined as ConfigIterator has no meaning by itself,
        it has to be combined with one or more than one writable 
        objects from the same table and within the same SNMP PDU
        for the repetition operation.

        For example, a SNMP PDU contains
           { objectG.2 = 49,
             objectH.2 = 'AE'h
             objectIterator.4 = 20 }

        The SYNTAX of objectIterator is ConfigIterator. Since
        there are no objects having the same index as the index
        of objectIterator in the PDU, the result of this SNMP 
        operation will set value 49 to objectG and value 0xAE 
        to objectH of the row 2 only as regular SNMP SET operation.

        The index of the instance indicates the starting row for the
        iteration. 
        The order of the iteration depends, for instance, on: 
        (1) physical hardware position, or
        (2) logical index.

        It depends on the characters of the table which contains
        the ConfigIterator object.

        Iteration can be done through some or all the components
        of the index for a table. The description of the iterator
        object in that table should describe which part of the 
        index the iteration is applied to.

        The operation for this object type is based on the best
        effort. When the agent receives a SNMP PDU containing this 
        data type, the return status of the SNMP request reflects 
        only the result of the SET operation has applied to the 
        starting row. It may return a SNMP response with SUCCESS 
        status regardless the number of rows for the data actually 
        been deployed later on. Therefore it is possible the data 
        might not be completely deployed to the number of rows
        designated by the ConfigIterator and the operation stops 
        prematurely due to an error it first encounters after 
        n rows (n < the value of ConfigIterator object).

        Usually the error report mechanism for this type of operation
        is accomplished by combining this type of object with the
        other two objects in the same table:

        (1) An OwnerString object
        (2) An object indicates the result of the operation.

        When issuing this bulk configuration request, the SNMP 
        manager should provide its identifier in (1) object.
        After issuing the request, it should check the value of (1) 
        object if it is the same with it own name.
        If they are the same, then the value of the object presents
        in (2) is the result from the previous operation from this
        manager. Otherwise, another SNMP manager might issue
        the bulk configuration to the same table before the previous
        bulk operation has been completed. These two objects will 
        represent the last bulk operation in the table."
    SYNTAX          Unsigned32 (1..4294967295 )

BulkConfigResult ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention defines the format of the
        displayable textual result from the bulk configuration
        operation specified as ConfigIterator type.

        The format should be: 
        'COMPLETION=          error occured>/,
         ERROR=/:
         '

        For example:
        'COMPLETION=22/100,ERROR=38/44:Invalid Ds1 line coding 
         for the line type'"
    SYNTAX          OCTET STRING (SIZE (0..255))

ListIndex ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "A unique value greater than zero, for each of the
        list that is defined. The object using this 
        convention should give all the object specific 
        details including the list type."
    SYNTAX          Integer32 (1..2147483647 )

ListIndexOrZero ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention is an extension of the
        ListIndex. In addition to the ListIndex range, 
        this also includes 0 in its range of values. 
        This value could be object specific and 
        should be given the description of that object. 
        In most cases, a value 0 means that the it does 
        not represent any lists."
    SYNTAX          Integer32 (0..2147483647 )

TimeIntervalSec ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "A period of time, measured in units of 1 second."
    SYNTAX          Unsigned32

TimeIntervalMin ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "A period of time, measured in units of 1 minute."
    SYNTAX          Unsigned32

UbiMilliSeconds ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Represents time unit value in milliseconds."
    SYNTAX          Unsigned32

MicroSeconds ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Represents time unit value in microseconds."
    SYNTAX          Unsigned32

UbiPortList ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Each octet within this value specifies a set of eight
        ports. The object defined by this textual convention
        can specify a port range of 2k ports in its description.
        Example: 1 - 2048, 2049 - 4096, etc. The first octet 
        represents the first 8 ports of the range of ports
        specified by the object, the second octet represents 
        the next 8 ports, etc. When a port range is not
        specified, a default port range of '1 - 2048' is assumed.

        Within each octet, the most significant bit represents
        the lowest numbered port, and the least significant bit
        represents the highest numbered port. Thus, each port
        of the bridge is represented by a single bit within the
        value of this object.  If that bit has a value of '1'
        then that port is included in the set of ports; the port
        is not included if its bit has a value of '0'.

        Note that if the length of this string is less than
        256 octets, any 'missing' octets are assumed to contain
        the value zero. An NMS may omit any zero-valued octets
        from the end of this string in order to reduce SetPDU size,
        and the agent may also omit zero-valued trailing octets,
        to reduce the size of GetResponse PDUs."
    SYNTAX          OCTET STRING (SIZE (0..256))

UbiPortListRange ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Indicates the port range.

        oneto2K(1) indicates that the port number range is
        from 1 to 2048.

        twoKto4K(2) indicates that the port number range is
        from 2049 to 4096.

        fourKto6K(3) indicates that the port number range is
        from 4097 to 6144.

        sixKto8K(4) indicates that the port number range is
        from 6145 to 8192.

        eightKto10K(5) indicates that the port number range is
        from 8193 to 10240.

        tenKto12K(6) indicates that the port number range is
        from 10241 to 12288.

        twelveKto14K(7) indicates that the port number range is
        from 12289 to 14336.

        fourteenKto16K(8) indicates that the port number range is
        from 14337 to 16384.

        When an object is defined with this textual convention,
        it must be accompanied by an object of UbiPortList
        syntax."
    SYNTAX          INTEGER  {
                        oneto2k(1),
                        twoKto4K(2),
                        fourKto6K(3),
                        sixKto8K(4),
                        eightKto10K(5),
                        tenKto12K(6),
                        twelveKto14K(7),
                        fourteenKto16K(8)
                    }

IfOperStatusReason ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "The cause of current operational state of the
        interface.

        GLOSSARY:

        BB        - Buffer-to-Buffer.

        BB_Credit - Buffer-to-Buffer credit, a link level flow
                    control mechanism.

        B_Port    - A Fibre Channel, Bridging port.

        Class F   - A connectionless service with notification on 
                    non-delivery between E_Ports, used for control, 
                    coordination, and configuration of the Fabric.

        Class N   - Refers to any class of service (different types
                    of frame delivery services) other than Class F.

        E_D_TOV   - Error Detect Timeout Value.

        ELP       - Exchange Link Parameter.

        E-mode    - A fibre channel port providing E_Port 
                    functionality. 

        E_Port    - A Fabric Expansion Port.  

        EPP       - Exchange Peer Parameters.

        ESC       - Exchange Switch Capabilities.

        Fabric    - The set of physically connected fibre channel
                    switches.

        FC-FS     - Fibre Channel Framing and Signaling.

        FCIP      - Fibre Channel over IP protocol.

        FCOT      - Fibre channel optical transmitter.

        FC-PH     - The Fibre Channel Physical and Signaling 
                    standard.

        FCSP      - Fibre Channel Security Protocol. 

        Fibre Channel - The primary protocol for building SANs. 

        FICON     - An I\O protocol used between IBM (and compatible) 
                    mainframes and storage.

        FLOGI     - Fabric Login, used by a node port to establish a
                    session with the fabric.

        GBIC      - Gigabit Interface Converter; a removable 
                    transceiver module permitting Fibre Channel and 
                    Gigabit Ethernet physical-layer transport.

        Interconnect_Ports - Switch Ports that assume either the
                    E_Port or B_Port mode are generally referred to 
                    as Interconnect_Ports.

        LIP       - Loop Initialization Primitive sequence.

        LR        - Link Reset, the FC-PH defined primitive sequence 
                    used to initiate a link reset. 

        NOS       - Not Operational Sequence, the FC-PH defined 
                    primitive sequence to indicate that the 
                    transmitting port has detected a link failure (or)
                    offline condition.

        Nx_Port   - A Fiber Channel Node Port. 

        OLS       - Offline Sequence, the FC-PH defined primitive 
                    sequence to indicate that the port is entering
                    into offline state.

        OHMS      - Online Health Management System.

        R_A_TOV   - Resource Allocation Timeout Value.

        RCF       - Reconfigure Fabric. 

        Rxbbcredit - Receive BB credit value configured for 
                     a FC interface.

        SAN       - Storage Area Network; a network linking computing 
                    devices to disk or tape arrays and other devices 
                    over Fibre Channel.

        TE_Port   - Trunking E_Port.

        TOV       - Time out value.

        VSAN      - Virtual Storage Area Network.

        WWN       - World Wide Name.

        xE_Port   - A Fiber channel port that can assume either 
                    E_Port or TE_Port mode.

        The enumerated values which provides the cause of the current
        operational state of the interface are,

           'other(1)' - reasons other than defined here.

           'none(2)' - no failure.

           'hwFailure(3)' - hardware failure.  

           'loopbackDiagFailure(4)' - loopback diagnostics failure.

           'errorDisabled(5)' - the port is not operational due to 
               some error conditions that require administrative 
               attention.

           'swFailure(6)' - software failure.

           'linkFailure(7)' - physical link failure.

           'offline(8)' -  physical link is in offline state as 
               defined in the FC-FS standards.

           'nonParticipating(9)' - during loop initialization, the 
               port is not allowed to participate in loop operations.

           'initializing(10)' - port is being initialized. 

           'vsanInactive(11)'- port VSAN is inactive. The port becomes 
               operational again when the port VSAN is active. 

           'adminDown(12)' - ifAdminStatus is 'down'.

           'channelAdminDown(13)' - this port is a member of a port 
               channel and that port channel's ifAdminStatus is 
               'down'. 

           'channelOperSuspended(14)' - this port is a member of a 
               port channel and its operational parameters are 
               incompatible with the port channel parameters.  

           'channelConfigurationInProgress(15)' - this port is 
               undergoing a port channel configuration.

           'rcfInProgress(16)' - an isolated xE_port is transmitting 
               an reconfigure fabric, requesting a disruptive 
               reconfiguration in an attempt to build a single, 
               non-isolated fabric. Only the Interconnect_Ports can 
               become isolated. 

           'elpFailureIsolation(17)' - during a port initialization 
               the prospective Interconnect_Ports find incompatible 
               link parameters.

           'escFailureIsolation(18) - during a port initialization the 
               prospective Interconnect_Ports are unable to proceed 
               with initialization as a result of ESC.

           'domainOverlapIsolation(19)' - there is a overlap in 
               domains while attempting to connect two existing 
               fabrics.

           'domainAddrAssignFailureIsolation(20)' - the elected 
               principal switch is not capable of performing domain 
               address manager functions so no Nx_port traffic can be 
               forwarded across switches, hence all Interconnect_Ports 
               in the switch are isolated.

           'domainOtherSideEportIsolation(21)' - the peer E_port is 
               isolated.

           'domainInvalidRcfReceived(22)' - invalid RCF received.

           'domainManagerDisabled(23) - domain manager is disabled.

           'zoneMergeFailureIsolation(24)' - the two Interconnect_Ports 
               cannot merge zoning configuration after having exchanged 
               merging request for zoning.

           'vsanMismatchIsolation(25)' - this VSAN is not configured 
               on both sides of a trunk port.

           'parentDown(26)' - the physical port to which this interface 
               is bound is down.

           'srcPortNotBound(27)'- no source port is specified for this 
               interface.

           'interfaceRemoved(28)' - interface is being removed.

           'fcotNotPresent(29)' - FCOT (GBIC) not present.

           'fcotVendorNotSupported(30)' - FCOT (GBIC) vendor is not 
               supported. 

           'incompatibleAdminMode(31)' - port administrative mode is 
               incompatible with port capabilities. 

           'incompatibleAdminSpeed(32)' - port speed is incompatible 
               with port capabilities. 

           'suspendedByMode(33)' - port that belongs to a port channel
               is suspended due to incompatible operational mode.

           'suspendedBySpeed(34)' - port that belongs to a port channel
               is suspended due to incompatible operational speed.

           'suspendedByWwn(35)' - port that belongs to a port channel 
               is suspended due to incompatible remote switch WWN.

           'domainMaxReTxFailure(36)' - domain manager failure after 
               maximum retries.

           'eppFailure(37)' - trunk negotiation protocol failure after 
               maximum retries.

           'portVsanMismatchIsolation(38)' - an attempt is made to 
               connect two switches using non-trunking ports having 
               different port VSANs. 

           'loopbackIsolation(39)' - port is connected to another port 
               in the same switch.

           'upgradeInProgress(40)' - linecard upgrade in progress.

           'incompatibleAdminRxBbCredit(41)' - receive BB credit is 
               incompatible. "
     SYNTAX          OCTET STRING (SIZE (0..256))


------------------------------------------------------------------
-- The fllowing was defined in UBQS_QOS_PIB_MIB
------------------------------------------------------------------
-- Percentage for thresholds, etc.
--
Percent ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "An integer that is in the range of a percent value."
    SYNTAX INTEGER (0..100)

-- DiffServ Codepoint
--
Dscp ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
        "An integer that is in the range of the DiffServ codepoint
        values."
    SYNTAX INTEGER (0..63)
 
------------------------------------------------------------------
-- The fllowing was defined in UBQS_ST_TC_MIB
------------------------------------------------------------------
FcNameIdOrZero ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
           "The World Wide Name (WWN) associated with a Fibre Channel
           (FC) entity.  WWNs were initially defined as 64-bits in
           length.  The latest definition (for future use) is 128-bits
           long.  The zero-length string value is used in circumstances
           where the WWN is unassigned/unknown."
        SYNTAX  OCTET STRING (SIZE(0 | 8 | 16))
 
------------------------------------------------------------------
-- The fllowing was defined in UBQS-FRAME-RELAY-MIB
------------------------------------------------------------------
DlciNumber ::= TEXTUAL-CONVENTION
        STATUS  current
        DESCRIPTION
                "Numerical format of Data Link Connection Identifier
                (DLCI) in decimal, identical to the 'DLCI' as INTEGER
                of 0..DLCINumber in RFC1315. The maximum value depends
                on Frame Relay implementation, which is currently set
                to be 1023 for 2-octet address format per UNI
                Implementation Agreement FRF.1."
        SYNTAX        INTEGER (0..1023)


 END
         