
--
--				"%Z%%M% %D%"
--
-- Title: Fibre Alliance Fibre Channel Management Framework Integration MIB
--	  Rev 1.5, June 1, 1999.
--
-- Note: This is released for Brocade FOS 2.2
--
-- added FA MIB Version 2.2 last edited on Nov 10th, 1999.

FCMGMT-MIB
-- Last edit date: Nov 10th, 1999
DEFINITIONS ::= BEGIN 
  IMPORTS 
    IpAddress,  TimeTicks, experimental 
        FROM RFC1155-SMI 
    OBJECT-TYPE 
        FROM RFC-1212 
    DisplayString 
        FROM RFC1213-MIB 
    TRAP-TYPE 
        FROM RFC-1215; 

    --Textual conventions for this MIB    

    FcNameId ::= OCTET STRING (SIZE(8))
    
    FcGlobalId ::= OCTET STRING (SIZE(16))
    
    FcEventSeverity  ::= INTEGER { 
                unknown     (1),
				emergency	(2),
				alert		(3),
				critical	(4),
				error		(5),
				warning     (6),
				notify      (7),
				info		(8),
				debug		(9),
				mark		(10)	-- All messages logged
            } 

    FcUnitType ::= INTEGER { 
                unknown(1),
                other(2), -- none of the following 
                hub(3), -- passive connectivity unit
                        -- supporting loop protocol.
                switch(4), -- active connectivity unit
                        -- supporting multiple protocols.
                gateway(5), -- unit that converts not only
                        -- the interface but also encapsulates
                        -- the frame into another protocol. The
                        -- assumption is that there is always
                        -- two gateways connected together. For
                        -- example, FC <-> ATM.
                converter(6), -- unit that converts from one
                        -- interface to another. For
                        -- example, FC <-> SCSI.
                hba(7), -- host bus adapter
                proxy-agent(8), -- software proxy-agent
                storage-device(9), -- disk,cd,tape,etc
                host(10), -- host computer
                storage-subsystem(11), -- raid, library, etc
                module(12), -- subcomponent of a system
                swdriver(13), -- software driver
                storage-access-device(14) -- Provides storage management
                                          -- and access for hetergeneous
                                          -- hosts and heterogeneous devices.
            } 

