IBM-BCCUSTOM-MIB DEFINITIONS ::= BEGIN IMPORTS DisplayString, TEXTUAL-CONVENTION FROM SNMPv2-TC Integer32, OBJECT-IDENTITY, OBJECT-TYPE, IpAddress, enterprises FROM SNMPv2-SMI InetAddress FROM INET-ADDRESS-MIB; ibm OBJECT IDENTIFIER ::= { enterprises 2 } ibmProd OBJECT IDENTIFIER ::= { ibm 6 } bcCustom MODULE-IDENTITY LAST-UPDATED "201310151730Z" ORGANIZATION "Brocade Communications Systems, Inc.," CONTACT-INFO "Customer Support Group Brocade Communications Systems, 1745 Technology Drive, San Jose, CA 95110 U.S.A Tel: +1-408-392-6061 Fax: +1-408-392-6656 Email: support@Brocade.COM WEB: www.brocade.com" DESCRIPTION "The MIB module is to get the details of Pharos Embedded switch. copyright (c) 1996-2003 Brocade Communications Systems, Inc. All rights reserved." REVISION "201310151730Z" -- Oct 15, 2013 05:30pm DESCRIPTION "Initial version of this module." ::= { ibmProd 215 } bcCustomMibVersion OBJECT-IDENTITY STATUS current DESCRIPTION "The OID subtree for version information" ::= { bcCustom 1 } ports OBJECT-IDENTITY STATUS current DESCRIPTION "The OID subtree for Portmodule details" ::= { bcCustom 2 } firmware OBJECT-IDENTITY STATUS current DESCRIPTION "The OID subtree for Firmware operations" ::= { bcCustom 3 } files OBJECT-IDENTITY STATUS current DESCRIPTION "The OID subtree for various file operations" ::= { bcCustom 4 } protocols OBJECT-IDENTITY STATUS current DESCRIPTION "The OID subtree for various protocol configuration operations" ::= { bcCustom 5 } snmpuser OBJECT-IDENTITY STATUS current DESCRIPTION "The OID subtree for SNMPV3 user configuration operations" ::= { bcCustom 6 } license OBJECT-IDENTITY STATUS current DESCRIPTION "The OID subtree for feature license key configuration operations" ::= { bcCustom 7 } mibCustomVersion OBJECT IDENTIFIER ::= { bcCustomMibVersion 1 } mibMajorMinor OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The MIB major and minor version number is a 4 byte value of the form xx:xx:yy:yy. The higher 2 byte (xx:xx) is for the major version number. The lower 2 byte (yy:yy) is for the minor version number. Rule of MIB Version: Major: Incremented by one every time a new object is added. When the Major number is incremented the Minor number should be reset and start at the value 1. Minor: Increment by one only when an object is modified and no new object(s) are added." ::= {mibCustomVersion 1} -- Switch Global iomGlobal OBJECT IDENTIFIER ::= { bcCustomMibVersion 2 } -- Switch capability iomCapability OBJECT-TYPE SYNTAX INTEGER(0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The AMM will use this object read the IOM capabilities. The IOM must set its capabilities prior to its POST transition. The unsigned INTEGER value will be treated as the 32 bits in network byte order. That is the bit 0 will be the left most bit and bit 31 will be the right most bit. The bit pattern definition is defined as below. Bit(31): IOM Mode Changeable: Set to 1, IOM supports to change its operation mode. Bit(30): Reserved for Port Based VLAN: Set to 1, IOM supports port based VLAN. Bit(29): Reserved for Port Statistics: Set to 1, IOM supports port statistics. Bit(28): Firmware group: Set to 1, IOM supports firmware group MIB objects. Bit(27): Files group: : Set to 1, IOM supports files group MIB objects. Bit(26): Reserved for VLAN group: Set to 1, IOM supports system vlan group MIB objects. Bit(25): Protocols: Set to 1, IOM supports protocols group MIB objects. Bit(24): Port Information: Set to 1, IOM supports port information group MIB objects. Bit(23): Feature License Information:Set to 1, IOM supports license key status reporting group MIB objects. Bit(22): PCI Adapter Inventory Information: Set 626 to 1, IOM supports reporting of PCI Adapter Inventory group MIB objects. Note: applicable for a PCIe IOM only. Bit(0-21): Reserved: must be set to zeroes." ::= {iomGlobal 1} iomMode OBJECT-TYPE SYNTAX INTEGER { managedSwitchMode(1), passthruNativeMode(2), passthruEnhanceMode(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "This MIB object provides the ability to read and write the current operation mode of operation of the IOM" ::= {iomGlobal 2} portInformation OBJECT IDENTIFIER ::= { ports 1 } -- Port Module Information Table portInformationTable OBJECT-TYPE SYNTAX SEQUENCE OF PortInformationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Table that contains port information for the I/O Module." ::= { portInformation 1 } -- Make the portModuleIndex and portModuleType as key of the OID portInformationEntry OBJECT-TYPE SYNTAX PortInformationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "I/O Module port entry" INDEX { portModuleIndex, portModuleType } ::= { portInformationTable 1 } -- Port Module Information Table contain PortInformationEntry ::= SEQUENCE { portModuleIndex INTEGER, portModuleType INTEGER, portModuleLinkState INTEGER, portModuleLabel OCTET STRING, portModuleSpeed INTEGER, portModuleMedia INTEGER, portModuleProtocol INTEGER, portModuleTotal INTEGER, portModuleSpeedList OCTET STRING, portModuleReal INTEGER, portModuleRelative INTEGER, portModuleLaneCount INTEGER, portModuleCableLength INTEGER, portModuleCableManufacturer OCTET STRING, portModuleCableCompatiblity INTEGER, portModuleCableType OCTET STRING, portModuleDataRate INTEGER, portModuleLicensedState INTEGER } -- Port Module Information - Port index portModuleIndex OBJECT-TYPE SYNTAX INTEGER(0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "I/O Module port sequence index." ::= { portInformationEntry 1 } -- Port Module Information - Port type portModuleType OBJECT-TYPE SYNTAX INTEGER { unUsed(0), externalPort(1), externalManagementPort(2), externalDualPort(3), bladePort(4), mmManagementPort(5), uplinkPort(6), interModulePort(7), interModuleManagementPort(8), interModuleDualPort(9), interModuleExternalBridgePort(10), interModuleInternalBridgePort(11) } MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates the given port type of the I/O Module. The definitions of port types are: unUsed: the value of zero indicates the request is for a real port index of the IOM in the OID. In the port type GET operation, the return value of zero means the port is not used for anything. externalPort: This port is connected to an external device and is for data traffic. externalManagementPort: This port is solely for an external management connection. This port is not used for data traffic from an external device externalDualPort: This port is used for both data traffic as well as for management traffic. bladePort : This port is connected to a blade. mmManagementPort: This port is connected to the Management Module. uplinkPort: This port is configured for up link functionality. interModulePort(: This port is connected to another I/O Module for data. interModuleManagementPort: This port is connected to another I/O Module for management purpose. interModuleDualPort: The port is connected to another I/O Module and can be used for both data and management purpose. interModuleExternalBridgePort: This port is an external bridge port that connects to another bridge. interModuleInternalBridgePort: This port is an internal bridge port that connects to chassis bridge module. To get the port type of a given port, the port type in OID must be zero and the port command in the OID is 2. For an example: To get a port type of the real port index 7, the OID would be: 1.3.6.1.4.1.2.6.215.2.1.1.1.2.7.0 and the result should be 4 (bladePort)." ::= { portInformationEntry 2 } -- Port Module Information - Port link state portModuleLinkState OBJECT-TYPE SYNTAX INTEGER { down(0), up(1), initialized(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "The current port link state of the I/O Module. down: the physical port is down or off. up: the physical port 817 is up and active initialized: the physical port has completed initializion but is not active yet." ::= { portInformationEntry 3} -- Port Module Information - Port label portModuleLabel OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..128)) MAX-ACCESS read-write STATUS current DESCRIPTION "The port string label of the I/O module. The IOM may allow for the port label to be configured from the I/O Modules user interface but the default port label must reflect.port type description as defined below: Unused port External port External Management port External Dual port Blade port MM Management port Up-Link port Interconnect Modular port Interconnect Modular Management port Interconnect Modular Dual port The write ACCESS will allow AMM to change the port label as needed." ::= { portInformationEntry 4 } -- Port Module Information - Port Speed portModuleSpeed OBJECT-TYPE SYNTAX INTEGER { autoduplex(0), hundred-Mbpsfullduplex(1), one-Gbpsfullduplex(10), two-Gbpsfullduplex(20), four-Gbpsfullduplex(40), six-Gbpsfullduplex(60), eight-Gbpsfullduplex(80), ten-Gbpsfullduplex(100), fourteen-Gbpsfullduplex(140), sixteen-Gbpsfullduplex(160), twenty-Gbpsfullduplex(200), fourty-Gbpsfullduplex(400), fivtysix-Gbpsfullduplex(560), sixty-Gbpsfullduplex(600), eighty-Gbpsfullduplex(800), hundred-Gbpsfullduplex(1000), hundredandtwelve-Gbpsfullduplex(1120), hundredandsixtyeight-Gbpsfullduplex(1680) } MAX-ACCESS read-write STATUS current DESCRIPTION "The INTEGER value will indicate the current speed of the port. The INTEGER values are defined as follows: A signed value is Half duplex, A unsigned value is FULL Duplex. The value is the speed in multiple of 100 Mbps. The value of 0 is special for AUTO Speed, Auto Duplex. For example: 0: (SET) Auto Speed, Auto Duplex, GET (Not available due to link down) -1: 100 Mbps Half Duplex 1: 100 Mbps FULL Duplex 10: 1 Gbps FULL Duplex 20: 2 Gbps FULL Duplex 40: 4 Gbps FULL Duplex. 60: 6 Gbps FULL Duplex. 80: 8 Gbps FULL Duplex 100: 10 Gbps FULL Duplex 140: 14 Gbps FULL Duplex 160: 16 Gbps FULL Duplex 200: 20 Gbps FULL Duplex 400: 40 Gbps FULL Duplex 560: 56 Gbps FULL Duplex 600: 60 Gbps FULL Duplex 800: 80 Gbps FULL Duplex 1000: 100 Gbps FULL Duplex 1120: 112 Gbps FULL Duplex 1680: 168 Gbps FULL Duplex The value of zero is invalid in the get operation but it is valid in the set operation (Zero is the value used for a set operation for Auto Speed, Auto Duplex )." ::= { portInformationEntry 5 } -- Port Module Information - Port Media8 portModuleMedia OBJECT-TYPE SYNTAX INTEGER { copper(0), serdes(1), opticalShortHaul(32), opticalInterHaul(40), opticalLongHaul(48), other(255) } MAX-ACCESS read-only STATUS current DESCRIPTION "The port media type of the I/O Module." ::= { portInformationEntry 6 } -- Port Module Information - Port Protocol portModuleProtocol OBJECT-TYPE SYNTAX INTEGER { ethernet(16), fibreChannel(32), scalability(48), infiniband(64), pciExpress(80), myrinet(112), serial(120) } MAX-ACCESS read-only STATUS current DESCRIPTION "The port protocol of the I/O Module." ::= { portInformationEntry 7 } -- Port Module Information – Total port available portModuleTotal OBJECT-TYPE SYNTAX INTEGER(0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "This value must return the the total number of ports supported on the IOM. This value must be customized Note: When an IOM supports the ability to activate additional ports supported by the IOM hardware by installing a license key then this OID can be set in two different ways, such that the CMM firmware will handle displaying the port information correctly. (1) The IOM firmware will account for both activated and un-activated ports due to the current installed license key and set the 'Total port available' equal to the activated ports only. (2) The IOM firmware does not differentiate and account for both activated and un-activated ports due to the current installed license key and set the 'Total port available' equal to the maximum supported ports by the IOM hardware. In addition the OID 'portModuleLabel' for a non-activated port must be set to 'Unused' and the 'portModuleLicensedState' must be set to 'notLicensed'. Although the CMM will handle either (1) or (2) above the IOM should implement (1) to assist the CMM user interface response time when displaying port information for the IOM. When an IOM implements (2) this will increase the CMM response time since this will require the CMM to issue more SNMP get operations for the various port information OID's and then discard the information for the user interface." ::= { portInformationEntry 8 } -- Port Module Information – Port Speed list portModuleSpeedList OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..128)) MAX-ACCESS read-only STATUS current DESCRIPTION "The string contains all the available speed settings that is applicable to the port. It is a special format so the application can parse the string to obtain all the possible speed settings. The speeds supported are define by 927 a token inside the pair of <> brackets. Inside the bracket there are two parts: the speed number which is the multiple of 100 Mbps and a word either HALF or FULL. For examples: <1 HALF> indicates 100 Mbps Half Duplex. <1 FULL> is 100 Mbps Full Duplex. <10 FULL> is 1 Gbps FULL Duplex. <20 FULL> is 2 Gbps FULL Duplex. <40 FULL> is 4 Gbps FULL Duplex <60 FULL> is 6 Gbps FULL Duplex <80 FULL> is 8 Gbps FULL Duplex <100 FULL> is 10 Gbps FULL Duplex. <140 FULL> is 14 Gbps FULL Duplex. <160 FULL> is 16 Gbps FULL Duplex. <200 FULL> is 20 Gbps FULL Duplex <400 FULL> is 40 Gbps FULL Duplex <560 FULL> is 56 Gbps FULL Duplex <600 FULL> is 60 Gbps FULL Duplex. <800 FULL> is 80 Gbps FULL Duplex. <1000 FULL> is 100 Gbps FULL Duplex. <1120 FULL> is 112 Gbps FULL Duplex. <1680 FULL> is 168 Gbps FULL Duplex. is a special token to indicate Auto Speed, Auto Duplex. is a special token to mark the end of the list. The format of the string is The first token is always the current setting of the port. examples: <1 HALF><1 FULL><10 FULL><40 FULL><100 FULL> The example shows the port is currently set as AUTO. The port can be set to any value of Auto, 100 Mbps Half Duplex, 100 Mbps Full Duplex, 1 Gbps Full Duplex, 4 Gbps Full Duplex, and 10 Gbps Full Duplex." ::= { portInformationEntry 9 } -- Port Module Information – Relative port index to real port index -- This object is to map to relative port index to the real port index. -- The caller will supply the relative port index and the server will return the real port index. -- For an example in the table above, if the caller supply the relative port index information -- of external port index 3, the server will return value of 19 which is the real port index of -- that relative port. The OID of the caller would be 1.3.6.1.4.1.2.6.215.2.1.1.1.10.3.1 -- The return value from server is 19. portModuleReal OBJECT-TYPE SYNTAX INTEGER(0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "To map from relative port index based on port type to the real port index of the server." ::= { portInformationEntry 10 } -- Port Module Information – Real port index to relative port index -- This object is to map to real port index to the relative port index. -- The caller will supply the real port index and the server will return the relative port index. -- For an example in the table above, if the caller supply the real port index 16, the server will -- return value of 2 which is the relative port index of that port (Management 982 port). The server -- only return the relative port index not the port type. The caller will use another call -- to determine to port type so it can determine which port index 2 is for which port type. -- The OID of the caller would be 1.3.6.1.4.1.2.6.215.2.1.1.1.11.16.0 -- The return value from server is 2. portModuleRelative OBJECT-TYPE SYNTAX INTEGER(0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "To map from real port index to the relative port index of the server." ::= { portInformationEntry 11 } -- Port Module Information - Port Lane Count portModuleLaneCount OBJECT-TYPE SYNTAX INTEGER { onex(1), twox(2), fourx(4), eightx(8), twelvex(12), sixteenx(16) } MAX-ACCESS read-only STATUS current DESCRIPTION "The value represents the number of lanes supported by the port." ::= { portInformationEntry 12} -- Port Module Information - Port External Cable Length portModuleCableLength OBJECT-TYPE SYNTAX INTEGER(0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The length (in meters) of the cable supported by this port." ::= { portInformationEntry 13} -- Port Module Information - Port External Cable Manufacturer portModuleCableManufacturer OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..128)) MAX-ACCESS read-only STATUS current DESCRIPTION "A string that contains the cable manufacturer. The name cannot exceed 64 1028 octets." ::= { portInformationEntry 14} -- Port Module Information - Port External Cable Compatiblity portModuleCableCompatiblity OBJECT-TYPE SYNTAX INTEGER { incompatible(0), compatible(1), compatibleButNotRecommnded(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates the compatibility of the external cable which is currently plugged into this port." ::= { portInformationEntry 15} -- Port Module Information - Port External Cable Type portModuleCableType OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..128)) MAX-ACCESS read-only STATUS current DESCRIPTION "A string that designates the external cable type for this port. The name cannot exceed 64 octets. For example, Active Copper, Passive Copper, Active Fibre, Passive Fibre." ::= { portInformationEntry 16} -- Port Module Information - Port Data Rate portModuleDataRate OBJECT-TYPE SYNTAX INTEGER { sdr(0), ddr(1), qdr(2), edr(3), fdr(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "The value represents the data rate supported for this port. SDR (single data rate), DDR (double data rate), QDR (quad data rate), EDR (enhanced data rate), FDR (fourteen data rate)." ::= { portInformationEntry 17} -- Port Module Information - Port License State portModuleLicensedState OBJECT-TYPE SYNTAX INTEGER { notApplicable(0), notLicensed(1), licensed(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "The value represents the port license state. If this port is a base port that does not require a license key then the state will always indicate notApplicable. If the port needs to be enabled by a license key then the state may be licensed or not licensed depending on if the license key is installed." ::= { portInformationEntry 18} firmwareOps OBJECT IDENTIFIER ::= { firmware 1 } -- Firmware Image Information Table fwInformationTable OBJECT-TYPE SYNTAX SEQUENCE OF FwInformationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Table of Firmware Image information." ::= { firmwareOps 1 } fwInformationEntry OBJECT-TYPE SYNTAX FwInformationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "I/O Module Firmware Image entry" INDEX { fwImageIndex } ::= { fwInformationTable 1 } -- Firmware Image Information Table contain FwInformationEntry ::= SEQUENCE { fwImageIndex INTEGER, fwImageInformation OCTET STRING, fwImageFileLocation INTEGER, fwImageProtocols OCTET STRING, fwImageIsUpdateable INTEGER } -- Firmware Image Information index fwImageIndex OBJECT-TYPE SYNTAX INTEGER(0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "Firmware Image index." ::= { fwInformationEntry 1 } -- Firmware Image Information fwImageInformation OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..1024)) MAX-ACCESS read-only STATUS current DESCRIPTION "Information about the image - This string must follow the format below: Version: %s\n, Rel-Date: %s\n, Status: %s\n, Type: %s\n, Size: %s\n, Other-Info: %s\n\ Version: The version of the image and should match firmware VPD information. Rel-Date: The release date of the image which should match firmware VPD information of form MM/DD/YYYY. Status: To show if the image is currently Active or Not-Active (backup image ) or Reboot-Active (requires reboot to become active image) and should match firmware VPD information. Type: Boot Rom, Application, Bundled, Diagnostic, Generic Firmware which should match firmware VPD information. A Boot Rom or Application or Diagnostic or Generic image should be used to designate that the image is a single file when updates are performed for the targeted type of firmware. A Bundled image type would be used to designate that the file contains multiple firmware update packages. This should be used if all images in the bundled image have the same version, Release date, . If a bundled image then the image types included in the bundle must be listed in the Other Info. Size: Size of image in KB (Kilobyte) rounded to next 1KB increment. (Note: the MM will read the size of the current image in the IOM and if the size exceeds the allowable space on the MMs internal file system then the MM will not allow the file to be uploaded. In addition if the current image file size is within the limits of the MMs file system but the MM determines the new update image on an external server would exceed the MMs internal file systems allocation then the MM will fail the update. In this case the user on the MM will have to directly transfer the image to the IOM and not use the MMs file system as a source for the update. Other-Info: Any additional information that the IOM wishes to provide. String example 1: (Bundled image that is expanded on IOM) Version: 20.2.2.9, Rel Date: 09/26/2011, Type: Bundled, Status: Active, Size:27500KB, Other Info: Contains Boot ROM and Application images. String example 2: (Application image that is the backup image) Version: 20.1.0.20, Rel Date: 02/27/2012, Type: Application, Status: Not- Active, Size:1200KB, Other Info: None String example 3: (Application image that will become the active image on next reboot) Version: 20.1.0.25, Rel Date: 05/20/2012, Type: Application, Status: Reboot- Active, Size:1200KB, Other Info: None The format of the Firmware Image Information is very important and must be strictly followed. It is intended for other applications to parse and make use of the information. The string is made up of many parts of text information. Each part has the format of the form Token: information_string\n,. Each part consists of a token followed by token information. The end of each part is marked by a new line character, and a comma or a null character. The total length of the string cannot exceed 256 octets." ::= { fwInformationEntry 2 } -- Firmware Image File Location fwImageFileLocation OBJECT-TYPE SYNTAX INTEGER { mmServer(0), externalServerRequired(1) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates whether the IOM implementation of firmware updates has requirements on the server that would prevent the MM acting as the server for the image file(s). If there are no unique requirements then mmIsServer will not be set and one of the other enumerations will need to be set. - If the IOM firmware update requires the update file to be un-compressed on the server before transfer to the IOM then externalServerRequired must be set by IOM. - If the IOM firmware update is larger than 100MB the externalServerRequired must be set by IOM. Additional reasons for restrictions may be added 1198 in the future." ::= { fwInformationEntry 3 } -- Firmware image update protocols enabled fwImageProtocols OBJECT-TYPE SYNTAX OCTET STRING (SIZE(0..32)) MAX-ACCESS read-only STATUS current DESCRIPTION "The CMM will use this command to read the current supported and enabled IOM file transfer protocols. The bit mask is treated as 32 bits in network byte order. 1310 That is the bit 0 will be the left most bit and bit 31 will be the right most bit. The bit pattern definition is defined as below. Supported Bit Mask (Bits 31:16): Bit(31): This bit is set to 1 if TFTP is supported. Bit(30): This bit is set to 1 if FTP is supported Bit(29): This bit is set to 1 if SFTP (via SSH) is supported Bit(28): This bit is set to 1 if HTTP is supported. Bit(27): This bit is set to 1 if HTTPs is supported Bit(26:16): Reserved: must be set to zeroes. Enabled Bit Mask (Bits 15:0): Bit(15): This bit is set to 1 if TFTP is enabled. Bit(14): This bit is set to 1 if FTP is enabled Bit(13): This bit is set to 1 if SFTP (via SSH) is enabled. Bit(12): This bit is set to 1 if HTTP is enabled. Bit(11): This bit is set to 1 if HTTPs is enabled Bit(10:0): Reserved: must be set to zeroes. ." ::= { fwInformationEntry 4} --Firmware Image Updateable fwImageIsUpdateable OBJECT-TYPE SYNTAX INTEGER { updateable(0), notupdateable(1) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates whether the firmware image index can be updated separately using one of the indicated file transfer mechanisms from 'fwImageProtocol'. If this specific image cannot be updated then IOM must return 'notupdateable' otherwise IOM must return updateable'." ::= { fwInformationEntry 5} -- Firmware Filename firmwareCmd OBJECT IDENTIFIER ::= { firmwareOps 2 } firmwareImageCnt OBJECT-TYPE SYNTAX INTEGER(0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The I/O Module must indicate the number of firmware images that can be updated. For example a value of 0 should be used if no images can be updated, a value of 1 should be used if 1 firmware image can be updated." ::= { firmwareCmd 1 } firmwareImageNum OBJECT-TYPE SYNTAX INTEGER(0..65535) MAX-ACCESS read-write STATUS current DESCRIPTION "This value indicates the image number that will be updated. For example, if the value is 2, that means firmware image 2 must be updated on the I/O Module. This value is write only by MM to the I/O Module." ::= { firmwareCmd 2 } -- Firmware action firmwareAction OBJECT-TYPE SYNTAX INTEGER { unknown(0), get(1), rsvd2(2), rsvd3(3), rsvd4(4), rsvd5(5), rsvd6(6), rsvd7(7), rsvd8(8), rsvd9(9), rsvd10(10) } MAX-ACCESS read-write STATUS current DESCRIPTION "The action the I/O Module must take for the firmware update operation.Upon receiving this command IOM must immediately execute the operation with all the necessary information which was preset prior to receiving this request" ::= { firmwareCmd 3 } -- Firmware Update operation status fwUpdateOperationStatus OBJECT-TYPE SYNTAX INTEGER { noOperation(0), success(101), failure(201) } MAX-ACCESS read-only STATUS current DESCRIPTION "The status of the firmware update operation 0: No operation pending. 1-100: the percentage of completion of the update operation. 101: success. 201: failed" ::= { firmwareCmd 4 } -- Firmware update operation 1252 status string firmwareServer OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..128)) MAX-ACCESS read-only STATUS current DESCRIPTION "This is a string of information about the final result of firmware update operation. It will further qualify in detail the information provided by the firmware update operation status and provide a text string indicating if the operation was successful or not successful. When the operation has completed successfully then the text string Success should be used. When the operation is not successful then a text string such as Failed to contact server or Image was not valid, would be appropriate to explain the reason for the failure." ::= { firmwareCmd 5 } -- Firmware Update – Image activation fwUpdateImageActivation OBJECT-TYPE SYNTAX INTEGER(0..65535) MAX-ACCESS read-write STATUS current DESCRIPTION "This value indicates which image index that the I/O Module must immediately activate." ::= { firmwareCmd 6 } -- Firmware update URI string fwUpdateImageUri OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..512)) MAX-ACCESS read-write STATUS current DESCRIPTION "This is a URI string specifies the protocol and various location parameters to be used by the switch to perform a get operation using any of the supported protocols TFTP, FTP, sFTP. SFTP and FTP are mandatory and TFTP is recommended to support various user update tools. The IOM must report the protocols supported for the level of executing firmware in the IOM capabilities field of the VPD EEPROM. In this context the CMM (or remote host) acts as the server and the IOM acts as the client. The format of this string is as follows: ://:@// An example of a URI for the firmware packet file would be: ftp://USERID:PASSW0RD@192.168.0.2:30045/tmp/1308 application.img1 or ftp://USERID:PASSW0RD@[fe80::290:27ff:fe29:6019]:30045/tmp/application.img or sftp://USERID:PASSW0RD@192.168.0.2:30045/tmp/application.img or sftp://USERID:PASSW0RD@[fe80::290:27ff:fe29:6019]:30045/tmp/application.img where the FTP or sFTP protocol will be used for transferring the packet file, username is USERID, password is PASSW0RD, host IP address is either fe80::290:27ff:fe29:6019 or 192.168.0.2, port number is 30045, and /tmp is the full pathname to the packet file application.img. Note: The URI may or may not have a port number. If the port number is not included the default port number for that protocol will be used. Some protocols do not need the username, password, and the port number, so the minimum requirement for a fully qualified address would be: :/// An example of a fully qualified address for the firmware packet file can be: tftp://192.168.0.2:2022/tmp/application.img. ote: (1) the MM will set the URI to the IOM. This URI may point to a server that is internal to the chassis with an IP address/hostname or if the server is external to the chassis then a public IP address/ hostname. Therefore the IP address of the server may or may not be the MMs IP address. In addition when a public IP address/hostname is used the filename in the URI may point to the top level directory that contains many files that make up the firmware image and the IOM is responsible to accept or reject this operation and indicate this by utilizing the status OID. Notes on sftp file transfers: (3) Summary: CMM will provide to the IOM the fingerprint of the CMM sftp server's public key as part of the other parameters in the URI for the file transfer. (4) CMM 'sets' to the IOM the URI which will contain the fingerprint (128bit MD5 fingerprint). For example assume the 128bit MD5 fingerprint of the 1024-bit RSA key is '00:6d:75:9e:f3:38:2b:6b:2e:e7:a8:87:9f:ea:26:03'. CMM issues a 'set' of the URI to the IOM of form: ://:;@://://:@:// An example of a fully qualified address for the firmware packet file would be: ftp://USERID:PASSW0RD@192.168.0.2:30045/tmp/service.log or ftp://USERID:PASSW0RD@[fe80::290:27ff:fe29:6019]:30045/tmp/service.log or sftp://USERID:PASSW0RD@192.168.0.2:30045/tmp/service.log or sftp://USERID:PASSW0RD@[fe80::290:27ff:fe29:6019]:30045/tmp/service.log where the FTP or sFTP protocol will be used for transferring the packet file, username is USERID, password is PASSW0RD, host IP address is fe80::290:27ff:fe29:6019 or 192.168.0.2, port number is 30045, and /tmp is the full pathname to the packet file service.log. Note: The URI may or may not have a port number. If the port number is not included the default port number for that protocol will be used. Some protocols do not need the username, password, and the port number, so the minimum requirement for a fully qualified address would be: :/// An example of a fully qualified address for the firmware packet file can be: tftp://192.168.0.2:2022/1527 tmp/service.log Note: CMM sets the systemFileCmdUri to provide the URI that includes the IP address, protocol, filename.filetype and any authentication parameters. a. If the IOM currently has a file contained in the IOM's file-system then the URI will contain the appropriate filename.filetype b. If the IOM does not generate the file until the file transfer, the CMM will create the URI with a prefix filename.filetype such as IOM3_service_.txt. The IOM is then responsible to parse the file name for a the category of file being requested by the CMM (_'service_' or '_config_' or '_syslog_'). Then concatenate to the MM's created prefix the IOM's VPD part-number and a timestamp. For example the IOM would use the prefix created by CMM 'IOM3_service_.txt' to 'IOM3_service_02R1014_20110916-004651.tgz'. (generic format is; _service__- Note: file-type used is completely up to the IOM. Notes on sftp file transfers: (1) Summary: CMM will provide to the IOM the fingerprint of the CMM sftp server's public key as part of the other parameters in the URI for the file transfer. (2) CMM 'sets' to the IOM the URI which will contain the fingerprint (128bit MD5 fingerprint). For example assume the 128bit MD5 fingerprint of the 1024-bit RSA key is '00:6d:75:9e:f3:38:2b:6b:2e:e7:a8:87:9f:ea:26:03'. CMM issues a 'set' of the URI to the IOM of form: ://:;@://::::. The must be an INTEGER between 1 and 65534. must be M which signify MD5 encryption. The is the actual value of the authentication key (symmetric) as configured on the NTP server. A SET operation can set the . A GET operation returns back data in the format: :: and does not return the encryption actual key value." ::= { ntpConfig 5 } ntpv3AuthEnable OBJECT-TYPE SYNTAX INTEGER { disabled(0), enabled(1) } MAX-ACCESS read-write STATUS current DESCRIPTION "Enables/Disables NTPv3 authentication" ::= { ntpConfig 6 } -- SNMPv3 Configuration -- These objects allow for the use of EHCM to configure one additional SNMPv3 user account for -- a given IOM that can be utilized by an external application for receiving traps from an IOM<92>s -- SNMP agent or performing get/set operations directly to the IOM<92>s SNMP agent. iomSnmpv3Cfg OBJECT IDENTIFIER ::= { snmpuser 1 } iomSnmpv3UserName OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..32)) MAX-ACCESS read-write STATUS current DESCRIPTION "String that contains the SNMPv3 userid. Note: this IOM<92>s SNMPv3 user account configuration must not be allowed to be altered from any of the IOM UI<92>s." ::= { iomSnmpv3Cfg 1 } iomSnmpv3UserAuthProtocol OBJECT-TYPE SYNTAX INTEGER { sha (1) } MAX-ACCESS read-write STATUS current DESCRIPTION "SNMPv3 - Authentication Protocol supported by the user. The only allowed protocol is <91>SHA<92>." ::= { iomSnmpv3Cfg 2 } iomSnmpv3UserAuthPassword OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..32)) MAX-ACCESS read-write STATUS current DESCRIPTION "SNMPv3 User - Authentication password string. Notes: (1) The MM does not validate the contents of the password against any password security rules, the IOM is responsible for validation and may fail the set of this object, (2) value returned for a <91>get<92> request is null for security reasons." ::= { iomSnmpv3Cfg 3 } iomSnmpv3UserPrivacyProtocol OBJECT-TYPE SYNTAX INTEGER { aes (1) } MAX-ACCESS read-write STATUS current DESCRIPTION "SNMPv3 - Privacy Protocol supported by the user. The only allowed protocol is <91>AES<92>." ::= { iomSnmpv3Cfg 4 } iomSnmpv3UserPrivacyPassword OBJECT-TYPE SYNTAX OCTET STRING (SIZE(0..32)) MAX-ACCESS read-write STATUS current DESCRIPTION "SNMPv3 User - Privacy password string. Notes: (1) The MM does not validate the contents of the password against any password security rules, the IOM is responsible for validation and may fail the set of this object, (2) value returned for a <91>get<92> request is null for security reasons.." ::= { iomSnmpv3Cfg 5 } iomSnmpv3UserAccessType OBJECT-TYPE SYNTAX INTEGER { no-access(0), get-traps(1), get-set-traps(2), traps-only(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "SNMPv3 User Access level (Get, Set, and Traps) of the user." ::= { iomSnmpv3Cfg 6 } iomSnmpv3UserIPv6TrapAddress OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..255)) MAX-ACCESS read-write STATUS current DESCRIPTION "Trap destination IPv6 address. Note: This address represents the address that will be used by an external application for receiving SNMPv3 traps directly from the IOM<92>s SNMPv3 agent user account that has been configured in the user account OID(s) (iomSnmpv3User..). This address is in addition to the MM<92>s IP address and does not override or replace that trap address. This value is normally set to zero and will only be set when the external application request the MM to set to a valid IP address. A value of all zeroes indicates no address is configured. Both IPv4 and IPv6 addresses can be set and if they are then the IOM must send traps to both the IPv4 and IPv6 address. The format will be a string with a generic format of the IPv6 address as follows: <91>abcd:abcd:abcd:abcd:abcd:abcd:abcd:abcd<92>, also may be the compressed IPv6 address format, for example fe80::211:25ff:fec3:d364 ." ::= { iomSnmpv3Cfg 7 } iomSnmpv3UserIPv4TrapAddress OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-write STATUS current DESCRIPTION " Trap destination IP4 address. Note: This address represents the address that will be used by an external application for receiving SNMPv3 traps directly from the IOM<92>s SNMPv3 agent user account that has been configured in SNMPv3 user account OID(s) (iomSnmpv3User). This address is in addition to the MM<92>s IP address and does not override or replace that trap address. This value is normally set to zero and will only be set when the external application request the MM to set to a valid IP address. Both IPv4 and IPv6 addresses can be set and if they are then the IOM must send traps to both the IPv4 and IPv6 address. A value of all zeroes indicates no address is configured. For example for a valid IPv4 address <91>9.72.217.85<92>, this would be represented as <91>0948d955<92>." ::= { iomSnmpv3Cfg 8 } iomSnmpv3UserState OBJECT-TYPE SYNTAX INTEGER { disabled(0), enabled(1) } MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates the state of the user: Enabled or Disabled. The sequence of creating and enabling a user account or changing various OID<92>s of the SNMPv3 user account will be as follows: (1) Set the <91>iomSnmpv3UserState<92> to disabled. (2) Configure all the appropriate v3 user account information and trap address objects. (3) Set the <91>snmpv3UserState<92> to enabled. When the IOM receives a set to enable, the IOM is responsible to validate that all the SNMPv3 user objects are valid to create a functioning v3 user account. If they are not then the response to this set should fail as described in (4). (4) If all objects have been set correctly the response to this object will be <91>success<92> otherwise the response will indicate failure. Note: enforcing disabling then enabling the user account will ensure no partial account will be configured in the IOM SNMP agent." ::= { iomSnmpv3Cfg 9 } iomSnmpv3UserStateStatusString OBJECT-TYPE SYNTAX OCTET STRING (SIZE(4)) MAX-ACCESS read-only STATUS current DESCRIPTION " This object will be a bit string that contains detailed information about the SNMPv3 user account status. The intent is that the information string will be passed to the external application in the event that the MM set an <91>enable<92> state using the object <91>iomSnmpv3UserState<92> and the response to the write of that object was a failure due to an invalid account parameter. The bit string in this object is only to be used by the MM for the case above, otherwise the data is not guaranteed to be accurate. The bit mask is treated as 32 bits in network byte order. That is the bit 0 will be the left most bit and bit 31 will be the right most bit. The bit pattern definition is defined as below: Bit(8:31): reserved must be set to zeroes. Bit(8): Set to 1 to indicate the IPv6 trap address is invalid. Bit(7): Set to 1 to indicate the IPv4 trap address is invalid Bit(6): Set to 1 to indicate the access type is invalid or not set. Bit(5): Set to 1 to indicate the privacy 2486 password is invalid or not set Bit(4): Set to 1 to indicate the privacy protocol is invalid or not set. Bit(3): Set to 1 to indicate 1 the authentication password is invalid or not set. Bit(2): Set to 1 to indicate the authentication protocol is invalid or not set. Bit(1): Set to 1 to indicate the user-name is invalid or not set. Bit(0): If this bit is set to <91>0<92> then this will indicate all account parameters are correct. The MM will then ignore all other bits within this object. If this bit is set to <91>1<92> then then at least one other bit must be set to indicate what specific account parameter(s) are invalid and caused the failed response to the <91>iomSnmpv3UserState<92> enable." ::= { iomSnmpv3Cfg 10 } iomSnmpv3TestTrap OBJECT-TYPE SYNTAX INTEGER { traptest(1) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object provides a mechanism to generate a <91>test trap<92>. A set of this object will only generate a <91>test trap<92> from the IOM If a valid SNMPv3 user account has been configured and is enabled. The trap information should specifically indicate that it contains an informational test event." ::= { iomSnmpv3Cfg 11 } iomSnmpv3tResetUser OBJECT-TYPE SYNTAX INTEGER { reset(1) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object provides a method to reset all the other objects that make up the SNMPv3 user account back to default values. This may be used for security reasons by the MM in order to provide a method to ensure the SNMPv3 user account is in a disabled state and all associated account information is back to default values (essentially at manufacturing reset values for the IOM). The following is a description of the expected account default values: - iomSnmpv3UserName - set to zero - iomSnmpv3UserAuthProtocol - set to '1' (sha) - iomSnmpv3UserAuthPassword - set to zero - iomSnmpv3UserPrivacyProtocol - set to '1' (aes) - iomSnmpv3UserPrivacyPassword - set to zero - iomSnmpv3UserAccessType - set to '0' (no-access) - iomSnmpv3UserIPv6TrapAddress - set to zero - iomSnmpv3UserIPv4TrapAddress - set to zero - iomSnmpv3UserState - set to '0' (disabled) - iomSnmpv3UserStateStatusString - set to zero" ::= { iomSnmpv3Cfg 12 } -- Feature License Key Information -- License Information Table licenseKeyInformationTable OBJECT-TYPE SYNTAX SEQUENCE OF LicenseKeyInformationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Table of License key information." ::= { license 1 } licenseKeyInformationEntry OBJECT-TYPE SYNTAX LicenseKeyInformationEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "License Key entry" INDEX { licenseKeyIndex } ::= { licenseKeyInformationTable 1 } -- License Key Information Table Entries LicenseKeyInformationEntry::= SEQUENCE { licenseKeyIndex INTEGER, licenseKeyDescStringInformation OCTET STRING, licenseKeyCurrentState INTEGER } licenseKeyIndex OBJECT-TYPE SYNTAX INTEGER(0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "License Key index." ::= {licenseKeyInformationEntry 1} licenseKeyDescStringInformation OBJECT-TYPE SYNTAX OCTET STRING(SIZE(0..1024)) MAX-ACCESS read-only STATUS current DESCRIPTION "Information about the system file - This string must follow the format below: Description: %s\n, Date-Time: %s\n, License-ID: %s\n, Other-Info: %s\n\0 Description: Description of the license key feature, for example NetCorp 12 Port License Key Upgrade for Fibre Switch. Date-Time: The date and time of the license key was installed in this format: mm/dd/yyyy hh:mm:ss. The hour is from 0-23. The time is based on GMT. License-ID: License ID, for example 222345K. Other-Info: Any additional information that the IOM wishes to provide about the key. String example 1:File Description: NetCorp 12 Port License Key Upgrade for Fibre Switch, Date-Time: 09/26/2008 14:35:21, License-ID: 222345K, Other Info: Test information. The format of the License Key Information is very important and must be strictly followed. It is intended for other applications to parse and make use of the information. The string is made up of many parts of text information. Each part has the format of the form Token: information_string\n,. Each part consists of a token followed by token information. The end of each part is marked by a new line character, and a comma or a null character. The total length of the string cannot exceed 256 octets." ::= {licenseKeyInformationEntry 2 } licenseKeyCurrentState OBJECT-TYPE SYNTAX INTEGER { unknown(0), valid(1), notValid(2), expired(3), usageExceeded(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "Provides information on the current state of the license" ::= {licenseKeyInformationEntry 3 } END