#-MIBFILE: cisco-flash.mib

CISCO-FLASH-MIB DEFINITIONS ::= BEGIN


DisplayString ::=
	OCTET STRING (SIZE(0..255))

PhysAddress ::=
	OCTET STRING

MacAddress ::=
	OCTET STRING (SIZE(6))

TruthValue ::=
	INTEGER {
	true(1),
	false(2)
	}

TestAndIncr ::=
	INTEGER (0..2147483647)

AutonomousType ::=
	OBJECT IDENTIFIER

InstancePointer ::=
	OBJECT IDENTIFIER

VariablePointer ::=
	OBJECT IDENTIFIER

RowPointer ::=
	OBJECT IDENTIFIER

RowStatus ::=
	INTEGER {
	active(1),
	notInService(2),
	notReady(3),
	createAndGo(4),
	createAndWait(5),
	destroy(6)
	}

TimeStamp ::=
	TimeTicks

TimeInterval ::=
	INTEGER (0..2147483647)

DateAndTime ::=
	OCTET STRING (SIZE(8|11))

StorageType ::=
	INTEGER {
	other(1),
	volatile(2),
	nonVolatile(3),
	permanent(4),
	readOnly(5)
	}

TDomain ::=
	OBJECT IDENTIFIER

TAddress ::=
	OCTET STRING (SIZE(1..255))

PhysicalIndex ::=
	INTEGER (1..2147483647)

PhysicalIndexOrZero ::=
	INTEGER (0..2147483647)

PhysicalClass ::=
	INTEGER {
	other(1),
	unknown(2),
	chassis(3),
	backplane(4),
	container(5),
	powerSupply(6),
	fan(7),
	sensor(8),
	module(9),
	port(10),
	stack(11),
	cpu(12)
	}

SnmpEngineIdOrNone ::=
	OCTET STRING (SIZE(0..32))

cisco OBJECT IDENTIFIER ::= { enterprises 9 }
ciscoMgmt OBJECT IDENTIFIER ::= { cisco 9 }
InetAddressType ::=
	INTEGER {
	unknown(0),
	ipv4(1),
	ipv6(2),
	ipv4z(3),
	ipv6z(4),
	dns(16)
	}

InetAddress ::=
	OCTET STRING (SIZE(0..255))

InetAddressIPv4 ::=
	OCTET STRING (SIZE(4))

InetAddressIPv6 ::=
	OCTET STRING (SIZE(16))

InetAddressIPv4z ::=
	OCTET STRING (SIZE(8))

InetAddressIPv6z ::=
	OCTET STRING (SIZE(20))

InetAddressDNS ::=
	OCTET STRING (SIZE(1..255))

InetAddressPrefixLength ::=
	OCTET STRING

InetPortNumber ::=
	OCTET STRING

InetAutonomousSystemNumber ::=
	OCTET STRING

InetScopeType ::=
	INTEGER {
	interfaceLocal(1),
	linkLocal(2),
	subnetLocal(3),
	adminLocal(4),
	siteLocal(5),
	organizationLocal(8),
	global(14)
	}

InetZoneIndex ::=
	OCTET STRING

InetVersion ::=
	INTEGER {
	unknown(0),
	ipv4(1),
	ipv6(2)
	}

ChecksumString ::=
	OCTET STRING

FlashFileType ::=
	INTEGER {
	unknown(1),
	config(2),
	image(3),
	directory(4),
	crashinfo(5)
	}

ciscoFlashMIB OBJECT IDENTIFIER ::= { ciscoMgmt 10 }

ciscoFlashMIBObjects OBJECT IDENTIFIER ::= { ciscoFlashMIB 1 }

ciscoFlashDevice OBJECT IDENTIFIER ::= { ciscoFlashMIBObjects 1 }

ciscoFlashOps OBJECT IDENTIFIER ::= { ciscoFlashMIBObjects 2 }

ciscoFlashMIBTrapPrefix OBJECT IDENTIFIER ::= { ciscoFlashMIBObjects 3 }

ciscoFlashCfg OBJECT IDENTIFIER ::= { ciscoFlashMIBObjects 4 }

ciscoFlashDevicesSupported OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Number of Flash devices supported by the system.
If the system does not support any Flash devices, this
MIB will not be loaded on that system. The value of this
object will therefore be atleast 1.
"
	::= { ciscoFlashDevice 1 }


ciscoFlashDeviceTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CiscoFlashDeviceEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Table of Flash device properties for each initialized 
Flash device. Each Flash device installed in a system 
is detected, sized, and initialized when the system 
image boots up. 
For removable Flash devices, the device properties
will be dynamically deleted and recreated as the
device is removed and inserted. Note that in this 
case, the newly inserted device may not be the same as 
the earlier removed one. The ciscoFlashDeviceInitTime
object is available for a management station to determine
the time at which a device was initialized, and thereby
detect the change of a removable device.
A removable device that has not been installed will
also have an entry in this table. This is to let a
management station know about a removable device that 
has been removed. Since a removed device obviously
cannot be sized and initialized, the table entry for 
such a device will have 
ciscoFlashDeviceSize equal to zero,
and the following objects will have
an indeterminate value:
ciscoFlashDeviceMinPartitionSize,
ciscoFlashDeviceMaxPartitions,
ciscoFlashDevicePartitions, and
ciscoFlashDeviceChipCount.
ciscoFlashDeviceRemovable will be
true to indicate it is removable.
"
	::= { ciscoFlashDevice 2 }


ciscoFlashDeviceEntry OBJECT-TYPE
	SYNTAX CiscoFlashDeviceEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An entry in the table of flash device properties for
each initialized flash device.
Each entry can be randomly accessed by using 
ciscoFlashDeviceIndex as an index into the table.
Note that removable devices will have an entry in
the table even when they have been removed. However,
a non-removable device that has not been installed
will not have an entry in the table.
"
	INDEX { ciscoFlashDeviceIndex  }

	::= { ciscoFlashDeviceTable 1 }

ciscoFlashDeviceEntry ::=
	SEQUENCE {
		ciscoFlashDeviceIndex Unsigned32,
		ciscoFlashDeviceSize Unsigned32,
		ciscoFlashDeviceMinPartitionSize Unsigned32,
		ciscoFlashDeviceMaxPartitions Unsigned32,
		ciscoFlashDevicePartitions Unsigned32,
		ciscoFlashDeviceChipCount Integer32,
		ciscoFlashDeviceName DisplayString,
		ciscoFlashDeviceDescr DisplayString,
		ciscoFlashDeviceController DisplayString,
		ciscoFlashDeviceCard InstancePointer,
		ciscoFlashDeviceProgrammingJumper INTEGER,
		ciscoFlashDeviceInitTime TimeStamp,
		ciscoFlashDeviceRemovable TruthValue,
		ciscoFlashPhyEntIndex PhysicalIndex,
		ciscoFlashDeviceNameExtended DisplayString
		}

ciscoFlashDeviceIndex OBJECT-TYPE
	SYNTAX INTEGER (1..4294967295)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Flash device sequence number to index within the
table of initialized flash devices.
The lowest value should be 1. The highest should be 
less than or equal to the value of the 
ciscoFlashDevicesSupported object. 
"
	::= { ciscoFlashDeviceEntry 1 }


ciscoFlashDeviceSize OBJECT-TYPE
	SYNTAX INTEGER (1..4294967295)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Total size of the Flash device.
For a removable device, the size will be zero if
the device has been removed.
"
	::= { ciscoFlashDeviceEntry 2 }


ciscoFlashDeviceMinPartitionSize OBJECT-TYPE
	SYNTAX INTEGER (1..4294967295)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object will give the minimum partition size 
supported for this device. For systems that execute code
directly out of Flash, the minimum partition size needs
to be the bank size. (Bank size is equal to the size of a 
chip multiplied by the width of the device. In most cases, 
the device width is 4 bytes, and so the bank size would be 
four times the size of a chip). This has to be so because
all programming commands affect the operation of an
entire chip (in our case, an entire bank because all
operations are done on the entire width of the device)
even though the actual command may be localized to a small
portion of each chip. So when executing code out of Flash,
one needs to be able to write and erase some portion of 
Flash without affecting the code execution.
For systems that execute code out of DRAM or ROM, it is
possible to partition Flash with a finer granularity (for 
eg., at erase sector boundaries) if the system code supports
such granularity. 