----------------------------------------------------------------------
    fcmgmt    OBJECT IDENTIFIER ::= { experimental 94 } 

    -- groups in fcmgmt 

    connSet         OBJECT IDENTIFIER ::= { fcmgmt 1 } 
    trapReg         OBJECT IDENTIFIER ::= { fcmgmt 2 } 
    statSet         OBJECT IDENTIFIER ::= { fcmgmt 4 }

    revisionNumber OBJECT-TYPE
        SYNTAX DisplayString (SIZE (4))
        ACCESS read-only 
        STATUS mandatory 
        DESCRIPTION
            "This is the revision number for this MIB. The
            format of the revision value is as follows
                (0) = high order major revision number
                (1) = low order major revision number
                (2) = high order minor revision number
                (3) = low order minor revision number
            The value will be stored as an ASCII value. The
            following is the current value of this object.
                (0) = '0'
                (1) = '2'
                (2) = '2'
                (3) = '0'
            This defines a revision of 02.20
            "
        ::= { fcmgmt 3 }

    -- the connectivity unit group 

    -- Implementation of the group is mandatory for all systems. 

    uNumber OBJECT-TYPE 
        SYNTAX INTEGER
        ACCESS read-only 
        STATUS mandatory 
        DESCRIPTION 
            "The number of connectivity units present on this
            system (represented by this agent). May be a count 
            of the boards in a chassis or the number of full boxes
            in a rack." 
        DEFVAL { 1 } 
        ::= { connSet 1 }

    systemURL OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
            "The top-level URL of the system. If it does not exist
            the value is empty string. The URL format is 
            implementation dependant and can have keywords embedded
            that are preceeded by a percent sign (eg, %USER).
            The following are the defined keywords that will
            be recognized and replaced with data during a launch.
                USER        - replace with username
                PASSWORD    - replace with password
                GLOBALID    - replace with globalid
                SERIALNO    - replace with serial number
            "
        DEFVAL { "" }
        ::= { connSet 2 }

    statusChangeTime OBJECT-TYPE 
        SYNTAX TimeTicks 
        ACCESS read-only 
        STATUS deprecated 
        DESCRIPTION 
            "The sysuptime timestamp in centiseconds at which
            the last status change occurred for any members of
            the set."
        ::= { connSet 3 }

    configurationChangeTime OBJECT-TYPE 
        SYNTAX TimeTicks 
        ACCESS read-only 
        STATUS deprecated
        DESCRIPTION 
            "The sysuptime timestamp in centiseconds at which
            the last configuration change occurred for any
            members of the set. This represents a union of change
            information for connUnitConfigurationChangeTime."
        ::= { connSet 4 }

    connUnitTableChangeTime OBJECT-TYPE
        SYNTAX TimeTicks
        ACCESS read-only 
        STATUS deprecated
        DESCRIPTION
            "The sysuptime timestamp in centiseconds at which
            the connUnitTable was updated (an entry was either
            added or deleted."
        ::= { connSet 5 }

    -- The Connectivity table contains general information on the 
    -- system's units.
    connUnitTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF ConnUnitEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "A list of units under a single SNMP agent. The number 
            of entries is given by the value of uNumber. It is 1 
            for stand-alone system." 
        ::= { connSet 6 }

    connUnitEntry OBJECT-TYPE 
        SYNTAX ConnUnitEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "A connectivity unit entry containing objects for a 
             particular unit." 
        INDEX { connUnitId } 
        ::= { connUnitTable 1 } 

        ConnUnitEntry ::= 
            SEQUENCE { 
                connUnitId
                    OCTET STRING,
                connUnitGlobalId
                    FcGlobalId,
                connUnitType 
                    FcUnitType, 
                connUnitNumports 
                    INTEGER, 
                connUnitState 
                    INTEGER, 
                connUnitStatus 
                    INTEGER, 
                connUnitProduct 
                    DisplayString, 
                connUnitSn 
                    DisplayString, 
                connUnitUpTime 
                    TimeTicks, 
                connUnitUrl 
                    DisplayString, 
                connUnitDomainId 
                    OCTET STRING, 
                connUnitProxyMaster 
                    INTEGER, 
                connUnitPrincipal 
                    INTEGER,
                connUnitNumSensors 
                    INTEGER,
                connUnitStatusChangeTime
                    TimeTicks,
                connUnitConfigurationChangeTime
                    TimeTicks,
                connUnitNumRevs
                    INTEGER,
                connUnitNumZones
                    INTEGER,
                connUnitModuleId
                    OCTET STRING,
                connUnitName
                    DisplayString,
                connUnitInfo
                    DisplayString,
                connUnitControl
                    INTEGER,
                connUnitContact
                    DisplayString,
                connUnitLocation
                    DisplayString,
                connUnitEventFilter
                    FcEventSeverity,
                connUnitNumEvents
                    INTEGER,
                connUnitMaxEvents
                    INTEGER,
                connUnitEventCurrID
                    INTEGER
            } 

        connUnitId OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (16))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
 			"The unique identification for this connectivity unit
			among those within this proxy domain.  
			The value MUST be unique within the proxy domain
			because it is the index variable for connUnitTable.
			The value assigned to a given conectivity unit
			SHOULD be persistent across agent and unit resets.
			It SHOULD be the same as connUnitGlobalId
			if connUnitGlobalId is known and stable."
            ::= { connUnitEntry 1 } 

        connUnitGlobalId OBJECT-TYPE 
            SYNTAX FcGlobalId
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
			"An optional global-scope identifier for this connectivity unit.
			It MUST be a WWN for this connectivity unit
			or 16 octets of value zero. 
			WWN formats requiring fewer than 16 octets 
			MUST be extended to 16 octets with trailing zero octets,
			If a WWN is used for connUnitId,
			the same WWN MUST be used for connUnitGlobalId.
			When a non-zero value is provided, 
			it SHOULD be persistent across agent and unit resets.
			It SHOULD be globally unique.
			It SHOULD be one of these FC-PH/PH3 formats:
				IEEE (NAA=1)
				IEEE Extended (NAA=2)
				IEEE Registered (NAA=5).
				IEEE Registered extended (NAA=6).
 
			Use of the IEEE formats allows any IEEE-registered vendor
			to assure global uniqueness independently.
			The following are some references on IEEE WWN formats:
	   http://standards.ieee.org/regauth/oui/tutorials/fibreformat.html 
	   http://standards.ieee.org/regauth/oui/tutorials/fibrecomp_id.html

			If one or more WWNs are associated with the connUnit
			via other management methods,
			one of them SHOULD be used for connUnitGlobalId.
			If there is not a WWN assigned specifically to the connUnit,
			there is some merit, though not a requirement,
			to using a WWN assigned to (one of) 
			its permanently attached FC/LAN interface(s). 
			This can not risk uniqueness, though.
			As a counterexample, if your
			agent runs in a host and the host has an HBA,
			it is quite possible that agent, host, and HBA
			will all be distinct connUnits, so the host
			and agent can not use the WWN of the HBA.
			Another example:
			If your hub has a built-in Ethernet port, it
			might be reasonable for the hub to use its LAN
			address (prefixed with the appropriate
			NAA) as its connUnitId. But if the
			Ethernet were a replaceable PCCard, the hub
			should have an independent ID."
            ::= { connUnitEntry 2 } 

        connUnitType OBJECT-TYPE 
            SYNTAX FcUnitType 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The type of this connectivity unit." 
            ::= { connUnitEntry 3 } 


        connUnitNumports OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Number of physical ports in the connectivity unit 
                (internal/embedded, external)." 
            ::= { connUnitEntry 4 } 

        connUnitState OBJECT-TYPE 
            SYNTAX INTEGER {
                unknown(1),
                online(2),
                offline(3)
            }
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Overall state of the connectivity unit."
            ::= { connUnitEntry 5 } 

        connUnitStatus OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown(1),
                unused(2), 
                ok(3), 
                warning(4), -- needs attention 
                failed(5) 
            } 
            ACCESS read-only 
            STATUS mandatory 

            DESCRIPTION 
                "Overall status of the connectivity unit." 
            ::= { connUnitEntry 6 } 

        connUnitProduct OBJECT-TYPE 
            SYNTAX DisplayString (SIZE (0..79)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The connectivity unit vendor's product
                model name." 
            ::= { connUnitEntry 7 } 

        connUnitSn OBJECT-TYPE 
            SYNTAX DisplayString (SIZE (0..79)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The serial number for this connectivity unit." 
            ::= { connUnitEntry 8 } 

        connUnitUpTime OBJECT-TYPE 
            SYNTAX TimeTicks 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of centiseconds since the 
                last unit initialization." 
            ::= { connUnitEntry 9 } 

        connUnitUrl OBJECT-TYPE 
            SYNTAX DisplayString 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "URL to launch a management application, 
                if applicable. Otherwise empty string. 
                In a standalone unit, this would be the 
                same as the top-level URL. This has the same
		    definition as systemURL for keywords." 
            ::= { connUnitEntry 10 } 

        connUnitDomainId OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE(3)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "24 bit Fibre Channel address ID of this 
                connectivity unit, right justified with leading 
                zero's if required. If this value is not applicable,
                return all bits set to one."
            ::= { connUnitEntry 11 } 

        connUnitProxyMaster OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown(1),
                no(2), 
                yes(3) 
            } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "A value of 'yes' means this is the proxy master 
                unit for a set of managed units. For example, 
                this could be the only unit with a management 
                card in it for a set of units. A standalone unit
                should return 'yes' for this object."
            ::= { connUnitEntry 12 } 

        connUnitPrincipal OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown(1),
                no(2), 
                yes(3) 
            } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Whether this connectivity unit is the principal unit 
                within the group of fabric elements. If this value 
                is not applicable, return unknown."
            ::= { connUnitEntry 13 } 

        connUnitNumSensors OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Number of sensors in the connUnitSensorTable." 
            ::= { connUnitEntry 14 } 
        
        connUnitStatusChangeTime OBJECT-TYPE 
            SYNTAX TimeTicks 
            ACCESS read-only 
            STATUS deprecated
            DESCRIPTION 
                "The sysuptime timestamp in centiseconds 
                at which the last status change occurred."
            ::= { connUnitEntry 15 } 

        connUnitConfigurationChangeTime OBJECT-TYPE 
            SYNTAX TimeTicks 
            ACCESS read-only 
            STATUS deprecated
            DESCRIPTION 
                "The sysuptime timestamp in centiseconds 
                at which the last configuration change
                occurred."
            ::= { connUnitEntry 16 } 

        connUnitNumRevs OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of revisions in the connUnitRevsTable." 
            DEFVAL { 1 } 
            ::= { connUnitEntry 17 }

        connUnitNumZones OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS deprecated
            DESCRIPTION 
                "Number of zones defined in connUnitZoneTable."
            ::= { connUnitEntry 18 } 

        connUnitModuleId OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE(16))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is a unique id, persistent between boots,
                that can be used to group a set of connUnits
                together into a module. The intended use would
                be to create a connUnit with a connUnitType of
                'module' to represent a physical or logical
		    group of connectivity units. Then the value
		    of the group would be set to the value of
                connUnitId for this 'container' connUnit.
                connUnitModuleId should be zeros if this
                connUnit is not part of a module."
            ::= { connUnitEntry 19 } 

        connUnitName OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..79))
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION     
                "A display string containing a name for this
                connectivity unit.  This object value should be 
                persistent between boots."
            ::= { connUnitEntry 20 }

        connUnitInfo OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION     
                "A display string containing information
                about this connectivity unit. This object value 
                should be persistent between boots."
            ::= { connUnitEntry 21 }

        connUnitControl OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
                invalid(2),
                resetConnUnitColdStart(3),
                resetConnUnitWarmStart(4),
                offlineConnUnit(5),
                onlineConnUnit(6)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "This object is used to control the addressed
                connUnit. 
                
                NOTE: 'Cold Start' and 'Warm Start'
                are as defined in MIB II and are not meant
                to be a factory reset.

                resetConnUnitColdStart: 
                    the addressed unit performs
                    a 'Cold Start' reset.

                resetConnUnitWarmStart: 
                    the addressed unit performs
                    a 'Warm Start' reset.

                offlineConnUnit: 
                    the addressed unit puts itself into
                    an implementation dependant 'offline' state. 
                    In general,if a unit is in an offline state,
                    it cannot be used to perform meaningful 
                    Fibre Channel work.

                onlineConnUnit: 
                    the addressed unit puts itself into an 
                    implementation dependant 'online' state. 
                    In general, if a unit is in an online state, 
                    it is capable of performing meaningful 
                    Fibre Channel work.
                
                NOTE: Each implementation may chose not to allow
                any or all of these values on a SET. "

            ::= { connUnitEntry 22 } 

        connUnitContact OBJECT-TYPE 
            SYNTAX DisplayString (SIZE (0..79)) 
            ACCESS read-write 
            STATUS mandatory 
            DESCRIPTION 
                "Contact information for this connectivity
                unit."
            ::= { connUnitEntry 23 } 

        connUnitLocation OBJECT-TYPE 
            SYNTAX DisplayString (SIZE (0..79)) 
            ACCESS read-write 
            STATUS mandatory 
            DESCRIPTION 
                "Location information for this connectivity
                unit."
            ::= { connUnitEntry 24 } 

        connUnitEventFilter OBJECT-TYPE 
            SYNTAX FcEventSeverity
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This value defines the event severity
                that will be logged by this connectivity unit.
                All events of severity less than or equal to
                connUnitEventFilter are logged in connUnitEventTable." 
            ::= { connUnitEntry 25 } 

        connUnitNumEvents OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Number of events currently in the 
                connUnitEventTable."
            ::= { connUnitEntry 26 } 

        connUnitMaxEvents OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Max number of events that can be defined
                in connUnitEventTable."
            ::= { connUnitEntry 27 } 

        connUnitEventCurrID OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The last used event id (connUnitEventId)."
            ::= { connUnitEntry 28 } 


