-- 0.9 Draft
-- 2003/1/21 11:21AM
-- Create DLINK-EQUIPMENT-MIB
-- equipment :
-- fan , power , unit(stacking or chassis), temperature
-- include traps for related equipment
-- *****************************************************************************


DLINK-EQUIPMENT-MIB DEFINITIONS ::= BEGIN

     IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE
            FROM SNMPv2-SMI
        DateAndTime, TruthValue ,DisplayString
            FROM SNMPv2-TC
		AgentNotifyLevel, dlink-common-mgmt
		    FROM DLINK-ID-REC-MIB;


     swDlinkEquipmentMIB MODULE-IDENTITY
          LAST-UPDATED "0202140000Z"
          ORGANIZATION "DLink Corporation"
          CONTACT-INFO
                       ""
          DESCRIPTION
           "DLink equipments MIB ."
          ::= { dlink-common-mgmt 11 }

	MacAddress ::= OCTET STRING (SIZE (6))    -- a 6 octet address
                                                  -- in the
                                                  -- "canonical"
                                                  -- order, copy from RFC1493



    --
    -- OID Tree Allocation
    --
    swDlinkEquipmentMib          OBJECT IDENTIFIER ::= { swDlinkEquipmentMIB 1 }
    swDlinkEquipmentNotify		 OBJECT IDENTIFIER ::= { swDlinkEquipmentMIB 2 }

    --
    -- Object Definition
    --


    swDlinkEquipmentCapacity OBJECT-TYPE
    SYNTAX      BITS {
                    fanCapable(0),
                        --
                    redundantPowerCapable(1),
                        --
                    tempteratureDetection(2),
                    stackingCapable(3),
                    chassisCapable(4)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the equipment capacity supported in the system
        ."

    ::= { swDlinkEquipmentMib 1 }


-- *****************************************************************************

    swPowerTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF SwPowerEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "A list of temperature."
        ::= { swDlinkEquipmentMib 6 }

    swPowerEntry OBJECT-TYPE
        SYNTAX          SwPowerEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "A entry of Power information."
        INDEX           { swPowerUnitIndex,swPowerID }
        ::= { swPowerTable 1 }

    SwPowerEntry ::= SEQUENCE {
    			swPowerUnitIndex		      INTEGER,
                swPowerID	                  INTEGER,
                swPowerStatus   			  INTEGER
                }

    swPowerUnitIndex OBJECT-TYPE
        SYNTAX INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
            "Indicates ID of the unit in the System"
        ::= { swPowerEntry 1 }
    swPowerID OBJECT-TYPE
        SYNTAX INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
        	"Indicates ID of the power
            1 : main power
            2 : redundant power ."
        ::= { swPowerEntry 2 }

    swPowerStatus OBJECT-TYPE
           SYNTAX  INTEGER {
              other(0),
              lowVoltage(1),
              overCurrent(2),
              working(3),
              fail(4),
              connect(5),
              disconnect(6)
     }

        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
            "Indicates status of the power "
        ::= { swPowerEntry 3 }

-- *****************************************************************************

-- swFanTable  := { swDlinkEquipmentMib 7 }
-- swTemperatureTable := { swDlinkEquipmentMib 8 }

-- *****************************************************************************
    swUnitMgmt            OBJECT IDENTIFIER ::= { swDlinkEquipmentMib 9 }


    swUnitStackingVersion OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the version of this stacking system ."
        ::= { swUnitMgmt 1 }

    swUnitMaxSupportedUnits OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Maximum number of units are supported in the system."
        ::= { swUnitMgmt 2 }

    swUnitNumOfUnit OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The current number of units."
        ::= { swUnitMgmt 3 }

    swUnitMgmtTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwUnitMgmtEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table contains the unit information."
        ::= { swUnitMgmt 4 }

    swUnitMgmtEntry OBJECT-TYPE
        SYNTAX  SwUnitMgmtEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of management information for each unit in the system."
        INDEX  { swUnitMgmtId }
        ::= { swUnitMgmtTable 1 }

    SwUnitMgmtEntry ::=
        SEQUENCE {
            swUnitMgmtId
                INTEGER,
            swUnitMgmtMacAddr
                MacAddress,
            swUnitMgmtStartPort
                INTEGER,
            swUnitMgmtPortRange
                INTEGER,
			swUnitMgmtFrontPanelLedStatus
				OCTET STRING,
            swUnitMgmtCtrlMode
                INTEGER,
            swUnitMgmtCurrentMode
                INTEGER,
            swUnitMgmtVersion
                DisplayString,
            swUnitMgmtModuleName
            	DisplayString
        }

    swUnitMgmtId OBJECT-TYPE
        SYNTAX  INTEGER (1..15)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the specific entry in the stacking/chassis
            table."
        ::= { swUnitMgmtEntry 1 }

    swUnitMgmtMacAddr OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The Mac address of this unit."
        ::= { swUnitMgmtEntry 2 }

    swUnitMgmtStartPort OBJECT-TYPE
        SYNTAX  INTEGER (1..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the start port of this unit."
        ::= { swUnitMgmtEntry 3 }

    swUnitMgmtPortRange OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the total ports of this unit."
        ::= { swUnitMgmtEntry 4 }

    swUnitMgmtFrontPanelLedStatus OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (0..255))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object is a set of system LED indications. The first three
            octets is defined as system LED. The first LED is power LED. The
            second LED is console LED. The third LED is RPS (Redundancy
            Power Supply) LED. The other octets following the second
            octets are the logical port LED (following dot1dBasePort
            ordering). One byte is presented to one port and
            this byte is presentd to the Link/Activity LED.

            Link/Activity LED :
             The most significant bit is used for blink/solid:
                8 = The LED blinks.

             The second significant bit is used for link status:
             	1 = link fail.
             	2 = link pass.

            The four remaining bits are currently unused and must be 0."
        ::= { swUnitMgmtEntry 5 }


    swUnitMgmtCtrlMode OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    auto(2),
                    stand-alone(3),
                    master(4),
                    slave(5)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the stack mode that user configed for
            this unit.  The object only can be configed when the device is
            stand alone.

            other(1) - this entry is currently in use but the conditions
                under which it will remain so are different from each of the
                following values.
            auto(2) - the system will auto assign this stack role of this
                unit to be stand-alone(3), master(4), or slave(5).
            stand-alone(3) - the unit is forced to stand alone.
            master(4) - the unit is forced to master. If this unit is
                seleted to be master, it can modify the configuration of the
                stacking system.
            slave(5) - the unit is forced to slave. If this unit is
                seleted to be slave, it only can view the configuration of
                the stacking system."
        ::= { swUnitMgmtEntry 6 }

    swUnitMgmtCurrentMode OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    auto(2),
                    stand-alone(3),
                    master(4),
                    slave(5)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The current stack role of this unit."
        ::= { swUnitMgmtEntry 7 }

    swUnitMgmtVersion OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..32))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the version of this stacking unit."
        ::= { swUnitMgmtEntry 8 }

	swUnitMgmtModuleName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE (0..32))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
               "A textual string containing module name of the
               stacking unit. "
        ::= { swUnitMgmtEntry 9 }