This object will let a management entity know the
minimum partition size as defined by the system.
If the system does not support partitioning, the value
will be equal to the device size in ciscoFlashDeviceSize.
The maximum number of partitions that could be configured
will be equal to the minimum of 
ciscoFlashDeviceMaxPartitions
and
(ciscoFlashDeviceSize / ciscoFlashDeviceMinPartitionSize).
"
	::= { ciscoFlashDeviceEntry 3 }


ciscoFlashDeviceMaxPartitions OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Max number of partitions supported by the system for 
this Flash device. Default will be 1, which actually 
means that partitioning is not supported. Note that
this value will be defined by system limitations, not
by the flash device itself (for eg., the system may 
impose a limit of 2 partitions even though the device
may be large enough to be partitioned into 4 based on
the smallest partition unit supported).
On systems that execute code out of Flash, partitioning
is a way of creating multiple file systems in the Flash 
device so that writing into or erasing of one file system 
can be done while executing code residing in another file 
system.
For systems executing code out of DRAM, partitioning
gives a way of sub-dividing a large Flash device for
easier management of files. 
"
	::= { ciscoFlashDeviceEntry 4 }


ciscoFlashDevicePartitions OBJECT-TYPE
	SYNTAX INTEGER (1..4294967295)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Flash device partitions actually present. Number of 
partitions cannot exceed the minimum of
ciscoFlashDeviceMaxPartitions
and
(ciscoFlashDeviceSize / ciscoFlashDeviceMinPartitionSize).
Will be equal to at least 1, the case where the partition
spans the entire device (actually no partitioning).
A partition will contain one or more minimum partition
units (where a minimum partition unit is defined by
ciscoFlashDeviceMinPartitionSize). 
"
	::= { ciscoFlashDeviceEntry 5 }


ciscoFlashDeviceChipCount OBJECT-TYPE
	SYNTAX INTEGER (1..64)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Total number of chips within the Flash device.
The purpose of this object is to provide information
upfront to a management station on how much chip info
to expect and possibly help double check the chip index
against an upper limit when randomly retrieving chip
info for a partition.
"
	::= { ciscoFlashDeviceEntry 6 }


ciscoFlashDeviceName OBJECT-TYPE
	SYNTAX DisplayString (SIZE(0..16))
	ACCESS read-only
	STATUS optional
	DESCRIPTION "Flash device name. This name is used to refer to the
device within the system. Flash operations get directed 
to a device based on this name.
The system has a concept of a default device.
This would be the primary or most used device in case of 
multiple devices. The system directs an operation to the 
default device whenever a device name is not specified.
The device name is therefore mandatory except when the 
operation is being done on the default device, or,
the system supports only a single Flash device.
The device name will always be available for a 
removable device, even when the device has been removed.
"
	::= { ciscoFlashDeviceEntry 7 }


ciscoFlashDeviceDescr OBJECT-TYPE
	SYNTAX DisplayString (SIZE(0..64))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Description of a Flash device. The description is meant 
to explain what the Flash device and its purpose is.
Current values are:
System flash - for the primary Flash used to store full
system images.
Boot flash   - for the secondary Flash used to store 
bootstrap images.
The ciscoFlashDeviceDescr, ciscoFlashDeviceController 
(if applicable), and ciscoFlashPhyEntIndex objects are 
expected to collectively give all information about a 
Flash device.
The device description will always be available for a 
removable device, even when the device has been removed.
"
	::= { ciscoFlashDeviceEntry 8 }


ciscoFlashDeviceController OBJECT-TYPE
	SYNTAX DisplayString (SIZE(0..64))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Flash device controller. The h/w card that actually
controls Flash read/write/erase. Relevant for the AGS+
systems where Flash may be controlled by the MC+, STR or 
the ENVM cards, cards that may not actually contain the
Flash chips.
For systems that have removable PCMCIA flash cards that
are controlled by a PCMCIA controller chip, this object 
may contain a description of that controller chip.
Where irrelevant (Flash is a direct memory mapped device
accessed directly by the main processor), this object will
have an empty (NULL) string.
"
	::= { ciscoFlashDeviceEntry 9 }


ciscoFlashDeviceCard OBJECT-TYPE
	SYNTAX InstancePointer
	ACCESS read-only
	STATUS optional
	DESCRIPTION "This object will point to an instance of a card entry
in the cardTable. The card entry will give details about
the card on which the Flash device is actually located.
For most systems, this is usually the main processor board.
On the AGS+ systems, Flash is located on a separate multibus
card such as the MC.
This object will therefore be used to essentially index 
into cardTable to retrieve details about the card such as 
cardDescr, cardSlotNumber, etc.
"
	::= { ciscoFlashDeviceEntry 10 }