------------------------------------------------------------------
-- The Table of revisions for hardware and software elements.

    connUnitRevsTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ConnUnitRevsEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "Table of the revisions supported by 
            connectivity units managed by this agent."
        ::= { connSet 7 }

    connUnitRevsEntry OBJECT-TYPE
        SYNTAX ConnUnitRevsEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            ""
        INDEX { connUnitRevsUnitId,
            connUnitRevsIndex }
            ::= { connUnitRevsTable 1 }
        
        ConnUnitRevsEntry ::=
            SEQUENCE {
                connUnitRevsUnitId
                    OCTET STRING, 
                connUnitRevsIndex
                    INTEGER,
                connUnitRevsRevId
                    DisplayString,
                connUnitRevsDescription
                    DisplayString            }

        connUnitRevsUnitId OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (16))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The connUnitId of the connectivity unit
                that contains this revision table."
            ::= { connUnitRevsEntry 1 }

        connUnitRevsIndex OBJECT-TYPE 
            SYNTAX INTEGER (1..2147483647)
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "A unique value among all connUnitRevsEntrys
                with the same value of connUnitRevsUnitId,
                in the range between 1 and
                connUnitNumRevs[connUnitRevsUnitId]."
            ::= { connUnitRevsEntry 2 }

        connUnitRevsRevId OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A vendor-specific string identifying a
                revision of a component of the connUnit
                indexed by connUnitRevsUnitId."
            ::= { connUnitRevsEntry 3 }

        connUnitRevsDescription OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "Description of a component to which the revision 
                corresponds."
            ::= { connUnitRevsEntry 4 }

-----------------------------------------------------------------------
--    The Sensor table

    connUnitSensorTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ConnUnitSensorEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "Table of the sensors supported by each
            connectivity unit managed by this agent."
        ::= { connSet 8 }

    connUnitSensorEntry OBJECT-TYPE
        SYNTAX ConnUnitSensorEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "Each entry contains the information for a
            specific sensor."
        INDEX { connUnitSensorUnitId,
            connUnitSensorIndex }
            ::= { connUnitSensorTable 1 }

        ConnUnitSensorEntry ::=
            SEQUENCE {
                connUnitSensorUnitId
                   OCTET STRING,
                connUnitSensorIndex
                    INTEGER (1..2147483647),
                connUnitSensorName
                    DisplayString,
                connUnitSensorStatus
                    INTEGER,
                connUnitSensorInfo
                    DisplayString,
                connUnitSensorMessage
                    DisplayString,
                connUnitSensorType
                    INTEGER,
                connUnitSensorCharacteristic
                    INTEGER
            }

        connUnitSensorUnitId OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (16))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The connUnitId of the connectivity unit
                that contains this sensor table."
            ::= { connUnitSensorEntry 1 }

        connUnitSensorIndex OBJECT-TYPE
            SYNTAX INTEGER (1..2147483647)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A unique value among all connUnitSensorEntrys
                with the same value of connUnitSensorUnitId,
                in the range between 1 and
                connUnitNumSensor[connUnitSensorUnitId]."
            ::= { connUnitSensorEntry 2}

        connUnitSensorName OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A textual identification of the sensor
		    intended primarily for operator use."
            ::= { connUnitSensorEntry 3 }

        connUnitSensorStatus OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
		    other(2),
                ok(3),      -- the sensor indicates ok
                warning(4), -- the sensor indicates a warning
                failed(5)   -- the sensor indicates failure
            }
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The status indicated by the sensor."
            ::= { connUnitSensorEntry 4 }

        connUnitSensorInfo OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "Miscellaneous static info about the sensor
                such as its serial number."
            ::= { connUnitSensorEntry 5 }

        connUnitSensorMessage OBJECT-TYPE
            SYNTAX DisplayString
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "This describes the status of the sensor
                as a message. It may also provide more
                resolution on the sensor indication, for
                example 'Cover temperature 1503K, above
                nominal operating range'"
            ::= { connUnitSensorEntry 6 }

        connUnitSensorType OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
                other(2),
                battery(3),
                fan(4),
                power-supply(5),
                transmitter(6),
                enclosure(7),
                board(8),
                receiver(9)
            }
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The type of component being monitored by this
                sensor."
            ::= { connUnitSensorEntry 7 }

        connUnitSensorCharacteristic OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
                other(2),
                temperature(3),
                pressure(4),
                emf(5),
                currentValue(6), -- current is a keyword
                airflow(7),
                frequency(8),
                power(9)
            }
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The characteristics being monitored by this
                sensor."
            ::= { connUnitSensorEntry 8 }

