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

Re: snmpconf 18.Update capabilities table



David Perkins and I did some follow-up on his concerns (see his posting
of 4/10). I am sure I have not resolved them all. In particular I have
made changes in the description of pmCapabilitiesTable, and
pmCapabilitiesEntry. 

        1. I have put in language about the fact that management
        applications should consider this entry along with information
        about the model and vendor before installing a policy since
        realizations of capability will vary. In short a capability
        indicates that a system can do something, not how it does it. In
        general David was concerned about over-claiming what the table
        can do. This helps.

        2. Another concern was when instances come and go in the
        pmCapabilitiesTable. I have placed additional language to help
        address this concern.

        3. The use of the OIDs from MODULE-COMPLIANCE is in fact
        unusual. I think the text clearly specifies how we are using
        them. They seem to be the best handles we have a the present
        time.

A changed version follows.

-- Capabilities table

pmCapabilitiesTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PmCapabilitiesEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "The pmCapabilitiesTable lists the capabilities of a system so
         that policies can be differentially installed by management
         systems based on capabilities.

	 Capabilities are expressed at the system level. There can be
	 variation in how capabilities are realized from one vendor or
	 model to the next. Management systems should consider these
	 differences before selecting which policy to install in a
	 system.
	 
	 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."

    ::= { policyMgt 6 }

pmCapabilitiesEntry OBJECT-TYPE
    SYNTAX      PmCapabilitiesEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "A capabilities entry holds an OID indicating support for a
         particular capability.  The semantics of the OID are
         defined in the description of pmCapabilitiesType.

	 Entries appear in this table if any element in the system has a
	 specific capability. A capability should appear in this table
	 only once regardless of the number of elements in the system
	 with that capability. An entry is removed from this table when
	 the last element in the system that has the capability is
	 removed. In some cases, capabilities are dynamic and exist only
	 in software. This table should have an entry for the capability
	 even if there are no current instances. Examples include
	 systems with database or WEB services. While the system has the
	 ability to create new databases or WEB services, the entry
	 should exist. In these cases, the ability to create these
	 services could come from other processes that are running in
	 the system even though there are no currently open databases or
	 WEB servers running.

         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
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	 "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
	 '1.3.6.1.2.1.14.15.2' 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 '1.3.6.1.2.1.14'. 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
    DESCRIPTION
         "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
    DESCRIPTION
         "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
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
	 "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
    DESCRIPTION
	 "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
    DESCRIPTION
         "The row status of this pmCapabilitiesOverrideEntry.
    ::= { pmCapabilitiesOverrideEntry 3 }


Thanks,
/jon
--

Jon Saperia		     saperia@jdscons.com
			     Phone: 617-744-1079
			     Fax:   617-249-0874
			     http://www.jdscons.com/