[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: snmpconf 18.Update capabilities table


I'm having a difficult time understanding the MIB objects below.
Is there a document that provides some additional description?

I have the specific questions/concerns:
1) SMIv2 has the MODULE-COMPLIANCE construct for formally describing
   implementation requirements, and the AGENT-CAPABILITIES construct
   for describing implementation of object types and notification
   types in SNMP agents. However, it appears that the objects
   below are using instances of MODULE-COMPLIANCE definitions
   instead of instances of AGENT-CAPABILITIES definitions.
   Is the author confused or is below a creative use of
   compliance definitions?

2) The DESCRIPTION clause for pmCapabilitiesTable contains the
   sentence "An entry is removed from this table when the last
   element in the system that has the capability is removed."
   What does this mean? Is this referring to an instance of
   a managed resource? Or something else? Please focus on the
   phrase "last element in the system".

3) Note that MODULE-COMPLIANCE constructs can name object and
   notification types in one or more MIB modules. Also, a
   MODULE-COMPLIANCE construct specifies mandatory and conditional
   groups of object and/or notification types. A MODULE-COMPLIANCE
   may also contain object and notification exceptions that allow
   subset behaviors to be specified. When used as a capability
   specification, is a MODULE-COMPLIANCE instance interpreted
   in a minimal or maximal form?

4) The definition of object pmCapabilitiesType seems to imply that
   the value specified does not have to be the OID of a
   MODULE-COMPLIANCE definition (see point 2). If so, this is
   an ambiguous specification. What do the value of object
   pmCapabilitiesType identify?

5) The definition of object pmCapabilitiesType seems to imply that
   the value specified can identify a collection of capabilities
   (point 3). Note that SMIv2 does not have a construct to
   define a collection. What is this?

In general, what is trying to be described by the objects defined
below? Is it potential of support for instances of a resource?
And/or is it potential of support a particular instance of
a resource? Is it trying in any way to describe capacity (max
number of instances of resources), or interaction between
allocation of instances of one resource with another? (For example,
say there are two memory pools and instances of resource A and
B are allocated from pool 1, and instances or resources C, D, and E
are allocated from pool 2. Is there anyway to describe the
relationship between the resources and the memory pools? Does
the capabilities change if out of resources so no new ones
can be allocated?) 

/david t. perkins