-----------------------------------------------------------------------
--    The port table 

    connUnitPortTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF ConnUnitPortEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Generic information on ports for a specific 
            connUnit." 
        ::= { connSet 10 }

    connUnitPortEntry OBJECT-TYPE 
        SYNTAX ConnUnitPortEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Each entry contains the information for 
            a specific port." 
        INDEX { connUnitPortUnitId, 
            connUnitPortIndex } 
            ::= { connUnitPortTable 1 } 

        ConnUnitPortEntry ::= 
            SEQUENCE { 
                connUnitPortUnitId 
                    OCTET STRING, 
                connUnitPortIndex 
                    INTEGER,
                connUnitPortType 
                    INTEGER, 
                connUnitPortFCClassCap
                    OCTET STRING,
                connUnitPortFCClassOp 
                    OCTET STRING, 
                connUnitPortState
                    INTEGER,
                connUnitPortStatus 
                    INTEGER, 
                connUnitPortTransmitterType
                    INTEGER, 
                connUnitPortModuleType 
                    INTEGER, 
                connUnitPortWwn 
                    FcNameId, 
                connUnitPortFCId 
                    OCTET STRING, 
                connUnitPortSn 
                    DisplayString, 
                connUnitPortRevision 
                    DisplayString,
                connUnitPortVendor
                    DisplayString,
                connUnitPortSpeed
                    INTEGER,
                connUnitPortControl
                    INTEGER,
                connUnitPortName
                    DisplayString,
                connUnitPortPhysicalNumber
                    INTEGER,
                connUnitPortStatObject
                    OBJECT IDENTIFIER
            } 

        connUnitPortUnitId OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (16))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The connUnitId of the connectivity unit
                that contains this port."
            ::= { connUnitPortEntry 1 } 

        connUnitPortIndex OBJECT-TYPE 
            SYNTAX INTEGER (1..2147483647)
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "A unique value among all connUnitPortEntrys
                on this connectivity unit, between 0 and
                connUnitNumPort[connUnitPortUnitId]."
            ::= { connUnitPortEntry 2 } 

        connUnitPortType OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown       (1),
                other         (2), 
                not-present   (3),
                hub-port      (4), 
                n-port        (5),  -- end port for fabric
                l-port        (6),  -- end port for loop
                fl-port       (7),  -- public loop 
                f-port        (8),  -- fabric port 
                e-port        (9),  -- fabric expansion port 
                g-port        (10), -- generic fabric port
                domain-ctl    (11), -- domain controller 
                hub-controller(12), 
                scsi          (13), -- parallel SCSI port 
                escon         (14),
                lan           (15),
                wan           (16)
            } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The port type." 
            ::= { connUnitPortEntry 3 } 

        connUnitPortFCClassCap OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (2))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Bit mask that specifies the classes
                of service capability of this port. If this is not
                applicable, return all bits set to zero.
                
                The bits have
                the following definition:
                    unknown      - 0
                    class-f      - 1
                    class-one    - 2
                    class-two    - 4
                    class-three  - 8
                    class-four   - 16
                    class-five   - 32
                    class-six    - 64" 
            ::= { connUnitPortEntry 4 } 

        connUnitPortFCClassOp OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (2))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Bit mask that specifies the classes
                of service that are currently operational.
                If this is not applicable, return all bits 
                set to zero.  This object has the same 
                definition as connUnitPortFCClassCap"
            ::= { connUnitPortEntry 5 } 

        connUnitPortState OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
                online(2),
                offline(3),
                bypassed(4)
            }
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The state of the port hardware."
            ::= { connUnitPortEntry 6 }

        connUnitPortStatus OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown     (1),
                unused      (2), 
                ok          (3), 
                warning     (4), -- needs attention 
                failure     (5),
                notparticipating    (6),
                initializing(7),
		bypass      (8)  -- manually or automatically
			         -- isolated from loop or fabric
            } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "An overall protocol status for the 
                port." 
            ::= { connUnitPortEntry 7 } 

        connUnitPortTransmitterType OBJECT-TYPE
            SYNTAX INTEGER { 
                unknown(1),
                other(2), 
                unused(3), 
                shortwave(4), 
                longwave(5), 
                copper(6), 
                scsi(7),
                longwaveNoOFC(8),
                shortwaveNoOFC(9),
                longwaveLED(10)
             } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The technology of the port transceiver." 
            ::= { connUnitPortEntry 8 } 

        connUnitPortModuleType OBJECT-TYPE 
            SYNTAX INTEGER { 
                unknown(1),
                other(2), 
                gbic(3), 
                embedded(4), -- fixed, ie, oneXnine
                glm(5),
                gbicSerialId(6),
                gbicNoSerialId(7),
                gbicNotInstalled(8),
                smallFormFactor(9)
            } 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The module type of the port connector." 
            ::= { connUnitPortEntry 9 } 

        connUnitPortWwn OBJECT-TYPE 
            SYNTAX FcNameId 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The World Wide Name of the port 
                if applicable, otherwise empty string." 
             ::= { connUnitPortEntry 10 } 

        connUnitPortFCId OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE(3))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is the assigned Fibre Channel ID of
                this port.  This value is expected to be
                a Big Endian value of 24 bits. If this is
                loop, then it is the ALPA that is connected.
                If this is an eport, then it will only
                contain the domain ID left justified, zero
                filled. If this port does not have a Fibre
                Channel address, return all bits set to 1."
            ::= { connUnitPortEntry 11 } 

        connUnitPortSn OBJECT-TYPE 
            SYNTAX DisplayString (SIZE(0..79)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The serial number of the unit (e.g., for 
                a GBIC). If this is not applicable, return 
                empty string." 
            ::= { connUnitPortEntry 12 } 

        connUnitPortRevision OBJECT-TYPE 
            SYNTAX DisplayString (SIZE(0..79)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The port revision (e.g., for a GBIC)."
            ::= { connUnitPortEntry 13 } 

        connUnitPortVendor OBJECT-TYPE 
            SYNTAX DisplayString (SIZE(0..79)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The port vendor (e.g., for a GBIC)."
            ::= { connUnitPortEntry 14 } 

        connUnitPortSpeed OBJECT-TYPE
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS mandatory
            DESCRIPTION
                "The speed of the port in kilobytes per 
                second."
            ::= { connUnitPortEntry 15 }

        connUnitPortControl OBJECT-TYPE
            SYNTAX INTEGER {
                unknown(1),
                invalid(2),
                resetConnUnitPort(3),
                bypassConnUnitPort(4),
                unbypassConnUnitPort(5),
                offlineConnUnitPort(6),
                onlineConnUnitPort(7),
                resetConnUnitPortCounters(8)
            }
            ACCESS read-write -- (or maybe write-only)
            STATUS mandatory
            DESCRIPTION
                "This object is used to control the addressed
                connUnit's port. Valid commands are:

                resetConnUnitPort: If the addressed connUnit
                    allows this operation to be performed to this
                    port, the addressed port performs a
                    vendor-specific 'reset' operation. Examples of
                    these operations are: the Link Reset protocol,
                    the Loop Initialization protocol, or a
                    resynchronization occurring between the
                    transceiver in the addressed port to the
                    transceiver that the port is connected to.

                bypassConnUnitPort: If the addressed connUnit
                    allows this operation to be performed to this
                    port, the addressed port performs a
                    vendor-specific 'bypass' operation. Examples of
                    these operations are:
                    transitioning from online to offline, a
                    request(NON-PARTICIPATING) command to the
                    Loop Port state machine, or removal of the
                    port from an arbitrated loop by a hub.

                unbypassConnUnitPort: If the addressed connUnit
                    allows this operation to be performed to this
                    port, the addressed port performs a
                    vendor-specific 'unbypass' operation. Examples
                    of these operations are:
                    the Link Failure protocol, a
                    request(PARTICIPATING) command to the
                    Loop Port state machine, or addition of the
                    port to an arbitrated loop by a hub.

                offlineConnUnitPort: If the addressed connUnit
                    allows this operation to be performed to this
                    port, the addressed port performs a
                    vendor-specific 'offline' operation. Examples
                    of these operations are:
                    disabling a port's transceiver, the Link
                    Failure protocol, request(NON-PARTICIPATING)
                    command to the Loop Port state machine, or
                    removal of the port from an arbitrated loop
                    by a hub.

                onlineConnUnitPort: If the addressed connUnit
                    allows this operation to be performed to this
                    port, the addressed port performs a
                    vendor-specific 'online' operation. Examples
                    of these operations are:
                    enabling a port's transceiver, the Link
                    Failure protocol, request(PARTICIPATING)
                    command to the Loop Port state machine, or
                    addition of the port from an arbitrated loop
                    by a hub.

                NOTE: Each implementation may chose not to allow
                any or all of these values on a SET. "

            ::= { connUnitPortEntry 16 }

        connUnitPortName OBJECT-TYPE 
            SYNTAX DisplayString
            ACCESS read-write 
            STATUS mandatory 
            DESCRIPTION 
                "A string describing the addressed port."
            ::= { connUnitPortEntry 17 }

        connUnitPortPhysicalNumber OBJECT-TYPE 
            SYNTAX INTEGER
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is the internal port number this 
                port is known by. In many implementations, 
                this should be the same as connUnitPortIndex.
                Some implementations may have an internal port
                representation not compatible with the rules
                for table indeces.  In that case, provide the
                internal representation of this port in this 
                object.  This value may also be used in the 
                connUnitLinkPortNumberX or connUnitLinkPortNumberY
                objects of the connUnitLinkTable."
            ::= { connUnitPortEntry 18 } 

        connUnitPortStatObject OBJECT-TYPE 
            SYNTAX OBJECT IDENTIFIER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION
                "This contains the OID of the first object of the
                table that contains the statistics for this particular
                port. If this has a value of zero, then there are no
                statistics available for this port. The port type
                information will help identify the statistics objects
                that will be found in the table. From this point, one
                would do a getnext to get the next statistics object.
                When the first part of the OID changes, the end of
                table is reached."
            ::= { connUnitPortEntry 19 } 

-----------------------------------------------------------------------
-- event group

    connUnitEventTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF ConnUnitEventEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "The table of connectivity unit events. Errors, 
            warnings, and information should be reported
            in this table." 
        ::= { connSet 11 }

    connUnitEventEntry OBJECT-TYPE 
        SYNTAX ConnUnitEventEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Each entry contains information on 
            a specific event for the given 
            connectivity unit." 
        INDEX { connUnitEventUnitId, connUnitEventIndex } 
        ::= { connUnitEventTable 1 } 

        ConnUnitEventEntry ::= 
            SEQUENCE { 
                connUnitEventUnitId 
                    OCTET STRING, 
                connUnitEventIndex 
                    INTEGER (1..2147483647), 
                connUnitEventId 
                    INTEGER, 
                connUnitREventTime 
                    DisplayString, 
                connUnitSEventTime 
                    TimeTicks, 
                connUnitEventSeverity
                    FcEventSeverity, 
                connUnitEventType
                    INTEGER,
                connUnitEventObject
                    OBJECT IDENTIFIER, 
                connUnitEventDescr 
                    DisplayString
            } 

        connUnitEventUnitId OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (16))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The connUnitId of the connectivity unit
                that contains this event table."
            ::= { connUnitEventEntry 1 } 

        connUnitEventIndex OBJECT-TYPE 
            SYNTAX INTEGER (1..2147483647)
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Each connectivity unit has its own event buffer.
                As it wraps, it may write over previous events.
                This object is an index into the buffer.
                It is recommended that this table be read using
                'getNext's to retrieve the initial table.
                The management application should read the
                event table at periodic intervals and then 
                determine if any new entries were added by 
                comparing the last known index value with the 
                current highest index value. The management 
                application should then update its copy of
                the event table. If the read interval
                is too long, it is possible that there may 
                be events that may not be contained in the
                agent's internal event buffer.
                For example, an agent may read events 50-75.
                At the next read interval, connUnitEventCurrID
                is 189.  If the management app tries to read
                event index 76, and the agent's internal buffer
                is 100 entries max, event index 76 will no longer
                be available.
                The index value is an incrementing integer starting
                from one every time there is a table reset.
                On table reset, all contents are emptied and
                all indeces are set to zero. When an
                event is added to the table, the event is
                assigned the next higher integer value than
                the last item entered into the table. If the
                index value reaches its maximum value, the next
                item entered will cause the index value to
                roll over and start at one again."
            ::= { connUnitEventEntry 2 } 

        connUnitEventId OBJECT-TYPE 
            SYNTAX INTEGER 
            ACCESS read-only 
            STATUS deprecated
            DESCRIPTION 
                "The internal event Id. Incremented for each 
                event, ranging between 0 and connUnitMaxEvents.
                Not used as table index to simplify 
                the agent implementation. When this
                reaches the end of the range specified by
                connUnitMaxEvents, the Id will roll over to start
                at zero. This value will be set back to zero at
                reset. The relationship of this value to the index
                is that internal event id may represent a smaller
                number than a 32 bit integer (eg max 100 entries) 
                and would only have a value range up to 
                connUnitMaxEvents."
            ::= { connUnitEventEntry 3 } 

        connUnitREventTime OBJECT-TYPE 
            SYNTAX DisplayString (SIZE (15))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is the real time when the event occurred.
                It has the following format.
                    DDMMYYYY HHMMSS
                    DD=day number
                    MM=month number
                    YYYY=year number
                    HH=hour number
                    MM=minute number
                    SS=seconds number
                If not applicable, return a NULL string."
            ::= { connUnitEventEntry 4 } 

        connUnitSEventTime OBJECT-TYPE 
            SYNTAX TimeTicks
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is the sysuptime timestamp when the
                event occurred."
            ::= { connUnitEventEntry 5 } 

        connUnitEventSeverity OBJECT-TYPE 
            SYNTAX FcEventSeverity
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The event severity level." 
            ::= { connUnitEventEntry 6 } 

        connUnitEventType OBJECT-TYPE 
            SYNTAX INTEGER {
                unknown(1),
                other(2),
                status(3),
                configuration(4),
                topology(5)
            }
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The type of this event."
            ::= { connUnitEventEntry 7 } 

        connUnitEventObject OBJECT-TYPE 
            SYNTAX OBJECT IDENTIFIER 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is used with the connUnitEventType
                to identify which object the event refers to.
                It can be the OID of a connectivity unit or of
                another object like connUnitPortStatus[...]"
            ::= { connUnitEventEntry 8 } 

        connUnitEventDescr OBJECT-TYPE 
            SYNTAX DisplayString 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The description of the event." 
            ::= { connUnitEventEntry 9 } 

-- The link table
-- is intended to organize and communicate 
-- any information the agent possesses
-- which would assist a management application
-- to discover the CONNECTIVITY UNITS in the 
-- framework and the TOPOLOGY of their interconnect.
-- That is, the goal is to assist the management
-- application not only to LIST the elements of the framework,
-- but to MAP them.

-- With this goal, the agent SHOULD include
-- as much as it possesses about any links
-- from its own connectivity units to others,
-- including links among its own units.

-- An agent SHOULD include partial information
-- about links if it is not able to fully
-- define them in accord with the following structure;
-- however, the information MUST include either 
-- a nonzero connUnitNodeId- or a nonzero connUnitPortWwn-
-- for each end of the link.

-- If the agent is able to discover links
-- which do not directly attach to members of its agency
-- and its discovery algorithm gives some assurance
-- the links are recently valid, it MAY include these links. 

-- Link information entered by administrative action
-- MAY be included even if not validated directly
-- if the link has at least one endpoint in this agency,
-- but SHOULD NOT be included otherwise.

-- A connectivity unit should fill the table in as best it can.
-- One of the methods to fill this in would be to use the RNID
-- ELS (ANSI document 99-422v0). This allows one to query a
-- port for the information needed for the link table.

-- This table is accessed either directly if the management
-- software has an index value or via GetNexts. The value of
-- the indexes are not required to be contiguous. Each entry
-- created in this table will be assigned an index. This
-- relationship is kept persistent until the entry is removed
-- from the table or the system is reset. The total number of
-- entries are defined by the size of the table

-- For an entry to be considered to be valid, both the X (local)
-- and the Y (remote) need to have one valid value.

    connUnitLinkTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ConnUnitLinkEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "A list of links know to this agent from this
            connectivity unit to other connectivity units."
        ::= { connSet 12 }

    connUnitLinkEntry OBJECT-TYPE
        SYNTAX ConnUnitLinkEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "An entry describing a particular link to another."
        INDEX { connUnitLinkUnitId,
            connUnitLinkIndex }
            ::= { connUnitLinkTable 1 }

        ConnUnitLinkEntry ::=
            SEQUENCE {
                connUnitLinkUnitId
                    OCTET STRING,
                connUnitLinkIndex
                    INTEGER,
                connUnitLinkNodeIdX
                    OCTET STRING,
                connUnitLinkPortNumberX
                    INTEGER,
                connUnitLinkPortWwnX
                    OCTET STRING,
                connUnitLinkNodeIdY
                    OCTET STRING,
                connUnitLinkPortNumberY
                    INTEGER,
                connUnitLinkPortWwnY
                    OCTET STRING,
                connUnitLinkAgentAddressY
                    OCTET STRING,
                connUnitLinkAgentAddressTypeY
                    INTEGER,
                connUnitLinkAgentPortY
                    INTEGER,
                connUnitLinkUnitTypeY
                    FcUnitType,
                connUnitLinkConnIdY
                    OCTET STRING
            }

        connUnitLinkUnitId OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (16))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The connUnitId of the connectivity unit
                that contains this link table."
            ::= { connUnitLinkEntry 1 }

        connUnitLinkIndex OBJECT-TYPE
            SYNTAX INTEGER (0..2147483647)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "This value is used to create a unique value
                for each entry in the link table with the same
		    connUnitLinkUnitId. The value
                can only be reused if it is not currently in
                in use and the value is the next candidate to
                be used. This value is allowed to wrap at the
                highest value represented by the number of bits.
                This value is reset to zero when the system is
                Reset and the first value to be used is one."
            ::= { connUnitLinkEntry 2 }

        connUnitLinkNodeIdX OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE(64))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The node WWN of the unit at one end
                of the link.  If the node WWN is unknown 
                and the node is a connUnit in the responding 
                agent then the value of this object MUST BE 
                equal to its connUnitID."
            ::= { connUnitLinkEntry 3 }

        connUnitLinkPortNumberX OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The port number on the unit specified by
                connUnitLinkNodeIdX if known, otherwise -1. 
                If the value is nonnegative then it will be
                equal to connUnitPortPhysicalNumber."
            ::= { connUnitLinkEntry 4 }

        connUnitLinkPortWwnX OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE(16))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The port WWN of the unit specified by
                connUnitLinkNodeIdX if known, 
                otherwise 16 octets of binary 0"
            ::= { connUnitLinkEntry 5 }

        connUnitLinkNodeIdY OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE(64))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The node WWN of the unit at the other end
                of the link.  If the node WWN is unknown 
                and the node is a connUnit in the responding 
                SNMP agency then the value of this object 
                MUST BE equal to its connUnitID."
            ::= { connUnitLinkEntry 6 }

        connUnitLinkPortNumberY OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The port number on the unit specified by
                connUnitLinkNodeIdY if known, otherwise -1. 
                If the value is nonnegative then it will be
                equal to connUnitPortPhysicalNumber."
            ::= { connUnitLinkEntry 7 }

        connUnitLinkPortWwnY OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE(16))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The port WWN on the unit specified by
                connUnitLinkNodeIdY if known, 
                otherwise 16 octets of binary 0"
            ::= { connUnitLinkEntry 8 } 

        connUnitLinkAgentAddressY OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE(16))
            ACCESS read-only
            STATUS mandatory 
            DESCRIPTION 
                "The address of an FCMGMT MIB agent for the
                node identified by connUnitLinkNodeIdY,
                if known; otherwise 16 octets of binary 0"
            ::= { connUnitLinkEntry 9 } 

        connUnitLinkAgentAddressTypeY OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "If connUnitLinkAgentAddressY is nonzero,
                it is a protocol address.
                ConnUnitLinkAgentAddressTypeY is the
                the 'address family number' assigned by IANA
                to identify the address format.
                (eg, 1 is Ipv4, 2 is Ipv6)."
            ::= { connUnitLinkEntry 10 }

        connUnitLinkAgentPortY OBJECT-TYPE 
            SYNTAX INTEGER
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The IP port number for the agent. This is
                provided in case the agent is at a non-standard
                SNMP port."
            ::= { connUnitLinkEntry 11 } 

        connUnitLinkUnitTypeY OBJECT-TYPE 
            SYNTAX FcUnitType
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "Type of the FC connectivity unit as defined in
                connUnitType."
            ::= { connUnitLinkEntry 12 } 

        connUnitLinkConnIdY OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE(3)) 
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "This is the Fibre Channel ID of this port.
                If the connectivity unit is a switch, this
                is expected to be a Big Endian value of 24
                bits. If this is loop, then it is the ALPA
                that is connected. If this is an eport, then
                it will only contain the domain ID. If not
                any of those, unknown or cascaded loop,
                return all bits set to 1."
            ::= { connUnitLinkEntry 13 } 

