-- *****************************************************************
-- CISCO-BULK-FILE-MIB.my:  Bulk file creation MIB
--
-- August 1997, Bob Stewart
-- June 2001, Thai Dang
-- August 2001, A S Kiran Koushik
-- April 2002, David L. Battle
-- Jun 2002, Kapil Kataria
--
-- Copyright (c) 1997, 1998, 2001, 2002 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************

CISCO-BULK-FILE-MIB DEFINITIONS ::= BEGIN
 
IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    NOTIFICATION-TYPE, zeroDotZero,
    Counter32, Gauge32, Unsigned32            FROM SNMPv2-SMI
    RowStatus, DisplayString,
    TruthValue,
    TimeStamp                                FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP,
    NOTIFICATION-GROUP                       FROM SNMPv2-CONF
    ciscoMgmt                                FROM CISCO-SMI;
 
ciscoBulkFileMIB MODULE-IDENTITY
    LAST-UPDATED "200206100000Z"
    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: cs-snmp@cisco.com"
    DESCRIPTION
        "The MIB module for creating and deleting bulk files of
        SNMP data for file transfer."

    REVISION  "200206100000Z"
    DESCRIPTION
        "Added enum 'forcedCreate' for object 'cbfDefineFileNow'
         for forced creation of configuration files."

    REVISION  "200205150000Z"
    DESCRIPTION
        "Added default values for all read-write objects in table to
         simplify creation of table rows."

    REVISION  "200108220000Z"
    DESCRIPTION
        "Modified description of objects 
        cbfDefineObjectTableInstance and
        cbfDefineObjectLastPolledInst in cbfDefineObjectTable
        to accept/represent Full OIDs instead of partial OIDs."

    REVISION  "200108010000Z"
    DESCRIPTION
        "Enhanced the MIB for selective row transfer from
        MIBS. Added a notification to indicate bulk file creation 
        or error(during creation of the file).

        Added object cbfDefineFileNotifyOnCompletion to
        cbfDefineFileTable.
        Added the objects cbfDefineObjectTableInstance,
        cbfDefineObjectLastPolledInst and 
        cbfDefineObjectNumEntries to cbfDefineObjectTable.
        Added cbfDefineFileCompletion notification."

    REVISION  "200106261700Z"
    DESCRIPTION
        "Added the following enumerations variantBERWithCksum(4) and 
        variantBinWithCksum(5) in cbfDefineFileFormat"

    REVISION "9810291700Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { ciscoMgmt 81 }


ciscoBulkFileMIBObjects OBJECT IDENTIFIER ::= { ciscoBulkFileMIB 1 }

cbfDefine OBJECT IDENTIFIER ::= { ciscoBulkFileMIBObjects 1 }
cbfStatus OBJECT IDENTIFIER ::= { ciscoBulkFileMIBObjects 2 }


--
-- Bulk File Formats
--

-- There are five bulk transfer file formats:

--     .  ASN.1/BER variable bindings - standard BER, just like you'd
--        find it in the varbinds section of a Response PDU.

--     .  Bulk binary - a binary form designed for fast, sequential
--        processing and minimum redundancy.

--     .  Bulk ASCII - the binary form, mechanically translated to
--        human-readable ASCII.

--     .  Variant ASN.1/BER with Checksum -  designed for more 
--        efficient data encoding to reduce the file size. 

--     .  Variant Binary with Checksum -  designed for speed and 
--        file size efficiency.

-- The ASN.1/BER format is identical to SNMP variable bindings, that is,
-- each object has a full OID and a fully tagged value.  The file 
-- content is similar to what would be obtained with a GetBulk request
--  except that it does not overshoot for uninstantiated values.  In
--  other words, the file contains no data at all for scalars or 
-- columns that could not be read.

