Chassis MIB Proposal

{3COM/PDD/PeteW}@pdd.3mail.3com.com Tue, 04 January 1994 10:09 UTC

Received: from ietf.nri.reston.va.us by IETF.CNRI.Reston.VA.US id aa01795; 4 Jan 94 5:09 EST
Received: from CS.UTK.EDU by IETF.CNRI.Reston.VA.US id aa01791; 4 Jan 94 5:09 EST
Received: from localhost by CS.UTK.EDU with SMTP (8.6.4/2.8s-UTK) id EAA12152; Tue, 4 Jan 1994 04:49:59 -0500
X-Resent-To: chassismib@CS.UTK.EDU ; Tue, 4 Jan 1994 04:49:58 EST
Errors-to: owner-chassismib@CS.UTK.EDU
Received: from relay2.UU.NET by CS.UTK.EDU with SMTP (8.6.4/2.8s-UTK) id EAA12145; Tue, 4 Jan 1994 04:49:56 -0500
Sender: ietf-archive-request@IETF.CNRI.Reston.VA.US
From: {3COM/PDD/PeteW}@pdd.3mail.3com.com
MMDF-Warning: Parse error in original version of preceding line at IETF.CNRI.Reston.VA.US
Received: from cixgate.3com.com (via [192.156.136.10]) by relay2.UU.NET with SMTP (5.61/UUNET-internet-primary) id AA07817; Tue, 4 Jan 94 04:49:55 -0500
Received: from gw.3Com.COM by cixgate.3com.com (4.1/SMI-4.1/3com-cixgate-GCA-931027-01) id AA14340; Tue, 4 Jan 94 01:49:37 PST
Received: by gw.3Com.COM id AA18598 (5.65c/IDA-1.4.4 for chassismib@cs.utk.edu); Tue, 4 Jan 1994 01:49:52 -0800
Date: Tue, 04 Jan 1994 09:44:00 -0800
Subject: Chassis MIB Proposal
To: chassismib@cs.utk.edu
Message-Id: <940104.015107@3Mail.3Com.COM>
Msg-Date: 1994-01-04
Msg-Time: 09:41

FROM: Wilson, Peter

TO:  {chassismib@cs.utk.edu}:ugate:3com                       DATE:  01-04-94
                                                              TIME:  09:39
CC:
SUBJECT:  Chassis MIB Proposal
PRIORITY:
ATTACHMENTS:

------------------------------------------------------------------------------        for a power supply module! Writing an unsupported value to a
        particular instance of this object will return an SNMP error.

        The writable values for this object are:

           enable(2). An enabled module contains resources that are, or
           may be, part of entities within the chassis. If a disabled module
           is successfully enabled its state will change to operational(8).

           disable(3). If a module is disabled then it acts as though it
           were unpowered. A disabled module has no resources in the
           resource table. Disabling a module has the side-effect that all
           resources on that module are removed from the resource tables.

           Writing a value of reset(3) simulates a power-on reset sequence.
           It is not necessary to change the contents of the resource tables
           for the duration of the reset. Note: the module being reset could
           be that module on which this instance of the chassis MIB is
           running; reset is a transitory state. For the duration of the
           reset the module will enter a resetInProgrss(7) state.
           It is not a requirement that after a module is reset that it should
           enter the same state in which it existed before the reset.

           Writing a value of test(4) will start a self test sequence
           on the module. While the card is being tested the value
           of this object will be testInProgress(6).

        The readable values are:

           testInProgress (6). This is a transitory state that the card in
           which the module will exist during tests.

           resetInProgress (7). The chassis is currently being reset.

           operational (8). The module is fully operational. The resources
           on this module are represented in the resource table and may be
           participating in the implementation of entities in the chassis.

           diabled (9). The module has been disabled.

           warning (10). The module is operational but a minor error has
           been detected by the card.

           nonFatalError (11). The module is operational but a non-fatal
           error has been detected. The card is still participating in the
           inplementation of entities within the chassis, but it may not
           be functioning completely.

           fatalError (12). The card has detected a fatal error and is
           no longer active."
    ::= { chasModuleEntry 9 }

-- The chasEntity group.  Implementation of the chasEntity group
-- is mandatory.

-- Entity Table

chasEntityTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF ChasEntityEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A table that contains information about the
             'logical' networking devices (entities) in this
             chassis."
    ::= { chasEntity 1 }