------------------------------------------------------------------------------
-- The following is a set of statistics tables. There is one for each port
-- type class. Port types are aggregated into a port type class, such as all
-- the fabric port types. There is one and only one statistics table for each
-- individual port. For all objects in statistics tables, if the object is not
-- supported by the conn unit then the high order bit is set to 1 with all other
-- bits set to zero. The high order bit is reserved to indicate is the object
-- if supported or not. All objects start at a value of zero at hardware initialization
-- and continue incrementing till end of 63 bits and then wrap to zero. 

-- Hub Port Statistics

    connUnitPortStatHubTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ConnUnitPortStatHubEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "A list of statistics for the hub port type."
        ::= { statSet 1 }

    connUnitPortStatHubEntry OBJECT-TYPE
        SYNTAX ConnUnitPortStatHubEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "An entry describing port statistics."
        INDEX { connUnitPortStatHubUnitId,
                connUnitPortStatHubIndex }
            ::= { connUnitPortStatHubTable 1 }

        ConnUnitPortStatHubEntry ::=
            SEQUENCE {
                connUnitPortStatHubUnitId
                    OCTET STRING,
                connUnitPortStatHubIndex
                    INTEGER,
                connUnitPortStatHubCountError
                    OCTET STRING, 
                connUnitPortStatHubCountTxFrame
                    OCTET STRING, 
                connUnitPortStatHubCountRxFrame
                    OCTET STRING, 
                connUnitPortStatHubCountTxOctets
                    OCTET STRING,
                connUnitPortStatHubCountRxOctets
                    OCTET STRING
            }

        connUnitPortStatHubUnitId OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (16))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The connUnitId of the connectivity unit
                that contains this port stat table."
            ::= { connUnitPortStatHubEntry 1 }

        connUnitPortStatHubIndex OBJECT-TYPE
            SYNTAX INTEGER (0..2147483647)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A unique value among all entrys
                in this table, between 0 and
                connUnitNumPort[connUnitPortUnitId]."
            ::= { connUnitPortStatHubEntry 2 }

        connUnitPortStatHubCountError OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "A count of the errors that have occured 
                on this port."
            ::= { connUnitPortStatHubEntry 3 } 

        connUnitPortStatHubCountTxFrame OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of frames that have been transmitted
                by this port."
            ::= { connUnitPortStatHubEntry 4 } 

        connUnitPortStatHubCountRxFrame OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of frames that have been received
                by this port."
            ::= { connUnitPortStatHubEntry 5 } 

        connUnitPortStatHubCountTxOctets OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION
		    "The number of octets that have been transmitted
		    by this port."
            ::= { connUnitPortStatHubEntry 6 } 

        connUnitPortStatHubCountRxOctets OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
		    "The number of octets that have been received.
		    by this port."
            ::= { connUnitPortStatHubEntry 7 } 