-- The Variant ASN.1/BER is different from the standard ASN.1/BER 
-- in the way it encodes each object and the checksum 
-- value it attaches at the end of the file. Here 
-- is the content structure of the Variant ASN.1/BER file: 
-- 
--   Checksum signature (4 bytes) 
--   Data (encoded in ASN.1/BER) 
--   Checksum signature (4 bytes) 
--   Checksum value (4 bytes) 
-- 
--   Here is an example of how the objects get encoded: 
--     1) Common table subidentifier (share among multiple tables) 
--     2) Common object subidentifier (share among object instances 
--        of a table) 
--     3) Object instances 
--     Example: to encode ifDescr 1.3.6.1.2.1.2.2.1.2 
--                        ifType  1.3.6.1.2.1.2.2.1.3 
--                        ifName 1.3.6.1.2.1.31.1.1.1.1 
--     using variant ASN.1/BER: 
--         1) Common table subidentifier is 1.3.6.1.2.1 
--         2) Common object subidentifier for ifDescr and ifType 
--            are 2.1.2.2.1 
--            Common object subidentifier for ifName is 31.1.1.1 
--         3) Object instance  for 
--                ifDescr is 2.ifIndex 
--                ifType is 3.ifIndex 
--                ifName is 1.ifIndex 
-- 
--    The content of the the file encoded as: 
--         1) 4 bytes checksum signature 
--         2) Common table subidentifier encoded as private class 
--            OID type
--         3) Common object subidentifier for ifDesc encoded  as 
--            private class OID type
--         4) ifDescr instance encoded as OID type
--         5) ifDescr value encdoded
--         6) ifType instance encoded as OID type
--         7) ifType value encoded
--         8) Repeat step 4-7 if the table contains multiple rows 
--         9) Common object subidentifier for  ifName encoded 
--        10) ifName instance encoded as OID type
--        11) ifName value encoded
--        12) Repeat step 10-11 if the table contains multiple rows 
--        13) 4 bytes checksum signature 
--        14) 4 bytes checksum value 
-- 
--       Notes: Step 2 through step 12 are data 

-- The Variant Binary with Checksum is designed for fast 
-- processing and file size efficiency.  The content of the the
-- file is as follow:
-- 
--    Checksum signature (4 bytes) 
--    Data 
--    Checksum signature (4 bytes) 
--    Checksum value (4 bytes) 
--   
--    The data is store in 16 bytes blocks.  Each block has 
--    4 objects. Here is an example of the data: 
--        <ifIndex><vpi><vci><uploadCounter>

-- The remainder of this description applies to the bulk binary and bulk
-- ASCII formats, not to the ASN.1/BER format.

-- The file contains two types of fields: tags and data.  Tags identify
-- portions of the file and are discussed in detail below.  All other
-- information is in data fields.

-- Note: For efficiency and compactness data fields are not tagged 
-- with a type.  The interpreter of the data must thus know or have 
-- access to appropriate MIB syntax descriptions to understand the file.

-- All data fields are positional relative to a tag and every data field
-- has a length prefix.  All initial length prefixes are one byte.  For
-- any data type the distinguished length value 255 indicates that the
-- data content is null, that is, no data content value was 
-- available and there are no additional bytes in the data field.

-- INTEGER data fields include all data that maps to ASN.1 INTEGER,
-- regardless of length and whether signed or unsigned.  They have a
-- length prefix value of zero to eight, followed by that many bytes of
-- data, high-order byte first.  High order bytes that are all zero are
-- omitted, thus a length of zero indicates a value of zero.  For signed
-- numbers, leading bytes of all ones (hex FF) are omitted if the next
-- remaining byte has the high bit on.  This implies that the 
-- file parser must know the difference between signed and unsigned 
-- integers.

-- OCTET STRING values have a length prefix value of zero to two for a
-- subsequent unsigned byte count for the number of bytes in the OCTET
-- STRING itself, which immediately follows the byte count.  The byte
-- count can thus range from zero to 65,535.

-- OBJECT IDENTIFIER values have a length of zero to 128, for the number
-- of sub-identifiers.  Each subsequent sub-identifier is encoded as an
-- unsigned INTEGER of 0-4 bytes.

-- The bulk binary file layout directly reflects the contents of the
-- cbfDefineFileObjectTable.  It has tagged sections corresponding to
-- cbfDefineObjectClass with a few additional tags for utility purposes.
-- A tag is one byte with one of the following values:

--      -2      row
--      -1      prefix
--       0      reserved
--       1      object
--       2      table

-- The prefix tag changes the default OID prefix that is assumed to
-- precede all OIDs that are not MIB object data values.  The prefix tag
-- may appear anywhere another tag could appear.  A prefix tag is 
-- followed by one OID data field.  The default prefix is 1.3.6.1.  
-- A file need not set the prefix to the default value.  Note that
--  when changing the prefix, the default portion must be included 
-- at the beginning of the new prefix.  Typically the prefix will 
-- change for each table or group of scalar objects.

