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

Re: A Data collection MIB



Hi, all. I have a couple of observations about the thread. First, the idea of 
aggregating data on a device is a good one. Collecting data based on specific 
instances of object types such as ifInOctets is also helpful.

The second observation is that some of this could accomplished with policies 
that use the same selection functions that they would use for the policy 
condition in the SNMPCONF work.  These data could then be aggregated in 
special purpose MIB Objects.

The third observation is that there is already a lot of work on the EOS plate 
and nothing should be taken up until the items on the current to do list  are 
done.

/jon
> 
> 
> 
> 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
> 
> 

Thanks,
/jon
--

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