--
-- Caution.  This MIB is temporary and experimental.
-- In the future it will be removed from products, perhaps
-- with short notice, in favor of more standard or generic MIBs.
-- Application developers should not depend on long-term access
-- to this MIB.

CISCO-CNO-SWITCH-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE,
        Integer32
                FROM SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP
                FROM SNMPv2-CONF
        DisplayString
                FROM SNMPv2-TC
        ciscoExperiment
                FROM CISCO-SMI
        ifIndex
                FROM RFC1213-MIB;

ciscoCNOSwitchMIB   MODULE-IDENTITY
        LAST-UPDATED    "9810230000Z"
        ORGANIZATION    "Cisco System Inc."
        CONTACT-INFO
                "Cisco Systems
                 Customer Service

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

                 Tel: +1 800 533-NETS

                 E-mail: cs-sibu@cisco.com"
        DESCRIPTION
                "The MIB module for the management of Cisco
                 Network Office (CNO) switch products."
        REVISION  "9810230000Z"
        DESCRIPTION
                "Initial version of this mib."
        ::= { ciscoExperiment 43 }

ciscoCNOSwitchMIBObjects OBJECT IDENTIFIER ::= { ciscoCNOSwitchMIB 1 }

cnosSysInfo    OBJECT IDENTIFIER ::= { ciscoCNOSwitchMIBObjects 1 }
cnosSysConfig  OBJECT IDENTIFIER ::= { ciscoCNOSwitchMIBObjects 2 }
cnosPort       OBJECT IDENTIFIER ::= { ciscoCNOSwitchMIBObjects 3 }
cnosVlan       OBJECT IDENTIFIER ::= { ciscoCNOSwitchMIBObjects 4 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--                                                                   |
--                  General System Information                       |
--                                                                   |
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


cnosSysInfoSerialNo OBJECT-TYPE
        SYNTAX     DisplayString (SIZE(0..255))
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Serial number of the hardware."
        ::= { cnosSysInfo 1 }


cnosSysInfoBoardRevision OBJECT-TYPE
        SYNTAX     Integer32 (0..2147483647)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Returns the revision number of the switch main board
                 on which the system firmware resides."
        ::= { cnosSysInfo 2 }

cnosSysInfoBootVersion OBJECT-TYPE
        SYNTAX     DisplayString (SIZE(0..8))
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Returns the version number of the switch boot S/W
                 residing in flash. The format is 'V1.2.3'."
        ::= { cnosSysInfo 3 }

cnosSysInfoAddrCapacity OBJECT-TYPE
        SYNTAX     Integer32 (0..2147483647)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The system-wide maximum number of addresses
                 supported."
        ::= { cnosSysInfo 4 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--                                                                    |
--                   General System Configurations                    |
--                                                                    |
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


cnosSysConfigReset OBJECT-TYPE
        SYNTAX     INTEGER { noReset(1), reset(2) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "Setting this object to reset(2) causes a complete
                reset of both hardware and software, but does not run
                the POST (Power On Self Test).

                Setting this object to noReset(1) has no effect.
                The switch always returns the value noReset(1) when
                this object is read."
        DEFVAL { noReset }
        ::= { cnosSysConfig 1 }

cnosSysConfigDefaultReset OBJECT-TYPE
        SYNTAX     INTEGER { noReset(1), reset(2) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "Setting this object to reset(2) causes a complete
                reset of both hardware and software, but does not run
                the POST (Power On Self Test).  All configuration
                parameters will revert to their factory default
                settings, and all addresses assigned will be removed.

                Setting this object to noReset(1) has no effect.
                The switch always returns the value noReset(1) when
                this object is read."
        DEFVAL { noReset }
        ::= { cnosSysConfig 2 }

cnosSysConfigMonitor OBJECT-TYPE
        SYNTAX     INTEGER { enabled(1), disabled(2) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
               "Selects whether frames to/from certain ports are
                sent to conSwitchSysConfigMonitorPort. A port is
                selected for monitoring purpose when its
                cnosPortMonitoring object is set to enabled."
        DEFVAL { disabled }
        ::= { cnosSysConfig 3 }

cnosSysConfigMonitorPort OBJECT-TYPE
        SYNTAX     Integer32 (0..8)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
               "Port number to which all frames to/from monitored
                ports are sent.  Frames are only monitored if the
                sysConfigMonitor object is set to enabled(1).

                A number from 1 to 8 selects a switch port.  The
                number 0 selects no monitor port."
        DEFVAL { 0 }
        ::= { cnosSysConfig 4 }

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--                                                              |
--             The Switch Port Table                            |
--                                                              |
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


cnosPortTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF CnosPortEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "A list of configuration entries for individually
                 switched ports. There in one entry created
                 automatically for each switch port (ifType of
				 ethernetCsmacd) on the device."
        ::= { cnosPort 1 }

cnosPortEntry OBJECT-TYPE
        SYNTAX     CnosPortEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Configuration parameters for an individually
                 switched port."
        INDEX   { ifIndex }
        ::= { cnosPortTable 1 }

CnosPortEntry ::=
        SEQUENCE {
                cnosPortControllerRevision
                        Integer32,
                cnosPortName
                        DisplayString,
                cnosPortDuplexAdmin
                        INTEGER,
                cnosPortDuplexStatus
                        INTEGER,
                cnosPortSpeedAdmin
                        INTEGER,
                cnosPortSpeedStatus
                        INTEGER,
                cnosPortMonitoring
                        INTEGER,
                cnosPortLinkStatus
                        INTEGER,
                cnosPortSTPPortFastMode
                        INTEGER,
                cnosPortVlanMember
                        INTEGER
        }

cnosPortControllerRevision OBJECT-TYPE
        SYNTAX     Integer32 (0..2147483647)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "Returns the revision number of the port controller."
        ::= { cnosPortEntry 1 }

cnosPortName OBJECT-TYPE
        SYNTAX     DisplayString (SIZE(0..80))
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "A descriptive string of up to 80 characters used by
                 the network administrator to name a port."
        ::= { cnosPortEntry 2 }

cnosPortDuplexAdmin OBJECT-TYPE
        SYNTAX     INTEGER {
                            fullDuplex(1),
                            halfDuplex(2),
                            autoNegotiate(3)
                           }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
               "Set to fullDuplex(1) to operate in full duplex mode:
                port will allow simultaneous transmit and receive
                which can double its bandwidth. Set to halfDuplex(2)
                to operate in normal mode. Set to autoNegotiate(3) to
                allow the switch to negotiate with the other end of
                the connection."
        DEFVAL { autoNegotiate }
        ::= { cnosPortEntry 3 }

cnosPortDuplexStatus OBJECT-TYPE
        SYNTAX     INTEGER {
                            fullDuplex(1),
                            halfDuplex(2)
                           }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
               "The operating duplex mode of the switched port."
        ::= { cnosPortEntry 4 }

cnosPortSpeedAdmin OBJECT-TYPE
        SYNTAX     INTEGER {
                            tenMbps(1),
                            oneHundredMbps(2),
                            autoNegotiate(3)
                           }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
               "Set to tenMbps(1) to operate in 10Mbps speed mode.
                Set to oneHundredMbps(2) to operate in 100Mbps speed
                mode.  Set to autoNegotiate(3) to allow the switch
                to negotiate with the other end of the connection."
        DEFVAL { autoNegotiate }
        ::= { cnosPortEntry 5 }

cnosPortSpeedStatus OBJECT-TYPE
        SYNTAX     INTEGER {
                            tenMbps(1),
                            oneHundredMbps(2)
                           }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
               "The operating speed of the switched port."
        ::= { cnosPortEntry 6 }

cnosPortMonitoring  OBJECT-TYPE
        SYNTAX     INTEGER { enabled(1), disabled(2) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "Set to enabled(1) to forward receive and transmit
                 frames on this port to the port identified by
                 cnosSysConfigMonitorPort.  Set to disabled(2)
                 to not monitor frame traffic on this port."
        DEFVAL { disabled }
        ::= { cnosPortEntry 7 }

cnosPortLinkStatus OBJECT-TYPE
        SYNTAX     INTEGER { link(1), noLink(2) }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                "The current port link status."
        ::= { cnosPortEntry 8 }

cnosPortSTPPortFastMode  OBJECT-TYPE
        SYNTAX     INTEGER { enabled(1), disabled(2) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "This object configures the port into the Spanning
                 Tree port-fast mode. When enabled(1), the STP can
                 transition the port's state directly from blocking
                 to forwarding, and vice versa, without going through
                 the intermediate listening and learning states.

                 This object should only be enabled for a port that
                 is connected to a single workstation. A port that is
                 attached to a network segment with multiple network
                 nodes or bridges should have this object set to
                 disabled(2) since a temporary loop may occur when
                 port changes state."
        DEFVAL { disabled }
        ::= { cnosPortEntry 9 }

cnosPortVlanMember  OBJECT-TYPE
        SYNTAX     INTEGER {
                            vlan1(1),
                            vlan2(2),
                            vlan3(3),
                            vlan4(4),
                            all(5)
                           }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "Set the port to be a member of a specified VLAN.
                 Set the port to all(5) to be shared among
                 all VLANs."
        DEFVAL { vlan1 }
        ::= { cnosPortEntry 10 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--                                                                 |
--                The VLAN Group                                   |
--                                                                 |
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

cnosVlanTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF CnosVlanEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Table containing a list of VLANs."

        ::= { cnosVlan 1 }

cnosVlanEntry OBJECT-TYPE
        SYNTAX     CnosVlanEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Information pertaining to a VLAN."
        INDEX   { cnosVlanIndex }
        ::= { cnosVlanTable 1 }

CnosVlanEntry ::= SEQUENCE {
        cnosVlanIndex
                Integer32,
        cnosVlanSTPState
                INTEGER
        }

cnosVlanIndex OBJECT-TYPE
        SYNTAX     Integer32(1..4)
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
                "Identification of a VLAN entry."
        ::= { cnosVlanEntry 1 }

cnosVlanSTPState OBJECT-TYPE
        SYNTAX     INTEGER { enabled(1), disabled(2) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
                "The switch implements the 802.1d Spanning Tree
                 Algorithm & Protocol (STP) on all its port to detect
                 loops in the bridge topology.  The user may, for
                 any reason, elect to disable the execution of STP,
                 by setting this object to disabled(2)."
        DEFVAL { enabled }
        ::= { cnosVlanEntry 2 }

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--                                                                 |
--        The CNO Ethernet Switch Enterprise Specific Traps        |
--                                                                 |
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ciscoCNOSwitchNotifications  OBJECT IDENTIFIER
            ::= { ciscoCNOSwitchMIB 2 }

ciscoCNOSwitchNotificationsPrefix OBJECT IDENTIFIER
            ::= { ciscoCNOSwitchNotifications 0}

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--                                                                 |
--        The CNO Ethernet Switch Enterprise Module comformance    |
--                                                                 |
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ciscoCNOSwitchMIBComformance    OBJECT IDENTIFIER
            ::= { ciscoCNOSwitchMIB 3 }

ciscoCNOSwitchMIBCompliances    OBJECT IDENTIFIER
            ::= { ciscoCNOSwitchMIBComformance 1 }
ciscoCNOSwitchMIBGroups         OBJECT IDENTIFIER
            ::= { ciscoCNOSwitchMIBComformance 2 }

--
-- compliance statements
--
ciscoCNOSwitchCompliance     MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for the Cisco CNO
                 switch products."
        MODULE -- this module
        MANDATORY-GROUPS {
                             ciscoCNOSwitchSysInfoGroup,
                             ciscoCNOSwitchConfigGroup,
                             ciscoCNOSwitchPortGroup,
                             ciscoCNOSwitchMonitorPortGroup,
                             ciscoCNOSwitchVlanGroup
                           }

        ::= { ciscoCNOSwitchMIBCompliances 1 }

--
-- group statements
--
ciscoCNOSwitchSysInfoGroup   OBJECT-GROUP
        OBJECTS {
                 cnosSysInfoSerialNo,
                 cnosSysInfoBoardRevision,
                 cnosSysInfoBootVersion,
                 cnosSysInfoAddrCapacity
                }
        STATUS  current
        DESCRIPTION
                "A collection of the system information objects
                 for use with the Cisco CNO switch products."
        ::= { ciscoCNOSwitchMIBGroups 1 }

ciscoCNOSwitchConfigGroup   OBJECT-GROUP
        OBJECTS {
                 cnosSysConfigReset,
                 cnosSysConfigDefaultReset
                }
        STATUS  current
        DESCRIPTION
                "A collection of the system configuration objects
                 for use with the Cisco CNO switch products."
       ::= { ciscoCNOSwitchMIBGroups 2 }

ciscoCNOSwitchPortGroup      OBJECT-GROUP
        OBJECTS {
                 cnosPortName,
				 cnosPortControllerRevision,
                 cnosPortDuplexAdmin,
                 cnosPortDuplexStatus,
                 cnosPortSpeedAdmin,
                 cnosPortSpeedStatus,
                 cnosPortLinkStatus,
                 cnosPortSTPPortFastMode
                }
        STATUS  current
        DESCRIPTION
                "A collection of the the switched port objects for
                 use with the Cisco CNO switch products."
        ::= { ciscoCNOSwitchMIBGroups 3 }

ciscoCNOSwitchMonitorPortGroup   OBJECT-GROUP
        OBJECTS {
                 cnosSysConfigMonitor,
                 cnosSysConfigMonitorPort,
                 cnosPortMonitoring
                }
        STATUS  current
        DESCRIPTION
                "A collection of the switched port monitoring objects
                 for use with the Cisco CNO switch products."
        ::= { ciscoCNOSwitchMIBGroups 4 }

ciscoCNOSwitchVlanGroup      OBJECT-GROUP
        OBJECTS {
                 cnosPortVlanMember,
                 cnosVlanSTPState
                }
        STATUS  current
        DESCRIPTION
                "A collection of the VLAN objects for use with the
                 Cisco CNO switch products."
        ::= { ciscoCNOSwitchMIBGroups 5 }

END