-- Fabric Port Statistics

    connUnitPortStatFabricTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ConnUnitPortStatFabricEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "A list of statistics for the fabric port types."
        ::= { statSet 2 }

    connUnitPortStatFabricEntry OBJECT-TYPE
        SYNTAX ConnUnitPortStatFabricEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "An entry describing port statistics."
        INDEX { connUnitPortStatFabricUnitId,
                connUnitPortStatFabricIndex }
            ::= { connUnitPortStatFabricTable 1 }

        ConnUnitPortStatFabricEntry ::=
            SEQUENCE {
                connUnitPortStatFabricUnitId
                    OCTET STRING,
                connUnitPortStatFabricIndex
                    INTEGER,
                connUnitPortStatFabricCountError
                    OCTET STRING, 
                connUnitPortStatFabricCountTxFrame
                    OCTET STRING, 
                connUnitPortStatFabricCountRxFrame
                    OCTET STRING, 
                connUnitPortStatFabricCountTxOctets
                    OCTET STRING,
                connUnitPortStatFabricCountRxOctets
                    OCTET STRING
            }

        connUnitPortStatFabricUnitId OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (16))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The connUnitId of the connectivity unit
                that contains this port stat table."
            ::= { connUnitPortStatFabricEntry 1 }

        connUnitPortStatFabricIndex OBJECT-TYPE
            SYNTAX INTEGER (0..2147483647)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A unique value among all entrys
                in this table, between 0 and
                connUnitNumPort[connUnitPortUnitId]."
            ::= { connUnitPortStatFabricEntry 2 }

        connUnitPortStatFabricCountError OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "A count of the errors that have occured 
                on this port."
            ::= { connUnitPortStatFabricEntry 3 } 

        connUnitPortStatFabricCountTxFrame OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of frames that have been transmitted
                by this port."
            ::= { connUnitPortStatFabricEntry 4 } 

        connUnitPortStatFabricCountRxFrame OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of frames that have been received
                by this port."
            ::= { connUnitPortStatFabricEntry 5 } 

        connUnitPortStatFabricCountTxOctets OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION
		    "The number of octets that have been transmitted
		    by this port."
            ::= { connUnitPortStatFabricEntry 6 } 

        connUnitPortStatFabricCountRxOctets OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
		    "The number of octets that have been received.
		    by this port."
            ::= { connUnitPortStatFabricEntry 7 } 