chasEntityEntry OBJECT-TYPE
    SYNTAX  ChasEntityEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
        "Information concerning an entity in the chassis. Rows may be
         created and deleted from this table as different chassis
         configurations are required. The table uses the SNMPv2 RowStatus
         type semantics for row control. The RowStatus type is NOT used
         in order to maintain compatibility with SNMPv1.

         To create a new entity in this chassis, first create a row in this
         table to represent that entity, then 'assign' resources to this
         entity to build the required configuration.

         If an entity is deleted from this table the resources that were part
         of that entity become 'floating' until they once again are assigned
         to an entity."
    INDEX  { chasEntityIndex }
    ::= { chasEntityTable 1 }

-- && Note that the chasEntityAdminStatus and chasEntityOperStatus objects
-- && have been removed. Control of an entity as a whole is in the domain
-- && of the management view of that entity and is outside of the scope of the
-- && chassis MIB.
-- &&
-- && This is NOT the case with the module state because that deals with
-- && the physical modules of the chassis, which are hidden from the
-- && specific management view of the entity.
ChasEntityEntry ::=
    SEQUENCE {
        chasEntityIndex            INTEGER,
        chasEntityObjectID         OBJECT IDENTIFIER,
        chasEntityDescr            DisplayString,
        chasEntityTimeStamp        TimeTicks,
        chasEntityRowStatus        INTEGER
    }

chasEntityIndex OBJECT-TYPE
    SYNTAX  INTEGER (1..65535)
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A unique index for the entity for which this
             entry contains information."
    ::= { chasEntityEntry 1 }

chasEntityObjectID  OBJECT-TYPE
    SYNTAX  OBJECT IDENTIFIER
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
        "The specific type of entity. A value for this column MUST be
         specified when creating a row."
    ::= { chasEntityEntry 2 }

chasEntityDescr  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "A textual description of the entity. This string will be
         generated by the agent."
    ::= { chasEntityEntry 3 }

chasEntityTimeStamp  OBJECT-TYPE
    SYNTAX  TimeTicks
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The value of MIB-II's sysUpTime (in the agent
            supporting this MIB) at which this entity was last
            (re-)initialized.  If the entity has not been
            initialized then this object has a zero value."
    ::= { chasEntityEntry 4 }

chasEntityRowStatus  OBJECT-TYPE
    SYNTAX  INTEGER {
               -- The following two values are states:
               -- these values may be read or written.
               active             (1),
               notInService       (2),

               -- the following value is a state:
               -- this value may be read but not written.
               notReady           (3),

               -- the following three values are actions:
               -- these values may be written, but not read.
               createAndGo        (4),
               createAndWait      (5),
               destroy            (6)
           }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
        "To create a row in this table the following procedure should
         be applies:
           1. Find an unused index in the table.
           2. In one packet write a value for chasEntityObjectID and
              chasEntityRowStatus to createAndGo

                          OR

           1. Find an unused index in the table.
           2. Set chasEntityRowStatus to createAndWait, this will
              result in the value of chasEntityRowStatus becoming notReady.
              After this step the value of chasEntityObjectID will be {0.0}.
           3. Set the value of chasEntityObjectID to identify the required
              entity type. An attempt to write an illegal, unsupported or
              inappropriate value to this object will result in an SNMP
              error and the value remaining unchanged.
           4. Set the chasEntityRowStatus to 'active'.

         Note that there are a number of reasons why the may refuse to
         create an entity:
           a) The particular chassis does NOT permit the creation and deletion
              of entities through management operation. An attempt to create
              a row in this table with such an agent will result in an SNMP
              error.
           b) The chassis does not permit the creation of the specified type
              of entity. For example an attempt to create a fan! If method 1)
              is used to create the row the state of the row will remain
              notReady.
           c) The chassis insufficient resource to create any additional
              entities. The attempt to create a row under these conditions wil
l
              return an SNMP error."
    ::= { chasEntityEntry 5 }


-- The chasEntityViewTable is used to provide access to the various MIB
-- views of the different entities in the chassis. Note that this table
-- must allow an SNMPv1 implementation of the chassis agent to point to an
-- entity accessed via a different SNMPv2 agent. This is particularly true
-- while SNMPv2 is yet to become an established protocol.
--
-- && Another constraint on this table is that it must allow the SNMP protocol
-- && to be carried over various transport domains. For this reason the intern
et
-- && draft version of this table was inadequate.
--
-- && I don't really like this table at all for the following reasons:
-- && a) It is adequate to identify different views for SNMPv1 but does
-- &&    not adequately identify SNMPv2 access.
-- && b) Even for SNMPv1 there is no indication of the access privileges of
-- &&    of the various views (which is read-only, which is read-write),
-- &&    although this isn't really a problem with SNMPv1!
-- && In some ways for SNMPv1 the table need more information, for SNMPv2
-- && that information is held in the SNMPv2 MIB party and context tables.