At 09:57 AM 4/10/2001 -0400, Jon Saperia wrote:
>Before and during the IETF there was a lot of discussion about the
>capabilities table and the capMatch function. I have exchanged some
>email and talked with people about this since that time. This is for our
>to do item 18 - capabilities table update.
>There are now two quite small tables as presented at the IETF.
>-- Capabilities table
>pmCapabilitiesTable OBJECT-TYPE
>    SYNTAX      SEQUENCE OF PmCapabilitiesEntry
>    MAX-ACCESS  not-accessible
>    STATUS      current
>         "The pmCapabilitiesTable lists the capabilities of a system so
>         that policies can be differentially installed by management
>         systems based on capabilities. The capMatch function uses
>         entries in this table, and further modified by the
>         pmCapabilitiesOverrideTable, to determine whether or not to
>         apply policy actions based on whether the system has a
>         particular capability. Capabilities are expressed at the system
>         level. That is, entries appear in this table if any element in
>         the system has the capability. An entry is removed from this
>         table when the last element in the system that has the
>         capability is removed."
>    ::= { policyMgt 6 }
>pmCapabilitiesEntry OBJECT-TYPE
>    SYNTAX      PmCapabilitiesEntry
>    MAX-ACCESS  not-accessible
>    STATUS      current
>         "A capabilities entry holds an OID indicating support for a
>         particular capability.  The semantics of the OID are
>         defined in the description of pmCapabilitiesType.
>         These capabilities need not be limited to those that represent
>         MIB modules with one or more configurable objects. It may also
>         be valuable to include entries for capabilities that do not
>         include configuration objects since that information in
>         combination with other entries in this table might be used by
>         the management software to determine whether or not to install
>         a policy.
>         Vendor software may also add entries in this table to express
>         capabilities from their private branch."
>    INDEX       { pmCapabilitiesType }
>    ::= { pmCapabilitiesTable 1 }
>PmCapabilitiesEntry ::= SEQUENCE {
>    pmCapabilitiesType               OBJECT IDENTIFIER
>pmCapabilitiesType OBJECT-TYPE
>    MAX-ACCESS  read-only
>    STATUS      current
>        "There are three types of OIDs that may be present in the
>        pmCapabilitiesType object:
>        1) The OID representing the highest level of compliance for the
>        MIB Module realized by the agent. This value should be from the
>        compliance statements for agents realizing MIB Modules that
>        have been written with them. In the case where multiple levels
>        of compliance are available for a MIB Module, the entry in this
>        table should reflect this highest level of support provided by
>        the agent.  An agent that implements the OSPF MIB module at the
>        highest level of compliance would have the value of
>        '' in pmCapabilitiesType object. In the case
>        of software that realizes standard MIB modules that do not have
>        compliance statements, the base OID of the MIB Module should be
>        used instead. If the OSPF MIB Module had not been created with
>        compliance statement, then the correct value of the
>        pmCapabilitiesType would be ''. In the cases
>        where multiple compliance statements in a MIB Module are
>        supported by the agent, and one compliance statement does not
>        by definition include the other, each of the compliance OIDs
>        would have entries in this table. 
>         MIB Documents can contain more than one MIB Module. In the case
>         of OSPF, there is a second MIB Module in that document that
>         describes traps for the OSPF Version 2 Protocol. If the agent
>         also realizes these functions, an entry will also exist for
>         those capabilities in this table.
>        2) Vendors should install OIDs in this table that represent
>        vendor-specific capabilities. These capabilities can be
>        expressed just as those described above for standard MIB
>        Modules. In addition, vendors may install any OID they desire
>        from their registered branch. The OIDs may be at any level of
>        granularity, from the root of their entire branch to an
>        instance of a single OID. There is no restriction on the
>        number of registrations they may make, though care should be
>        taken to avoid unnecessary entries.
>        3) OIDs that represent one or a collection of capabilities
>        which could be any collection of MIB Objects or hardware or
>        software functions may be created in working groups and
>        registered with IANA. Other entities (e.g., vendors) may also
>        make registrations. Software will register these standard
>        capability OIDs as well as vendor specific OIDs."
>    ::= { pmCapabilitiesEntry 1 }
>-- Capabilities override table
>pmCapabilitiesOverrideTable OBJECT-TYPE
>    SYNTAX      SEQUENCE OF PmCapabilitiesOverrideEntry
>    MAX-ACCESS  not-accessible
>    STATUS      current
>         "The pmCapabilitiesOverrideTable allows management stations to
>         override entries that have been made in the pmCapabilitiesTable
>         by native software on the managed system. This facility can be
>         used to avoid the condition where managers in the network send
>         policies to a system that has advertised a capability in the
>         pmCapabilitiesTable but which should not be installed on this
>         particular system. One case could be newly deployed equipment
>         that is still in a trial state, or when resources are reserved
>         for some other administrative reason. This table can also be
>         used to override entries in the pmCapabilitiesTable through the
>         use of the pmCapabilitiesOverrideState object. Capabilities can
>         also be declared available in this table that were not
>         registered in the pmCapabilitiesTable. A management application
>         can make an entry in this table for any valid OID and declare
>         the capability available by setting the
>         pmCapabilitiesOverrideState for that row to valid(1)."
>    ::= { policyMgt 7 }
>pmCapabilitiesOverrideEntry OBJECT-TYPE
>    SYNTAX      PmCapabilitiesOverrideEntry
>    MAX-ACCESS  not-accessible
>    STATUS      current
>         "An entry in this table indicates whether a particular
>         capability is valid or invalid."
>    INDEX       { pmCapabilitiesOverrideType }
>    ::= { pmCapabilitiesOverrideTable 1 }
>PmCapabilitiesOverrideEntry ::= SEQUENCE {
>    pmCapabilitiesOverrideType               OBJECT IDENTIFIER,
>    pmCapabilitiesOverrideState              INTEGER,
>    pmCapabilitiesOverrideRowStatus          RowStatus
>pmCapabilitiesOverrideType OBJECT-TYPE
>    MAX-ACCESS  read-create
>    STATUS      current
>        "This is the OID of the capability that is declared valid or
>        invalid by the pmCapabilitiesOverrideState value for this
>        row. Any valid OID as described in the pmCapabilitiesTable is
>        permitted in the pmCapabilitiesOverrideType object. This means
>        that capabilities can be expressed at any level from a specific
>        instance of an object to a table or entire module. There are no
>        restrictions on whether these objects are from standards track
>        MIB documents or in the private branch of the MIB.
>         If an entry exists in this table for which there is a
>         corresponding entry in the pmCapabilitiesTable, then this entry
>         shall have precedence over the entry in the
>         pmCapabilitiesTable. All such entries in this table must be
>         preserved across reboots."
>    ::= { pmCapabilitiesOverrideEntry 1 }
>pmCapabilitiesOverrideState OBJECT-TYPE
>    SYNTAX      INTEGER {
>                    invalid(0),
>                    valid(1)
>                }
>    MAX-ACCESS  read-create
>    STATUS      current
>        "A pmCapabilitiesOverrideState of invalid indicates that
>        management software should not send policies to this system for
>        the capability identified in the pmCapabilitiesOverrideType for
>        this row of the table. The capMatch function will always return
>        0 (false) for capabilities marked as invalid using this
>        object. This behavior is the same whether the capability
>        represented by the pmCapabilitiesOverrideType exists only in
>        this table, that is it was installed by an external management
>        application, or exists in this table as well as the
>        pmCapabilitiesTable. This would be the case when a manager
>        wanted to disable a capability that the native management
>        system found and registered in the pmCapabilitiesTable.
>         An entry in this table that has a pmCapabilitiesOverrideState
>         of valid should be treated as if it appeared in the
>         pmCapabilitiesTable. If the entry also exists in the
>         pmCapabilitiesTable in the pmCapabilitiesType object, and the
>         value of this object is valid, then the system shall operate
>         as if this entry did not exist and policy installations and
>         executions will continue in a normal fashion."
>    ::= { pmCapabilitiesOverrideEntry 2 }
>pmCapabilitiesOverrideRowStatus OBJECT-TYPE
>    SYNTAX      RowStatus
>    MAX-ACCESS  read-create
>    STATUS      current
>         "The row status of this pmCapabilitiesOverrideEntry.
>    ::= { pmCapabilitiesOverrideEntry 3 }
>Jon Saperia                  saperia@jdscons.com
>                             Phone: 617-744-1079
>                             Fax:   617-249-0874
>                             http://www.jdscons.com/