ciscoFlashDeviceProgrammingJumper OBJECT-TYPE
	SYNTAX INTEGER {
	installed(1),
	notInstalled(2),
	unknown(3)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object gives the state of a jumper (if present and can be
determined) that controls the programming voltage called Vpp
to the Flash device. Vpp is required for programming (erasing
and writing) Flash. For certain older technology chips it is
also required for identifying the chips (which in turn is
required to identify which programming algorithms to use;
different chips require different algorithms and commands).
The purpose of the jumper, on systems where it is available, 
is to write protect a Flash device.
On most of the newer remote access routers, this jumper is 
unavailable since users are not expected to visit remote sites
just to install and remove the jumpers when upgrading software
in the Flash device. The unknown(3) value will be returned for 
such systems and can be interpreted to mean that a programming
jumper is not present or not required on those systems.
On systems where the programming jumper state can be read back
via a hardware register, the installed(1) or notInstalled(2) 
value will be returned.
This object is expected to be used in conjunction with the
ciscoFlashPartitionStatus object whenever that object has
the readOnly(1) value. In such a case, this object will 
indicate whether the programming jumper is a possible reason 
for the readOnly state.
"
	::= { ciscoFlashDeviceEntry 11 }


ciscoFlashDeviceInitTime OBJECT-TYPE
	SYNTAX TimeStamp
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "System time at which device was initialized.
For fixed devices, this will be the system time at 
boot up.
For removable devices, it will be the time at which 
the device was inserted, which may be boot up time, 
or a later time (if device was inserted later).
If a device (fixed or removable) was repartitioned,
it will be the time of repartitioning.
The purpose of this object is to help a management
station determine if a removable device has been
changed. The application should retrieve this
object prior to any operation and compare with
the previously retrieved value.
Note that this time will not be real time but a
running time maintained by the system. This running
time starts from zero when the system boots up.
For a removable device that has been removed, this
value will be zero.
"
	::= { ciscoFlashDeviceEntry 12 }


ciscoFlashDeviceRemovable OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Whether Flash device is removable. Generally, only PCMCIA
Flash cards will be treated as removable. Socketed Flash
chips and Flash SIMM modules will not be treated as removable.
Simply put, only those Flash devices that can be inserted 
or removed without opening the hardware casing will be 
considered removable. 
Further, removable Flash devices are expected to have
the necessary hardware support - 
1. on-line removal and insertion
2. interrupt generation on removal or insertion.
"
	::= { ciscoFlashDeviceEntry 13 }


ciscoFlashPhyEntIndex OBJECT-TYPE
	SYNTAX PhysicalIndex
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object indicates the physical entity index of a 
physical entity in entPhysicalTable which the flash 
device actually located.
"
	::= { ciscoFlashDeviceEntry 14 }


ciscoFlashDeviceNameExtended OBJECT-TYPE
	SYNTAX DisplayString (SIZE(0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Extended Flash device name whose size can be upto
255 characters. This name is used to refer to the
device within the system. Flash operations get directed 
to a device based on this name.
The system has a concept of a default device.
This would be the primary or most used device in case 
of multiple devices. The system directs an operation
to the default device whenever a device name is not 
specified. The device name is therefore mandatory 
except when the operation is being done on the 
default device, or, the system supports only a single
Flash device. The device name will always be available
for a removable device, even when the device has been
removed.
"
	::= { ciscoFlashDeviceEntry 15 }


ciscoFlashChips OBJECT IDENTIFIER ::= { ciscoFlashDevice 3 }

ciscoFlashChipTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CiscoFlashChipEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Table of Flash device chip properties for each
initialized Flash device.
This table is meant primarily for aiding error
diagnosis.
"
	::= { ciscoFlashChips 1 }


ciscoFlashChipEntry OBJECT-TYPE
	SYNTAX CiscoFlashChipEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An entry in the table of chip info for each 
flash device initialized in the system.
An entry is indexed by two objects - the
device index and the chip index within that
device.
"
	INDEX { ciscoFlashDeviceIndex , ciscoFlashChipIndex }

	::= { ciscoFlashChipTable 1 }

ciscoFlashChipEntry ::=
	SEQUENCE {
		ciscoFlashChipIndex Integer32,
		ciscoFlashChipCode DisplayString,
		ciscoFlashChipDescr DisplayString,
		ciscoFlashChipWriteRetries Counter32,
		ciscoFlashChipEraseRetries Counter32,
		ciscoFlashChipMaxWriteRetries Unsigned32,
		ciscoFlashChipMaxEraseRetries Unsigned32
		}

ciscoFlashChipIndex OBJECT-TYPE
	SYNTAX INTEGER (1..64)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Chip sequence number within selected flash device.
Used to index within chip info table.
Value starts from 1 and should not be greater than
ciscoFlashDeviceChipCount for that device.
When retrieving chip information for chips within a
partition, the sequence number should lie between 
ciscoFlashPartitionStartChip & ciscoFlashPartitionEndChip
(both inclusive).
"
	::= { ciscoFlashChipEntry 1 }


ciscoFlashChipCode OBJECT-TYPE
	SYNTAX DisplayString (SIZE(0..5))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Manufacturer and device code for a chip.
Lower byte will contain the device code.
Upper byte will contain the manufacturer code.
If a chip code is unknown because it could not
be queried out of the chip, the value of this
object will be 00:00.
Since programming algorithms differ from chip type to
chip type, this chip code should be used to determine 
which algorithms to use (and thereby whether the chip 
is supported in the first place).
"
	::= { ciscoFlashChipEntry 2 }


ciscoFlashChipDescr OBJECT-TYPE
	SYNTAX DisplayString (SIZE(0..32))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Flash chip name corresponding to the chip code.
The name will contain the manufacturer and the
chip type. It will be of the form :
Intel 27F008SA.
In the case where a chip code is unknown, this
object will be an empty (NULL) string.
In the case where the chip code is known but the
chip is not supported by the system, this object
will be an empty (NULL) string. 
A management station is therefore expected to use the
chip code and the chip description in conjunction 
to provide additional information whenever the
ciscoFlashPartitionStatus object has the readOnly(1)
value.
"
	::= { ciscoFlashChipEntry 3 }


ciscoFlashChipWriteRetries OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object will provide a cumulative count
(since last system boot up or initialization) of 
the number of write retries that were done in the chip.
If no writes have been done to Flash, the count
will be zero. Typically, a maximum of 25 retries are 
done on a single location before flagging a write
error.
A management station is expected to get this object
for each chip in a partition after a write failure
in that partition. To keep a track of retries for
a given write operation, the management station would 
have to retrieve the values for the concerned chips 
before and after any write operation.
"
	::= { ciscoFlashChipEntry 4 }


ciscoFlashChipEraseRetries OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object will provide a cumulative count
(since last system boot up or initialization) of 
the number of erase retries that were done in the chip.
Typically, a maximum of 2000 retries are done in a 
single erase zone (which may be a full chip or a 
portion, depending on the chip technology) before 
flagging an erase error.
A management station is expected to get this object
for each chip in a partition after an erase failure
in that partition. To keep a track of retries for
a given erase operation, the management station would 
have to retrieve the values for the concerned chips 
before and after any erase operation.
Note that erase may be done through an independent
command, or through a copy-to-flash command.
"
	::= { ciscoFlashChipEntry 5 }


ciscoFlashChipMaxWriteRetries OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The maximum number of write retries done at any
single location before declaring a write failure. 
"
	::= { ciscoFlashChipEntry 6 }


ciscoFlashChipMaxEraseRetries OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The maximum number of erase retries done within
an erase sector before declaring an erase failure. 
"
	::= { ciscoFlashChipEntry 7 }


ciscoFlashPartitions OBJECT IDENTIFIER ::= { ciscoFlashDevice 4 }

ciscoFlashPartitionTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CiscoFlashPartitionEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Table of flash device partition properties for each 
initialized flash partition. Whenever there is no 
explicit partitioning done, a single partition spanning
the entire device will be assumed to exist. There will 
therefore always be atleast one partition on a device.
"
	::= { ciscoFlashPartitions 1 }


ciscoFlashPartitionEntry OBJECT-TYPE
	SYNTAX CiscoFlashPartitionEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An entry in the table of flash partition properties 
for each initialized flash partition. Each entry
will be indexed by a device number and a partition
number within the device.
"
	INDEX { ciscoFlashDeviceIndex , ciscoFlashPartitionIndex }

	::= { ciscoFlashPartitionTable 1 }

ciscoFlashPartitionEntry ::=
	SEQUENCE {
		ciscoFlashPartitionIndex Unsigned32,
		ciscoFlashPartitionStartChip Integer32,
		ciscoFlashPartitionEndChip Integer32,
		ciscoFlashPartitionSize Unsigned32,
		ciscoFlashPartitionFreeSpace Gauge32,
		ciscoFlashPartitionFileCount Gauge32,
		ciscoFlashPartitionChecksumAlgorithm INTEGER,
		ciscoFlashPartitionStatus INTEGER,
		ciscoFlashPartitionUpgradeMethod INTEGER,
		ciscoFlashPartitionName DisplayString,
		ciscoFlashPartitionNeedErasure TruthValue,
		ciscoFlashPartitionFileNameLength Integer32
		}

ciscoFlashPartitionIndex OBJECT-TYPE
	SYNTAX INTEGER (1..4294967295)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Flash partition sequence number used to index within
table of initialized flash partitions. 
"
	::= { ciscoFlashPartitionEntry 1 }


ciscoFlashPartitionStartChip OBJECT-TYPE
	SYNTAX INTEGER (1..64)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Chip sequence number of first chip in partition.
Used as an index into the chip table.
"
	::= { ciscoFlashPartitionEntry 2 }


ciscoFlashPartitionEndChip OBJECT-TYPE
	SYNTAX INTEGER (1..64)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Chip sequence number of last chip in partition.
Used as an index into the chip table.
"
	::= { ciscoFlashPartitionEntry 3 }


ciscoFlashPartitionSize OBJECT-TYPE
	SYNTAX INTEGER (1..4294967295)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Flash partition size. It should be an integral
multiple of ciscoFlashDeviceMinPartitionSize.
If there is a single partition, this size will be equal
to ciscoFlashDeviceSize. 
"
	::= { ciscoFlashPartitionEntry 4 }


ciscoFlashPartitionFreeSpace OBJECT-TYPE
	SYNTAX Gauge
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Free space within a Flash partition.
Note that the actual size of a file in Flash includes 
a small overhead that represents the file system's 
file header. 
Certain file systems may also have a partition or
device header overhead to be considered when 
computing the free space.
Free space will be computed as total partition size 
less size of all existing files (valid/invalid/deleted 
files and including file header of each file),
less size of any partition header, less size of
header of next file to be copied in. In short, this
object will give the size of the largest file that
can be copied in. The management entity will not be
expected to know or use any overheads such as file
and partition header lengths, since such overheads 
may vary from file system to file system.
Deleted files in Flash do not free up space.
A partition may have to be erased in order to reclaim 
the space occupied by files.
"
	::= { ciscoFlashPartitionEntry 5 }


ciscoFlashPartitionFileCount OBJECT-TYPE
	SYNTAX Gauge
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Count of all files in a flash partition. Both 
good and bad (deleted or invalid checksum) files 
will be included in this count. 
"
	::= { ciscoFlashPartitionEntry 6 }


ciscoFlashPartitionChecksumAlgorithm OBJECT-TYPE
	SYNTAX INTEGER {
	simpleChecksum(1),
	undefined(2),
	simpleCRC(3)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Checksum algorithm identifier for checksum method 
used by the file system. Normally, this would be
fixed for a particular file system. When a file
system writes a file to Flash, it checksums the 
data written. The checksum then serves as a way
to validate the data read back whenever the file 
is opened for reading.
Since there is no way, when using TFTP, to guarantee
that a network download has been error free (since
UDP checksums may not have been enabled), this
object together with the ciscoFlashFileChecksum
object provides a method for any management station
to regenerate the checksum of the original file
on the server and compare checksums to ensure that 
the file download to Flash was error free.
simpleChecksum represents a simple 1s complement
addition of short word values. Other algorithm
values will be added as necessary.
"
	::= { ciscoFlashPartitionEntry 7 }


ciscoFlashPartitionStatus OBJECT-TYPE
	SYNTAX INTEGER {
	readOnly(1),
	runFromFlash(2),
	readWrite(3)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Flash partition status can be :

* readOnly if device is not programmable either because
chips could not be recognized or an erroneous mismatch
of chips was detected. Chip recognition may fail either
because the chips are not supported by the system,
or because the Vpp voltage required to identify chips
has been disabled via the programming jumper.
The ciscoFlashDeviceProgrammingJumper, ciscoFlashChipCode, 
and ciscoFlashChipDescr objects can be examined to get
more details on the cause of this status
* runFromFlash (RFF) if current image is running from 
this partition.
The ciscoFlashPartitionUpgradeMethod object will then
indicate whether the Flash Load Helper can be used
to write a file to this partition or not.

* readWrite if partition is programmable.
"
	::= { ciscoFlashPartitionEntry 8 }


ciscoFlashPartitionUpgradeMethod OBJECT-TYPE
	SYNTAX INTEGER {
	unknown(1),
	rxbootFLH(2),
	direct(3)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Flash partition upgrade method, ie., method by which
new files can be downloaded into the partition.
FLH stands for Flash Load Helper, a feature provided
on run-from-Flash systems for upgrading Flash. This
feature uses the bootstrap code in ROMs to help in 
automatic download.
This object should be retrieved if the partition 
status is runFromFlash(2).
If the partition status is readOnly(1), the upgrade 
method would depend on the reason for the readOnly 
status. For eg., it may simply be a matter of installing 
the programming jumper, or it may require execution of a 
later version of software that supports the Flash chips.

unknown      -  the current system image does not know
how Flash can be programmed. A possible
method would be to reload the ROM image
and perform the upgrade manually.
rxbootFLH    -  the Flash Load Helper is available to
download files to Flash. A copy-to-flash
command can be used and this system image
will automatically reload the Rxboot image
in ROM and direct it to carry out the 
download request.
direct       -  will be done directly by this image.
"
	::= { ciscoFlashPartitionEntry 9 }


ciscoFlashPartitionName OBJECT-TYPE
	SYNTAX DisplayString (SIZE(0..16))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Flash partition name used to refer to a partition
by the system. This can be any alpha-numeric character 
string of the form AAAAAAAAnn, where A represents an 
optional alpha character and n a numeric character. 
Any numeric characters must always form the trailing 
part of the string. The system will strip off the alpha 
characters and use the numeric portion to map to a 
partition index.
Flash operations get directed to a device partition
based on this name. 
The system has a concept of a default partition. This 
would be the first partition in the device. The system 
directs an operation to the default partition whenever 
a partition name is not specified.
The partition name is therefore mandatory except when 
the operation is being done on the default partition, or
the device has just one partition (is not partitioned).
"
	::= { ciscoFlashPartitionEntry 10 }


ciscoFlashPartitionNeedErasure OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object indicates whether a partition requires
erasure before any write operations can be done in it.
A management station should therefore retrieve this
object prior to attempting any write operation.
A partition requires erasure after it becomes full
free space left is less than or equal to the
(filesystem file header size).
A partition also requires erasure if the system does
not find the existence of any file system when it
boots up.
The partition may be erased explicitly through the 
erase(5) command, or by using the copyToFlashWithErase(1)
command.
If a copyToFlashWithoutErase(2) command is issued
when this object has the TRUE value, the command
will fail.
"
	::= { ciscoFlashPartitionEntry 11 }


ciscoFlashPartitionFileNameLength OBJECT-TYPE
	SYNTAX INTEGER (1..256)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Maximum file name length supported by the file
system.
Max file name length will depend on the file
system implemented. Today, all file systems
support a max length of at least 48 bytes.
A management entity must use this object when
prompting a user for, or deriving the Flash file 
name length.
"
	::= { ciscoFlashPartitionEntry 12 }


ciscoFlashFiles OBJECT IDENTIFIER ::= { ciscoFlashPartitions 2 }

ciscoFlashFileTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CiscoFlashFileEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Table of information for files in a Flash partition.
"
	::= { ciscoFlashFiles 1 }


ciscoFlashFileEntry OBJECT-TYPE
	SYNTAX CiscoFlashFileEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An entry in the table of Flash file properties 
for each initialized Flash partition. Each entry
represents a file and gives details about the file.
An entry is indexed using the device number,
partition number within the device, and file 
number within the partition.
"
	INDEX { ciscoFlashDeviceIndex , ciscoFlashPartitionIndex, ciscoFlashFileIndex }

	::= { ciscoFlashFileTable 1 }

ciscoFlashFileEntry ::=
	SEQUENCE {
		ciscoFlashFileIndex Unsigned32,
		ciscoFlashFileSize Unsigned32,
		ciscoFlashFileChecksum ChecksumString,
		ciscoFlashFileStatus INTEGER,
		ciscoFlashFileName DisplayString,
		ciscoFlashFileType FlashFileType,
		ciscoFlashFileDate DateAndTime
		}

ciscoFlashFileIndex OBJECT-TYPE
	SYNTAX INTEGER (1..4294967295)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Flash file sequence number used to index within
a Flash partition directory table. 
"
	::= { ciscoFlashFileEntry 1 }


ciscoFlashFileSize OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Size of the file in bytes. Note that this size does 
not include the size of the filesystem file header.
File size will always be non-zero. 
"
	::= { ciscoFlashFileEntry 2 }


ciscoFlashFileChecksum OBJECT-TYPE
	SYNTAX OCTET STRING
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "File checksum stored in the file header. This 
checksum is computed and stored when the file is 
written into Flash. It serves to validate the data 
written into Flash.
Whereas the system will generate and store the checksum
internally in hexadecimal form, this object will
provide the checksum in a string form.
The checksum will be available for all valid and
invalid-checksum files. 
"
	::= { ciscoFlashFileEntry 3 }


ciscoFlashFileStatus OBJECT-TYPE
	SYNTAX INTEGER {
	deleted(1),
	invalidChecksum(2),
	valid(3)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Status of a file. 
A file could be explicitly deleted if the file system 
supports such a user command facility. Alternately, 
an existing good file would be automatically deleted 
if another good file with the same name were copied in.
Note that deleted files continue to occupy prime 
Flash real estate.

A file is marked as having an invalid checksum if any 
checksum mismatch was detected while writing or reading 
the file. Incomplete files (files truncated either
because of lack of free space, or a network download
failure) are also written with a bad checksum and
marked as invalid.
"
	::= { ciscoFlashFileEntry 4 }


ciscoFlashFileName OBJECT-TYPE
	SYNTAX DisplayString (SIZE(1..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Flash file name as specified by the user copying in 
the file. The name should not include the colon (:)
character as it is a special separator character used
to delineate the device name, partition name, and the
file name.
"
	::= { ciscoFlashFileEntry 5 }


ciscoFlashFileType OBJECT-TYPE
	SYNTAX INTEGER {
	unknown(1),
	config(2),
	image(3),
	directory(4),
	crashinfo(5)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Type of the file."
	::= { ciscoFlashFileEntry 6 }


ciscoFlashFileDate OBJECT-TYPE
	SYNTAX DateAndTime
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The time at which this file was created."
	::= { ciscoFlashFileEntry 7 }


ciscoFlashCopyTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CiscoFlashCopyEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A table of Flash copy operation entries. Each
entry represents a Flash copy operation (to or 
from Flash) that has been initiated.
"
	::= { ciscoFlashOps 1 }


ciscoFlashCopyEntry OBJECT-TYPE
	SYNTAX CiscoFlashCopyEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A Flash copy operation entry. Each entry consists 
of a command, a source, and optional parameters such
as protocol to be used, a destination, a server address,
etc. 

A management station wishing to create an entry should
first generate a pseudo-random serial number to be used
as the index to this sparse table.  The station should
then create the associated instance of the row status
object. It must also, either in the same or in successive 
PDUs, create the associated instance of the command and
parameter objects. It should also modify the default values 
for any of the parameter objects if the defaults are not 
appropriate.

Once the appropriate instances of all the command
objects have been created, either by an explicit SNMP
set request or by default, the row status should be set
to active to initiate the operation. Note that this entire
procedure may be initiated via a single set request which
specifies a row status  of createAndGo as well as specifies
valid values for the non-defaulted parameter objects.

Once an operation has been activated, it cannot be
stopped. 

Once the operation completes, the management station should
retrieve the value of the status object (and time if
desired), and delete the entry.  In order to prevent old
entries from clogging the table, entries will be aged out,
but an entry will never be deleted within 5 minutes of
completing.
"
	INDEX { ciscoFlashCopySerialNumber  }

	::= { ciscoFlashCopyTable 1 }

ciscoFlashCopyEntry ::=
	SEQUENCE {
		ciscoFlashCopySerialNumber Integer32,
		ciscoFlashCopyCommand INTEGER,
		ciscoFlashCopyProtocol INTEGER,
		ciscoFlashCopyServerAddress IpAddress,
		ciscoFlashCopySourceName DisplayString,
		ciscoFlashCopyDestinationName DisplayString,
		ciscoFlashCopyRemoteUserName DisplayString,
		ciscoFlashCopyStatus INTEGER,
		ciscoFlashCopyNotifyOnCompletion TruthValue,
		ciscoFlashCopyTime TimeTicks,
		ciscoFlashCopyEntryStatus RowStatus,
		ciscoFlashCopyVerify TruthValue,
		ciscoFlashCopyServerAddrType InetAddressType,
		ciscoFlashCopyServerAddrRev1 InetAddress,
		ciscoFlashCopyRemotePassword DisplayString
		}

ciscoFlashCopySerialNumber OBJECT-TYPE
	SYNTAX INTEGER (0..2147483647)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Object which specifies a unique entry in the 
table. A management station wishing to initiate a 
copy operation should use a pseudo-random value for
this object when creating or modifying an instance of
a ciscoFlashCopyEntry.
"
	::= { ciscoFlashCopyEntry 1 }


ciscoFlashCopyCommand OBJECT-TYPE
	SYNTAX INTEGER {
	copyToFlashWithErase(1),
	copyToFlashWithoutErase(2),
	copyFromFlash(3),
	copyFromFlhLog(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The copy command to be executed. Mandatory.
Note that it is possible for a system to support
multiple file systems (different file systems on
different Flash devices, or different file systems
on different partitions within a device). Each such
file system may support only a subset of these commands.
If a command is unsupported, the invalidOperation(3)
error will be reported in the operation status.

Command                 Remarks
copyToFlashWithErase    Copy a file to flash; erase
flash before copy.
Use the TFTP or rcp protocol.
copyToFlashWithoutErase Copy a file to flash; do not
erase.
Note that this command will fail
if the PartitionNeedErasure
object specifies that the
partition being copied to needs
erasure.
Use the TFTP or rcp protocol.
copyFromFlash           Copy a file from flash using
the TFTP, rcp or lex protocol.
Note that the lex protocol
can only be used to copy to a
lex device.
copyFromFlhLog          Copy contents of FLH log to 
server using TFTP protocol.


Command table           Parameters
copyToFlashWithErase    CopyProtocol
CopyServerAddress
CopySourceName
CopyDestinationName (opt)
CopyRemoteUserName (opt)
CopyNotifyOnCompletion (opt)
copyToFlashWithoutErase CopyProtocol
CopyServerAddress
CopySourceName
CopyDestinationName (opt)
CopyRemoteUserName (opt)
CopyNotifyOnCompletion (opt)
copyFromFlash           CopyProtocol
CopyServerAddress
CopySourceName
CopyDestinationName (opt)
CopyRemoteUserName (opt)
CopyNotifyOnCompletion (opt)
copyFromFlhLog          CopyProtocol
CopyServerAddress
CopyDestinationName 
CopyNotifyOnCompletion (opt)
"
	::= { ciscoFlashCopyEntry 2 }


ciscoFlashCopyProtocol OBJECT-TYPE
	SYNTAX INTEGER {
	tftp(1),
	rcp(2),
	lex(3),
	ftp(4),
	scp(5),
	sftp(6)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The protocol to be used for any copy. Optional.
Will default to tftp if not specified.

Since feature support depends on a software release,
version number within the release, platform, and 
maybe the image type (subset type), a management
station would be expected to somehow determine
the protocol support for a command.
"
	::= { ciscoFlashCopyEntry 3 }


ciscoFlashCopyServerAddress OBJECT-TYPE
	SYNTAX IpAddress
	ACCESS read-only
	STATUS optional
	DESCRIPTION "The server address to be used for any copy. Optional.
Will default to 'FFFFFFFF'H  (or 255.255.255.255).

Since this object can just hold only IPv4 Transport
type, it is deprecated and replaced by
ciscoFlashCopyServerAddrRev1.
"
	::= { ciscoFlashCopyEntry 4 }


ciscoFlashCopySourceName OBJECT-TYPE
	SYNTAX DisplayString (SIZE(1..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Source file name, either in Flash or on a server,
depending on the type of copy command. Mandatory.

For a copy from Flash:
File name must be of the form 
[device>:][<partition>:]<file>
where <device> is a value obtained from FlashDeviceName,
<partition> is obtained from FlashPartitionName
and <file> is the name of a file in Flash.
A management station could derive its own partition name
as per the description for the ciscoFlashPartitionName
object.
If <device> is not specified, the default Flash device
will be assumed.
If <partition> is not specified, the default partition
will be assumed. If a device is not partitioned into 2 
or more partitions, this value may be left out.

For a copy to Flash, the file name will be as per 
the file naming conventions and path to the file on
the server. 
"
	::= { ciscoFlashCopyEntry 5 }


ciscoFlashCopyDestinationName OBJECT-TYPE
	SYNTAX DisplayString (SIZE(0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Destination file name. 

For a copy to Flash:
File name must be of the form 
{device>:][<partition>:]<file>
where <device> is a value obtained from FlashDeviceName,
<partition> is obtained from FlashPartitionName
and <file> is any character string that does not have
embedded colon characters.
A management station could derive its own partition name
as per the description for the ciscoFlashPartitionName
object.
If <device> is not specified, the default Flash device
will be assumed.
If <partition> is not specified, the default partition
will be assumed. If a device is not partitioned into 2 
or more partitions, this value may be left out.
If <file> is not specified, it will default to <file>
specified in ciscoFlashCopySourceName.

For a copy from Flash via tftp or rcp, the file name will be  
as per the file naming conventions and destination sub-directory 
on the server. If not specified, <file> from the source 
file name will be used. 
For a copy from Flash via lex, this string will consist
of numeric characters specifying the interface on the 
lex box that will receive the source flash image.
"
	::= { ciscoFlashCopyEntry 6 }


ciscoFlashCopyRemoteUserName OBJECT-TYPE
	SYNTAX DisplayString (SIZE(1..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Remote user name for copy via rcp protocol. Optional.
This object will be ignored for protocols other than
rcp. 
If specified, it will override the remote user-name
configured through the 
rcmd remote-username <username>
configuration command. 
The remote user-name is sent as the server user-name 
in an rcp command request sent by the system to a
remote rcp server.
"
	::= { ciscoFlashCopyEntry 7 }


ciscoFlashCopyStatus OBJECT-TYPE
	SYNTAX INTEGER {
	copyOperationPending(0),
	copyInProgress(1),
	copyOperationSuccess(2),
	copyInvalidOperation(3),
	copyInvalidProtocol(4),
	copyInvalidSourceName(5),
	copyInvalidDestName(6),
	copyInvalidServerAddress(7),
	copyDeviceBusy(8),
	copyDeviceOpenError(9),
	copyDeviceError(10),
	copyDeviceNotProgrammable(11),
	copyDeviceFull(12),
	copyFileOpenError(13),
	copyFileTransferError(14),
	copyFileChecksumError(15),
	copyNoMemory(16),
	copyUnknownFailure(17),
	copyInvalidSignature(18)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The status of the specified copy operation.

copyOperationPending :
operation request is received and 
pending for validation and process 

copyInProgress : 
specified operation is active

copyOperationSuccess : 
specified operation is supported and
completed successfully

copyInvalidOperation : 
command invalid or command-protocol-device 
combination unsupported

copyInvalidProtocol :
invalid protocol specified

copyInvalidSourceName :
invalid source file name specified
For the  copy from flash to lex operation, this
error code will be returned when the source file
is not a valid lex image.

copyInvalidDestName :
invalid target name (file or partition or 
device name) specified
For the  copy from flash to lex operation, this
error code will be returned when no lex devices 
are connected to the router or when an invalid
lex interface number has been specified in 
the destination string.

copyInvalidServerAddress :
invalid server address specified

copyDeviceBusy :
specified device is in use and locked by 
another process

copyDeviceOpenError :
invalid device name

copyDeviceError :
device read, write or erase error

copyDeviceNotProgrammable :
device is read-only but a write or erase 
operation was specified

copyDeviceFull :
device is filled to capacity

copyFileOpenError :
invalid file name; file not found in partition

copyFileTransferError :
file transfer was unsuccessfull; network failure

copyFileChecksumError :
file checksum in Flash failed

copyNoMemory :
system running low on memory

copyUnknownFailure :
failure unknown
"
	::= { ciscoFlashCopyEntry 8 }


ciscoFlashCopyNotifyOnCompletion OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies whether or not a notification should be 
generated on the completion of the copy operation.
If specified, ciscoFlashCopyCompletionTrap
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.
"
	::= { ciscoFlashCopyEntry 9 }


ciscoFlashCopyTime OBJECT-TYPE
	SYNTAX TimeTicks
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Time taken for the copy operation. This object will
be like a stopwatch, starting when the operation
starts, stopping when the operation completes.
If a management entity keeps a database of completion
times for various operations, it can then use the 
stopwatch capability to display percentage completion
time.
"
	::= { ciscoFlashCopyEntry 10 }


ciscoFlashCopyEntryStatus OBJECT-TYPE
	SYNTAX RowStatus
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The status of this table entry.
"
	::= { ciscoFlashCopyEntry 11 }


ciscoFlashCopyVerify OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies whether the file that is copied need to
be verified for integrity / authenticity, after
copy succeeds. If it is set to true, and if the
file that is copied doesn't have integrity /authenticity
attachement, or the integrity / authenticity check
fails, then the command will be aborted, and the file
that is copied will be deleted from the destination
file system.
"
	::= { ciscoFlashCopyEntry 12 }


ciscoFlashCopyServerAddrType OBJECT-TYPE
	SYNTAX InetAddressType
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object indicates the transport type of the
address contained in
ciscoFlashCopyServerAddrRev1. Optional.
Will default to '1' (IPv4 address type)."
	::= { ciscoFlashCopyEntry 13 }


ciscoFlashCopyServerAddrRev1 OBJECT-TYPE
	SYNTAX InetAddress
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The server address to be used for any copy. Optional.
Will default to 'FFFFFFFF'H  (or 255.255.255.255).

The Format of this address depends on the value of the
ciscoFlashCopyServerAddrType.

This object deprecates the old
ciscoFlashCopyServerAddress object.
"
	::= { ciscoFlashCopyEntry 14 }


ciscoFlashCopyRemotePassword OBJECT-TYPE
	SYNTAX DisplayString (SIZE(1..40))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Password used by ftp, sftp or scp for copying a file
to/from an ftp/sftp/scp server. This object must be
created when the ciscoFlashCopyProtocol is ftp, sftp or
scp. Reading it returns a zero-length string for
security reasons.
"
	::= { ciscoFlashCopyEntry 15 }


ciscoFlashPartitioningTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CiscoFlashPartitioningEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A table of Flash partitioning operation entries. Each
entry represents a Flash partitioning operation that
has been initiated.
"
	::= { ciscoFlashOps 2 }


ciscoFlashPartitioningEntry OBJECT-TYPE
	SYNTAX CiscoFlashPartitioningEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A Flash partitioning operation entry. Each entry 
consists of the command, the target device, the
partition count, and optionally the partition sizes.

A management station wishing to create an entry should
first generate a pseudo-random serial number to be used
as the index to this sparse table.  The station should
then create the associated instance of the row status
object. It must also, either in the same or in successive 
PDUs, create the associated instance of the command and
parameter objects. It should also modify the default values 
for any of the parameter objects if the defaults are not 
appropriate.

Once the appropriate instances of all the command
objects have been created, either by an explicit SNMP
set request or by default, the row status should be set
to active to initiate the operation. Note that this entire
procedure may be initiated via a single set request which
specifies a row status of createAndGo as well as specifies
valid values for the non-defaulted parameter objects.

Once an operation has been activated, it cannot be
stopped. 

Once the operation completes, the management station should
retrieve the value of the status object (and time if
desired), and delete the entry.  In order to prevent old
entries from clogging the table, entries will be aged out,
but an entry will never be deleted within 5 minutes of
completing.
"
	INDEX { ciscoFlashPartitioningSerialNumber  }

	::= { ciscoFlashPartitioningTable 1 }

ciscoFlashPartitioningEntry ::=
	SEQUENCE {
		ciscoFlashPartitioningSerialNumber Integer32,
		ciscoFlashPartitioningCommand INTEGER,
		ciscoFlashPartitioningDestinationName DisplayString,
		ciscoFlashPartitioningPartitionCount Unsigned32,
		ciscoFlashPartitioningPartitionSizes DisplayString,
		ciscoFlashPartitioningStatus INTEGER,
		ciscoFlashPartitioningNotifyOnCompletion TruthValue,
		ciscoFlashPartitioningTime TimeTicks,
		ciscoFlashPartitioningEntryStatus RowStatus
		}

ciscoFlashPartitioningSerialNumber OBJECT-TYPE
	SYNTAX INTEGER (0..2147483647)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Object which specifies a unique entry in the partitioning
operations table. A management station wishing to initiate 
a partitioning operation should use a pseudo-random value 
for this object when creating or modifying an instance of
a ciscoFlashPartitioningEntry.
"
	::= { ciscoFlashPartitioningEntry 1 }


ciscoFlashPartitioningCommand OBJECT-TYPE
	SYNTAX INTEGER {
	partition(1)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The partitioning command to be executed. Mandatory.
If the command is unsupported, the 
partitioningInvalidOperation
error will be reported in the operation status.

Command                 Remarks
partition               Partition a Flash device.
All the prerequisites for
partitioning must be met for 
this command to succeed.

Command table           Parameters
1) partition            PartitioningDestinationName
PartitioningPartitionCount
PartitioningPartitionSizes (opt)
PartitioningNotifyOnCompletion (opt)
"
	::= { ciscoFlashPartitioningEntry 2 }


ciscoFlashPartitioningDestinationName OBJECT-TYPE
	SYNTAX DisplayString (SIZE(0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Destination device name. This name will be the value
obtained from FlashDeviceName.
If the name is not specified, the default Flash device
will be assumed.
"
	::= { ciscoFlashPartitioningEntry 3 }


ciscoFlashPartitioningPartitionCount OBJECT-TYPE
	SYNTAX INTEGER (1..4294967295)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object is used to specify the number of
partitions to be created. Its value cannot exceed
the value of ciscoFlashDeviceMaxPartitions.

To undo partitioning (revert to a single partition),
this object must have the value 1. 
"
	::= { ciscoFlashPartitioningEntry 4 }


ciscoFlashPartitioningPartitionSizes OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This object is used to explicitly specify the size 
of each partition to be created.
The size of each partition will be in units of 
ciscoFlashDeviceMinPartitionSize.
The value of this object will be in the form:
<part1>:<part2>...:<partn>

If partition sizes are not specified, the system
will calculate default sizes based on the partition
count, the minimum partition size, and the device
size. Partition size need not be specified when
undoing partitioning (partition count is 1).
If partition sizes are specified, the number of
sizes specified must exactly match the partition
count. If not, the partitioning command will be
rejected with the invalidPartitionSizes error .
"
	::= { ciscoFlashPartitioningEntry 5 }


ciscoFlashPartitioningStatus OBJECT-TYPE
	SYNTAX INTEGER {
	partitioningInProgress(1),
	partitioningOperationSuccess(2),
	partitioningInvalidOperation(3),
	partitioningInvalidDestName(4),
	partitioningInvalidPartitionCount(5),
	partitioningInvalidPartitionSizes(6),
	partitioningDeviceBusy(7),
	partitioningDeviceOpenError(8),
	partitioningDeviceError(9),
	partitioningNoMemory(10),
	partitioningUnknownFailure(11)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The status of the specified partitioning operation.
partitioningInProgress :
specified operation is active

partitioningOperationSuccess :
specified operation is supported and completed 
successfully

partitioningInvalidOperation :
command invalid or command-protocol-device 
combination unsupported

partitioningInvalidDestName :
invalid target name (file or partition or 
device name) specified

partitioningInvalidPartitionCount :
invalid partition count specified for the 
partitioning command

partitioningInvalidPartitionSizes :
invalid partition size, or invalid count of 
partition sizes

partitioningDeviceBusy :
specified device is in use and locked by 
another process

partitioningDeviceOpenError :
invalid device name

partitioningDeviceError :
device read, write or erase error

partitioningNoMemory :
system running low on memory

partitioningUnknownFailure :
failure unknown
"
	::= { ciscoFlashPartitioningEntry 6 }


ciscoFlashPartitioningNotifyOnCompletion OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies whether or not a notification should be 
generated on the completion of the partitioning operation.
If specified, ciscoFlashPartitioningCompletionTrap
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.
"
	::= { ciscoFlashPartitioningEntry 7 }


ciscoFlashPartitioningTime OBJECT-TYPE
	SYNTAX TimeTicks
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Time taken for the operation. This object will
be like a stopwatch, starting when the operation
starts, stopping when the operation completes.
If a management entity keeps a database of completion
times for various operations, it can then use the 
stopwatch capability to display percentage completion
time.
"
	::= { ciscoFlashPartitioningEntry 8 }


ciscoFlashPartitioningEntryStatus OBJECT-TYPE
	SYNTAX RowStatus
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The status of this table entry.
"
	::= { ciscoFlashPartitioningEntry 9 }


ciscoFlashMiscOpTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CiscoFlashMiscOpEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A table of misc Flash operation entries. Each
entry represents a Flash operation that
has been initiated.
"
	::= { ciscoFlashOps 3 }


ciscoFlashMiscOpEntry OBJECT-TYPE
	SYNTAX CiscoFlashMiscOpEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A Flash operation entry. Each entry consists of a 
command, a target, and any optional parameters.

A management station wishing to create an entry should
first generate a pseudo-random serial number to be used
as the index to this sparse table.  The station should
then create the associated instance of the row status
object. It must also, either in the same or in successive 
PDUs, create the associated instance of the command and
parameter objects. It should also modify the default values 
for any of the parameter objects if the defaults are not 
appropriate.

Once the appropriate instances of all the command
objects have been created, either by an explicit SNMP
set request or by default, the row status should be set
to active to initiate the operation. Note that this entire
procedure may be initiated via a single set request which
specifies a row status of createAndGo as well as specifies
valid values for the non-defaulted parameter objects.

Once an operation has been activated, it cannot be
stopped. 

Once the operation completes, the management station should
retrieve the value of the status object (and time if
desired), and delete the entry.  In order to prevent old
entries from clogging the table, entries will be aged out,
but an entry will never be deleted within 5 minutes of
completing.
"
	INDEX { ciscoFlashMiscOpSerialNumber  }

	::= { ciscoFlashMiscOpTable 1 }

ciscoFlashMiscOpEntry ::=
	SEQUENCE {
		ciscoFlashMiscOpSerialNumber Integer32,
		ciscoFlashMiscOpCommand INTEGER,
		ciscoFlashMiscOpDestinationName DisplayString,
		ciscoFlashMiscOpStatus INTEGER,
		ciscoFlashMiscOpNotifyOnCompletion TruthValue,
		ciscoFlashMiscOpTime TimeTicks,
		ciscoFlashMiscOpEntryStatus RowStatus
		}

ciscoFlashMiscOpSerialNumber OBJECT-TYPE
	SYNTAX INTEGER (0..2147483647)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Object which specifies a unique entry in the
table. A management station wishing to initiate a 
flash operation should use a pseudo-random value for
this object when creating or modifying an instance of
a ciscoFlashMiscOpEntry.
"
	::= { ciscoFlashMiscOpEntry 1 }


ciscoFlashMiscOpCommand OBJECT-TYPE
	SYNTAX INTEGER {
	erase(1),
	verify(2),
	delete(3),
	undelete(4),
	squeeze(5),
	format(6)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The command to be executed. Mandatory.
Note that it is possible for a system to support
multiple file systems (different file systems on
different Flash devices, or different file systems
on different partitions within a device). Each such
file system may support only a subset of these commands.
If a command is unsupported, the miscOpInvalidOperation(3)
error will be reported in the operation status.

Command         Remarks
erase           Erase flash.
verify          Verify flash file checksum.
delete          Delete a file.
undelete        Revive a deleted file .
Note that there are limits on
the number of times a file can
be deleted and undeleted. When
this limit is exceeded, the 
system will return the appropriate
error.
squeeze         Recover space occupied by 
deleted files. This command   
preserves the good files, erases
out the file system, then restores
the preserved good files.
format          Format a flash device.

Command table   Parameters
erase           MiscOpDestinationName
MiscOpNotifyOnCompletion (opt)
verify          MiscOpDestinationName
MiscOpNotifyOnCompletion (opt)
delete          MiscOpDestinationName
MiscOpNotifyOnCompletion (opt)
undelete        MiscOpDestinationName
MiscOpNotifyOnCompletion (opt)
squeeze         MiscOpDestinationName
MiscOpNotifyOnCompletion (opt)
format          MiscOpDestinationName
MiscOpNotifyOnCompletion (opt)
"
	::= { ciscoFlashMiscOpEntry 2 }


ciscoFlashMiscOpDestinationName OBJECT-TYPE
	SYNTAX DisplayString (SIZE(0..255))
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Destination file, or partition name. 
File name must be of the form 
[device>:][<partition>:]<file>
where <device> is a value obtained from FlashDeviceName,
<partition> is obtained from FlashPartitionName
and <file> is the name of a file in Flash.
While leading and/or trailing whitespaces are acceptable,
no whitespaces are allowed within the path itself.

A management station could derive its own partition name
as per the description for the ciscoFlashPartitionName
object.
If <device> is not specified, the default Flash device
will be assumed.
If <partition> is not specified, the default partition
will be assumed. If a device is not partitioned into 2 
or more partitions, this value may be left out.

For an operation on a partition, eg., the erase
command, this object would specify the partition name
in the form:
[device>:][<partition>:]
"
	::= { ciscoFlashMiscOpEntry 3 }


ciscoFlashMiscOpStatus OBJECT-TYPE
	SYNTAX INTEGER {
	miscOpInProgress(1),
	miscOpOperationSuccess(2),
	miscOpInvalidOperation(3),
	miscOpInvalidDestName(4),
	miscOpDeviceBusy(5),
	miscOpDeviceOpenError(6),
	miscOpDeviceError(7),
	miscOpDeviceNotProgrammable(8),
	miscOpFileOpenError(9),
	miscOpFileDeleteFailure(10),
	miscOpFileUndeleteFailure(11),
	miscOpFileChecksumError(12),
	miscOpNoMemory(13),
	miscOpUnknownFailure(14),
	miscOpSqueezeFailure(18),
	miscOpNoSuchFile(19),
	miscOpFormatFailure(20)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The status of the specified operation.
miscOpInProgress :
specified operation is active

miscOpOperationSuccess :
specified operation is supported and completed 
successfully

miscOpInvalidOperation :
command invalid or command-protocol-device 
combination unsupported

miscOpInvalidDestName :
invalid target name (file or partition or 
device name) specified

miscOpDeviceBusy :
specified device is in use and locked by another 
process

miscOpDeviceOpenError :
invalid device name

miscOpDeviceError :
device read, write or erase error

miscOpDeviceNotProgrammable :
device is read-only but a write or erase 
operation was specified

miscOpFileOpenError :
invalid file name; file not found in partition

miscOpFileDeleteFailure :
file could not be deleted; delete count exceeded

miscOpFileUndeleteFailure :
file could not be undeleted; undelete count 
exceeded

miscOpFileChecksumError :
file has a bad checksum

miscOpNoMemory :
system running low on memory

miscOpUnknownFailure :
failure unknown

miscOpSqueezeFailure :
the squeeze operation failed

miscOpNoSuchFile :
a valid but nonexistent file name was specified

miscOpFormatFailure :
the format operation failed
"
	::= { ciscoFlashMiscOpEntry 4 }


ciscoFlashMiscOpNotifyOnCompletion OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies whether or not a notification should be 
generated on the completion of an operation.
If specified, ciscoFlashMiscOpCompletionTrap
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.
"
	::= { ciscoFlashMiscOpEntry 5 }


ciscoFlashMiscOpTime OBJECT-TYPE
	SYNTAX TimeTicks
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Time taken for the operation. This object will
be like a stopwatch, starting when the operation
starts, stopping when the operation completes.
If a management entity keeps a database of completion
times for various operations, it can then use the 
stopwatch capability to display percentage completion
time.
"
	::= { ciscoFlashMiscOpEntry 6 }


ciscoFlashMiscOpEntryStatus OBJECT-TYPE
	SYNTAX RowStatus
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The status of this table entry.
"
	::= { ciscoFlashMiscOpEntry 7 }


ciscoFlashCfgDevInsNotifEnable OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies whether or not a notification should be 
generated on the insertion of a Flash device.

If the value of this object is 'true' then the
ciscoFlashDeviceInsertedNotif notification
will be generated. 

If the value of this object is 'false' then the
ciscoFlashDeviceInsertedNotif notification
will not 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.
"
	::= { ciscoFlashCfg 1 }


ciscoFlashCfgDevRemNotifEnable OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies whether or not a notification should be 
generated on the removal of a Flash device.

If the value of this object is 'true' then the
ciscoFlashDeviceRemovedNotif notification
will be generated. 

If the value of this object is 'false' then the
ciscoFlashDeviceRemovedNotif notification
will not 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.
"
	::= { ciscoFlashCfg 2 }


ciscoFlashMIBTraps OBJECT IDENTIFIER ::= { ciscoFlashMIBTrapPrefix 0 }

ciscoFlashMIBConformance OBJECT IDENTIFIER ::= { ciscoFlashMIB 2 }

ciscoFlashMIBCompliances OBJECT IDENTIFIER ::= { ciscoFlashMIBConformance 1 }

ciscoFlashMIBGroups OBJECT IDENTIFIER ::= { ciscoFlashMIBConformance 2 }

ciscoFlashDeviceInfoGroup OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 1 }

ciscoFlashDeviceInfoGroupRev1 OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 12 }

ciscoFlashDeviceInfoGroupRev2 OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 15 }

ciscoFlashDeviceOptionalInfoGroup OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 2 }

ciscoFlashDeviceOptionalInfoGroupRev1 OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 13 }

ciscoFlashChipInfoGroup OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 3 }

ciscoFlashPartitionInfoGroup OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 4 }

ciscoFlashFileInfoGroup OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 5 }

ciscoFlashFileInfoGroupRev1 OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 10 }

ciscoFlashCopyOpGroup OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 6 }

ciscoFlashCopyOpGroupRev1 OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 14 }

ciscoFlashPartitioningOpGroup OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 7 }

ciscoFlashMiscOpGroup OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 8 }

ciscoFlashNotifGroup OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 9 }

ciscoFlashNotifGroupRev1 OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 11 }

ciscoFlashNotifGroupRev2 OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 17 }

ciscoFlashCopyOpGroupRev2 OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 16 }

ciscoFlashCopyOpGroupRev3 OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 18 }

ciscoFlashFileInfoGroupSupp1 OBJECT IDENTIFIER ::= { ciscoFlashMIBGroups 19 }

ciscoFlashCopyCompletionTrap TRAP-TYPE
	ENTERPRISE ciscoFlashMIBTrapPrefix
	VARIABLES { ciscoFlashCopyStatus }
DESCRIPTION "A ciscoFlashCopyCompletionTrap is sent at the 
completion of a flash copy operation if such a trap 
was requested when the operation was initiated.
"
	::= 1


ciscoFlashPartitioningCompletionTrap TRAP-TYPE
	ENTERPRISE ciscoFlashMIBTrapPrefix
	VARIABLES { ciscoFlashPartitioningStatus }
DESCRIPTION "A ciscoFlashPartitioningCompletionTrap is sent at the 
completion of a partitioning operation if such a trap 
was requested when the operation was initiated.
"
	::= 2


ciscoFlashMiscOpCompletionTrap TRAP-TYPE
	ENTERPRISE ciscoFlashMIBTrapPrefix
	VARIABLES { ciscoFlashMiscOpStatus }
DESCRIPTION "A ciscoFlashMiscOpCompletionTrap is sent at the 
completion of a miscellaneous flash operation 
(enumerated in ciscoFlashMiscOpCommand) if such a trap 
was requested when the operation was initiated.
"
	::= 3


ciscoFlashDeviceChangeTrap TRAP-TYPE
	ENTERPRISE ciscoFlashMIBTrapPrefix
	VARIABLES { ciscoFlashDeviceMinPartitionSize, ciscoFlashDeviceName }
DESCRIPTION "A ciscoFlashDeviceChangeTrap is sent whenever a
removable Flash device is inserted or removed.
"
	::= 4


ciscoFlashDeviceInsertedNotif TRAP-TYPE
	ENTERPRISE ciscoFlashMIBTrapPrefix
	VARIABLES { ciscoFlashDeviceMinPartitionSize, ciscoFlashDeviceName }
DESCRIPTION "A ciscoFlashDeviceInsertedNotif notification is sent 
whenever a removable Flash device is inserted."
	::= 5


ciscoFlashDeviceRemovedNotif TRAP-TYPE
	ENTERPRISE ciscoFlashMIBTrapPrefix
	VARIABLES { ciscoFlashDeviceName }
DESCRIPTION "A ciscoFlashDeviceRemovedNotif notification is sent 
whenever a removable Flash device is removed."
	::= 6


ciscoFlashDeviceInsertedNotifRev1 TRAP-TYPE
	ENTERPRISE ciscoFlashMIBTrapPrefix
	VARIABLES { ciscoFlashDeviceMinPartitionSize, ciscoFlashDeviceNameExtended }
DESCRIPTION "A ciscoFlashDeviceInsertedNotif notification is sent 
whenever a removable Flash device is inserted

ciscoFlashDeviceInsertedNotifRev1 depcrecates
ciscoFlashDeviceInsertedNotif since it uses
ciscoFlashDeviceName as a varbind which is
deprecated"
	::= 7


ciscoFlashDeviceRemovedNotifRev1 TRAP-TYPE
	ENTERPRISE ciscoFlashMIBTrapPrefix
	VARIABLES { ciscoFlashDeviceNameExtended }
DESCRIPTION "A ciscoFlashDeviceRemovedNotif notification is sent 
whenever a removable Flash device is removed.

ciscoFlashDeviceRemovedNotifRev1 depcrecates
ciscoFlashDeviceRemovedNotif since it uses
ciscoFlashDeviceName as a varbind which is
deprecated"
	::= 8


END