-- An object tag is followed by one OID data field and one data field
-- appropriate to the syntax of the object.  This OID is the full 
-- OID for the object minus the current prefix.

-- A table tag is followed by one INTEGER data field whose value is the
-- number of columns in the table, as implemented by the agent.  This is
-- followed by one OID data field for each column.  This is the OID for
-- the column minus the prefix and the instance (typically one
-- subidentifier).

-- The OIDs are then followed by one row for each row in the table.  
-- A row starts with a row tag and one OID data field containing 
-- only the instance portion of the OIDs for the objects in that row.
-- Following this is one data field of appropriate type for each 
-- column.

-- The bulk ASCII form mechanically translates bulk binary into
-- human-readable text.

-- The indicator for a null value is "~".

-- An INTEGER becomes the integer value with a preceding "-" for 
-- negative values and no leading zeros.

-- An OCTET STRING becomes the byte values in hexadecimal, lower case, 
-- two characters per byte (that is, with leading zeros), no delimiters
-- between bytes.

-- An OBJECT IDENTIFIER becomes the usual dotted decimal form.

-- A tag becomes the tag's name, spelled out fully in lower case, 
-- followed by one blank and the data field(s) for the tag, separated 
-- by spaces and ending with a carriage return/line feed.  All tags 
-- are at the beginning of a "line" that is terminated with a carriage 
-- return/line feed that immediately precedes the next tag or the end 
-- of file.


--
-- File Definition and Creation Control
--

-- Definition Resource Management

cbfDefineMaxFiles OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The maximum number of file definitions this system
        can hold in cbfDefineFileTable.  A value of 0 indicates no
        configured limit.

        This object may be read-only on some systems.

        Changing this number does not disturb existing entries."
    ::= { cbfDefine 1 }

cbfDefineFiles OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current number of file definitions in cbfDefineFileTable."
    ::= { cbfDefine 2 }

cbfDefineHighFiles OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum value of cbfDefineFiles since system 
        initialization."
    ::= { cbfDefine 3 }

cbfDefineFilesRefused OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of attempts to create a file definition that
        failed due to exceeding cbfDefineMaxFiles."
    ::= { cbfDefine 4 }

cbfDefineMaxObjects OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The maximum total number of object selections to go with
        file definitions this system, that is, the total number
        of objects this system can hold in cbfDefineObjectTable.  A
        value of 0 indicates no configured limit.

        This object may be read-only on some systems.

        Changing this number does not disturb existing entries."
    ::= { cbfDefine 5 }

cbfDefineObjects OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current number of object selections in 
        cbfDefineObjectTable."
    ::= { cbfDefine 6 }

cbfDefineHighObjects OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum value of cbfDefineObjects since system 
        initialization."
    ::= { cbfDefine 7 }

cbfDefineObjectsRefused OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of attempts to create an object selection that
        failed due to exceeding cbfDefineMaxObjects."
    ::= { cbfDefine 8 }


-- File Definition Table

cbfDefineFileTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CbfDefineFileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of bulk file definition and creation controls."
    ::= { cbfDefine 9 }

cbfDefineFileEntry OBJECT-TYPE
    SYNTAX      CbfDefineFileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information for creation of a bulk file.

        To creat a bulk file an application creates an entry in this
        table and corresponding entries in cbfDefineObjectTable.

        When the entry in this table and the corresponding
        entries in cbfDefineObjectTable are 'active' the
        appliction uses cbfDefineFileNow to create the file
        and a corresponding entry in cbfStatusFileTable.

        Deleting an entry in cbfDefineFileTable deletes all
        corresponding entries in cbfDefineObjectTable and
        cbfStatusFileTable.

        An entry may not be modified or deleted while its
        cbfDefineFileNow has the value 'running'."
    INDEX       { cbfDefineFileIndex }
    ::= { cbfDefineFileTable 1 }

CbfDefineFileEntry ::= SEQUENCE {
    cbfDefineFileIndex              Unsigned32,
    cbfDefineFileName               DisplayString,
    cbfDefineFileStorage            INTEGER,
    cbfDefineFileFormat             INTEGER,
    cbfDefineFileNow                INTEGER,
    cbfDefineFileEntryStatus        RowStatus,
    cbfDefineFileNotifyOnCompletion TruthValue

}