-- SCSI Port Statistics

    connUnitPortStatSCSITable OBJECT-TYPE
        SYNTAX SEQUENCE OF ConnUnitPortStatSCSIEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "A list of statistics for the SCSI port type."
        ::= { statSet 3 }

    connUnitPortStatSCSIEntry OBJECT-TYPE
        SYNTAX ConnUnitPortStatSCSIEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "An entry describing port statistics."
        INDEX { connUnitPortStatSCSIUnitId,
                connUnitPortStatSCSIIndex }
            ::= { connUnitPortStatSCSITable 1 }

        ConnUnitPortStatSCSIEntry ::=
            SEQUENCE {
                connUnitPortStatSCSIUnitId
                    OCTET STRING,
                connUnitPortStatSCSIIndex
                    INTEGER,
                connUnitPortStatSCSICountError
                    OCTET STRING, 
                connUnitPortStatSCSICountTxIO
                    OCTET STRING, 
                connUnitPortStatSCSICountRxIO
                    OCTET STRING, 
                connUnitPortStatSCSICountTxBytes
                    OCTET STRING,
                connUnitPortStatSCSICountRxBytes
                    OCTET STRING
            }

        connUnitPortStatSCSIUnitId OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (16))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The connUnitId of the connectivity unit
                that contains this port stat table."
            ::= { connUnitPortStatSCSIEntry 1 }

        connUnitPortStatSCSIIndex OBJECT-TYPE
            SYNTAX INTEGER (0..2147483647)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A unique value among all entrys
                in this table, between 0 and
                connUnitNumPort[connUnitPortUnitId]."
            ::= { connUnitPortStatSCSIEntry 2 }

        connUnitPortStatSCSICountError OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "A count of the errors that have occured 
                on this port."
            ::= { connUnitPortStatSCSIEntry 3 } 

        connUnitPortStatSCSICountTxIO OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of I/Os that have been transmitted
                by this port."
            ::= { connUnitPortStatSCSIEntry 4 } 

        connUnitPortStatSCSICountRxIO OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of I/Os that have been received
                by this port."
            ::= { connUnitPortStatSCSIEntry 5 } 

        connUnitPortStatSCSICountTxBytes OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION
		    "The number of bytes that have been transmitted
		    by this port."
            ::= { connUnitPortStatSCSIEntry 6 } 

        connUnitPortStatSCSICountRxBytes OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
		    "The number of bytes that have been received.
		    by this port."
            ::= { connUnitPortStatSCSIEntry 7 } 

