525 lines
21 KiB
Plaintext
525 lines
21 KiB
Plaintext
-- *****************************************************************
|
|
-- CISCO-CONFIG-COPY-MIB.my: MIB for copying a Cisco router's config
|
|
--
|
|
-- December 1997, Ramanathan R. Kavasseri
|
|
--
|
|
-- Copyright (c) 1998 by cisco Systems, Inc.
|
|
-- All rights reserved.
|
|
-- *****************************************************************
|
|
--
|
|
|
|
|
|
CISCO-CONFIG-COPY-MIB DEFINITIONS ::= BEGIN
|
|
|
|
IMPORTS
|
|
MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
|
|
IpAddress, Unsigned32
|
|
FROM SNMPv2-SMI
|
|
TEXTUAL-CONVENTION, DisplayString, TimeStamp, RowStatus,
|
|
TruthValue
|
|
FROM SNMPv2-TC
|
|
MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
|
|
FROM SNMPv2-CONF
|
|
ciscoMgmt
|
|
FROM CISCO-SMI;
|
|
|
|
ciscoConfigCopyMIB MODULE-IDENTITY
|
|
LAST-UPDATED "200212170000Z"
|
|
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
|
|
"This MIB facilitates writing of configuration files
|
|
of an SNMP Agent running Cisco's IOS in the following
|
|
ways: to and from the net, copying running
|
|
configurations to startup configurations and
|
|
vice-versa, and copying a configuration
|
|
(running or startup) to and from the local
|
|
IOS file system."
|
|
REVISION "200212170000Z"
|
|
DESCRIPTION
|
|
"Added a new enumeration value someConfigApplyFailed(7)
|
|
to ConfigCopyFailCause TC."
|
|
REVISION "200205300000Z"
|
|
DESCRIPTION
|
|
"Added sftp protocol as an option for
|
|
ConfigCopyProtocol."
|
|
REVISION "200205070000Z"
|
|
DESCRIPTION
|
|
"Added scp protocol as an option for ConfigCopyProtocol.
|
|
Added unsupportedProtocol(6) as an option for the
|
|
ConfigCopyFailCause TC."
|
|
|
|
REVISION "200203280000Z"
|
|
DESCRIPTION
|
|
"Imported Unsigned32 from SNMPv2-SMI instead of
|
|
CISCO-TC"
|
|
::= { ciscoMgmt 96 }
|
|
|
|
-- A config-copy operation is a request to copy a configuration
|
|
-- file of an SNMP Agent running Cisco's IOS in the following ways:
|
|
-- 1. to or from the net (via a protocol like tftp, ftp, rcp,
|
|
-- scp or sftp).
|
|
-- 2. copying running configurations to startup
|
|
-- configurations and vice-versa.
|
|
-- 3. copy a running or startup config to a file
|
|
-- to the local IOS file system and vice versa."
|
|
--
|
|
-- The term "agent-config" will be used in this MIB to refer to
|
|
-- either the running config or the startup config. It will be
|
|
-- used as a short way of saying "either running config or the
|
|
-- startup config".
|
|
|
|
|
|
ConfigCopyProtocol ::= TEXTUAL-CONVENTION
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The protocol file transfer protocol that should be used
|
|
to copy the configuration file over the network. If the
|
|
config file transfer is to occur locally on the SNMP
|
|
agent, the method of transfer is left upto the
|
|
implementation, and is not restricted to the
|
|
protocols below."
|
|
SYNTAX INTEGER {
|
|
tftp(1),
|
|
ftp(2),
|
|
rcp(3),
|
|
scp(4),
|
|
sftp(5)
|
|
}
|
|
|
|
ConfigCopyState ::= TEXTUAL-CONVENTION
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The state of a tftp config-copy operation.
|
|
The description of each state is given below:
|
|
|
|
waiting: only one config-copy request can run
|
|
at any time. A newly activated
|
|
config-copy request is placed in this
|
|
state if another request has already
|
|
been activated.
|
|
|
|
running: this state signifies that the config-copy
|
|
request is running.
|
|
|
|
successsful: the state when a config-copy request is
|
|
successfully completed.
|
|
|
|
failed: the config-copy request was unsuccesful.
|
|
"
|
|
SYNTAX INTEGER {
|
|
waiting(1),
|
|
running(2),
|
|
successful(3),
|
|
failed(4)
|
|
}
|
|
|
|
ConfigCopyFailCause ::= TEXTUAL-CONVENTION
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The reason a config-copy request failed."
|
|
SYNTAX INTEGER {
|
|
unknown(1), -- very descriptive
|
|
badFileName(2), -- check your file name/path/permissions
|
|
timeout(3), -- the network may be overloaded, or the
|
|
-- remote file server may not be
|
|
-- responding.
|
|
noMem(4), -- the Agent wasn't able to allocate
|
|
-- memory for the config-copy operation
|
|
noConfig(5), -- the agent-config selected as the
|
|
-- source was non-existant.
|
|
unsupportedProtocol(6),-- The protocol is not supported
|
|
-- by the agent.
|
|
someConfigApplyFailed(7) -- applying of some of the
|
|
-- configuration commands
|
|
-- failed.
|
|
}
|
|
|
|
ConfigFileType ::= TEXTUAL-CONVENTION
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The various types of files on which a config-copy
|
|
operation can be performed."
|
|
SYNTAX INTEGER {
|
|
networkFile(1), -- file on another network device, e.g.
|
|
-- a file-server on the net
|
|
iosFile(2), -- a file on the local agent, other than
|
|
-- startup or running config
|
|
startupConfig(3),
|
|
runningConfig(4),
|
|
terminal(5) -- a terminal (e.g. the console window)
|
|
-- on which the config is to be
|
|
-- displayed.
|
|
}
|
|
|
|
ciscoConfigCopyMIBObjects OBJECT IDENTIFIER ::= { ciscoConfigCopyMIB 1 }
|
|
|
|
ccCopy OBJECT IDENTIFIER ::= { ciscoConfigCopyMIBObjects 1 }
|
|
|
|
ccCopyTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF CcCopyEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A table of config-copy requests."
|
|
::= { ccCopy 1 }
|
|
|
|
ccCopyEntry OBJECT-TYPE
|
|
SYNTAX CcCopyEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A config-copy request.
|
|
|
|
A management station wishing to create an entry should
|
|
first generate a 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
|
|
and row index objects. It must also, either in the same
|
|
or in successive PDUs, create an instance of
|
|
ccCopySourceFileType and ccCopyDestFileType.
|
|
At least one of the FileTypes must be an agent-config
|
|
file type (i.e. startupConfig or runningConfig).
|
|
If one of the file types is a networkFile, a valid
|
|
ccCopyServerAddress and ccCopyFileName must be
|
|
created as well. For a file type of iosFile, only
|
|
a valid fileName needs to be created as an extra
|
|
parameter.
|
|
|
|
It should also modify the default values for the other
|
|
configuration objects if the defaults are not
|
|
appropriate.
|
|
|
|
Once the appropriate instance of all the configuration
|
|
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 request. 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
|
|
configuration objects.
|
|
|
|
Once the config-copy request has been created (i.e. the
|
|
ccCopyEntryRowStatus has been made active), the entry
|
|
cannot be modified - the only operation possible
|
|
after this is to delete the row.
|
|
|
|
Once the request completes, the management station
|
|
should retrieve the values of the status objects of
|
|
interest, and should then 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 { ccCopyIndex }
|
|
::= { ccCopyTable 1 }
|
|
|
|
CcCopyEntry ::=
|
|
SEQUENCE {
|
|
ccCopyIndex Unsigned32,
|
|
-- configuration items
|
|
ccCopyProtocol ConfigCopyProtocol,
|
|
ccCopySourceFileType ConfigFileType,
|
|
ccCopyDestFileType ConfigFileType,
|
|
ccCopyServerAddress IpAddress,
|
|
ccCopyFileName DisplayString,
|
|
ccCopyUserName DisplayString,
|
|
ccCopyUserPassword DisplayString,
|
|
ccCopyNotificationOnCompletion TruthValue,
|
|
-- status items
|
|
ccCopyState ConfigCopyState,
|
|
ccCopyTimeStarted TimeStamp,
|
|
ccCopyTimeCompleted TimeStamp,
|
|
ccCopyFailCause ConfigCopyFailCause,
|
|
ccCopyEntryRowStatus RowStatus
|
|
}
|
|
|
|
ccCopyIndex OBJECT-TYPE
|
|
SYNTAX Unsigned32(1..2147483647)
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Object which specifies a unique entry in the
|
|
ccCopyTable. A management station wishing
|
|
to initiate a config-copy operation should use a
|
|
random value for this object when creating
|
|
or modifying an instance of a ccCopyEntry.
|
|
The RowStatus semantics of the ccCopyEntryRowStatus
|
|
object will prevent access conflicts."
|
|
::= { ccCopyEntry 1 }
|
|
|
|
ccCopyProtocol OBJECT-TYPE
|
|
SYNTAX ConfigCopyProtocol
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The protocol to be used for any copy.
|
|
Will default to tftp if not specified.
|
|
|
|
If the copy operation occurs locally on the SNMP agent
|
|
(e.g. runningCOnfigToStartupConfig), this object may
|
|
be ignored by the implementation."
|
|
DEFVAL { tftp }
|
|
::= { ccCopyEntry 2 }
|
|
|
|
ccCopySourceFileType OBJECT-TYPE
|
|
SYNTAX ConfigFileType
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"specifies the type of file to copy from. Either the
|
|
ccCopySourceFileType or the ccCopyDestFileType (or both)
|
|
must be of type runningConfig or startupConfig. Also,
|
|
the ccCopySourceFileType must be different from the
|
|
ccCopyDestFileType.
|
|
|
|
If the ccCopySourceFileType has the value of
|
|
networkFile, the ccCopyServerAddress and
|
|
ccCopyFileName must also be created, and these 3
|
|
objects together (ccCopySourceFileType,
|
|
ccCopyServerAddress, ccCopyFileName) will uniquely
|
|
identify the source file.
|
|
|
|
If the ccCopySourceFileType is iosFile, the
|
|
ccCopyFileName must also be created, and the
|
|
2 objects together (ccCopySourceFileType,
|
|
ccCopyFileName) will uniquely identify the source
|
|
file.
|
|
"
|
|
::= { ccCopyEntry 3 }
|
|
|
|
ccCopyDestFileType OBJECT-TYPE
|
|
SYNTAX ConfigFileType
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"specifies the type of file to copy to. Either the
|
|
ccCopySourceFileType or the ccCopyDestFileType (or both)
|
|
must be of type runningConfig or startupConfig. Also,
|
|
the ccCopySourceFileType must be different from the
|
|
ccCopyDestFileType.
|
|
|
|
If the ccCopyDestFileType has the value of
|
|
networkFile, the ccCopyServerAddress and
|
|
ccCopyFileName must also be created, and these
|
|
3 objects together
|
|
(ccCopyDestFileType, ccCopyServerAddress,
|
|
ccCopyFileName) will uniquely identify the
|
|
destination file.
|
|
|
|
If the ccCopyDestFileType is iosFile, the ccCopyFileName
|
|
must also be created, and the 2 objects together
|
|
(ccCopyDestFileType, ccCopyFileName) will uniquely
|
|
identify the destination file."
|
|
::= { ccCopyEntry 4 }
|
|
|
|
ccCopyServerAddress OBJECT-TYPE
|
|
SYNTAX IpAddress
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The ip address of the tftp server from (or to)
|
|
which to copy the configuration file. This object must
|
|
be created when either the ccCopySourceFileType
|
|
or ccCopyDestFileType has the value networkFile.
|
|
Values of 0.0.0.0 or FF.FF.FF.FF for
|
|
ccCopyServerAddress are not allowed."
|
|
::= { ccCopyEntry 5 }
|
|
|
|
ccCopyFileName OBJECT-TYPE
|
|
SYNTAX DisplayString
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The file name (including the path, if applicable) of
|
|
the file. This object must be created when either the
|
|
ccCopySourceFileType or ccCopyDestFileType has the value
|
|
networkFile or iosFile."
|
|
::= { ccCopyEntry 6 }
|
|
|
|
ccCopyUserName OBJECT-TYPE
|
|
SYNTAX DisplayString(SIZE (1..40))
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Remote user name for copy via ftp, rcp, sftp or
|
|
scp protocol.
|
|
This object must be created when the ccCopyProtocol
|
|
is rcp, scp, ftp or sftp.
|
|
If the protocol is rcp, 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."
|
|
::= { ccCopyEntry 7 }
|
|
|
|
ccCopyUserPassword OBJECT-TYPE
|
|
SYNTAX DisplayString(SIZE (1..40))
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
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 ccCopyProtocol is ftp or scp.
|
|
Reading it returns a zero-length string for security
|
|
reasons."
|
|
::= { ccCopyEntry 8 }
|
|
|
|
ccCopyNotificationOnCompletion OBJECT-TYPE
|
|
SYNTAX TruthValue
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Specifies whether or not a ccCopyCompletion
|
|
notification should be issued on completion of the tftp
|
|
transfer. If such a notification is desired, 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 }
|
|
::= { ccCopyEntry 9 }
|
|
|
|
ccCopyState OBJECT-TYPE
|
|
SYNTAX ConfigCopyState
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Specifies the state of this config-copy request.
|
|
This value of this object is instantiated only after
|
|
the row has been instantiated, i.e. after the
|
|
ccCopyEntryRowStatus has been made active."
|
|
::= { ccCopyEntry 10 }
|
|
|
|
ccCopyTimeStarted OBJECT-TYPE
|
|
SYNTAX TimeStamp
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Specifies the time the ccCopyState last transitioned
|
|
to running, or 0 if the state has never transitioned to
|
|
running (for e.g., stuck in waiting state).
|
|
This object is instantiated only after the row has been
|
|
instantiated."
|
|
::= { ccCopyEntry 11 }
|
|
|
|
ccCopyTimeCompleted OBJECT-TYPE
|
|
SYNTAX TimeStamp
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Specifies the time the ccCopyState last transitioned
|
|
from running to successful or failed states. This
|
|
object is instantiated only after the row has been
|
|
instantiated.
|
|
Its value will remain 0 until he request has completed."
|
|
::= { ccCopyEntry 12 }
|
|
|
|
ccCopyFailCause OBJECT-TYPE
|
|
SYNTAX ConfigCopyFailCause
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The reason why the config-copy operation failed.
|
|
This object is instantiated only when the ccCopyState
|
|
for this entry is in the failed state."
|
|
::= { ccCopyEntry 13 }
|
|
|
|
ccCopyEntryRowStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The status of this table entry. Once the entry
|
|
status is set to active, the associated entry cannot
|
|
be modified until the request completes (ccCopyState
|
|
transitions to successful or failed state)."
|
|
::= { ccCopyEntry 14 }
|
|
|
|
ciscoConfigCopyMIBTrapPrefix OBJECT IDENTIFIER
|
|
::= { ciscoConfigCopyMIB 2 }
|
|
ccCopyMIBTraps OBJECT IDENTIFIER
|
|
::= { ciscoConfigCopyMIBTrapPrefix 1 }
|
|
|
|
ccCopyCompletion NOTIFICATION-TYPE
|
|
OBJECTS { ccCopyServerAddress,
|
|
ccCopyFileName,
|
|
ccCopyState,
|
|
ccCopyTimeStarted,
|
|
ccCopyTimeCompleted,
|
|
ccCopyFailCause
|
|
}
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A ccCopyCompletion trap is sent at the completion
|
|
of a config-copy request. The ccCopyFailCause is not
|
|
instantiated, and hence not included in a trap, when
|
|
the ccCopyState is success."
|
|
::= { ccCopyMIBTraps 1 }
|
|
|
|
ciscoConfigCopyMIBConformance
|
|
OBJECT IDENTIFIER ::= { ciscoConfigCopyMIB 3 }
|
|
ccCopyMIBCompliances
|
|
OBJECT IDENTIFIER ::= { ciscoConfigCopyMIBConformance 1 }
|
|
ccCopyMIBGroups
|
|
OBJECT IDENTIFIER ::= { ciscoConfigCopyMIBConformance 2 }
|
|
|
|
ccCopyMIBCompliance MODULE-COMPLIANCE
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The compliance statement for Cisco agents which
|
|
implement the Cisco ConfigCopy MIB. This MIB should
|
|
be implemented on all Cisco agents that support
|
|
copying of configs via the CLI."
|
|
MODULE
|
|
MANDATORY-GROUPS { ccCopyGroup,
|
|
ccCopyNotificationsGroup
|
|
}
|
|
::= {ccCopyMIBCompliances 1 }
|
|
|
|
-- units of conformance
|
|
|
|
ccCopyGroup OBJECT-GROUP
|
|
OBJECTS {
|
|
ccCopyProtocol,
|
|
ccCopySourceFileType,
|
|
ccCopyDestFileType,
|
|
ccCopyServerAddress,
|
|
ccCopyFileName,
|
|
ccCopyUserName,
|
|
ccCopyUserPassword,
|
|
ccCopyNotificationOnCompletion,
|
|
ccCopyState,
|
|
ccCopyTimeStarted,
|
|
ccCopyTimeCompleted,
|
|
ccCopyFailCause,
|
|
ccCopyEntryRowStatus
|
|
}
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing the ability to
|
|
copy an agent-configuration file."
|
|
::= { ccCopyMIBGroups 1 }
|
|
|
|
ccCopyNotificationsGroup NOTIFICATION-GROUP
|
|
NOTIFICATIONS { ccCopyCompletion
|
|
}
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The notification used to indicate that a config-copy
|
|
operation to or from the agent has been completed."
|
|
::= { ccCopyMIBGroups 2 }
|
|
|
|
END
|