cbfDefineFileIndex 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."
    ::= { cbfDefineFileEntry 1 }

cbfDefineFileName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The file name which is to be created.

        Explicit device or path choices in the value of this object
        override cbfDefineFileStorage."
    DEFVAL { "" }
    ::= { cbfDefineFileEntry 2 }

cbfDefineFileStorage OBJECT-TYPE
    SYNTAX      INTEGER { ephemeral(1), volatile(2), permanent(3) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The type of file storage to use:

        ephemeral        data exists in small amounts until read
        volatile        data exists in volatile memory
        permanent        data survives reboot

        An ephemeral file is suitable to be read only one time.

        Note that this value is taken as advisory and may be overridden
        by explicit device or path choices in cbfDefineFile.

        A given system may support any or all of these."
    DEFVAL      { ephemeral }
    ::= { cbfDefineFileEntry 3 }

cbfDefineFileFormat OBJECT-TYPE
    SYNTAX      INTEGER { standardBER(1), 
                          bulkBinary(2), 
                          bulkASCII(3),
                          variantBERWithCksum(4), 
                          variantBinWithCksum(5) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The format of the data in the file:

    StandardBER        standard SNMP ASN.1 BER
    bulkBinary        a binary format specified with this MIB
    bulkASCII        a human-readable form of bulkBinary
    variantBERWithCksum ASN.1 BER encoding with checksum
    variantBinWithCksum a binary format with checksum

        A given system may support any or all of these."
    DEFVAL      { bulkBinary }
    ::= { cbfDefineFileEntry 4 }

cbfDefineFileNow OBJECT-TYPE
    SYNTAX      INTEGER { notActive(1), 
                          ready(2), 
                          create(3), 
                          running(4),
                          forcedCreate(5) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The control to cause file creation.  The only values that can
        be set are 'create' and 'forcedCreate'. These can be set only 
        when the value is 'ready'.  Setting it to 'create' begins a 
        file creation and creates a corresponding entry in 
        cbfStatusFileTable. The system may choose to use an already 
        existing copy of the file instead of creating a new one. This
        may happen if there has been no configuration change on the 
        system and a request to recreate the file is received. 
        Setting this object to 'forcedCreate' forces the system to 
        create a new copy of the file.

        The value is 'notActve' as long as cbfDefineFileEntryStatus or
        any corresponding cbfDefineObjectEntryStatus is not active.

        When cbfDefineFileEntryStatus becomes active and all
        corresponding cbfDefineObjectEntryStatuses are active this 
        object automatically goes to 'ready'."
    DEFVAL        { notActive }
    ::= { cbfDefineFileEntry 5 }

cbfDefineFileEntryStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The control that allows creation, modification, and deletion
        of entries.  For detailed rules see the DESCRIPTION for
        cbfDefineFileEntry."
    ::= { cbfDefineFileEntry 6 }

cbfDefineFileNotifyOnCompletion OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS  read-create
    STATUS        current
    DESCRIPTION
        "This controls the cbfDefineFileCompletion notification.

        If true, cbfDefineFileCompletion notification
        will be generated. It is the responsibility of the 
        management entity to ensure that the SNMP administrative 
        model is configured in such a way as to allow the 
        notification to be delivered."

    DEFVAL        { false }
    ::= { cbfDefineFileEntry 7 }

-- File Object Table

cbfDefineObjectTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CbfDefineObjectEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of objects to go in bulk files."
    ::= { cbfDefine 10 }

cbfDefineObjectEntry OBJECT-TYPE
    SYNTAX      CbfDefineObjectEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about one object for a particular file.

        An application uses cbfDefineObjectEntryStatus to create entries
        in this table in correspondence with entries in
        cbfDefineFileTable, which must be created first.

        Entries in this table may not be changed, created or deleted
        while the corresponding value of cbfDefineFileNow is 'running'."
    INDEX       { cbfDefineFileIndex, cbfDefineObjectIndex }
    ::= { cbfDefineObjectTable 1 }

CbfDefineObjectEntry ::= SEQUENCE {
    cbfDefineObjectIndex          Unsigned32,
    cbfDefineObjectClass          INTEGER,
    cbfDefineObjectID             OBJECT IDENTIFIER,
    cbfDefineObjectEntryStatus    RowStatus,
    cbfDefineObjectTableInstance  OBJECT IDENTIFIER,
    cbfDefineObjectNumEntries     Unsigned32,
    cbfDefineObjectLastPolledInst OBJECT IDENTIFIER
}

cbfDefineObjectIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An arbitrary integer to uniquely identify this entry.

        The numeric order of the entries controls the order of
        the objects in the file."
    ::= { cbfDefineObjectEntry 1 }

cbfDefineObjectClass OBJECT-TYPE
    SYNTAX      INTEGER {
                object(1),
                lexicalTable(2),
                leastCpuTable(3)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The meaning of each object class is given below:

        object          a single MIB object is retrieved.

        lexicalTable    an entire table or partial table
                        is retrieved in lexical order of rows.

        leastCpuTable   an entire table is retrieved with
                        lowest CPU utilization.
                        Lexical ordering of rows may not be 
                        maintained and is dependent upon 
                        individual MIB implementation."
    DEFVAL      { leastCpuTable }
    ::= { cbfDefineObjectEntry 2 }

cbfDefineObjectID OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The object identifier of a MIB object to be included in
        the file.

        If cbfDefineObjectClass is 'object' this must be a full OID,
        including all instance information.

        If cbfDefineObjectClass is 'lexicalTable' or 'leastCpuTable'
        this must be the OID of the table-defining SEQUENCE OF
        registration point."
    DEFVAL { zeroDotZero }
    ::= { cbfDefineObjectEntry 3 }

cbfDefineObjectEntryStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The control that allows creation, modification, and deletion
        of entries.  For detailed rules see the DESCRIPTION for
        cbfDefineObjectEntry."
    ::= { cbfDefineObjectEntry 4 }



cbfDefineObjectTableInstance OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
         "If cbfDefineObjectClass is 'lexicalTable', then this object
         represents the starting instance in the cbfDefineObjectID
         table. The file created will have entries starting from
         the lexicographically next instance of the OID represented
         by this object. 

         For Eg: 
         -------

                Let us  assume we are polling ifTable and we
                have information till the second row(ifIndex.2). Now
                we may be interested in 10 rows lexically following
                the second row.
                
                So, we set cbfDefineObjectTableInstance as ifIndex.2 
                and cbfDefineObjectNumEntries as 10. 

                We will get information for the next 10 rows or
                if there are less than 10 populated rows, we will
                receive information till the end of the table is 
                reached.

         The default value for this object is zeroDotZero.

         If this object has the value of zeroDotZero and 
         cbfDefineObjectNumEntries has value 0, then the whole
         table(represented by cbfDefineObjectID) is retrieved.

         If this object has the value of zeroDotZero,  
         cbfDefineObjectNumEntries has value n (>0) and there are 
         m(>0) entries in the table(represented by cbfDefineObjectID)
         then the first n entries in the table are retrieved if n < m. 
         If n >= m, then the whole table is retrieved.
         
         When the value of cbfDefineObjectNumEntries is 0, 
         it means all the entries in the table(represented 
         by cbfDefineObjectID) which lexicographically follow 
         cbfDefineObjectTableInstance are retrieved.

         This object is irrelevent if cbfDefineObjectClass is not
         'lexicalTable'."

    DEFVAL     { zeroDotZero }
    ::= { cbfDefineObjectEntry 5 }

cbfDefineObjectNumEntries OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
         "If cbfDefineObjectClass is 'lexicalTable', then this object
         represents the maximum number of entries which will be 
         populated in the file starting from the lexicographically
         next instance of the OID represented by 
         cbfDefineObjectTableInstance. 
 
         This object is irrelevent if cbfDefineObjectClass is not
         'lexicalTable'.
        
         Refer to the description of cbfDefineObjectTableInstance for
         examples and different scenarios relating to this object."

    DEFVAL      { 0 }
    ::= { cbfDefineObjectEntry 6 }

cbfDefineObjectLastPolledInst OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "This object represents the last polled instance in the
         table.

         The value represented by this object will be relevent only
         if the corresponding cbfStatusFileState is emptied(3) for 
         ephemeral files or ready(2) for volatile or permanent files.

         A value of zeroDotZero indicates an absence of last polled 
         object.

         An NMS can use the value of this object and populate the
         cbfDefineObjectTableInstance to retrieve a contiguous set
         of rows in a table."
    ::= { cbfDefineObjectEntry 7 }

--
-- File Status
--

-- Resource Control

cbfStatusMaxFiles OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The maximum number of file statuses this system
        can hold in cbfStatusFileTable.  A value of 0 indicates no
        configured limit.

        This object may be read-only on some systems.

        Changing this number deletes the oldest finished entries until
        the new limit is satisfied."
    ::= { cbfStatus 1 }

cbfStatusFiles OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current number of file statuses in cbfStatusFileTable."
    ::= { cbfStatus 2 }

cbfStatusHighFiles OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum value of cbfStatusFiles since system 
        initialization."
    ::= { cbfStatus 3 }

cbfStatusFilesBumped OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number times the oldest entry was deleted due to exceeding
        cbfStatusMaxFiles."
    ::= { cbfStatus 4 }


-- File Table

cbfStatusFileTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CbfStatusFileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of bulk file status."
    ::= { cbfStatus 5 }

cbfStatusFileEntry OBJECT-TYPE
    SYNTAX      CbfStatusFileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Status for a particular file.

        An entry exists in this table for each time cbfDefineFileNow
        has been set to 'create' and the corresponding entry here
        has not been explicitly deleted by the application or bumped
        to make room for a new entry.

        Deleting an entry with cbfStatusFileState 'running' aborts
        the file creation attempt.

        It is implementation and file-system specific whether deleting
        the entry also deletes the file."
    INDEX       { cbfDefineFileIndex, cbfStatusFileIndex }
    ::= { cbfStatusFileTable 1 }

CbfStatusFileEntry ::= SEQUENCE {
    cbfStatusFileIndex                Unsigned32,
    cbfStatusFileState                INTEGER,
    cbfStatusFileCompletionTime        TimeStamp,
    cbfStatusFileEntryStatus        RowStatus
}

cbfStatusFileIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An arbitrary integer to uniquely identify this file.

        The numeric order of the entries implies the creation
        order of the files."
    ::= { cbfStatusFileEntry 1 }

cbfStatusFileState OBJECT-TYPE
    SYNTAX      INTEGER {
                running(1),
                ready(2),
                emptied(3),
                noSpace(4),
                badName(5),
                writeErr(6),
                noMem(7),
                buffErr(8),
                aborted(9)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The file state:

        running    data is being written to the file
        ready      the file is ready to be read
        emptied    an ephemeral file was successfully consumed
        noSpace    no data due to insufficient file space
        badName    no data due to a name or path problem
        writeErr   no data due to fatal file write error
        noMem      no data due to insufficient dynamic memory
        buffErr    implementation buffer too small
        aborted    short terminated by operator command

        Only the 'ready' state implies that the file is available
        for transfer.

        The disposition of files after an error is implementation
        and file-syste specific."
    ::= { cbfStatusFileEntry 2 }

cbfStatusFileCompletionTime OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of sysUpTime when the creation attempt completed.
        A value of 0 indicates not complete.  For ephemeral files this
        is the time when cbfStatusFileState goes to 'emptied'.  For
        others this is the time when the state leaves 'running'."
    ::= { cbfStatusFileEntry 3 }

cbfStatusFileEntryStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The control that allows deletion of entries. For detailed rules
        see the DESCRIPTION for cbfStatusFileEntry.

        This object may not be set to any value other than 'destroy'."
    ::= { cbfStatusFileEntry 4 }

-- Notifications 

ciscoBulkFileMIBNotificationPrefix OBJECT IDENTIFIER ::= {
                                    ciscoBulkFileMIB 2 }

ciscoBulkFileMIBNotifications OBJECT IDENTIFIER ::= { 
                               ciscoBulkFileMIBNotificationPrefix 0 }


cbfDefineFileCompletion NOTIFICATION-TYPE
    OBJECTS   
    { 
     cbfStatusFileState,
     cbfStatusFileCompletionTime
    }
    STATUS        current
    DESCRIPTION
         "A cbfDefineFileCompletion notification is sent on 
          the following conditions :
          - completion of a file consumption operation in case of
            ephemeral files.
          - completion of file creation operation in case of 
            volatile or permanent files.
          - any error during file creation."
    ::= { ciscoBulkFileMIBNotifications 1 }
--
-- Conformance
--

ciscoBulkFileMIBConformance OBJECT IDENTIFIER ::= { ciscoBulkFileMIB 3 }

ciscoBulkFileMIBCompliances OBJECT IDENTIFIER ::=
        { ciscoBulkFileMIBConformance 1 }
ciscoBulkFileMIBGroups      OBJECT IDENTIFIER ::=
        { ciscoBulkFileMIBConformance 2 }

-- Compliance

ciscoBulkFileMIBCompliance MODULE-COMPLIANCE
        STATUS deprecated
        DESCRIPTION
                "The compliance statement for entities which implement
                the Cisco Bulk File MIB.  Implementation of this MIB
                is based on individual product needs."
        MODULE        -- this module
                MANDATORY-GROUPS { 
                        ciscoBulkFileDefineGroup,
                        ciscoBulkFileStatusGroup,
                        ciscoBulkFileNotiGroup
                }
        ::= { ciscoBulkFileMIBCompliances 1 }

ciscoBulkFileMIBComplianceRev1 MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Cisco Bulk File MIB.  Implementation of this MIB
                is based on individual product needs."
        MODULE        -- this module
                MANDATORY-GROUPS { 
                        ciscoBulkFileDefineGroupRev1,
                        ciscoBulkFileStatusGroup,
                        ciscoBulkFileNotiGroup
                }
        ::= { ciscoBulkFileMIBCompliances 2 }

-- Units of Conformance

ciscoBulkFileDefineGroup OBJECT-GROUP
        OBJECTS {
                cbfDefineMaxFiles,
                cbfDefineFiles,
                cbfDefineHighFiles,
                cbfDefineFilesRefused,
                cbfDefineMaxObjects,
                cbfDefineObjects,
                cbfDefineHighObjects,
                cbfDefineObjectsRefused,
                cbfDefineFileName,
                cbfDefineFileStorage,
                cbfDefineFileFormat,
                cbfDefineFileNow,
                cbfDefineFileEntryStatus,
                cbfDefineFileNotifyOnCompletion,

                cbfDefineObjectClass,
                cbfDefineObjectID,
                cbfDefineObjectEntryStatus
        }
        STATUS deprecated
        DESCRIPTION
                "Bulk file definition management."
        ::= { ciscoBulkFileMIBGroups 1 }
ciscoBulkFileStatusGroup OBJECT-GROUP
        OBJECTS {
                cbfStatusMaxFiles,
                cbfStatusFiles,
                cbfStatusHighFiles,
                cbfStatusFilesBumped,
                cbfStatusFileState,
                cbfStatusFileCompletionTime,
                cbfStatusFileEntryStatus
        }
        STATUS current
        DESCRIPTION
                "Bulk file status management."
        ::= { ciscoBulkFileMIBGroups 2 }

ciscoBulkFileNotiGroup NOTIFICATION-GROUP
       NOTIFICATIONS {
               cbfDefineFileCompletion 
       } 
        STATUS current
        DESCRIPTION
                "A collection of notification objects for supporting
                Bulk file notification management."
       ::= { ciscoBulkFileMIBGroups 3 }

ciscoBulkFileDefineGroupRev1 OBJECT-GROUP
        OBJECTS {
                cbfDefineMaxFiles,
                cbfDefineFiles,
                cbfDefineHighFiles,
                cbfDefineFilesRefused,
                cbfDefineMaxObjects,
                cbfDefineObjects,
                cbfDefineHighObjects,
                cbfDefineObjectsRefused,
                cbfDefineFileName,
                cbfDefineFileStorage,
                cbfDefineFileFormat,
                cbfDefineFileNow,
                cbfDefineFileEntryStatus,
                cbfDefineFileNotifyOnCompletion,

                cbfDefineObjectClass,
                cbfDefineObjectID,
                cbfDefineObjectEntryStatus,
                cbfDefineObjectTableInstance,
                cbfDefineObjectNumEntries,
                cbfDefineObjectLastPolledInst
        }
        STATUS current
        DESCRIPTION
                "Bulk file definition management."
        ::= { ciscoBulkFileMIBGroups 4 }



END