-- LAN/WAN Port Statistics

    connUnitPortStatLANTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ConnUnitPortStatLANEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "A list of statistics for the LAN/WAN port type."
        ::= { statSet 4 }

    connUnitPortStatLANEntry OBJECT-TYPE
        SYNTAX ConnUnitPortStatLANEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
            "An entry describing port statistics."
        INDEX { connUnitPortStatLANUnitId,
                connUnitPortStatLANIndex }
            ::= { connUnitPortStatLANTable 1 }

        ConnUnitPortStatLANEntry ::=
            SEQUENCE {
                connUnitPortStatLANUnitId
                    OCTET STRING,
                connUnitPortStatLANIndex
                    INTEGER,
                connUnitPortStatLANCountError
                    OCTET STRING, 
                connUnitPortStatLANCountTxPacket
                    OCTET STRING, 
                connUnitPortStatLANCountRxPacket
                    OCTET STRING, 
                connUnitPortStatLANCountTxBytes
                    OCTET STRING,
                connUnitPortStatLANCountRxBytes
                    OCTET STRING
            }

        connUnitPortStatLANUnitId OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (16))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The connUnitId of the connectivity unit
                that contains this port stat table."
            ::= { connUnitPortStatLANEntry 1 }

        connUnitPortStatLANIndex OBJECT-TYPE
            SYNTAX INTEGER (0..2147483647)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A unique value among all entrys
                in this table, between 0 and
                connUnitNumPort[connUnitPortUnitId]."
            ::= { connUnitPortStatLANEntry 2 }

        connUnitPortStatLANCountError OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "A count of the errors that have occured 
                on this port."
            ::= { connUnitPortStatLANEntry 3 } 

        connUnitPortStatLANCountTxPacket OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of packets that have been transmitted
                by this port."
            ::= { connUnitPortStatLANEntry 4 } 

        connUnitPortStatLANCountRxPacket OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
                "The number of packets that have been received
                by this port."
            ::= { connUnitPortStatLANEntry 5 } 

        connUnitPortStatLANCountTxBytes OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION
		    "The number of bytes that have been transmitted
		    by this port."
            ::= { connUnitPortStatLANEntry 6 } 

        connUnitPortStatLANCountRxBytes OBJECT-TYPE 
            SYNTAX OCTET STRING (SIZE (8))
            ACCESS read-only 
            STATUS mandatory 
            DESCRIPTION 
		    "The number of bytes that have been received.
		    by this port."
            ::= { connUnitPortStatLANEntry 7 } 

-----------------------------------------------------------------------
-- SNMP trap registration group 

    trapMaxClients OBJECT-TYPE 
        SYNTAX INTEGER 
        ACCESS read-only 
        STATUS mandatory 
        DESCRIPTION 
            "The maximum number of SNMP trap recipients
            supported by the connectivity unit." 
        ::= { trapReg 1 } 

    trapClientCount OBJECT-TYPE 
        SYNTAX INTEGER 
        ACCESS read-only 
        STATUS mandatory 
        DESCRIPTION 
            "The current number of rows in the trap table."
        ::= { trapReg 2 } 

    trapRegTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF TrapRegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "A table containing a row for each IP address/port
            number that traps will be sent to."
        ::= { trapReg 3 } 

    trapRegEntry OBJECT-TYPE 
        SYNTAX TrapRegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Ip/Port pair for a specific client." 
        INDEX { trapRegIpAddress,
                trapRegPort } 
        ::= { trapRegTable 1 } 

    TrapRegEntry ::= 
        SEQUENCE { 
            trapRegIpAddress 
                IpAddress, 
            trapRegPort 
                INTEGER (1..2147483647),
            trapRegFilter
                FcEventSeverity,
            trapRegRowState
                INTEGER
        } 

    trapRegIpAddress OBJECT-TYPE 
        SYNTAX IpAddress 
        ACCESS read-only 
        STATUS mandatory 
        DESCRIPTION 
            "The Ip address of a client registered for 
            traps."
        ::= { trapRegEntry 1 } 

    trapRegPort OBJECT-TYPE 
        SYNTAX INTEGER (1..2147483647) 
        ACCESS read-only 
        STATUS mandatory 
        DESCRIPTION 
            "The UDP port to send traps to for this host.
            Normally this would be the standard trap port
            (162).  This object is an index and must be
            specified to create a row in this table."
        ::= { trapRegEntry 2 } 

    trapRegFilter OBJECT-TYPE 
        SYNTAX FcEventSeverity
        ACCESS read-write 
        STATUS mandatory 
        DESCRIPTION 
            "This value defines the trap severity
            filter for this trap host. The connUnit will send
            traps to this host that have a severity level 
            less than or equal to this value.
            The default value of this object is 'warning'."
        ::= { trapRegEntry 3} 

    trapRegRowState OBJECT-TYPE
        SYNTAX INTEGER {
            rowDestroy(1), -- Remove row from table.
            rowInactive(2), -- Row exists, but TRAPs disabled
            rowActive(3)   -- Row exists and is enabled for
                           -- sending traps
        }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
            "Specifies the state of the row.
            rowDestroy
                READ: Can never happen.
                WRITE: Remove this row from the table.
            rowInactive
                READ: Indicates that this row does exist, but
                      that traps are not enabled to be sent to the
                      target.
                WRITE: If the row does not exist, and the agent
                       allows writes to the trap table, then a new
                       row is created. The values of the optional
                       columns will be set to default values. Traps are
                       not enabled to be sent to the target. If the row
                       already existed, then traps are disabled from being
                       sent to the target.
            rowActive
                READ: Indicates that this row exists, and that traps
                      are enabled to be sent to the target.
                WRITE: If the row does not exist, and the agent
                      allows writes to the trap table, then a new row is
                      created. The values of the optional columns will be
                      set to default values. Traps are enabled to be sent
                      to the target. If the row already exists, then traps
                      are enabled to be sent to the target.
                      
            A value of rowActive or rowInactive must be specified to
            create a row in the table."
        ::= { trapRegEntry 4} 


-- Related traps 

    connUnitStatusChange TRAP-TYPE 
        ENTERPRISE fcmgmt 
        VARIABLES { connUnitStatus, connUnitState } 
        DESCRIPTION 
            "The overall status of the connectivity unit has 
            changed.
            Recommended severity level (for filtering): alert" 
        ::= 1

    -- connUnitAddedTrap , 2, no longer used

    connUnitDeletedTrap TRAP-TYPE
        ENTERPRISE fcmgmt
        VARIABLES { connUnitId }
        DESCRIPTION
            "A connUnit has been deleted from this agent.
            Recommended severity level (for filtering): warning" 
        ::= 3

    connUnitEventTrap TRAP-TYPE 
        ENTERPRISE fcmgmt 
        VARIABLES { connUnitEventId, 
                    connUnitEventType,
                    connUnitEventObject,
                    connUnitEventDescr } 
        DESCRIPTION 
            "An event has been generated by the 
            connectivity unit.
            Recommended severity level (for filtering): info" 
        ::= 4                                            

    connUnitSensorStatusChange TRAP-TYPE 
        ENTERPRISE fcmgmt 
        VARIABLES { connUnitSensorStatus } 
        DESCRIPTION 
            "The overall status of the connectivity unit has 
            changed.
            Recommended severity level (for filtering): alert" 
        ::= 5  

    connUnitPortStatusChange TRAP-TYPE 
        ENTERPRISE fcmgmt 
        VARIABLES { connUnitPortStatus, connUnitPortState } 
        DESCRIPTION 
            "The overall status of the connectivity unit has 
            changed.
            Recommended severity level (for filtering): alert" 
        ::= 6

END



