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

A Data collection MIB



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