[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A Data collection MIB
Nalin,
I think this is an interesting idea. It has some similarities with the
RMON-II usrHistory as defined in RFC-2021. You might want to investigate
that MIB as a source of reference for this as well. The RMON_II table
does not support monitoring of anything that is not an integer base like
your MIB does. But it has the advantage that it can support a history of
information. Thus you can configure the agent to go monitor the
attribute at five minute intervals, then once an hour use get-bulk or
the file transfer to extract the data from the agent.
Carl
Nalin Pai wrote:
>
> Folks,
>
> Hoping to kick off a discussion on a MIB idea that I have been playing
> around with for sometime now. I have been in touch with Bryan Levin
> and David Battle regarding merging this idea with theirs
> (draft-ietf-eos-snmp-bulkdata-00.txt)
>
> We thought it would be best to throw this open to eos.
>
> This MIB is intended to help periodic data retrievals, when the data
> itself is a set of discontiguous rows spread across multiple tables.
> Likely applications are performance and accounting applications.
>
> For e.g.
> The user wants to periodically fetch
> - ifInOctets, ifOutOctets from ifTable
> - ifHCInOctets, ifHCOutOctets from ifXTable
> - dot3StatsLateCollisions, dot3StatsSingleCollisionFrames from
> dot3StatsTable.
>
> and is interested only in a set of interfaces, lets say
> having ifIndex
> 1,5,10-12,23-25.
>
> The use of get-bulk to fetch the required object instances would be
> inefficient since a lot of unnecessary object instances would also be
> retrieved. Also since all 3 tables need not have the same number of
> rows, it again may not be possible to use a single get-bulk
> request to fetch rows from all 3 tables simultaneously.
>
> The other option is to use get-exact request PDUs specifying the
> exact instances *everytime* the user is interested in the data. Also
> this does not take advantage of any sequential ifIndex ranges.
>
> Both of the above options are not too efficient.
>
> The idea here is to design a MIB that has the following properties.
>
> 1) Allows user to specify objects (columns) of interest.
> The objects can belong to different tables, as long as they are
> semantically related.
> This is a one time operation.
>
> 2) Allows user to specify object instances of interest (rows)
> Multiple row instances can be specified for maximum flexibility.
> This is a one time operation.
>
> 3) Row instances can be single indexed or multi-indexed.
>
> 4) Has an access table which is more like a "view" that contains
> exactly what the user has requested. The user can then issue
> get-bulk requests on the access table to retrieve the data.
>
> 5) Supports a file transfer kind of a mechanism as defined in the
> current draft-ietf-eos-snmp-bulkdata-00.txt. This gives the
> flexibility of either using SNMP requests on the access table
> or populating a file which can then be transferred off the device.
>
> 6) The access table has a mechanism to indicate sparse object
> instances (holes). Holes would be plugged in with a dummy instance
> and the same would be indicated using a bit map for each row.
>
> This MIB according to me has the following advantages.
>
> 1) The access table will contain only those object instances that the
> user interested in. This will encourage use of get-bulks and make
> the use of a get-bulk PDU to retrieve discontiguous object instances
> more efficient.
>
> 2) The access table provides a conceptual view based
> on multiple MIB tables. Again the use of a get-bulk allows the user
> to retrieve objects from multiple tables as if they belong to the
> same table. For e.g the user is interested in retrieving objects
> for ethernet interfaces from the IF-MIB and the ETHER-LIKE-MIB.
>
> 3) Since the user will typically use a get-bulk to retrieve entries
> from the access table, MIB implementation optimizations can be
> done to increase efficiency of data access for frequently polled
> MIBS like IF-MIB etc.
> (For e.g by pre-fetching a set of rows, knowing that the get-bulk
> will require them)
>
> 4) It is possible to support sparse objects, by having a sparse object
> indicator for every row in the access table. This object is a bit
> map that indicates whether an object instance in the row is valid
> or not. By plugging NULL object instances with a dummy, we can
> avoid re-ordering and maintain row semantics.
>
> 5) When combined with the file transfer mechanism defined in
> draft-ietf-eos-snmp-bulkdata-00.txt, the user has the flexibility
> of using SNMP requests or file transfers to get the required data.
>
> I am attaching a rough and a basic MIB draft. It also contains some
> text recommending a way for NMS's to fetch data from the access table.
> I have not included the file transfer mechanism as supported by
> draft-ietf-eos-snmp-bulkdata-00.txt.
>
> Hoping to receive responses.
>
> Thanks,
> Nalin
>
> ------------------------------------------------------------------------
> --
> -- MIB description
> --
> --
> -- This MIB module facilitates data retrieval of tabular objects.
> -- This MIB can be used for performance/accounting purposes, where
> -- several row instances of a set of objects are polled over a
> -- period of time.
> --
> -- The MIB provides the user a way to specify which objects and which
> -- instances are required. In addition the MIB provides 2 ways in
> -- which this data can be retrieved.
> --
> -- Access tables.
> -- --------------
> -- The MIB provides access tables (dcmAccessRowTable &
> -- dcmAccessObjectTable) which can be queried to retrieve the set
> -- of required varbinds.
> -- The access tables provide a 'view' of exactly what the user wants.
> -- This makes it possible for the user to retrieve the contents of the
> -- access table using existing bulk mechanisms like the get-bulk PDU.
> --
> -- The access tables support the notion of 'data rows'. The objects
> -- specified in the dcmObjectsTable & dcmObjectInstanceTable, should
> -- belong to the same conceptual table. The conceptual table can contain
> -- attributes (columns) belonging to different MIB tables, but it should
> -- be semantically possible to relate these columns in a tabular
> -- relationship. Each data row has a corresponding sparse object indicator,
> -- dcmAccessRowSparseInd. This object indicates which object instance of
> -- the row is valid/invalid. This guarantees that each data row in the
> -- access tables contains objects qualified by the same instance.
> --
> --
> --
> -- E.g dcmObjectsTable (objects of interest):
> -- -----------------------------------------
> -- dcmObjectsIndex dcmObjectsOid
> -- --------------------------------
> -- 1 ifInOctets
> -- 2 ifOutOctets
> -- 3 ifHCInOctets
> -- 4 ifHCOutOctets
> --
> -- dcmObjectInstanceTable (objects of interest):
> -- ----------------------------------------------
> -- dcmObject dcmObject dcmObject dcmObject
> -- InstanceIndex InstanceType InstanceOid InstanceOidEnd
> -- (ifIndex) (ifIndex)
> -- 1 individual 1
> -- 2 individual 5
> -- 3 range 10 12
> -- 4 range 23 25
> --
> -- dcmAccessRowTable (objects of interest):
> -- ----------------------------------------------
> -- dcmAccessRowIndex dcmAccessRowSparseInd dcmAccessRowInstOid
> -- 1 0 1
> -- 2 0 5
> -- 3 24 10
> -- 4 24 11
> -- 5 24 12
> -- 6 0 23
> -- 7 0 24
> -- 8 0 25
> --
> -- dcmAccessObjectTable (objects of interest):
> -- ----------------------------------------------
> -- dcmAccess dcmAccess dcmAccess dcmAccess
> -- ObjectIndex ObjectRowIndex ObjectCounter32Val ObjectCounter64Val
> -- ------------------------------------------------------------------
> -- ####### ifInOctets
> -- 1 1 356
> -- 1 2 400
> -- cont..
> -- 1 8 4566
> -- ####### ifOutOctets
> -- 2 1 2000
> -- 2 2 3000
> -- cont..
> -- 2 8 4000
> -- ####### ifHCInOctets
> -- 3 1 356
> -- 3 2 400
> -- 3 3 (invalid)
> -- 3 4 (invalid)
> -- cont..
> -- 3 8 4566
> -- ####### ifHCOutOctets
> -- 3 1 2000
> -- 3 2 3000
> -- 3 3 (invalid)
> -- 3 4 (invalid)
> -- cont..
> -- 3 8 4000
> --
> --
> -- To retrieve the objects 'row wise' the NMS can issue a get-bulk
> -- as shown:
> -- getbulk -v2c 0 8 dcmAccessRowSparseInd ### sparse indicator
> -- dcmAccessRowInstanceOid ### ifIndex
> -- dcmAccessObjectCounter32Val.1 \ ### ifInOctets
> -- dcmAccessObjectCounter32Val.2 \ ### ifOutOctets
> -- dcmAccessObjectCounter64Val.3 \ ### ifHCInOctets
> -- dcmAccessObjectCounter64Val.4 ### ifHCOutOctets
> --
> -- After retrieving the required rows, the
> -- NMS has to simply replace all occurences of
> -- dcmAccessObjectCounter32Val.1 by ifInOctets,
> -- dcmAccessObjectCounter32Val.2 by ifOutOctets,
> -- dcmAccessObjectCounter64Val.3 by ifHCInOctets,
> -- dcmAccessObjectCounter64Val.4 by ifHCOutOctets
> -- and for all the objects,
> -- replace dcmAccessObjectRowIndex by the value of dcmAccessRowInstanceOid.
> --
> -- File mode:
> -- ----------
> -- The MIB also provides a mechanism by which the object instances
> -- specified in dcmObjectsTable & dcmObjectInstanceTable are retrieved
> -- and populated in a file. This MIB also supports transfer of this
> -- file to off the box locations.
> -- This idea is similar to that described in
> -- draft-ietf-eos-snmp-bulkdata-00.txt
> --
> -- The MIB shown below does not have objects to support file transfer
> -- yet. These objects have already been defined in
> -- draft-ietf-eos-snmp-bulkdata-00.txt, and the design can be reused
> -- here.
> --
>
> DATA-COLLECTION-MIB DEFINITIONS ::= BEGIN
>
> IMPORTS
> MODULE-IDENTITY, OBJECT-TYPE,
> Counter32, Integer32,
> Unsigned32, Counter64,
> IpAddress FROM SNMPv2-SMI
> RowStatus FROM SNMPv2-TC
> MODULE-COMPLIANCE,
> OBJECT-GROUP FROM SNMPv2-CONF
> SnmpAdminString FROM SNMP-FRAMEWORK-MIB
> ciscoMgmt FROM CISCO-SMI;
>
> dataCollMIB MODULE-IDENTITY
> LAST-UPDATED "200111041420Z"
> ORGANIZATION "Cisco Systems, Inc."
> CONTACT-INFO "Cisco Systems
> Customer Service
>
> Postal: 170 W Tasman Drive
> San Jose, CA 95134
> USA
>
> Tel: +1 800 553-NETS
>
> E-mail:"
> DESCRIPTION
> "The MIB module for facilitating periodic collection of bulk
> and performance/accounting data."
>
> ::= { ciscoMgmt 1099 }
>
> dataCollMIBObjects OBJECT IDENTIFIER ::= { dataCollMIB 1 }
>
> dcmConfig OBJECT IDENTIFIER ::= { dataCollMIBObjects 1 }
> dcmAccess OBJECT IDENTIFIER ::= { dataCollMIBObjects 2 }
> dcmStatus OBJECT IDENTIFIER ::= { dataCollMIBObjects 3 }
>
> nullOID OBJECT IDENTIFIER ::= { 0 0 }
>
> dcmConfigTable OBJECT-TYPE
> SYNTAX SEQUENCE OF DcmConfigEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "A table of data collection configuration entries. Each entry
> represents a set of objects whose values need to fetched for
> the specified instances."
> ::= { dcmConfig 1 }
>
> dcmConfigEntry OBJECT-TYPE
> SYNTAX DcmConfigEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "An individual entry in the dcmConfigTable."
> INDEX { dcmConfigIndex }
> ::= { dcmConfigTable 1 }
>
> DcmConfigEntry ::= SEQUENCE {
> dcmConfigIndex Unsigned32,
> dcmConfigComment SnmpAdminString,
> dcmConfigRowStatus RowStatus
> }
>
> dcmConfigIndex OBJECT-TYPE
> SYNTAX Unsigned32 (1..4294967295)
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "An arbitrary integer to uniquely identify this entry. To
> create an entry a management application should pick a
> random number."
> ::= { dcmConfigEntry 1 }
>
> dcmConfigComment OBJECT-TYPE
> SYNTAX SnmpAdminString
> MAX-ACCESS read-create
> STATUS current
> DESCRIPTION
> "A writable string, useful for administrative purposes."
> ::= { dcmConfigEntry 2 }
>
> dcmConfigRowStatus OBJECT-TYPE
> SYNTAX RowStatus
> MAX-ACCESS read-create
> STATUS current
> DESCRIPTION
> "Control row creation/deletion operations. This object also
> controls row operations for dcmObjectsTable &
> dcmObjectInstanceTable."
> ::= { dcmConfigEntry 3 }
>
> dcmObjectsTable OBJECT-TYPE
> SYNTAX SEQUENCE OF DcmObjectsEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "A table to specify the objects whose values need to be
> collected."
> ::= { dcmConfig 2 }
>
> dcmObjectsEntry OBJECT-TYPE
> SYNTAX DcmObjectsEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "An individual entry in the dcmObjectsTable."
> INDEX { dcmConfigIndex, dcmObjectsIndex }
> ::= { dcmObjectsTable 1 }
>
> DcmObjectsEntry ::= SEQUENCE {
> dcmObjectsIndex Unsigned32,
> dcmObjectsOid OBJECT IDENTIFIER
> }
>
> dcmObjectsIndex OBJECT-TYPE
> SYNTAX Unsigned32 (1..2039)
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "An arbitrary small integer for the purpose of identifying
> individual objects within a data collection group identified
> by dcmConfigIndex. The range is so specified to
> match the range of dcmAccessRowSparseInd."
> ::= { dcmObjectsEntry 1 }
>
> dcmObjectsOid OBJECT-TYPE
> SYNTAX OBJECT IDENTIFIER
> MAX-ACCESS read-create
> STATUS current
> DESCRIPTION
> "The OBJECT IDENTIFIER (OID) of the object represented by this
> entry. The OID must be the complete OID of the object."
> ::= { dcmObjectsEntry 2 }
>
> dcmObjectInstanceTable OBJECT-TYPE
> SYNTAX SEQUENCE OF DcmObjectInstanceEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "Table containing the row instance OIDs of objects whose
> values need to be fetched. Row instance OIDs can be specified
> as individual instances, range instances or subTree instances."
> ::= { dcmConfig 3 }
>
> dcmObjectInstanceEntry OBJECT-TYPE
> SYNTAX DcmObjectInstanceEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "An individual entry in the dcmObjectInstanceTable."
> INDEX { dcmConfigIndex, dcmObjectInstanceIndex }
> ::= { dcmObjectInstanceTable 1 }
>
> DcmObjectInstanceEntry ::= SEQUENCE {
> dcmObjectInstanceIndex Unsigned32,
> dcmObjectInstanceType INTEGER,
> dcmObjectInstanceOid OBJECT IDENTIFIER,
> dcmObjectInstanceOidEnd OBJECT IDENTIFIER,
> dcmObjectInstanceNumRepitions Unsigned32
> }
>
> dcmObjectInstanceIndex OBJECT-TYPE
> SYNTAX Unsigned32 (1..4294967295)
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "An arbitrary small integer for the purpose of identifying
> individual row instances for a data collection group
> identified by dcmConfigIndex."
> ::= { dcmObjectInstanceEntry 1 }
>
> dcmObjectInstanceType OBJECT-TYPE
> SYNTAX INTEGER { individual(1), range(2), subTree(3) }
> MAX-ACCESS read-create
> STATUS current
> DESCRIPTION
> "Specifies whether the instance represented by this entry is
> an individual instance or a instance range or an instance
> subTree."
> DEFVAL { subTree }
> ::= { dcmObjectInstanceEntry 2 }
>
> dcmObjectInstanceOid OBJECT-TYPE
> SYNTAX OBJECT IDENTIFIER
> MAX-ACCESS read-create
> STATUS current
> DESCRIPTION
> "The instance OID identifying the row(s) to be fetched.
> If dcmObjectInstanceType is 'individual' then this object
> should contain the complete instance OID of the row.
> If dcmObjectInstanceType is 'range' then this object
> contains the start OID of the range. The value need not be
> fully instantiated.
> If dcmObjectInstanceType is 'subTree' then this object
> contains a partially instantiated row instance. It can
> contain a NULL OID which indicates that the entire subTree
> (all instances of each object) should be fetched.
>
> SMIv2 mandates the OBJECT IDENTIFIER types should
> have atleast 2 sub-ids and the first sub-id has to be one of
> 0,1,2. To satisfy this requirement the first 2 sub-ids of
> cdcObjectInstanceOid will always be 0.0."
> DEFVAL { nullOID }
> ::= { dcmObjectInstanceEntry 3 }
>
> dcmObjectInstanceOidEnd OBJECT-TYPE
> SYNTAX OBJECT IDENTIFIER
> MAX-ACCESS read-create
> STATUS current
> DESCRIPTION
> "This object is used when dcmObjectInstanceType is set to
> range. This object contains the end OID of a range of rows
> that need to be fetched. This OID has to be lexicographically
> higher than dcmObjectInstanceOid.
>
> SMIv2 mandates the OBJECT IDENTIFIER types should
> have atleast 2 sub-ids and the first sub-id has to be one of
> 0,1,2. To satisfy this requirement the first 2 sub-ids of
> cdcObjectInstanceEndOid will always be 0.0."
>
> DEFVAL { nullOID }
> ::= { dcmObjectInstanceEntry 4 }
>
> dcmObjectInstanceNumRepitions OBJECT-TYPE
> SYNTAX Unsigned32
> MAX-ACCESS read-create
> STATUS current
> DESCRIPTION
> "This object provides an alternative method of specifying a
> range. It specifies the number of lexicographically next
> instances to fetch, starting from dcmObjectInstanceOid."
> DEFVAL { 0 }
> ::= { dcmObjectInstanceEntry 5 }
>
> dcmAccessRowTable OBJECT-TYPE
> SYNTAX SEQUENCE OF DcmAccessRowEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "Table containing instances of objects as specified
> in dcmObjectsTable & dcmObjectInstanceTable."
> ::= { dcmAccess 1 }
>
> dcmAccessRowEntry OBJECT-TYPE
> SYNTAX DcmAccessRowEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "An entry describing a row instance."
> INDEX { dcmConfigIndex, dcmAccessRowIndex }
> ::= { dcmAccessRowTable 1 }
>
> DcmAccessRowEntry ::= SEQUENCE {
> dcmAccessRowIndex Unsigned32,
> dcmAccessRowSparseInd OCTET STRING,
> dcmAccessRowInstOid OBJECT IDENTIFIER
> }
>
> dcmAccessRowIndex OBJECT-TYPE
> SYNTAX Unsigned32 (1..4294967295)
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "An index uniquely identifying an instance of a row for the
> data collection group identified by dcmConfigIndex. This is
> a running counter starting from 1, for each data collection
> group."
> ::= { dcmAccessRowEntry 1 }
>
> dcmAccessRowSparseInd OBJECT-TYPE
> SYNTAX OCTET STRING (SIZE (1..255))
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "Indicates which objects of this row instance are valid and
> which are invalid. The Octet String is treated as a bit
> string, if a bit is set then the corresponding bit position
> identifies the (object) dcmObjectsIndex which is sparse for
> this row. Bit position '0' is not used, owing to the fact the
> dcmObjectsIndex is never 0."
> ::= { dcmAccessRowEntry 2 }
>
> dcmAccessRowInstOid OBJECT-TYPE
> SYNTAX OBJECT IDENTIFIER
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The instance OID of a row. This is the OID representation of
> the index of the object instances."
> ::= { dcmAccessRowEntry 3 }
>
> dcmAccessObjectTable OBJECT-TYPE
> SYNTAX SEQUENCE OF DcmAccessObjectEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "A table containing object instances of a row. Applications can
> retrieve values row-wise by using the index combination of
> { dcmConfigIndex, dcmObjectIndex, * }."
> ::= { dcmAccess 2 }
>
> dcmAccessObjectEntry OBJECT-TYPE
> SYNTAX DcmAccessObjectEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "An entry containing a single object's value."
> INDEX { dcmConfigIndex, dcmAccessObjectIndex, dcmAccessObjectRowIndex }
> ::= { dcmAccessObjectTable 1 }
>
> DcmAccessObjectEntry ::= SEQUENCE {
> dcmAccessObjectIndex Unsigned32,
> dcmAccessObjectRowIndex Unsigned32,
> dcmAccessObjectCounter32Val Counter32,
> dcmAccessObjectUnsigned32Val Unsigned32,
> dcmAccessObjectInteger32Val Integer32,
> dcmAccessObjectIpAddressVal IpAddress,
> dcmAccessObjectOctetStringVal OCTET STRING,
> dcmAccessObjectOidVal OBJECT IDENTIFIER,
> dcmAccessObjectCounter64Val Counter64
> }
>
> dcmAccessObjectIndex OBJECT-TYPE
> SYNTAX Unsigned32 (1..4294967295)
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "The dcmObjectsIndex which is represented by one of
> the value objects instances in this table."
> ::= { dcmAccessObjectEntry 1 }
>
> dcmAccessObjectRowIndex OBJECT-TYPE
> SYNTAX Unsigned32 (1..4294967295)
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "The dcmAccessRowIndex which is represented by one of
> the value object instances in this table."
> ::= { dcmAccessObjectEntry 2 }
>
> dcmAccessObjectCounter32Val OBJECT-TYPE
> SYNTAX Counter32
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The value of a Counter32 type object."
> ::= { dcmAccessObjectEntry 3 }
>
> dcmAccessObjectUnsigned32Val OBJECT-TYPE
> SYNTAX Unsigned32
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The value of a Unsigned32 type object."
> ::= { dcmAccessObjectEntry 4 }
>
> dcmAccessObjectInteger32Val OBJECT-TYPE
> SYNTAX Integer32
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The value of a Integer32 type object."
> ::= { dcmAccessObjectEntry 5 }
>
> dcmAccessObjectIpAddressVal OBJECT-TYPE
> SYNTAX IpAddress
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The value of a IpAddress type object."
> ::= { dcmAccessObjectEntry 6 }
>
> dcmAccessObjectOctetStringVal OBJECT-TYPE
> SYNTAX OCTET STRING (SIZE (0..65536))
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The value of a OCTET STRING type object."
> ::= { dcmAccessObjectEntry 7 }
>
> dcmAccessObjectOidVal OBJECT-TYPE
> SYNTAX OBJECT IDENTIFIER
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The value of a OBJECT IDENTIFIER type object."
> ::= { dcmAccessObjectEntry 8 }
>
> dcmAccessObjectCounter64Val OBJECT-TYPE
> SYNTAX Counter64
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The value of a Counter64 type object."
> ::= { dcmAccessObjectEntry 9 }
>
> --
> -- Conformance
> --
>
> dataCollMIBConformance OBJECT IDENTIFIER ::= { dataCollMIB 3 }
> dataCollMIBCompliances OBJECT IDENTIFIER ::= { dataCollMIBConformance 1 }
> dataCollMIBGroups OBJECT IDENTIFIER ::= { dataCollMIBConformance 2 }
>
> -- Compliance
> dataCollMIBCompliance MODULE-COMPLIANCE
> STATUS current
> DESCRIPTION
> "The compliance statement for entities which implement
> the Data Collection MIB."
> MODULE -- this module
> MANDATORY-GROUPS {
> dcmConfigGroup,
> dcmAccessGroup
> }
>
> ::= { dataCollMIBCompliances 1 }
>
> -- Units of Conformance
> dcmConfigGroup OBJECT-GROUP
> OBJECTS {
> dcmConfigComment,
> dcmConfigRowStatus,
> dcmObjectsOid,
> dcmObjectInstanceType,
> dcmObjectInstanceOid,
> dcmObjectInstanceOidEnd,
> dcmObjectInstanceNumRepitions
> }
> STATUS current
> DESCRIPTION
> "MIB configuration objects."
> ::= { dataCollMIBGroups 1 }
>
> dcmAccessGroup OBJECT-GROUP
> OBJECTS {
> dcmAccessRowSparseInd,
> dcmAccessRowInstOid,
> dcmAccessObjectCounter32Val,
> dcmAccessObjectUnsigned32Val,
> dcmAccessObjectInteger32Val,
> dcmAccessObjectIpAddressVal,
> dcmAccessObjectOctetStringVal,
> dcmAccessObjectOidVal,
> dcmAccessObjectCounter64Val
> }
> STATUS current
> DESCRIPTION
> "Access related objects."
> ::= { dataCollMIBGroups 2 }
>
> END
--
Carl W. Kalbfleisch
www.verio.net