-- DES-2218 SWITCH HUB MIB V0.03                 08/15/97

        DES2218-MIB

        DEFINITIONS ::= BEGIN

        IMPORTS
                enterprises, IpAddress,
                TimeTicks,Counter
                        FROM RFC1155-SMI
                DisplayString, PhysAddress
                        FROM RFC1213-MIB
        TRAP-TYPE
            FROM RFC-1215
        OBJECT-TYPE
            FROM RFC-1212;

        -- OwnerString ::= DisplayString
        -- This data type is used to model an administratively
        -- assigned name of the owner of a resource. This
        -- information is taken from the NVT ASCII character set.
        -- It is suggested that this name contain one or more
        -- of the following:
        -- IP address, management station name, network manager's
        -- name, location, or phone number.
        --      SIZE (0..xx)


    dlink                   OBJECT IDENTIFIER ::= { enterprises 171 }
    dlink-products          OBJECT IDENTIFIER ::= { dlink 10 }
    dlink-Des2218Prod       OBJECT IDENTIFIER ::= { dlink-products 7 }
    dlink-Des2218ProdId     OBJECT IDENTIFIER ::= { dlink-Des2218Prod 1  }
    des2218SwHub            OBJECT IDENTIFIER ::= { dlink-Des2218Prod 2 }


    dlink-mgmt              OBJECT IDENTIFIER ::= { dlink 11 }

    agentConfigInfo         OBJECT IDENTIFIER ::= { dlink-mgmt 1 }
    des2218series           OBJECT IDENTIFIER ::= { dlink-mgmt 7 }

    -- agentBasicInfo

    agentBasicInfo          OBJECT IDENTIFIER ::= { agentConfigInfo 1 }
    
    agentRuntimeSwVersion OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..12))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This is a textual description of the runtime software version
        and revision. If the version number is one and revision number is
        zero agentRuntimeSwVersion would be 'Ver. 1.0'"
        ::= { agentBasicInfo 1 }

    agentPromFwVersion OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..12))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This is a textual description of the agent PROM firmware version
        and revision. If the version number is one and revision number is
        zero agentPromFwVersion would be 'Ver. 1.0'"
        ::= { agentBasicInfo 2 }

    agentHwRevision OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..12))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This is a textual description of the hardware revision.
        The display string should look like 'Rev. A1'"
        ::= { agentBasicInfo 3 }

    agentMgmtProtocolCapability OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                snmp-ip(2),
                snmp-ipx(3),
                snmp-ip-ipx(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The network management protocol(s) supported by this agent."
        ::= { agentBasicInfo 4 }

    -- agentMibcapabilityTable

    agentMibCapabilityTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF AgentMibCapabilityEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "A list of MIB capability entries supported by this agent."    
        ::= { agentBasicInfo 5 }

    agentMibCapabilityEntry OBJECT-TYPE
        SYNTAX  AgentMibCapabilityEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "A MIB capability entry contains objects describing a particular MIB
        supported by this agent."
        INDEX   { agentMibCapabilityIndex }
        ::= { agentMibCapabilityTable 1 }

    AgentMibCapabilityEntry ::= SEQUENCE {
        agentMibCapabilityIndex
            INTEGER,
        agentMibCapabilityDescr
            DisplayString,
        agentMibCapabilityVersion
            INTEGER,
        agentMibCapabilityType
            INTEGER
    }

    agentMibCapabilityIndex OBJECT-TYPE
        SYNTAX  INTEGER 
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "A list of agentMibCapabilityDescr entries."
        ::= { agentMibCapabilityEntry 1 }

    agentMibCapabilityDescr OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..16))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The name of the MIB supported by the agent."

        ::= { agentMibCapabilityEntry 2 }

    agentMibCapabilityVersion OBJECT-TYPE
        SYNTAX  INTEGER 
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The version of the MIB specified in this entry."
        ::= { agentMibCapabilityEntry 3 }

    agentMibCapabilityType OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                standard(2),
                proprietary(3),
                experiment(4)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The type of the MIB specified in this entry."
        ::= { agentMibCapabilityEntry 4 }

   -- agentMgmtRole OBJECT-TYPE
   --     SYNTAX  INTEGER {
   --             other(1),
   --             primary-master(2),
   --             backup-master(3)
   --     }
   --     ACCESS  read-only
   --     STATUS  mandatory
   --     DESCRIPTION
   --     "The role of this agent within this particular hub stack"
   --     ::= { agentBasicInfo 6 }


    -- agentBasicConfig

    agentBasicConfig        OBJECT IDENTIFIER ::= { agentConfigInfo 2 }

    agentSwUpdateMode OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                network-load(2),
                out-of-band-load(3)
        }
        ACCESS  read-write
        STATUS
        mandatory
        DESCRIPTION
        "The download media used by the system to download the
        runtime software."
        ::= { agentBasicConfig 1 }

    agentSwUpdateCtrl OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                disabled(2),
                enabled(3)
                }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "Current status of software download control. The setting
        is effective the next time you reset or power on the hub." 
        ::= { agentBasicConfig 2 }

    agentBootFile OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..64))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The name of the file to be downloaded from the TFTP server when
        software update is enabled."
        ::= { agentBasicConfig 3 }

    agentSystemReset OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                reset(2),
                no-reset(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "This object indicates the agent system reset state.
        Setting this object to no-reset(3) has no effect.
        Setting this object to reset(2) will reset the agent.
        The agent always returns no-reset(3) when this object is read."
        ::= { agentBasicConfig 4 }

    agentRs232PortConfig OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                console(2),
                out-of-band(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The current setting of RS-232C port.
        The RS-232C port can be configured as the console port or
        used for out-of-band connection."
        ::= { agentBasicConfig 5 }

    agentOutOfBandBaudRateConfig OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                baudRate-2400 (2),
                baudRate-9600 (3),
                baudRate-19200(4),
                baudRate-38400(5)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The baud rate setting for out of band connection.
        The baud rate for the console interface is always 9600."
        ::= { agentBasicConfig 6 }

    agentOutOfBandDialNumber OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..32))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The dial out phone number for out of band to establish
        a connection.  This entry is used for reference only."
        ::= { agentBasicConfig 7 }



    -- agentIpProtocolConfig

    agentIpProtoConfig      OBJECT IDENTIFIER ::= { agentConfigInfo 3 }

    agentIpNumOfIf OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The total number of IP interfaces supported by this agent."
        ::= {  agentIpProtoConfig 1 }

    agentIpIfTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF AgentIpIfEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "A list of IP interface entries supported by the agent."
        ::= {  agentIpProtoConfig 2 }

    agentIpIfEntry OBJECT-TYPE
        SYNTAX  AgentIpIfEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "An agentIPIfEntry contains information about a particular
        IP interface."
        INDEX   { agentIpIfIndex }
        ::= { agentIpIfTable 1 }

    AgentIpIfEntry ::= SEQUENCE {
        agentIpIfIndex
            INTEGER,
        agentIpIfAddress 
            IpAddress,
        agentIpIfNetMask
            IpAddress,
        agentIpIfDefaultRouter
            IpAddress,
        agentIpIfMacAddr
            PhysAddress,
        agentIpIfType
            INTEGER                                                   
    }

    agentIpIfIndex OBJECT-TYPE
        SYNTAX  INTEGER (1..255)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This object uniquely identifies the IP interface number
        in agentIpIfTable.
        This value should never greater than agentIpNumOfIf"
        ::= {  agentIpIfEntry 1 }

    agentIpIfAddress OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The IP address of the interface."
        ::= {  agentIpIfEntry 2 }

    agentIpIfNetMask OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The IP net mask for this interface."
        ::= {  agentIpIfEntry 3 }

    agentIpIfDefaultRouter OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The default gateway for this IP interface."
        ::= {  agentIpIfEntry 4 }

    agentIpIfMacAddr OBJECT-TYPE
        SYNTAX  PhysAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The MAC address of this IP interface.
         For interfaces which do not have such an address
        (e.g., a serial line), this object should contain
        an octet string of zero length."
        ::= {  agentIpIfEntry 5 }

    agentIpIfType OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),          -- none of the following
                ethernet-csmacd(6),
                slip(28)           -- generic SLIP
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The physical layer interface of the IP interface."
        ::= {  agentIpIfEntry 6 }

    agentIpBootServerAddr OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The IP Address of Boot Server."
        ::= {  agentIpProtoConfig 3 }

    agentIpBootProtocol OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                bootp-tftp(2),
                tftp(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The software download protocol used for software update."
        ::= { agentIpProtoConfig 4 }

    agentIpGetIpFromBootpServer OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                disabled(2),
                enabled(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "This object indicates whether the agent get its system IP address
        from BootP server at start up."
        ::= { agentIpProtoConfig 5 }

    agentIpUnauthAddr OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The IP address of an unauthorized SNMP packet."
        ::= { agentIpProtoConfig 6 }

    agentIpUnauthComm OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..20))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The community string of an unauthorized SNMP packet."
        ::= { agentIpProtoConfig 7 }

    agentIpLastBootServerAddr OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The last IP address used as Boot server IP address."
        ::= {  agentIpProtoConfig 8 }

    agentIpLastIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The last IP address used as the agent system IP address."
        ::= {  agentIpProtoConfig 9 }

    -- agentIptrapMangerTable

    agentIpTrapManagerTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF AgentIpTrapManagerEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "A list of trap manager entries to which to send SNMP traps ."
        ::= {  agentIpProtoConfig 10 }

    agentIpTrapManagerEntry OBJECT-TYPE
        SYNTAX  AgentIpTrapManagerEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "This entry contains the particular trap manager settings."
        INDEX   { agentIpTrapManagerIpAddr }
        ::= { agentIpTrapManagerTable 1 }

    AgentIpTrapManagerEntry ::= SEQUENCE {
        agentIpTrapManagerIpAddr
            IpAddress,
        agentIpTrapManagerComm
            DisplayString,
        agentIpTrapManagerStatus
            INTEGER
    }

    agentIpTrapManagerIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The IP address to receive SNMP traps from this device."
        ::= { agentIpTrapManagerEntry 1 }

    agentIpTrapManagerComm OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..20))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The community string of the SNMP trap packet sent to 
        the trap manager."
        ::= { agentIpTrapManagerEntry 2 }

    agentIpTrapManagerStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                disabled(2),
                enabled(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "This object indicates whether or not the trap should be send to this
        trap manager."
        ::= { agentIpTrapManagerEntry 3 }



    des2218MIB              OBJECT IDENTIFIER ::= { des2218series 1 }
    swDevicePackage         OBJECT IDENTIFIER ::= { des2218MIB 1 }
    swPortPackage           OBJECT IDENTIFIER ::= { des2218MIB 2 }

    swDeviceInfo            OBJECT IDENTIFIER ::= { swDevicePackage 1 }

    swDevInfoTotalNumOfPort OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The  number of ports within this switch hub. This value
        is the sum of the ports of each group within this 
        switch hub."
        ::= { swDeviceInfo 1 }

    swDevInfoNumOfPortOnUse OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of ports in this switch hub connected to the
        segment or end stations."
        ::= { swDeviceInfo 2 }

 -- swDevInfoSerialNum OBJECT-TYPE
 --     SYNTAX  INTEGER
 --     ACCESS  read-only
 --     STATUS  mandatory
 --     DESCRIPTION
 --     "The serial number of this switch hub."
 --     ::= { swDeviceInfo 3 }

    swDevInfoDesc OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..64))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "A textual description of this switch hub."
        ::= { swDeviceInfo 3 }

    -- swDevInfoRepeaterType OBJECT-TYPE
    --    SYNTAX  INTEGER {
    --            other(1),
    --            baseband-10-Mb(2),
    --            baseband-100-Mb-class-I(3),
    --            baseband-100-Mb-class-II(4)
    --    }
    --    ACCESS  read-only
    --    STATUS  mandatory
    --    DESCRIPTION
    --    "This objects indicates the CSMA/CD repeater type. The type
    --    value matches the clause number of the standard that specifies
    --    the particular repeater, with further numerical identification
    --    for the repeater classes within the same clause."
    --    ::= { swDeviceInfo 5 }

    swDevInfoPortType OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                portType-UTP(2),
                portType-AUI(3),
                portType-Fiber(4),
                portType-BNC(5),
                portType-Option-module-RAS(6),
                portType-Option-module-100Bridge(7)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The connector type of this port."
        ::= { swDeviceInfo 4 }

    swDevInfoHwRev OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..12))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "A textual description of the hardware revision of
        this switch bub."
        ::= { swDeviceInfo 5 }

    swDevInfoSystemUpTime OBJECT-TYPE
        SYNTAX  TimeTicks
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The value of sysUpTime at the time the switch
        entered its current operational state.  If the
        current state was entered prior to the last re-
        initialization, then this object contains a zero
        value."
        ::= { swDeviceInfo 6 }

    swDevInfoFrontPanelLedStatus OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (0..127))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The current status of front panel LED."
        ::= { swDeviceInfo 7 }

    -- swDevInfoMdiSwitch OBJECT-TYPE
    --    SYNTAX  INTEGER {
    --            other(1),
    --            mdi(2),
    --            mdi-x(3)
    --    }
    --    ACCESS  read-only
    --    STATUS  mandatory
    --    DESCRIPTION
    --    "The current setting of the MDI switch."
    --    ::= { swDeviceInfo 9 }

    swDevInfoDramSize OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The DRAM size of the switch hub"
        ::= { swDeviceInfo 8 }

    swDeviceCtl             OBJECT IDENTIFIER ::= { swDevicePackage 2 }

    swDevCtrlDisableLearningState OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                disabled(2),
                enabled(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "This Object indicate the switch hub wether or not learn any
         new addresses from the Ethernet ports."
        ::= { swDeviceCtl 1 }

    swDevCtrlReset OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                reset(2),
                no-reset(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "This object indicates the switch hub reset state.
        Setting this object to no-reset(3) has no effect.
        Setting this object to reset(2) will reset the agent.
        The agent always returns no-reset(3) when this object is read."
        ::= { swDeviceCtl 2 }

    swDevCtrlSpanningTree OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                disabled(2),
                enabled(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "This Object control the device to enable/disable spanning
         tree algorithm in the system initilization or reset."
        ::= { swDeviceCtl 3 }

    swPortInfoTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwPortInfoEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "A list of port information entries."
        ::= { swPortPackage 1 }

    swPortInfoEntry OBJECT-TYPE
        SYNTAX  SwPortInfoEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "This entry contains the port information, like porttype,
         linkstatus..."
        INDEX   { swPortInfoGroupIndex,swPortInfoIndex }
        ::= { swPortInfoTable 1 }

    SwPortInfoEntry ::= SEQUENCE {
        swPortInfoGroupIndex
            INTEGER,
        swPortInfoIndex
            INTEGER,
        swPortInfoType
            INTEGER,
        swPortInfoPartitionStatus
            INTEGER,
        swPortInfoLinkStatus
            INTEGER,
        swPortInfoDuplexMode
            INTEGER,
        swPortInfoNegotiationStatus
            INTEGER,
        swPortInfoSpeedStatus
            INTEGER
    }

    swPortInfoGroupIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This object identifies the port within the group for
         which this entry contains infomation."
        ::= { swPortInfoEntry 1 }

    swPortInfoIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This object indicate switch hub port number."
        ::= { swPortInfoEntry 2 }

    swPortInfoType OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                portType-UTP(2),
                portType-AUI(3),
                portType-Fiber(4),
                portType-BNC(5),
                portType-Option-module-RAS(6),
                portType-Option-module-100Bridge(7)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The connector type of this port."
        ::= { swPortInfoEntry 3 }

    swPortInfoPartitionStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                no-partion(2),
                partion(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This Object indicate the port partition status."
        ::= { swPortInfoEntry 4 }

    swPortInfoLinkStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                link-pass(2),
                link-fail(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This Object indicate the port link test status."
        ::= { swPortInfoEntry 5 }

    swPortInfoDuplexMode OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                half(2),
                full(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This Object indicate the port work in which duplex mode."
        ::= { swPortInfoEntry 6 }

    swPortInfoNegotiationStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                disabled(2),
                enabled(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This Object indicate the port work in auto negotiation
         enabled or disabled."
        ::= { swPortInfoEntry 7 }

    swPortInfoSpeedStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                speed-10M(2),
                speed-100M(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This Object indicate the port trasmit rate is in 10M bps
         or 100M bps ."
        ::= { swPortInfoEntry 8 }

    swPortCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwPortCtrlEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "A list of port state control entries."
        ::= { swPortPackage 2 }

    swPortCtrlEntry OBJECT-TYPE
        SYNTAX  SwPortCtrlEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "This entry control the port state, like filter broadcast,
         linkstatus..."
        INDEX   { swPortCtrlGroupIndex,swPortCtrlIndex }
        ::= { swPortCtrlTable 1 }

    SwPortCtrlEntry ::= SEQUENCE {
        swPortCtrlGroupIndex
            INTEGER,
        swPortCtrlIndex
            INTEGER,
        swPortCtrlAdminState
            INTEGER,
        swPortCtrlDuplexState
            INTEGER,
        swPortCtrlLinkStatusAlarmState
            INTEGER,
        swPortCtrlFilterBcastState
            INTEGER,
        swPortCtrlForwardUnknowState
            INTEGER,
        swPortCtrlPartitionStatus
            INTEGER,
        swPortCtrlNegotiationStatus
            INTEGER,
        swPortCtrlSpeedStatus
            INTEGER
    }

    swPortCtrlGroupIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This object identifies the port within the group for
         which this entry contains infomation."
        ::= { swPortCtrlEntry 1 }

    swPortCtrlIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This object indicate switch hub port number."
        ::= { swPortCtrlEntry 2 }

    swPortCtrlAdminState OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                disabled(2),
                enabled(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "Port control administration state."
        ::= { swPortCtrlEntry 3 }

     swPortCtrlDuplexState OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                half(2),
                full(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "Indicating the port work in half/full duplex mode."
        ::= { swPortCtrlEntry 4 }

     swPortCtrlLinkStatusAlarmState OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                disabled(2),
                enabled(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "Depending on this object to determine wether send a trap or
         not when link status change ."
        ::= { swPortCtrlEntry 5 }

     swPortCtrlFilterBcastState OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                forward(2),
                discard(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "Port control filter broadcast to all port or discard."
        ::= { swPortCtrlEntry 6 }

     swPortCtrlForwardUnknowState OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                disabled(2),
                enabled(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "Port control forward unknow packet state."
        ::= { swPortCtrlEntry 7 }

     swPortCtrlPartitionStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                disabled(2),
                enabled(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "Depending on this object determine to send a trap or not when
         the port was partition."
        ::= { swPortCtrlEntry 8 }

     swPortCtrlNegotiationStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                disabled(2),
                enabled(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "Depending on this object determine to enable NWAY or disable."
        ::= { swPortCtrlEntry 9 }

     swPortCtrlSpeedStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                speed-10M(2),
                speed-100M(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "Depending on this object to determining this port transmit
         rate is 10M bps or 100M bps."
        ::= { swPortCtrlEntry 10}

    swPortCounterTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwPortCounterEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "A list of port MIB statistic Counter entries."
        ::= { swPortPackage 3 }

    swPortCounterEntry OBJECT-TYPE
        SYNTAX  SwPortCounterEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "This entry include all the port Counter which support by
         DES3208, like Bytes received, Bytes Sent ..."
        INDEX   { swPortCounterGroupIndex,swPortCounterIndex }
        ::= { swPortCounterTable 1 }

    SwPortCounterEntry ::= SEQUENCE {
        swPortCounterGroupIndex
            INTEGER,
        swPortCounterIndex
            INTEGER,
        swPortBytesReceived
            Counter,
        swPortBytesSent
            Counter,
        swPortFramesReceived
            Counter,
        swPortFramesSent
            Counter,
        swPortTotalBytesReceived
            Counter,
        swPortTotalFramesReceived
            Counter,
        swPortBroadcastFramesReceived
            Counter,
        swPortMulticastFramesReceived
            Counter,
        swPortCRCError
            Counter,
        swPortOversizeFrames
            Counter,
        swPortFragments
            Counter,
        swPortJabber
            Counter,
        swPortCollision
            Counter,
        swPortLateCollision
            Counter,
        swPortFrames64Bytes
            Counter,
        swPortFrames65To127Bytes
            Counter,
        swPortFrames128To255Bytes
            Counter,
        swPortFrames256To511Bytes
            Counter,
        swPortFrames512To1023Bytes
            Counter,
        swPortFrames1024To1522Bytes
            Counter,
        swPortMACRxError
            Counter
    }

    swPortCounterGroupIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This object identifies the port within the group for
         which this entry contains infomation."
        ::= { swPortCounterEntry 1 }

    swPortCounterIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "This object indicate switch hub port number."
        ::= { swPortCounterEntry 2 }

    swPortBytesReceived OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good bytes received. Local and dropped packets
         increment the counter as well."
        ::= { swPortCounterEntry 3 }

    swPortBytesSent OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good bytes sent."
        ::= { swPortCounterEntry 4 }

    swPortFramesReceived OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good frames received. Local and dropped packets
         increment the counter as well."
        ::= { swPortCounterEntry 5 }

    swPortFramesSent OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good frames sent."
        ::= { swPortCounterEntry 6 }

    swPortTotalBytesReceived OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of bytes received(good and bad)."
        ::= { swPortCounterEntry 7 }

    swPortTotalFramesReceived OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of frames bytes received(good and bad)."
        ::= { swPortCounterEntry 8 }

    swPortBroadcastFramesReceived OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good broadcast frames received. Local and dropped
         packets increment the counter as well."
        ::= { swPortCounterEntry 9 }

    swPortMulticastFramesReceived OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good multicast frames received. Local and dropped
         packets increment the counter as well."
        ::= { swPortCounterEntry 10 }

    swPortCRCError OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of frames with valid packet length and CRC error or
         misaligned(odd number of nibbles)
         increment the counter as well."
        ::= { swPortCounterEntry 11 }

    swPortOversizeFrames OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good frames with length more than 1518 bytes (
         or 1522 bytes for LongEn = 1)."
        ::= { swPortCounterEntry 12 }

    swPortFragments OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good bytes received. Local and dropped packets
         increment the counter as well."
        ::= { swPortCounterEntry 13 }

    swPortJabber OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of frames with length more than 1518 bytes and with
         CRC error or misaligned."
        ::= { swPortCounterEntry 14 }

    swPortCollision OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of Collisions"
        ::= { swPortCounterEntry 15 }

    swPortLateCollision OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of Late Collision(collision occurring later than
         576th transmitted bit"
        ::= { swPortCounterEntry 16 }

    swPortFrames64Bytes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good packets with length of 64 bytes "
        ::= { swPortCounterEntry 17 }

    swPortFrames65To127Bytes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good packets with length between 65 to 127 bytes "
        ::= { swPortCounterEntry 18 }

    swPortFrames128To255Bytes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good packets with length between 128 to 255 bytes "
        ::= { swPortCounterEntry 19 }

    swPortFrames256To511Bytes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good packets with length between 256 to 511 bytes "
        ::= { swPortCounterEntry 20 }

    swPortFrames512To1023Bytes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good packets with length between 512 to 1023 bytes "
        ::= { swPortCounterEntry 21 }

    swPortFrames1024To1522Bytes OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of good packets with length between 1024 to 1522 bytes "
        ::= { swPortCounterEntry 22 }

    swPortMACRxError OBJECT-TYPE
        SYNTAX  Counter
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The number of frames with RX MAC Error "
        ::= { swPortCounterEntry 23 }

 -- swPortDroppedFrames OBJECT-TYPE
 --     SYNTAX  Counter
 --     ACCESS  read-only
 --     STATUS  mandatory
 --     DESCRIPTION
 --     "The number of dropped frames.Dropped packets are those which a
 --      receive buffer could not be allocated."
 --     ::= { swPortCounterEntry 24 }

        -- link up/down Trap

        linkChangeEvent TRAP-TYPE
                ENTERPRISE dlink
                VARIABLES { 
            swPortInfoIndex,
            swPortInfoType,
            swPortInfoPartitionStatus,
            swPortInfoLinkStatus,
            swPortInfoDuplexMode
        }
                DESCRIPTION
            "The trap is sent whenever the link state of a port changes
            from link up to link down or from link down to link up"
                ::= 1


        portPartition TRAP-TYPE
                ENTERPRISE dlink
                VARIABLES { 
            swPortInfoIndex,
            swPortInfoType,
            swPortInfoPartitionStatus,
            swPortInfoLinkStatus,
            swPortInfoDuplexMode
        }
                DESCRIPTION
            "The trap is sent whenever the port state enter the Partion
            mode when more than 32 collisions occur while trasmitting."
                ::= 2

    END
