-- ***************************************************************** -- CISCO-SMART-INSTALL-MIB.my: Smart Install MIB -- -- Copyright (c) 2009-2010 by Cisco Systems, Inc. -- All rights reserved. -- -- ***************************************************************** CISCO-SMART-INSTALL-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Unsigned32 FROM SNMPv2-SMI MODULE-COMPLIANCE, NOTIFICATION-GROUP, OBJECT-GROUP FROM SNMPv2-CONF TruthValue, RowStatus, DateAndTime, MacAddress, StorageType FROM SNMPv2-TC SnmpAdminString FROM SNMP-FRAMEWORK-MIB InetAddressType, InetAddress FROM INET-ADDRESS-MIB TimeIntervalMin, Cisco2KVlanList, CiscoURLStringOrEmpty FROM CISCO-TC ciscoMgmt FROM CISCO-SMI; ciscoSmartInstallMIB MODULE-IDENTITY LAST-UPDATED "201004300000Z" 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: interest-comp-smartinstall@cisco.com" DESCRIPTION "This MIB module defines managed objects that facilitate the management of Smart Install feature. Smart Install is a plug-and-play image and configuration management feature which enables zero-touch deployment of Cisco network devices in an enterprise branch network. Following is the terminology associated with Smart Install feature: Director A router or switch selected as the single management point for images and configuration of network devices in a Smart Install network. When a device is first installed into the network, the director detects the new device and facilitates the correct Cisco IOS image and configuration file for the device based on user defined profiles. With the automated process, a single or a group of devices are deployed without user intervention. The managed device includes, but not limited to, Cisco 2K/3K switches and EtherSwitch service modules. Director learns about them through CDP or Smart Install protocol. Smart Install Capable Client A client device running Smart Install capable image. Group Devices are placed into Groups where they can be manipulated together rather than individually. Profile Profile is the configuration file, image, etc. that a user programs for each group. Backup The feature to archive/backup client device's configuration file upon 'write memory' on client. Join-Window A join window is a time window during which the device is allowed to upgrade image or configuration files. Only during this window can the director provide information about the image and configuration to the device. A device attempting to join the network outside of the join window will not be allowed to do so, and cannot upgrade their image and configuration files. This MIB module is supported on the director but not on the client devices. It is designed to: - Allow operators to make configurations for client devices before and after they connect to the director's network. - Support monitoring of client devices discovered by the director. - Provide status of the deployed client image and configuration as a result of operator defined profiles. - Provide notifications for notable events such as new device joined or upgrade failure if there is any. Please note that, in most cases a working DHCP pool is configured for the subnet(s) on which the client devices are located. The DHCP server could be the director, another Cisco device running Cisco IOS, or a non-Cisco third-party server. CISCO-SMART-INSTALL-MIB Module usage: 1) Create profile for a group of devices Profile is used to pre-configure image and configuration files for a group of devices. In csiProfileTable { csiProfileIndex = 8, csiProfileGroupName = '3750E_24', csiProfileImageUrl = 'tftp://10.0.0.1/3750e.tar', csiProfileImageTwoUrl = '', csiProfileConfigUrl = 'flash:/default_config.txt', } 2) Define a group of devices For example, to define a group matching on Catalyst 2960 24 8 Poe switches: In csiMatchTable { csiMatchIndex = 1, csiMatchGroupType = 'product', csiMatchProductId = 'WS-C2960-24LT-L', csiProfileIndex = 6, } 3) Enable Smart Install feature on the director The operator enables the Smart Install feature by setting csiOperationMode = basic(2) 4) Display device information Director is aware of Smart Install capable devices and others connected to a Smart Install capable device. This MIB table displays information about the devices, such as the running image, the MAC address, etc. csiDeviceTable 5) Further refine the running environment Objects in csiGlobalConfig enable the Operator to tailor the director operation, such as: . Backup client device's configuration file. . Set up Join Window to monitor newly installed devices." REVISION "201004300000Z" DESCRIPTION "Initial version of this MIB module." ::= { ciscoMgmt 725 } -- Textual Conventions definition will be defined before this line ciscoSmartInstallMIBNotifs OBJECT IDENTIFIER ::= { ciscoSmartInstallMIB 0 } ciscoSmartInstallMIBObjects OBJECT IDENTIFIER ::= { ciscoSmartInstallMIB 1 } ciscoSmartInstallMIBConform OBJECT IDENTIFIER ::= { ciscoSmartInstallMIB 2 } csiGlobalConfig OBJECT IDENTIFIER ::= { ciscoSmartInstallMIBObjects 1 } csiProfile OBJECT IDENTIFIER ::= { ciscoSmartInstallMIBObjects 2 } csiDeviceInfo OBJECT IDENTIFIER ::= { ciscoSmartInstallMIBObjects 3 } csiNotifObjects OBJECT IDENTIFIER ::= { ciscoSmartInstallMIBObjects 4 } csiOperationMode OBJECT-TYPE SYNTAX INTEGER { disabled(1), basic(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the Smart Install director operation mode. The following enumerated values are supported: disabled(1) - Smart Install feature disabled. basic(2) - Enabled with Smart Install basic features." ::= { csiGlobalConfig 1 } csiDirectorIpAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the type of Internet address in csiDirectorIpAddress object." ::= { csiGlobalConfig 2 } csiDirectorIpAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the Internet address assigned for the director. The type of this address is determined by the value of csiDirectorIpAddressType object. Setting this object is not mandatory if the director IP address is configured by DHCP. For DHCP to assign the director IP address, the operator needs to configure the DHCP server." ::= { csiGlobalConfig 3 } csiManagementVlan OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates if management VLAN is in use or not." ::= { csiGlobalConfig 4 } csiManagementVlansFirst2K OBJECT-TYPE SYNTAX Cisco2KVlanList MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the management VLANs in a string of octets containing one bit per VLAN for VLANs 0 to 2047. The director snoops all DHCP packets that pass through on the management VLANs in addition to the default VLAN 1. The value of this object is irrelevent if csiManagementVlan is false(2)." ::= { csiGlobalConfig 5 } csiManagementVlansSecond2K OBJECT-TYPE SYNTAX Cisco2KVlanList MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the management VLANs in a string of octets containing one bit per VLAN for VLANs 2048 to 4095. The director snoops all DHCP packets that pass through on the management VLANs in addition to the default VLAN 1. The value of this object is irrelevent if csiManagementVlan is false(2)." ::= { csiGlobalConfig 6 } csiBackup OBJECT IDENTIFIER ::= { csiGlobalConfig 7 } csiJoinWindow OBJECT IDENTIFIER ::= { csiGlobalConfig 8 } csiBackupHostUrl OBJECT-TYPE SYNTAX CiscoURLStringOrEmpty MAX-ACCESS read-write STATUS current DESCRIPTION "A Uniform Resource Locator specifying the host where the client configuration files are stored, 'tftp://101.122.33.10/vstack' for example. When a client configuration is committed (i.e. write memory), a backup of the configuration is saved in the backup host if csiBackupEnable is 'true'. The backup file name is consisted of the client host name, MAC address and file extension 'REV2', for example 'SwitchA-0021.d7ae.fc00.REV2'. For subsequent backups, .REV2 file is copied to .REV1, and .REV2 is over-written with the latest client configuration." ::= { csiBackup 1 } csiBackupEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies whether client configuration file is backed up in the backup host. Director is informed when a Smart Install client configuration is committed (i.e. write memory). If this object value is 'true', director orchestrates the backup of the client configuration file to the designated backup host." ::= { csiBackup 2 } csiJoinWindowConfigOperationMode OBJECT-TYPE SYNTAX INTEGER { closed(1), auto(2), manual(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "A join window is a time window during which a network device is allowed to upgrade image or configuration files. Only during this window can the director provide information about the image and configuration to the device. A device attempting to join the network outside of the join window will not be allowed to do so, and cannot upgrade their image and configuration files. This object specifies the configuration of the Join Window operation mode. closed - All devices attempting to join are denied to upgrade as indicated in the csiDeviceStatus object. Director does not provide information about the image and configuration to the device. auto - Director provides image and configuration information to devices joining during 'Join Window' period. manual - Devices attempting to join during Join Window are put on hold as indicated in the csiDeviceStatus object. Director does not give image and configuration information to these on hold devices unless the operator manually instructs the director to upgrade them." ::= { csiJoinWindow 1 } csiJoinWindowPeriodNextFreeIndex OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) MAX-ACCESS read-only STATUS current DESCRIPTION "An integer which may be used as a new index in csiJoinWindowPeriodTable. The special value of 0 indicates that no more new entries can be created in csiJoinWindowPeriodTable. This object is a legal value (if non-zero) for an index that is not currently used in the relevant table. The Network Management Application reads this variable and uses the (non-zero) value read when creating a new row with an SNMP SET. When the SET is performed, the agent must determine whether the value is indeed still unused; two Network Management Applications may attempt to create a row (configuration entry) simultaneously and use the same value. If it is currently unused, the SET succeeds and the agent monotonically increases the value of this object. However if the value is in use, the SET fails. The Network Management Application must then re-read this variable to obtain a new usable value." ::= { csiJoinWindow 2 } csiJoinWindowPeriodTable OBJECT-TYPE SYNTAX SEQUENCE OF CsiJoinWindowPeriodEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of Join Window time periods. Management Application creates an entry in the table to add a Join Window period and its recurrence pattern. If csiJoinWindowConfigOperationMode is 'auto', all devices joined during Join Window are automatically upgraded. If csiJoinWindowConfigOperationMode is 'manual', new devices joined during Join Window are put on hold as indicated in csiDeviceStatus. They are not offered upgrade information unless the operator manually instructs the director to do so. In rare occasions, when entries overlap in time, the devices joining during any of the Join Window period are allowed to be upgraded or put on hold." ::= { csiJoinWindow 3 } csiJoinWindowPeriodEntry OBJECT-TYPE SYNTAX CsiJoinWindowPeriodEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry specifying a time period during which director offers image and configuration information to the newly installed devices. A configured row instance can be created or removed by setting the appropriate value of its RowStatus object." INDEX { csiJoinWindowPeriodIndex } ::= { csiJoinWindowPeriodTable 1 } CsiJoinWindowPeriodEntry ::= SEQUENCE { csiJoinWindowPeriodIndex Unsigned32, csiJoinWindowPeriodStartTime DateAndTime, csiJoinWindowPeriodInterval TimeIntervalMin, csiJoinWindowPeriodRecurrencePattern INTEGER, csiJoinWindowPeriodExpirationDate DateAndTime, csiJoinWindowPeriodStorageType StorageType, csiJoinWindowPeriodRowStatus RowStatus } csiJoinWindowPeriodIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object uniquely identifies a row in csiJoinWindowPeriodTable. The Management Application chooses this value by reading csiJoinWindowPeriodNextFreeIndex while creating an entry in this table. If an entry already exists with this index, the creation of the entry will not continue and error will be returned. The Management Application should read the value of csiJoinWindowPeriodNextFreeIndex again and retry with the new value for this object." ::= { csiJoinWindowPeriodEntry 1 } csiJoinWindowPeriodStartTime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the start time of a Join Window period." ::= { csiJoinWindowPeriodEntry 2 } csiJoinWindowPeriodInterval OBJECT-TYPE SYNTAX TimeIntervalMin MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the length of Join Window period in minutes starting from csiJoinWindowPeriodStartTime." ::= { csiJoinWindowPeriodEntry 3 } csiJoinWindowPeriodRecurrencePattern OBJECT-TYPE SYNTAX INTEGER { none(1), daily(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the Join Window recurrence pattern. none(1) - The join window period does not recur. daily(2) - The join window period recurs daily." ::= { csiJoinWindowPeriodEntry 4 } csiJoinWindowPeriodExpirationDate OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the day (in year, month and date) the Join Window period stops. An empty string indicates that no expiration date is applied. The Join Window period can be stopped by either this object or csiJoinWindowPeriodInterval object, whichever expires first." ::= { csiJoinWindowPeriodEntry 5 } csiJoinWindowPeriodStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the storage type of this conceptual row." DEFVAL { volatile } ::= { csiJoinWindowPeriodEntry 6 } csiJoinWindowPeriodRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to manage the creation and deletion of rows in this table. If this object value is 'active', user cannot modify any writable object in this row." ::= { csiJoinWindowPeriodEntry 7 } csiImageFileUrl OBJECT-TYPE SYNTAX CiscoURLStringOrEmpty MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the location of the default boot .tar image file. An empty string indicates that no such file is applied. If all clients in a Smart Install network have the same product ID and can run the same image file, user can assign a default image file for all clients." ::= { csiProfile 1 } csiConfigFileUrl OBJECT-TYPE SYNTAX CiscoURLStringOrEmpty MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the location of the default configuration file. An empty string indicates that no such file is applied. If all clients in a Smart Install network have the same product ID and can run the same configuration file, user can assign a default configuration file for all clients." ::= { csiProfile 2 } csiHostnamePrefix OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (0..40)) MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies the default hostname prefix. The director provides hostname (with prefix followed by an implementation-dependent string) to clients." ::= { csiProfile 3 } csiProfileNextFreeIndex OBJECT-TYPE SYNTAX Unsigned32 (0 | 2..4294967295) MAX-ACCESS read-only STATUS current DESCRIPTION "An integer value which may be used as a new index in csiProfileTable. The special value of 0 indicates that no more new entries can be created in csiProfileTable, and value 1 is not a valid csiProfileTable index. Thus the value of this object starts at 2 and monotonically increases after a profile is created. The Network Management Application reads this variable and uses the non-zero value when creating a new row with an SNMP SET. When the SET is performed, the agent must determine whether the value is indeed still unused, for two Network Management Applications may attempt to create a row (profile entry) simultaneously and use the same value. If it is currently unused, the SET succeeds and the agent increases the value of this object. If the value is in use, however, the SET fails. The Network Management Application must then re-read this variable to obtain a new usable value." ::= { csiProfile 4 } csiProfileTable OBJECT-TYPE SYNTAX SEQUENCE OF CsiProfileEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of Smart Install profile entries. In Smart Install, any number of client devices can be placed together to form a 'group' for easy management. A profile is used to associate image and configuration files for a group of devices, before and after they join the network. An entry in this table reflects the profile of one Smart Install group." ::= { csiProfile 5 } csiProfileEntry OBJECT-TYPE SYNTAX CsiProfileEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the csiProfileTable, describing the image and configuration files that represent the profile." INDEX { csiProfileIndex } ::= { csiProfileTable 1 } CsiProfileEntry ::= SEQUENCE { csiProfileIndex Unsigned32, csiProfileGroupName SnmpAdminString, csiProfileImageUrl CiscoURLStringOrEmpty, csiProfileImageTwoUrl CiscoURLStringOrEmpty, csiProfileConfigUrl CiscoURLStringOrEmpty, csiProfileStorageType StorageType, csiProfileRowStatus RowStatus } csiProfileIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object uniquely identifies the entry in csiProfileTable. The value of the object is 2 or greater." ::= { csiProfileEntry 1 } csiProfileGroupName OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (0..64)) MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the name of a group for which this profile associates." ::= { csiProfileEntry 2 } csiProfileImageUrl OBJECT-TYPE SYNTAX CiscoURLStringOrEmpty MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the location of the boot .tar image file. An empty string indicates that no such file is applied." ::= { csiProfileEntry 3 } csiProfileImageTwoUrl OBJECT-TYPE SYNTAX CiscoURLStringOrEmpty MAX-ACCESS read-create STATUS current DESCRIPTION "For mixed switch stack, this object specifies the location of the second .tar image file. An empty string indicates that no such file is applied." ::= { csiProfileEntry 4 } csiProfileConfigUrl OBJECT-TYPE SYNTAX CiscoURLStringOrEmpty MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the location of the configuration file. An empty string indicates that no such file is applied." ::= { csiProfileEntry 5 } csiProfileStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the storage type for this conceptual row." DEFVAL { volatile } ::= { csiProfileEntry 6 } csiProfileRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the status of this conceptual row. If this object value is 'active', user cannot modify any writable object in this row." ::= { csiProfileEntry 7 } csiMatchTable OBJECT-TYPE SYNTAX SEQUENCE OF CsiMatchEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of group matching criteria entries. In Smart Install, 'group' represents a collection of network devices and a profile is configured for the group. The matching criteria entries are used to identify the devices belonging to a profile group, and the matching entries cannot exist without a profile. This is implied by the reference to csiProfileIndex object in the index clause of this table." ::= { csiProfile 6 } csiMatchEntry OBJECT-TYPE SYNTAX CsiMatchEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in csiMatchTable, defining one matching criterion for a profile group. When its profile entry is deleted, the match entry is deleted too. The objects needed in an entry depend on the value of csiMatchGroupType. Multiple match entries can be entered for stack, connectivity or mac type of groups." INDEX { csiProfileIndex, csiMatchIndex } ::= { csiMatchTable 1 } CsiMatchEntry ::= SEQUENCE { csiMatchIndex Unsigned32, csiMatchGroupType INTEGER, csiMatchMacAddress MacAddress, csiMatchHostAddressType InetAddressType, csiMatchHostAddress InetAddress, csiMatchHostInterface SnmpAdminString, csiMatchProductId SnmpAdminString, csiMatchSwitchNum Unsigned32, csiMatchSwitchProductId SnmpAdminString, csiMatchStorageType StorageType, csiMatchRowStatus RowStatus } csiMatchIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object uniquely identifies a matching criterion within a group." ::= { csiMatchEntry 1 } csiMatchGroupType OBJECT-TYPE SYNTAX INTEGER { unknown(1), mac(2), connectivity(3), product(4), stack(5) } MAX-ACCESS read-create STATUS current DESCRIPTION "This object indicates the general category of a Smart Install group. A profile group can be formed based on, unknown(1) - unknown match group type mac(2) - MAC addresses of devices connectivity(3) - connectivity or topology of devices product(4) - product type of devices stack(5) - a switch stack" ::= { csiMatchEntry 2 } csiMatchMacAddress OBJECT-TYPE SYNTAX MacAddress MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the MAC address of the client. It is required when csiMatchGroupType is 'mac'. A MAC address match takes priority over other match criteria." ::= { csiMatchEntry 3 } csiMatchHostAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the type of Internet address stored in csiMatchHostAddress. It is required when csiMatchGroupType is 'connectivity'." ::= { csiMatchEntry 4 } csiMatchHostAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "User can configure a profile group based on the connectivity or topology of clients in a Smart Install network, that is, a group of clients that are connected to the director through a single interface or clients that are connected to the director through a common intermediate device. This object specifies the Internet address of the upstream device, which could be the director or an intermediate device. Together with csiMatchHostInterface, it specifies the path through which clients are connected to the director. This object is required when csiMatchGroupType is 'connectivity'. The type of this address is determined by the value of csiMatchHostAddressType object. A connectivity match takes priority over product ID match." ::= { csiMatchEntry 5 } csiMatchHostInterface OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "For connectivity group, this object specifies the interface, together with csiMatchHostAddress, representing the path through which clients are connected to the director. It is typically the value of the ifName object (e.g., 'Ethernet0'). It is required when csiMatchGroupType is 'connectivity'." ::= { csiMatchEntry 6 } csiMatchProductId OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the device product type for profile groups formed based on 'product'. For pre-defined profile group, it is the group name such as '2960 24-8POE'. For user defined group, it specifies a product ID reported in ENTITY-MIB, such as 'WS-C2960-24LT-L'. It is required when csiMatchGroupType is 'product'." ::= { csiMatchEntry 7 } csiMatchSwitchNum OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the switch number in a stackable switch. Together with csiMatchSwitchProductId, it describes a stack member. It is required when csiMatchGroupType is 'stack'." ::= { csiMatchEntry 8 } csiMatchSwitchProductId OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the product ID of a switch member indicated in csiMatchSwitchNum. It is required when csiMatchGroupType is 'stack'." ::= { csiMatchEntry 9 } csiMatchStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the storage type for this conceptual row." DEFVAL { volatile } ::= { csiMatchEntry 10 } csiMatchRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the status of this conceptual row. If this object value is 'active', user cannot modify any writable object in this row." ::= { csiMatchEntry 11 } csiDeviceTable OBJECT-TYPE SYNTAX SEQUENCE OF CsiDeviceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A conceptual table listing the network devices with connectivity to the director, that is the device is either Smart Install capable or is connected to a Smart Install capable client." ::= { csiDeviceInfo 1 } csiDeviceEntry OBJECT-TYPE SYNTAX CsiDeviceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry for each device that has joined the Smart Install network." INDEX { csiDeviceNum } ::= { csiDeviceTable 1 } CsiDeviceEntry ::= SEQUENCE { csiDeviceNum Unsigned32, csiDeviceMacAddress MacAddress, csiDeviceAddressType InetAddressType, csiDeviceAddress InetAddress, csiDeviceName SnmpAdminString, csiDeviceBackupConfigFileName SnmpAdminString, csiDeviceImageVersion SnmpAdminString, csiDevicePlatform SnmpAdminString, csiDeviceSerialNum SnmpAdminString, csiDeviceStatus SnmpAdminString } csiDeviceNum OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "A value assigned by the director to uniquely identify each entry in csiDeviceTable." ::= { csiDeviceEntry 1 } csiDeviceMacAddress OBJECT-TYPE SYNTAX MacAddress MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the MAC address of the network device." ::= { csiDeviceEntry 2 } csiDeviceAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the type of Internet address in csiDeviceAddress." ::= { csiDeviceEntry 3 } csiDeviceAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the Internet address of the device that sends Smart Install communication messages. The type of this address is determined by the value of csiDeviceAddressType object." ::= { csiDeviceEntry 4 } csiDeviceName OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the host name of the device to easily identify it in a network." ::= { csiDeviceEntry 5 } csiDeviceBackupConfigFileName OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the name of the latest saved configuration file of the device. The file name is consisted of the device host name, MAC address and file extension 'REV2', for example 'SwitchA-0021.d7ae.fc00.REV2'. The file is stored in the host indicated by the csiBackupHostUrl object. If the device configuration file is saved again, .REV2 file is copied to .REV1, and .REV2 is over-written with the latest device configuration." ::= { csiDeviceEntry 6 } csiDeviceImageVersion OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the software release version that the device is running. The zero-length string indicates that no Version field (TLV) was reported in the most recent CDP message." ::= { csiDeviceEntry 7 } csiDevicePlatform OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "The device's hardware platform as reported in the most recent CDP message. The zero-length string indicates that no Platform field (TLV) was reported in the most recent CDP message." ::= { csiDeviceEntry 8 } csiDeviceSerialNum OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "A recorded serial number for this device that indexes some type device catalog or inventory, if applicable." ::= { csiDeviceEntry 9 } csiDeviceStatus OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "A text string describes the network device status. The agent implementation may use this object to report upgrading progress." ::= { csiDeviceEntry 10 } csiNotifEnable OBJECT-TYPE SYNTAX BITS { operationModeChange(0), deviceAdded(1), deviceLost(2), fileLoadFailed(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object controls the generation of Smart Install notifications. For example, a value of '1' for 'deviceAdded' enables csiDeviceAdded notification, whereas a value of '0' disables csiDeviceAdded notification." ::= { csiNotifObjects 1 } csiNotifOperationType OBJECT-TYPE SYNTAX INTEGER { other(1), downloadConfig(2), downloadImage(3), uploadConfig(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the type of operation of csiFileLoadFailed notification. other(1) - none of the following downloadConfig(2) - configuration file download downloadImage(3) - image file download uploadConfig(4) - client config file upload to storage" ::= { csiNotifObjects 2 } csiNotifOperationResult OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the file operation result of csiFileLoadFailed notification." ::= { csiNotifObjects 3 } -- Notifications csiOperationModeChange NOTIFICATION-TYPE OBJECTS { csiOperationMode } STATUS current DESCRIPTION "This notification is generated when the director operation mode changes. csiOperationMode indicates the director operation mode." ::= { ciscoSmartInstallMIBNotifs 1 } csiDeviceAdded NOTIFICATION-TYPE OBJECTS { csiDeviceName, csiDeviceAddressType, csiDeviceAddress, csiDeviceMacAddress } STATUS current DESCRIPTION "This notification is generated when a network device joins the Smart Install network. csiDeviceName indicates the device host name. csiDeviceAddressType indicates the device Internet address type. csiDeviceAddress indicates the device Internet address. csiDeviceMacAddress indicates the device MAC address." ::= { ciscoSmartInstallMIBNotifs 2 } csiDeviceLost NOTIFICATION-TYPE OBJECTS { csiDeviceName, csiDeviceAddressType, csiDeviceAddress, csiDeviceMacAddress } STATUS current DESCRIPTION "This notification is generated when director loses connectivity to a device. csiDeviceName indicates the device host name. csiDeviceAddressType indicates the device Internet address type. csiDeviceAddress indicates the device Internet address. csiDeviceMacAddress indicates the device MAC address." ::= { ciscoSmartInstallMIBNotifs 3 } csiFileLoadFailed NOTIFICATION-TYPE OBJECTS { csiDeviceName, csiDeviceAddressType, csiDeviceAddress, csiDeviceMacAddress, csiNotifOperationType, csiNotifOperationResult } STATUS current DESCRIPTION "This notification is generated when a file upload or download operation has failed. csiDeviceName indicates the device host name. csiDeviceAddressType indicates the device Internet address type. csiDeviceAddress indicates the device Internet address. csiDeviceMacAddress indicates the device MAC address. csiNotifOperationType indicates the file operation type. csiNotifOperationResult indicates the file operation result." ::= { ciscoSmartInstallMIBNotifs 4 } -- Conformance Information Definition ciscoSmartInstallCompliances OBJECT IDENTIFIER ::= { ciscoSmartInstallMIBConform 1 } ciscoSmartInstallGroups OBJECT IDENTIFIER ::= { ciscoSmartInstallMIBConform 2 } ciscoSmartInstallCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Describes the requirements for conformance to the CISCO-SMART-INSTALL-MIB module." MODULE -- this module MANDATORY-GROUPS { ciscoSmartInstallGlobalConfigGroup, ciscoSmartInstallDeviceInformationGroup } GROUP ciscoSmartInstallConfigBackupGroup DESCRIPTION "The ciscoSmartInstallConfigBackupGroup is optional." GROUP ciscoSmartInstallJoinWindowGroup DESCRIPTION "The ciscoSmartInstallJoinWindowGroup is optional." GROUP ciscoSmartInstallProfileGroup DESCRIPTION "The ciscoSmartInstallProfileGroup is optional." GROUP ciscoSmartInstallNotificationEnableGroup DESCRIPTION "The ciscoSmartInstallNotificationEnableGroup is optional." GROUP ciscoSmartInstallNotificationsGroup DESCRIPTION "The ciscoSmartInstallNotificationsGroup is optional." GROUP ciscoSmartInstallNotifyVarsGroup DESCRIPTION "The ciscoSmartInstallNotifyVarsGroup is optional. if ciscoSmartInstallNotificationsGroup is supported, this group must be implemented." OBJECT csiOperationMode MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT csiDirectorIpAddressType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT csiDirectorIpAddress MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT csiManagementVlansFirst2K MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT csiManagementVlansSecond2K MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT csiBackupHostUrl MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT csiBackupEnable MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT csiJoinWindowConfigOperationMode MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT csiJoinWindowPeriodStartTime MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiJoinWindowPeriodInterval MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiJoinWindowPeriodRecurrencePattern MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiJoinWindowPeriodExpirationDate MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiJoinWindowPeriodStorageType MIN-ACCESS read-only DESCRIPTION "Support for read-create access is not required." OBJECT csiJoinWindowPeriodRowStatus SYNTAX INTEGER { active(1) } WRITE-SYNTAX INTEGER { createAndGo(4), destroy(6) } MIN-ACCESS read-only DESCRIPTION "Support for 'createAndWait' is not required." OBJECT csiImageFileUrl MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT csiConfigFileUrl MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT csiHostnamePrefix MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT csiProfileGroupName MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiProfileImageUrl MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiProfileImageTwoUrl MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiProfileConfigUrl MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiProfileStorageType MIN-ACCESS read-only DESCRIPTION "Support for read-create access is not required." OBJECT csiProfileRowStatus SYNTAX INTEGER { active(1) } WRITE-SYNTAX INTEGER { createAndGo(4), destroy(6) } MIN-ACCESS read-only DESCRIPTION "Support for 'createAndWait' is not required." OBJECT csiMatchGroupType MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiMatchProductId MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiMatchSwitchNum MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiMatchSwitchProductId MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiMatchHostAddressType MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiMatchHostAddress MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiMatchHostInterface MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiMatchMacAddress MIN-ACCESS read-only DESCRIPTION "Create/Write access is not required." OBJECT csiMatchStorageType MIN-ACCESS read-only DESCRIPTION "Support for read-create access is not required." OBJECT csiMatchRowStatus SYNTAX INTEGER { active(1) } WRITE-SYNTAX INTEGER { createAndGo(4), destroy(6) } MIN-ACCESS read-only DESCRIPTION "Support for 'createAndWait' is not required." OBJECT csiNotifEnable MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { ciscoSmartInstallCompliances 1 } ciscoSmartInstallGlobalConfigGroup OBJECT-GROUP OBJECTS { csiOperationMode, csiDirectorIpAddressType, csiDirectorIpAddress, csiManagementVlan, csiManagementVlansFirst2K, csiManagementVlansSecond2K } STATUS current DESCRIPTION "A collection of objects used for director configurations." ::= { ciscoSmartInstallGroups 1 } ciscoSmartInstallConfigBackupGroup OBJECT-GROUP OBJECTS { csiBackupEnable, csiBackupHostUrl } STATUS current DESCRIPTION "A collection of objects related to configuration file backup feature." ::= { ciscoSmartInstallGroups 2 } ciscoSmartInstallJoinWindowGroup OBJECT-GROUP OBJECTS { csiJoinWindowConfigOperationMode, csiJoinWindowPeriodNextFreeIndex, csiJoinWindowPeriodStartTime, csiJoinWindowPeriodInterval, csiJoinWindowPeriodRecurrencePattern, csiJoinWindowPeriodExpirationDate, csiJoinWindowPeriodRowStatus, csiJoinWindowPeriodStorageType } STATUS current DESCRIPTION "A collection of objects related to the Join Window." ::= { ciscoSmartInstallGroups 3 } ciscoSmartInstallProfileGroup OBJECT-GROUP OBJECTS { csiImageFileUrl, csiConfigFileUrl, csiHostnamePrefix, csiProfileNextFreeIndex, csiProfileGroupName, csiProfileImageUrl, csiProfileImageTwoUrl, csiProfileConfigUrl, csiProfileStorageType, csiProfileRowStatus, csiMatchGroupType, csiMatchProductId, csiMatchSwitchNum, csiMatchSwitchProductId, csiMatchHostAddressType, csiMatchHostAddress, csiMatchHostInterface, csiMatchMacAddress, csiMatchStorageType, csiMatchRowStatus } STATUS current DESCRIPTION "A collection of objects which are used to configure the profile for clients." ::= { ciscoSmartInstallGroups 4 } ciscoSmartInstallDeviceInformationGroup OBJECT-GROUP OBJECTS { csiDeviceMacAddress, csiDeviceAddressType, csiDeviceAddress, csiDeviceName, csiDeviceBackupConfigFileName, csiDeviceImageVersion, csiDevicePlatform, csiDeviceSerialNum, csiDeviceStatus } STATUS current DESCRIPTION "A collection of objects that provide information about devices in a Smart Install network." ::= { ciscoSmartInstallGroups 5 } ciscoSmartInstallNotificationEnableGroup OBJECT-GROUP OBJECTS { csiNotifEnable } STATUS current DESCRIPTION "A collection of objects for controlling (enabling/disabling) notifications to a management application." ::= { ciscoSmartInstallGroups 6 } ciscoSmartInstallNotificationsGroup NOTIFICATION-GROUP NOTIFICATIONS { csiOperationModeChange, csiDeviceAdded, csiDeviceLost, csiFileLoadFailed } STATUS current DESCRIPTION "A collection of notifications in this MIB module." ::= { ciscoSmartInstallGroups 7 } ciscoSmartInstallNotifyVarsGroup OBJECT-GROUP OBJECTS { csiNotifOperationType, csiNotifOperationResult } STATUS current DESCRIPTION "A collection of objects used for notifications." ::= { ciscoSmartInstallGroups 8 } END