-- *****************************************************************************

	--swEquipmentNotifyMgmt      OBJECT IDENTIFIER ::= { swDlinkEquipmentNotify 1 }
	swEquipmentNotification   OBJECT IDENTIFIER ::= { swDlinkEquipmentNotify 2 }


	--swEquipUnitNotification   OBJECT IDENTIFIER ::= { swEquipmentNotification 1 }
	swEquipPowerNotification   OBJECT IDENTIFIER ::= { swEquipmentNotification 2 }



-- *****************************************************************************
-- *****************************************************************************
	--swEquipUnitNotifyPrefix 	 OBJECT IDENTIFIER ::= { swEquipUnitNotification 0 }

-- *****************************************************************************

	swEquipPowerNotifyPerfix 	 OBJECT IDENTIFIER ::= { swEquipPowerNotification 0 }

    swPowerFailure  NOTIFICATION-TYPE
        OBJECTS         { swPowerUnitIndex,
        					swPowerID,
        					swPowerStatus
                        }
        STATUS          current
        DESCRIPTION     "Power Failure notification."
        ::= { swEquipPowerNotifyPerfix  2 }

    swPowerRecover NOTIFICATION-TYPE
        OBJECTS         {swPowerUnitIndex,
        					 swPowerID,
        					 swPowerStatus
                        }
        STATUS          current
        DESCRIPTION     "Power Recover notification."
        ::= { swEquipPowerNotifyPerfix  3 }


-- *****************************************************************************

    swNotificationBindings OBJECT IDENTIFIER ::= { swDlinkEquipmentNotify 3 }



END
