-- CISCO-ISCSI-GW-MIB.my: iSCSI-FC Gateway MIB
--
-- October 2002, Vinay Gaonkar
--
-- Copyright (c) 2002, 2003, 2004, 2005 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *********************************************************************

CISCO-ISCSI-GW-MIB DEFINITIONS ::= BEGIN

IMPORTS        
     MODULE-IDENTITY, OBJECT-TYPE, 
     Unsigned32, Counter64                  FROM SNMPv2-SMI 
     MODULE-COMPLIANCE, OBJECT-GROUP        FROM SNMPv2-CONF
     RowStatus, 
     TEXTUAL-CONVENTION,
     TruthValue                             FROM SNMPv2-TC
     SnmpAdminString                        FROM SNMP-FRAMEWORK-MIB 
     InterfaceIndex,ifIndex                 FROM IF-MIB
     ciscoMgmt                              FROM CISCO-SMI
     ListIndexOrZero, ListIndex, CiscoPort  FROM CISCO-TC
     FcNameId, FcNameIdOrZero, VsanIndex    FROM CISCO-ST-TC
     ScsiName,ScsiLUNOrZero, 
     ciscoScsiLuEntry                       FROM CISCO-SCSI-MIB
     cIscsiInstIndex, 
     cIscsiNodeAttributesEntry, 
     cIscsiInstanceAttributesEntry,
     cIscsiSessionAttributesEntry           FROM CISCO-ISCSI-MIB
     FcList                                 FROM CISCO-ZS-MIB;

ciscoIscsiGwMIB MODULE-IDENTITY
        LAST-UPDATED "200504290000Z"
        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-san@cisco.com"
        DESCRIPTION
                "MIB module for monitoring and configuring iSCSI 
                gateway functions. An iSCSI gateway represents FC 
                (Fibre Channel) targets/initiators as iSCSI 
                targets/initiators respectively and vice versa. It 
                means that an iSCSI target/initiator is presented to 
                the FC network as a virtual FC target/initiator which 
                can be accessed by the real FC initiators or can access
                real FC targets, respectively. 
                It is up to the gateway implementation how to represent 
                the targets/initiators in each of the domains. For 
                example, a gateway implementation may choose to 
                represent multiple FC targets either as one iSCSI target
                or multiple iSCSI targets (one to one). Same applies to 
                initiators also."

        REVISION   "200504290000Z"
        DESCRIPTION
            "Added new table ciscsiConnectionStatsTable.
             Added new group cigConnectionStatsGroup.
             Added new objects to IscsiIfEntry -
                 iscsiIfNumNormalConnections
                 iscsiIfNumDiscovConnections
                 iscsiIfTcpCWMEnable
                 iscsiIfTcpCWMBurstSize
                 iscsiIfTcpMaxJitter

             Added new objects to Iscsi2FcNodeEntry -
                iscsi2FcTargetUserName
                iscsi2FcTargetPassword

             Added new objects -
                iscsiTargetUserName and
                iscsiTargetPassword to ciScsiConfig, global
                Scsi configuration."

        REVISION   "200411160000Z"
        DESCRIPTION
            "Added new objects iscsiIfTcpRndTrpTimeEst.
             Added new group cigIscsiIfGroupRev4.
             Added new object iscsiIfTcpLocalTcpPort. 
             Deprecated iscsiIfTcpLocalPort. 
             Added a new compliance ciscoiScsiGwMIBCompliance4."
        REVISION   "200312080000Z"
        DESCRIPTION
            "Added new objects iscsiIfIntrIdentificationMode,
            iscsiIntrIdentificationMode and 
            iscsiInitiatorIdleTimeout.
            Added a new compliance ciscoiScsiGwMIBCompliance3." 
        REVISION   "200311140000Z"
        DESCRIPTION
            "Added new objects iscsiAuthMethod,iscsi2FcNodeAuthUser, 
            iscsiIfForwardingMode, and iscsiIfIntrProxyMode.
            Added new compliance ciscoiScsiGwMIBCompliance1.
            Added new table iscsiGigEIfTable and new comformance
            group cigIscsiGigEIfGroup.
            Added new objects fc2IscsiNodeTrespassMode and 
            fc2IscsiNodeRevertToPrimaryPort to fc2IscsiNodeTable."
        REVISION   "200308180000Z"
        DESCRIPTION
            "Added a new table iscsiSessionAttributesExtTable.
            Added iscsiIfTable.
            Added scsiLuExtRemoteSecLun to scsiLyExtTable.
            Added new object iscsi2FcNodeFcAddrAssignment to 
            iscsi2FcNodeTable. Changed MAX-ACCESS of 
            iscsi2FcNodeDiscovered to read-create. Added a
            MIN-ACCESS to to this object to be backward
            compatible.
            Added new conformance groups cigLuConfigurationGroupRev1
            and cigConfigurationGroupRev1. Also added a new 
            compliance ciscoiScsiGwMIBCompliance1."
        REVISION   "200305220000Z"
        DESCRIPTION
            "Fixed the MIB compile errors during MIB release."
        REVISION   "200304100000Z"
        DESCRIPTION
            "Changed the syntax of CIscsiTargetDomains to BITS from 
            INTEGER.
            Added a new table iscsiImprtExprtTgtsConfTable instead of 
            the two scalar objects iscsiImportTargets and 
            iscsiExportTargets.
            Added two new objects iscsi2FcNodeDiscovered and 
            fc2IscsiNodeDiscovered to iscsi2FcNodeTable and 
            fc2IscsiNodeTable respectively.
            Added  new object fc2IscsiNodeAllIntrAccessAllowed.
            Changed the range of iscsi2FcPortNumFCAddr to 0-64 from 
            0-255."
        REVISION   "200302110000Z"
        DESCRIPTION
            "Added an enumeration 'none' to the CIscsiTargetDomains TC.
            Changed the DESCRIPTION of iscsiImportTargets and 
            iscsiExportTargets to reflect this change."
        REVISION   "200210050000Z"
        DESCRIPTION
            "Initial version of this MIB module."
        ::= { ciscoMgmt 317 }

ciscoiScsiGwMIBNotifications
        OBJECT IDENTIFIER ::= { ciscoIscsiGwMIB 0 }
ciscoiScsiGwMIBObjects
        OBJECT IDENTIFIER ::= { ciscoIscsiGwMIB 1 }
ciscoiScsiGwMIBConformance
        OBJECT IDENTIFIER ::= { ciscoIscsiGwMIB 2 }

ciScsiConfig OBJECT IDENTIFIER ::=
        { ciscoiScsiGwMIBObjects 1 }    

ciScsiStatistics OBJECT IDENTIFIER ::=
        { ciscoiScsiGwMIBObjects 2 }    

-- Textual Conventions
CIscsiTargetDomains   ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
               "A value which identifies zero or more target domains.  
               One bit is defined for each defined domain, and a domain
               is identified if its bit is set."
        SYNTAX    BITS {
                     fibreChannel (0)
                  }

CIscsiNodeRoles   ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
               "Role of the iSCSI node.
               A node can operate as in one or both of two roles:
               a target role and/or an initiator role.
               An initiator starts a iSCSI session  with a target to 
               to do any iSCSI transaction."
        SYNTAX        BITS {
                      targetTypeNode(0),
                      initiatorTypeNode(1)
                  }

IscsiName ::= TEXTUAL-CONVENTION
       DISPLAY-HINT  "223a"
       STATUS        current
       DESCRIPTION
           "This data type is a local refinement of the SnmpAdminString
           used to define an iSCSI Name."
       REFERENCE
           "iSCSI Protocol Specification, Section 3.2.6, iSCSI Names."
       SYNTAX        OCTET STRING (SIZE(16..223))

IscsiAuthMethod ::= TEXTUAL-CONVENTION
       STATUS        current
       DESCRIPTION
           "The authentication method."
       SYNTAX        BITS {
                         none (0),
                         chap (1)
                     }

CIscsiIntrIdentificationMode ::= TEXTUAL-CONVENTION
       STATUS        current
       DESCRIPTION
               "The initiator identification mode. An initiator is 
               identified either by its iSCSI name (name) or by
               its IP address (ipaddress)."
       SYNTAX        INTEGER {
                          name (1),
                          ipaddress (2)
                     }

-- the iSCSI Configuration group

iscsiImprtExprtTgtsConfTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF IscsiImprtExprtTgtsConfEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "This table lists the configuration of automatic 
               importing and exporting of targets into and from iSCSI 
               domain. If a targets is discovered in other domains, it 
               is automatically imported if it is configured for 
               automatic importing. Similarly, if an iSCSI target is
               discovered, it is automatically exported to other domains
               if it is configured to do so."
        ::= { ciScsiConfig 1 }
                                 
iscsiImprtExprtTgtsConfEntry OBJECT-TYPE
        SYNTAX        IscsiImprtExprtTgtsConfEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An entry containing information on configuration of 
               importing/exporting of the targets into/from iSCSI 
               domain."
        AUGMENTS {cIscsiInstanceAttributesEntry} 
        ::= { iscsiImprtExprtTgtsConfTable 1 }

IscsiImprtExprtTgtsConfEntry ::=
        SEQUENCE {   
           iscsiImprtExprtTgtsConfImport   CIscsiTargetDomains,
           iscsiImprtExprtTgtsConfExport   CIscsiTargetDomains
        }

iscsiImprtExprtTgtsConfImport    OBJECT-TYPE
        SYNTAX        CIscsiTargetDomains
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The value of this object identifies zero or more target
               domains. If a target domain is identified, then all the
               targets in that domain are automatically imported into 
               iSCSI domain. Note that a target is not imported if it is
               already in the iSCSI domain.
               If value of this object is '00'H, then no targets are
               automatically imported."
        DEFVAL { {} }
        ::= { iscsiImprtExprtTgtsConfEntry 1 }

iscsiImprtExprtTgtsConfExport    OBJECT-TYPE
        SYNTAX        CIscsiTargetDomains
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The value of this object identifies zero or more target
               domains. If a target domain is identified, then all the
               targets in the iSCSI domain are automatically exported 
               to that domain. 
               Note that only the real iSCSI targets are exported.
               No targets are exported if the value of the object
               is '00'H."
        DEFVAL { {} }
        ::= { iscsiImprtExprtTgtsConfEntry 2 }


iscsiAuthMethod    OBJECT-TYPE
        SYNTAX        IscsiAuthMethod
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The global authentication method for iSCSI."
        DEFVAL { {} }
        ::= { ciScsiConfig 2 }

--                          
-- iscsi2FcNodeTable
--
                           
iscsi2FcNodeTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF Iscsi2FcNodeEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "This table lists all the nodes in the iSCSI domain 
               which are currently represented in the FC domain.  
               
               Entries in this table are automatically created when
               an iSCSI initiator logs (starts a session) into a target
               or an iSCSI target is discovered. Entries are also 
               created when targets are exported from the iSCSI domain 
               into FC.  

               Entries in this table are automatically removed when an
               iSCSI initiator logs out of all targets or an iSCSI 
               target disappears.
               
               Entries also can be created and deleted  using the 
               iscsi2FcNodeRowStatus object.
               If the entry created in this table exposes either iSCSI
               initiator or iSCSI target or both from the local device,
               then a entry has to be created implicitly by the agent 
               in the cIscsiNodeAttributesTable when an entry is 
               created in this table.

               A row in this table can not be made 'active' until values
               are explicitly provided for that row's instances of 
               iscsi2FcNodeName and iscsi2FcNodeRole.

               The following objects cannot be modified when the 
               iscsi2FcNodeRowStatus is 'active' :
                  iscsi2FcNodeName
                  iscsi2FcNodeRole

               To modify the above objects, the entry must be deleted 
               and re-created with new values of above objects.

               Every node in this table is associated with a iSCSI 
               instance which is uniquely identified by 
               cIscsiInstIndex."
        ::= { ciScsiConfig 3 }
                                 
iscsi2FcNodeEntry OBJECT-TYPE
        SYNTAX        Iscsi2FcNodeEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An entry representing an iSCSI node which is presented 
               as a FC node to the FC domain."
        INDEX { cIscsiInstIndex, iscsi2FcNodeIndex }
        ::= { iscsi2FcNodeTable 1 }

Iscsi2FcNodeEntry ::=
        SEQUENCE {                             
                iscsi2FcNodeIndex             Unsigned32,
                iscsi2FcNodeName              IscsiName,
                iscsi2FcNodeRole              CIscsiNodeRoles,
                iscsi2FcNodePersistentFCAddr  TruthValue,
                iscsi2FcPortPersistentFCAddr  TruthValue,  
                iscsi2FcPortNumFCAddr         Unsigned32,
                iscsi2FcNodeFCAddr            FcNameIdOrZero,
                iscsi2FcPortFCAddrListIndex   ListIndexOrZero,
                iscsi2FcNodeVsanList2k        FcList,
                iscsi2FcNodeVsanList4k        FcList,
                iscsi2FcNodeDiscovered        TruthValue,
                iscsi2FcNodeRowStatus         RowStatus,
                iscsi2FcNodeFcAddrAssignment  INTEGER,
                iscsi2FcNodeAuthUser          SnmpAdminString,
                iscsi2FcTargetUserName        SnmpAdminString,
                iscsi2FcTargetPassword        SnmpAdminString
        }

iscsi2FcNodeIndex OBJECT-TYPE
        SYNTAX        Unsigned32 (1..4294967295)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An arbitrary integer value, which identifies an iSCSI
               node in a FC domain."
        ::= { iscsi2FcNodeEntry 1 }

iscsi2FcNodeName OBJECT-TYPE
        SYNTAX        IscsiName
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "A character string that is a globally unique identifier
               for the node represented by this entry.  The node name 
               is independent of the location of the node, and can be 
               resolved into a set of addresses through various 
               discovery services."
        ::= { iscsi2FcNodeEntry 2 }

iscsi2FcNodeRole OBJECT-TYPE
        SYNTAX        CIscsiNodeRoles 
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The role of the node represented by this entry.
               Note that a gateway implementation may choose not to 
               allow a node to operate in both roles."
        ::= { iscsi2FcNodeEntry 3 }

iscsi2FcNodePersistentFCAddr OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
 
               "This object indicates if the node FC Address 
               (iscsi2FcNodeFCAddr) is made persistent or not. If this 
               object is 'true', then the same FC address is assigned to
               the node if it were to be represented again in the FC 
               domain with the same node name. Note that the node FC 
               address is either automatically assigned or manually 
               configured."
        ::= { iscsi2FcNodeEntry 4 }

iscsi2FcPortPersistentFCAddr OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "This object indicates if the port FC addresses (given 
               by iscsi2FcPortFCAddrListIndex) of this node is made 
               persistent or not. 

               If this object is 'true', then the same FC address is 
               assigned to the ports of the node if it were to be 
               represented again in the FC domain with the same node 
               name. Note that the port FC address is either 
               automatically assigned or manually configured.

               If this object is 'false', then iscsi2FcPortNumFCAddr
               and iscsi2FcPortFCAddrListIndex are not valid as 
               port FC addresses are dynamically assigned/released."
        ::= { iscsi2FcNodeEntry 5 }

iscsi2FcPortNumFCAddr OBJECT-TYPE
        SYNTAX        Unsigned32 (0..64)
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The number of persistent port FC addresses that are 
               automatically assigned to ports associated with this 
               node. The fcAddressListTable contains the FC addresses
               that are assigned for the node represented by this entry.

               If the value of this object is 0, then the port FC 
               addresses are not automatically assigned.
               Otherwise :
               - the entries in the fcAddressListTable corresponding to
                 this automatic assignment as indicated by the object
                 iscsi2FcPortFCAddrListIndex cannot be either modified
                 or deleted.
               - new entries cannot be created in the fcAddressListTable
                 with fcAddressListIndex which is equal to corresponding
                 iscsi2FcPortFCAddrListIndex for this instance.
               - the corresponding iscsi2FcPortFCAddrListIndex cannot be
                 changed.
               If the value of the object iscsi2FcPortPersistentFCAddr
               is 'false', then this object cannot be modified."
        ::= { iscsi2FcNodeEntry 6 }

iscsi2FcNodeFCAddr OBJECT-TYPE
        SYNTAX        FcNameIdOrZero
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The persistent FC address of the node. If this object 
               is zero-length and iscsi2FcNodePersistentFCAddr is 
               'true' then the FC address of the node represented by
               this entry is automatically assigned and made persistent.
               If this object is non-zero length  and 
               iscsi2FcNodePersistentFCAddr is 'true', then this value 
               is always used as FC address of the node represented by
               this entry. If iscsi2FcNodePersistentFCAddr is 'false, 
               this object is not valid. The FC address for the node 
               represented by this entry is dynamically 
               assigned/released when the node represented by this entry
               is created/destroyed."
        ::= { iscsi2FcNodeEntry 7 }
        
iscsi2FcPortFCAddrListIndex OBJECT-TYPE
        SYNTAX        ListIndexOrZero
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The index of a list in the fcAddressListTable which
               lists all the FC port addresses associated with this
               node.

               The object value of the iscsi2FcPortPersistentFCAddr 
               indicates if the addresses are persistent or not.

               Note that this object cannot be modified if the 
               corresponding value of iscsi2FcPortNumFCAddr is non-zero.
               
               If the value of the object iscsi2FcPortPersistentFCAddr  
               is 'false', then this object cannot be modified."
        ::= { iscsi2FcNodeEntry 8 }
        
iscsi2FcNodeVsanList2k   OBJECT-TYPE
        SYNTAX      FcList
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The list of VSANs the node represented by this entry 
                can access.

                Each octet within the value of this object specifies a
                set of eight VSANs, with the first octet specifying 
                VSANs 0 through 7, the second octet specifying VSANs 8
                through 15, etc. Within each octet, the most significant
                bit represents the lowest numbered VSAN, and the least
                significant bit represents the highest numbered VSAN.  
                Thus, each VSAN, is represented by a single bit within
                the value of this object. The corresponding VSAN is 
                allowed on the node represented by this entry if and 
                only if that bit has a value of '1'. If this object has 
                a value which is less than 256 bytes long, then the 
                VSANs which are not represented are not considered to be
                in this list.

                If this object is a zero-length string, the node 
                represented by this entry can access only the default 
                VSAN."
        DEFVAL {''H}
        ::= { iscsi2FcNodeEntry 9 }

iscsi2FcNodeVsanList4k   OBJECT-TYPE
        SYNTAX      FcList
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The list of VSANs the node represented by this entry
                can access.

                Each octet within the value of this object specifies a 
                set of eight VSANs, with the first octet specifying 
                VSANs 2047 through 2054, the second octet specifying 
                VSANs 2055 through 2062, etc. Within each octet, the 
                most significant bit represents the lowest numbered 
                VSAN, and the least significant bit represents the 
                highest numbered VSAN. Thus, each VSAN, is represented
                by a single bit within the value of this object. The 
                corresponding VSAN is allowed on the node represented by
                this entry if and only if that bit has a value of '1'. 
                If this object has a value which is less than 256 bytes 
                long, then the VSANs which are not represented are not 
                considered to be in the list. 

                If this object is a zero-length string, the node 
                represented by this entry can access only the default 
                VSAN."
        DEFVAL {''H}
        ::= { iscsi2FcNodeEntry 10 }

iscsi2FcNodeDiscovered OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "This objects indicates if the node represented by this 
               entry was either automatically discovered or configured 
               manually.
               If the value of this object is 'true', then the node
               represented by this entry is automatically discovered.
               If it is 'false', then the node represented by this entry
               was manually configured.
             
               An auto discovered node can be made manually configured 
               node by setting this object to 'false'. 
               Note that setting to 'false' when current value of the 
               object is 'false' results in error. Also, object cannot
               be set to 'true'."
        ::= { iscsi2FcNodeEntry 11 }
        
iscsi2FcNodeRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "Status of this row." 
        ::= { iscsi2FcNodeEntry 12 }
        
iscsi2FcNodeFcAddrAssignment OBJECT-TYPE
        SYNTAX        INTEGER {
                         auto (1),
                         manual (2)
                      }
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "This object specifies how the FC address of this node 
               is assigned.
               If set to 'auto', the FC address is automatically 
               assigned to this node. If it is 'manual', then the FC
               address has to be configured manually.
               An auto assigned node FC address can be made manually
               configured by setting this object to 'manual' and vice
               versa."
        DEFVAL { auto }
        ::= { iscsi2FcNodeEntry 13 }

iscsi2FcNodeAuthUser OBJECT-TYPE
        SYNTAX      SnmpAdminString
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The name of the user which is to be sent with iSCSI 
               authentication to the target, if authentication is
               enabled (iscsiAuthMethod other than 'none') interface
               on which carries session between initiator and target."
        DEFVAL { ''H }
        ::= { iscsi2FcNodeEntry 14 }

iscsi2FcTargetUserName  OBJECT-TYPE
        SYNTAX          SnmpAdminString
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
               "The user name to be used during the login
                authentication. This is optional. If no user
                name and password (defined by iscsi2FcTargetPassword
                ) is specified, then the global username and
                password defined by iscsiTargetUserName and
                iscsiTargetPassword (respectively) are used."
        DEFVAL { ''H }
        ::= { iscsi2FcNodeEntry 15 }

iscsi2FcTargetPassword  OBJECT-TYPE
        SYNTAX          SnmpAdminString
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
               "The password to be used during the login
                authentication. This is optional. If no user
                name (specified by iscsi2FcTargetUserName )and
                password is specified, then the global username
                and password defined by iscsiTargetUserName and
                iscsiTargetPassword (respectively) is used.

                When read, it returns zero length  string."
        DEFVAL { ''H }
        ::= { iscsi2FcNodeEntry 16 }


-- fc2IscsiNodeTable
                          
fc2IscsiNodeTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF Fc2IscsiNodeEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "This table lists all the FC nodes which the gateway 
               presents as iSCSI nodes to the iSCSI domain. 
               
               Entries in this table are automatically created when
               FC nodes are discovered.

               Entries in this table are automatically removed when 
               FC nodes go offline.
               
               Entries also can be created/deleted using the 
               fc2IscsiNodeRowStatus object. An entry can be created by
               to configure a node statically instead of allowing it to
               be discovered.

               A row in this table can not be made 'active' until values
               are explicitly provided for that row's instances of 
               fc2IscsiNodeName and fc2IscsiNodeRole.

               The following objects cannot be modified when the 
               fc2IscsiNodeRowStatus is 'active' :
               - fc2IscsiNodeRole    
               - fc2IscsiNodeName

               To modify the above objects, the entry must be deleted 
               and re-created with new values of above objects.

               To create an iSCSI target from whole a FC target, use 
               fc2ScsiPortFCAddrListIndex.
               To create an iSCSI target from Logical Units on the 
               FC targets, create an entry in this table. And
               then create an entry (s) in the scsiLuExtTable using
               fc2IscsiNodeName of an entry in this table as 
               scsiLuExtLocalTargetAddress value."
        ::= { ciScsiConfig 4 }
                                 
fc2IscsiNodeEntry OBJECT-TYPE
        SYNTAX        Fc2IscsiNodeEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An entry representing a FC node which is presented as an
               iSCSI node to the iSCSI domain."
        AUGMENTS {cIscsiNodeAttributesEntry} 
        ::= { fc2IscsiNodeTable 1 }

Fc2IscsiNodeEntry ::=
        SEQUENCE {                             
                fc2IscsiNodeRole                  CIscsiNodeRoles,
                fc2IscsiNodeName                  IscsiName,
                fc2IscsiPortFCAddrListIndex       ListIndexOrZero,
                fc2IscsiNodePermitListIndex       ListIndexOrZero,
                fc2IscsiNodeAdvIntfListIndex      ListIndexOrZero,
                fc2IscsiNodeAllIntrAccessAllowed  TruthValue,
                fc2IscsiNodeDiscovered            TruthValue,
                fc2IscsiNodeRowStatus             RowStatus,
                fc2IscsiNodeTrespassMode          TruthValue,
                fc2IscsiNodeRevertToPrimaryPort   TruthValue
        }

fc2IscsiNodeRole OBJECT-TYPE
        SYNTAX        CIscsiNodeRoles
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "Role of the node represented by this entry.
               Note that a gateway implementation may choose not to 
               allow a node to operate in both roles."
        ::= { fc2IscsiNodeEntry 1 }

fc2IscsiNodeName OBJECT-TYPE
        SYNTAX        IscsiName
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The iSCSI name of the node represented by this entry."
        ::= { fc2IscsiNodeEntry 2 }

fc2IscsiPortFCAddrListIndex OBJECT-TYPE
        SYNTAX        ListIndexOrZero
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The index of  a list in the fcAddressListTable which 
               lists all the FC node addresses associated with the
               node represented by this entry.
               Use this object to represent the whole FC targets."
        ::= { fc2IscsiNodeEntry 3 }

fc2IscsiNodePermitListIndex OBJECT-TYPE
        SYNTAX        ListIndexOrZero
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The index of a list in the iscsiNodeNameListTable which
               lists all the iSCSI nodes that are permitted to access
               the node represented by this entry.
               If fc2IscsiNodeAllIntrAccessAllowed is 'false' and the 
               value of this object is 0, then no initiators are allowed
                to access this target."
        ::= { fc2IscsiNodeEntry 4 }

fc2IscsiNodeAdvIntfListIndex OBJECT-TYPE
        SYNTAX        ListIndexOrZero
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The index of  a list in the nodeAdvIntfListTable which 
               lists all the interfaces on which the node represented 
               by this entry could be advertised."
        ::= { fc2IscsiNodeEntry 5 }

fc2IscsiNodeAllIntrAccessAllowed OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "This object indicates if all the initiators can access 
               the target represented by this entry. If this object is 
               'true', then all the initiators can access this target 
               even those which are not in the initiator permit list 
               (fc2IscsiNodePermitListIndex) of the target represented 
               by this entry. 
               If this object is false, then only initiators which are 
               in the permit list are allowed access to the target 
               represented by this entry.

               Note that this object is valid only if the role of 
               the node represented by this entry is 'targetTypeNode'."
        DEFVAL { false }
        ::= { fc2IscsiNodeEntry 6 }

fc2IscsiNodeDiscovered OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   
               "This objects indicates if the node represented by this 
               entry was either automatically discovered or configured 
               manually. 
               If the value of this object is 'true', then the node
               represented by this entry is automatically discovered.
               If it is 'false', then the node represented by this entry
               was manually configured." 
        ::= { fc2IscsiNodeEntry 7 }
 
fc2IscsiNodeRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "Status of this row."
        ::= { fc2IscsiNodeEntry 8 }


fc2IscsiNodeTrespassMode OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The trespass mode for this node. 

               Every iSCSI target represents one or more port(s) on the
               FC target (fc2ScsiPortFCAddrListIndex).

               If this object is 'true', the node instructs the FC node 
               to present all LUN I/O requests to secondary port 
               (fcSecondaryAddress) if the primary port (fcAddress) is 
               down.

               Note that this object is valid only if fc2IscsiNodeRole
               is 'targetTypeNode'."
        DEFVAL { false }
        ::= { fc2IscsiNodeEntry 9 }

fc2IscsiNodeRevertToPrimaryPort OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "This object indicates if it is required to revert back
               to primary port the FC target if it comes back online.

               Every iSCSI target represent one or more port(s) on the
               FC target (fc2IscsiPortFCAddrListIndex). Only one of
               the ports is the primary port. If the primary port goes
               down, the designated secondary port takes over. This
               objects indicates if the primary port has to be used
               used once it comes back up. 

               Note that this object is valid only if fc2IscsiNodeRole
               is 'targetTypeNode'."
        DEFVAL { false }
        ::= { fc2IscsiNodeEntry 10 }



-- fcAddressListTable        

fcAddressListTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF FcAddressListEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "This table contains the list of FC addresses.
               Entries in this table are automatically created/deleted
               when the FC addresses are automatically 
               assigned/released to/from the entities which are using
               this table to create FC address lists.

               Entries in this table are also created/deleted using 
               fcAddressRowStatus.

               A row in this table can not be made 'active' until a 
               value is explicitly provided for that row's instances 
               of fcAddress.

               Also, the following object cannot be modified when 
               'fcAddressRowStatus' is 'active' :
               - fcAddress

               To modify the above object, the entry must be deleted and
               re-created with new value of above object."
        ::= { ciScsiConfig 5 }
                                 
fcAddressListEntry OBJECT-TYPE
        SYNTAX        FcAddressListEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An entry information about a FC address which is part 
               of a list. Entries with same fcAddressListIndex form a 
               list."
        INDEX { fcAddressListIndex, fcAddressIndex }
        ::= { fcAddressListTable 1 }

FcAddressListEntry ::=
        SEQUENCE {                             
                fcAddressListIndex            ListIndex,
                fcAddressIndex                Unsigned32,
                fcAddress                     FcNameId, 
                fcSecondaryAddress            FcNameIdOrZero, 
                fcAddressRowStatus            RowStatus
        }

fcAddressListIndex OBJECT-TYPE
        SYNTAX        ListIndex
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "The index of a list of FC addresses."
        ::= { fcAddressListEntry  1 }

fcAddressIndex OBJECT-TYPE
        SYNTAX        Unsigned32 (1..4294967295)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An arbitrary integer value, which identifies a FC 
               address."
        ::= { fcAddressListEntry  2 }

fcAddress OBJECT-TYPE
        SYNTAX        FcNameId
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The FC address for this entry."
        ::= { fcAddressListEntry  3 }

fcSecondaryAddress OBJECT-TYPE
        SYNTAX        FcNameIdOrZero
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The secondary FC address for this entry.
               This is the FC address used if the 'fcAddress' cannot be
               reached. Note that every 'fcAddress' may not need a 
               secondary FC Address."
        DEFVAL { ''H }
        ::= { fcAddressListEntry  4 }

fcAddressRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "Status of this row."
        ::= { fcAddressListEntry  5}


-- nodeNameListTable        

iscsiNodeNameListTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF IscsiNodeNameListEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "This table contains the list of iSCSI node names.

               A row in this table can not be made 'active' until a 
               value is explicitly provided for that row's instances 
               of iscsiNodeName.

               Also, the following objects cannot be modified when 
               'iscsiNodeNameRowStatus' is 'active' :
               - iscsiNodeName

               To modify the above object, the entry must be deleted and
               re-created with new value of above object."
        ::= { ciScsiConfig 6 }
                                 
iscsiNodeNameListEntry OBJECT-TYPE
        SYNTAX        IscsiNodeNameListEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An entry information about an iSCSI node name which is 
               part of a list. Entries with same iscsiNodeNameListIndex 
               form a list."
        INDEX { iscsiNodeNameListIndex, iscsiNodeNameIndex }
        ::= { iscsiNodeNameListTable 1 }

IscsiNodeNameListEntry ::=
        SEQUENCE {                             
                iscsiNodeNameListIndex         ListIndex,
                iscsiNodeNameIndex             Unsigned32,
                iscsiNodeName                  IscsiName,
                iscsiNodeNameRowStatus         RowStatus
        }

iscsiNodeNameListIndex OBJECT-TYPE
        SYNTAX        ListIndex
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "The index of a list of iSCSI node names."
        ::= { iscsiNodeNameListEntry  1 }

iscsiNodeNameIndex OBJECT-TYPE
        SYNTAX        Unsigned32 (1..4294967295)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An arbitrary integer value, which identifies a iSCSI 
               node name."
        ::= { iscsiNodeNameListEntry  2 }

iscsiNodeName OBJECT-TYPE
        SYNTAX        IscsiName
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The iSCSI node name."
        ::= { iscsiNodeNameListEntry  3 }

iscsiNodeNameRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "Status of this row."
        ::= { iscsiNodeNameListEntry  4 }   
        
-- nodeAdvIntfListTable

nodeAdvIntfListTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF NodeAdvIntfListEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "This table contains the list of advertised 
               interface list.

               A FC node represented in the iSCSI domain as an iSCSI
               node is advertised only on the interfaces which are 
               allowed advertised interface list of the iSCSI node.

               A row in this table can not be made 'active' until a 
               value is explicitly provided for that row's instances 
               of nodeAdvIntfIfIndex.

               Also, the following object cannot be modified when 
               'nodeAdvIntfIfRowStatus' is 'active' :
               - nodeAdvIntfIfIndex

               To modify the above object, the entry must be deleted and
               re-created with new value of above object."
        ::= { ciScsiConfig 7 }

nodeAdvIntfListEntry OBJECT-TYPE
        SYNTAX        NodeAdvIntfListEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An entry with containing ifIndex of an interface which
               is part of the interface list. Entries with same 
               nodeAdvIntfListIndex form a list."
        INDEX { nodeAdvIntfListIndex, nodeAdvIntfIndex}
        ::= { nodeAdvIntfListTable 1 }

NodeAdvIntfListEntry ::=
        SEQUENCE {                             
                nodeAdvIntfListIndex          Unsigned32,
                nodeAdvIntfIndex              Unsigned32,
                nodeAdvIntfIfIndex            InterfaceIndex,
                nodeAdvIntfIfRowStatus        RowStatus
        }

nodeAdvIntfListIndex OBJECT-TYPE
        SYNTAX      Unsigned32 (1..4294967295)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "The index of a list of advertized interface list."
        ::= { nodeAdvIntfListEntry  1 }

nodeAdvIntfIndex OBJECT-TYPE
        SYNTAX      Unsigned32 (1..4294967295)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "The index of an interface entry."
        ::= { nodeAdvIntfListEntry  2 }

nodeAdvIntfIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The ifIndex of the interface." 
        ::= { nodeAdvIntfListEntry  3 }

nodeAdvIntfIfRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "Status of this row."
        ::= { nodeAdvIntfListEntry  4 }   
        


-- extension to the scsiLuTable from SCSI-MIB.

scsiLuExtTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF ScsiLuExtEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An extension of the scsiLuTable to support creation of
               iSCSI virtual targets from LUs on remote FC targets.

               To create iSCSI virtual targets from a set of LUs on FC 
               targets, entries needs to be created in this table. The 
               iSCSI targets can be created in different ways. For 
               example:
               - multiple iSCSI targets can be created from either one
                 LU or a subset of LUs from a single FC target device. 
               - a single iSCSI target can be created from LUs of 
                 multiple FC target devices.      

               Note that a gateway implementation may choose to support 
               only a subset of these features.
                 
               To create a virtual iSCSI target from LUs on the remote 
               FC targets,  create an entry (s) in this table with 
               local LUs to map to remote LUs and 
               value of scsiLuExtLocalTargetAddress to same as the
               iSCSI node name of the virtual iSCSI node being created.

               A row in this table can not be made 'active' until a 
               value is explicitly provided for that row's instances 
               of following objects :
               - scsiLuExtRemotePortFcAddress
               - scsiLuExtLocalTargetAddress
               - scsiLuExtLocalLun
               - scsiLuExtRemoteLun

               Also, the following objects cannot be modified when 
               'scsiLuExtRowStatus 'active' :
               - scsiLuExtRemotePortFcAddress
               - scsiLuExtLocalTargetAddress
               - scsiLuExtLocalLun
               - scsiLuExtRemoteLun

               To modify the above objects, the entry must be deleted 
               and re-created with new values of above objects."
        ::= { ciScsiConfig 8 }

scsiLuExtEntry OBJECT-TYPE
        SYNTAX        ScsiLuExtEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An entry representing a LU."
        AUGMENTS { ciscoScsiLuEntry }
        ::= { scsiLuExtTable 1 }

ScsiLuExtEntry ::=
        SEQUENCE {                             
               scsiLuExtRemotePortFcAddress      FcNameId,
               scsiLuExtRemotePortSecFcAddress   FcNameIdOrZero,
               scsiLuExtLocalTargetAddress       ScsiName,
               scsiLuExtRemoteLun                ScsiLUNOrZero,
               scsiLuExtLocalLun                 ScsiLUNOrZero,
               scsiLuExtRowStatus                RowStatus,  
               scsiLuExtRemoteSecLun             ScsiLUNOrZero
        }

scsiLuExtRemotePortFcAddress OBJECT-TYPE
        SYNTAX        FcNameId
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The FC address of the remote Fibre Channel port via
               which the remote LU (scsiLuExtRemoteLun) is accessed."
        ::= { scsiLuExtEntry  1 }

scsiLuExtRemotePortSecFcAddress OBJECT-TYPE
        SYNTAX        FcNameIdOrZero
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The secondary FC address of the remote Fibre Channel 
               port via which the remote LU (scsiLuExtRemoteSecLun) is
               accessed."
        DEFVAL { ''H }
        ::= { scsiLuExtEntry  2 }

scsiLuExtLocalTargetAddress OBJECT-TYPE
        SYNTAX        ScsiName
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "This object represents the SCSI name of the 
               local SCSI target through which this LU 
               (scsiLuExtLocalLun) can be accessed.  The format of a 
               SCSI name is dependent on the type of transport used to 
               access the target.  For example, when the local SCSI 
               target is accessible via iSCSI, then this object  
               contains the iSCSI node name of the local target."
        ::= { scsiLuExtEntry  3 }
        
scsiLuExtRemoteLun OBJECT-TYPE
        SYNTAX        ScsiLUNOrZero
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The Logical Unit Number of the remote LU."
        ::= { scsiLuExtEntry  4 }

scsiLuExtLocalLun OBJECT-TYPE
        SYNTAX        ScsiLUNOrZero
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The configured default Logical Unit Number of this LU."
        ::= { scsiLuExtEntry  5 }

scsiLuExtRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "Status of this row."
        ::= { scsiLuExtEntry  6 }

scsiLuExtRemoteSecLun OBJECT-TYPE
        SYNTAX        ScsiLUNOrZero
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   
               "The Logical Unit Number of the remote LU corresponding 
               to FC address scsiLuExtRemotePortSecFcAddress."
        ::= { scsiLuExtEntry  7 }


-- iSCSI interface configuration

iscsiIfTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF IscsiIfEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "List of iSCSI interfaces."
        ::= { ciScsiConfig 9 }

iscsiIfEntry OBJECT-TYPE
        SYNTAX        IscsiIfEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An entry containing information about an iSCSI 
               interface."
        INDEX { ifIndex }
        ::= { iscsiIfTable 1 }

IscsiIfEntry ::=
        SEQUENCE {                             
          iscsiIfTcpKeepAliveTimeout        Unsigned32,
          iscsiIfTcpMaxBandwidth            Unsigned32,
          iscsiIfTcpMaxRetransmissions      Unsigned32,
          iscsiIfTcpMinRetransmitTime       Unsigned32,
          iscsiIfTcpPMTUEnable              TruthValue,
          iscsiIfTcpQOS                     Unsigned32,
          iscsiIfTcpSACKEnable              TruthValue,
          iscsiIfTcpSendBufferSize          Unsigned32,  
          iscsiIfTcpMinBandwidth            Unsigned32,
          iscsiIfTcpPMTUResetTimeout        Unsigned32,
          iscsiIfTcpLocalPort               CiscoPort,
          iscsiIfForwardingMode             INTEGER,
          iscsiIfIntrProxyMode              TruthValue,
          iscsiIfIntrProxyModeNodeFcAddr    FcNameIdOrZero,
          iscsiIfIntrProxyModePortFcAddr    FcNameIdOrZero,
          iscsiIfIntrProxyModeFcAddrAsgnmt  INTEGER,
          iscsiIfIntrIdentificationMode  
                                  CIscsiIntrIdentificationMode,
          iscsiIfTcpRndTrpTimeEst           Unsigned32,
          iscsiIfTcpLocalTcpPort            CiscoPort,
          iscsiIfNumNormalConnections       Unsigned32,
          iscsiIfNumDiscovConnections       Unsigned32,
          iscsiIfTcpCWMEnable               TruthValue,
          iscsiIfTcpCWMBurstSize            Unsigned32,
          iscsiIfTcpMaxJitter               Unsigned32
        }

iscsiIfTcpKeepAliveTimeout OBJECT-TYPE
        SYNTAX        Unsigned32 (1..7200)
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
                "The TCP Keep alive timeout for this iSCSI interface.
                If the value is 0, the keep-alive timeout feature is 
                disabled." 
        ::= { iscsiIfEntry  1 }

iscsiIfTcpMaxBandwidth OBJECT-TYPE
        SYNTAX        Unsigned32 (1000..1000000)
        UNITS         "kbps"
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The TCP maximum bandwidth for this iSCSI interface."
        ::= { iscsiIfEntry  2 }

iscsiIfTcpMaxRetransmissions OBJECT-TYPE
        SYNTAX        Unsigned32 (1..8)
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The TCP maximum retransmissions for this iSCSI 
               interface."
        ::= { iscsiIfEntry  3 }

iscsiIfTcpMinRetransmitTime OBJECT-TYPE
        SYNTAX        Unsigned32 (250..5000)
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The TCP minimum retransmit time for this iSCSI 
               interface."
        ::= { iscsiIfEntry  4 }

iscsiIfTcpPMTUEnable OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "This objects indicates if the Path MTU discovery option
               is enabled or not for this iSCSI interface." 
        REFERENCE 
               "For more information on PMTU, refer RFC 1191."
        ::= { iscsiIfEntry  5 }

iscsiIfTcpQOS OBJECT-TYPE
        SYNTAX        Unsigned32 (0..63)
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The TCP QOS code point for this iSCSI interface."
        REFERENCE
               "RFC 2474, RFC 2780."
        ::= { iscsiIfEntry  6 }

iscsiIfTcpSACKEnable OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "This object indicates if the Selective Acknowledgement 
               (SACK) option is enabled or not for this iSCSI 
               interface."
        REFERENCE 
               "For more information on SACK, refer RFC 2018, RFC 2883."
        ::= { iscsiIfEntry  7 }

iscsiIfTcpSendBufferSize OBJECT-TYPE
        SYNTAX        Unsigned32 (0..8192)
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The TCP send buffer size for this iSCSI interface."
        ::= { iscsiIfEntry  8 }

iscsiIfTcpMinBandwidth OBJECT-TYPE
        SYNTAX        Unsigned32 (1000..1000000)
        UNITS         "kbps"
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The TCP minimum bandwidth for this iSCSI interface."
        ::= { iscsiIfEntry  9 }

iscsiIfTcpPMTUResetTimeout OBJECT-TYPE
        SYNTAX        Unsigned32 (60..3600)
        UNITS         "seconds"
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
           "The timeout after which the PMTU resets to original 
               value on this interface."
    ::= { iscsiIfEntry  10 }

iscsiIfTcpLocalPort OBJECT-TYPE
        SYNTAX        CiscoPort
        MAX-ACCESS    read-only
        STATUS        deprecated  --superceded by iscsiIfTcpLocalTcpPort
        DESCRIPTION   
               "The local TCP port of this interface."
        ::= { iscsiIfEntry  11 }

iscsiIfForwardingMode OBJECT-TYPE
        SYNTAX        INTEGER {
                         passThrough (1),
                         storeAndForward (2),
                         cutThrough(4)
                      }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The forwarding mode of this interface.
  
                passThrough - In this mode the iSCSI interface
                              converts an iSCSI PDU into a FCP
                              frame and then forwards it one at
                              a time.
                storeAndForward - In this mode iSCSI payload data
                              is sent or received at the size desired
                              by the iSCSI client. The interface
                              stores each TCP segment it receives
                              until one full iSCSI PDU is received
                              before forwarding it as FC frames.
        
                cutThrough  - In this mode iSCSI payload data is sent
                              or received at the size  desired by the
                              iSCSI client. The interface stores each 
                              TCP segment until one full iSCSI PDU is
                              received before forwarding it as as FC
                              frames.
               "
        ::= { iscsiIfEntry  12 }

iscsiIfIntrProxyMode OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The initiator proxy mode for this interface. If this 
               object is 'true', then all the initiators coming on this
               interface would use the initiator configuration provided 
               by this interface. The initiator configuration include
               port WWN and node WWN."
        ::= { iscsiIfEntry  13 }

iscsiIfIntrProxyModeNodeFcAddr OBJECT-TYPE
        SYNTAX        FcNameIdOrZero
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The Node FC address used by the initiators on this 
               interface when the initiator proxy mode is on
               (iscsiIfIntrProxyMode equal to 'true')."
        ::= { iscsiIfEntry  14 }

iscsiIfIntrProxyModePortFcAddr OBJECT-TYPE
        SYNTAX        FcNameIdOrZero
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The Port FC address used by the initiators on this 
               interface when the initiator proxy mode is on 
               (iscsiIfIntrProxyMode equal to 'true')."
        ::= { iscsiIfEntry  15 }

iscsiIfIntrProxyModeFcAddrAsgnmt OBJECT-TYPE
        SYNTAX        INTEGER {
                          auto (1),
                          manual (2)
                      }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "This objects tells how the initiator proxy mode FC 
               addresses (iscsiIfIntrProxyModeNodeFcAddr and 
               iscsiIfIntrProxyModePortFcAddr) are assigned.
               If value of this object is 'auto', then the FC addresses
               are automatically assigned. If it is 'manual', then
               they have to be manually configured."
        ::= { iscsiIfEntry  16 }

iscsiIfIntrIdentificationMode OBJECT-TYPE
        SYNTAX        CIscsiIntrIdentificationMode
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "This objects indicates how the initiator is identified
               on this interface, either by its iSCSI name (name) or by
               its IP address (ipaddress)."
        ::= { iscsiIfEntry  17 }

iscsiIfTcpRndTrpTimeEst OBJECT-TYPE
        SYNTAX        Unsigned32 (0..300000)
        UNITS         "microseconds"
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
         "This is an estimate of the round trip delay of the network
          pipe used for the B-D product computation, which lets us
          derive the TCP receive window to advertise."
        ::= { iscsiIfEntry  18 }

iscsiIfTcpLocalTcpPort OBJECT-TYPE
        SYNTAX        CiscoPort
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The local TCP port of this interface."
        ::= { iscsiIfEntry  19 }


iscsiIfNumNormalConnections OBJECT-TYPE
        SYNTAX        Unsigned32 
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The number of normal iscsi connections." 
        ::= { iscsiIfEntry  20 }


iscsiIfNumDiscovConnections OBJECT-TYPE
        SYNTAX        Unsigned32 
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The number of discovery iscsi connections." 
        ::= { iscsiIfEntry  21 }

iscsiIfTcpCWMEnable   OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "This object is used for enabling/disabling the 
                 congestion window monitoring. If the value of
                 this object is true(1), it is enabled. It is 
                 disabled if the value is false(2). "
        DEFVAL {true} 
        ::= { iscsiIfEntry  22 }

iscsiIfTcpCWMBurstSize OBJECT-TYPE
        SYNTAX        Unsigned32 (10..100) 
        UNITS         "kilobytes"
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "The maximum burst sent after a tcp sender idle
                 period." 
        DEFVAL {50} 
        ::= { iscsiIfEntry  23 }

iscsiIfTcpMaxJitter OBJECT-TYPE
        SYNTAX        Unsigned32 (0..10000)
        UNITS         "microseconds"
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                 "The maximum delay variation that is not due to
                  to congestion that can be experienced by TCP 
                  connections on this interface."
        DEFVAL {500}
        ::= { iscsiIfEntry  24 }


--
-- iSCSI configuration for GigE interfaces
--
iscsiGigEIfTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF IscsiGigEIfEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "This table contains Gigabit Ethernet (GigE) interfaces.
               It contains iSCSI-specific configuration objects for the 
               GigE interface."
        ::= { ciScsiConfig 10 }

iscsiGigEIfEntry OBJECT-TYPE
        SYNTAX        IscsiGigEIfEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An entry containing information about a GigE
               interface."
        INDEX { ifIndex }
        ::= { iscsiGigEIfTable 1 }

IscsiGigEIfEntry ::=
        SEQUENCE {                             
               iscsiGigEIfAuthMethod               IscsiAuthMethod,
               iscsiGigEIfIsnsServerProfileName    SnmpAdminString,
               iscsiGigEIfIscsiSessions            Unsigned32
        }

iscsiGigEIfAuthMethod OBJECT-TYPE
        SYNTAX        IscsiAuthMethod
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The authentication method for this interface."
        ::= { iscsiGigEIfEntry  1 }

iscsiGigEIfIsnsServerProfileName OBJECT-TYPE
        SYNTAX        SnmpAdminString
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The iSNS server profile name for this interface.
               The iSNS server profiles are defined in 
               cIsnsClntServerProfileTable from CISCO-ISNS-CLIENT-MIB."
        ::= { iscsiGigEIfEntry  2 }

iscsiGigEIfIscsiSessions OBJECT-TYPE
        SYNTAX        Unsigned32 (0..65535)
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   
               "Number of iSCSI sessions running over this interface."
        ::= { iscsiGigEIfEntry  3 }

--
-- Gateway idle timeout 
--
iscsiInitiatorIdleTimeout    OBJECT-TYPE
        SYNTAX        Unsigned32 (0..3600)
        UNITS         "seconds"
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "The time for which the gateway (representing a FC 
               target) waits from the time of last iSCSI session to a 
               iSCSI initiator went down, before purging the 
               information about that iSCSI initiator."
        ::= { ciScsiConfig 11 }

iscsiIntrIdentificationMode    OBJECT-TYPE
        SYNTAX        CIscsiIntrIdentificationMode
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   
               "This objects indicates how the initiator is identified
               on local device, either by its iSCSI name (name) or by
               its IP address (ipaddress)."
        ::= { ciScsiConfig 12 }

iscsiTargetUserName     OBJECT-TYPE
        SYNTAX          SnmpAdminString
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
               "The global user name to be used during the
                login authentication. If the initiator specific
                username is specified by iscsi2FcTargetUserName,
                then that user name is used.
                If not, iscsiTargetUserName is used by default."
        DEFVAL { ''H }
        ::= { ciScsiConfig 13 }


iscsiTargetPassword     OBJECT-TYPE
        SYNTAX          SnmpAdminString
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
               "The password  to be used during the login
                authentication. If the initiator specific
                password is specified by iscsi2FcTargetPassword,
                then that password is used.
                If not, iscsiTargetPassword is used by default.
  
                When read, a zero length  string is returned."
        DEFVAL { ''H }
        ::= { ciScsiConfig 14 }

--
-- Status and Statistics 
--
iscsiSessionAttributesExtTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF IscsiSessionAttributesExtEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "This table contains objects which provide more 
               information about iSCSI sessions which are not in 
               cIscsiSessionAttributesTable."
        ::= { ciScsiStatistics 1 }
                                 
iscsiSessionAttributesExtEntry OBJECT-TYPE
        SYNTAX        IscsiSessionAttributesExtEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
               "An entry containing information about an iSCSI 
                session which is not in cIscsiSessionAttributesEntry."
        AUGMENTS {cIscsiSessionAttributesEntry} 
        ::= { iscsiSessionAttributesExtTable 1 }

IscsiSessionAttributesExtEntry ::=
        SEQUENCE {   
           iscsiSsnVsan   VsanIndex
        }

iscsiSsnVsan    OBJECT-TYPE
        SYNTAX        VsanIndex
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   
               "The vsan to which this session belongs to."
        ::= { iscsiSessionAttributesExtEntry 1 }


--
--  iscsi Connection Statstistics Table 
--

ciscsiConnectionStatsTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF CiscsiConnectionStatsEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "This table contains objects which provide 
               iSCSI connection statistics."
        ::= { ciScsiStatistics 2 }

ciscsiConnectionStatsEntry OBJECT-TYPE
        SYNTAX        CiscsiConnectionStatsEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "An entry containing information about iSCSI
                connection statistics."
        INDEX { ifIndex, cIscsiInstIndex, cIscsiStatsNodeIndex,
                cIscsiStatsSessionIndex, 
                cIscsiStatsConnectionIndex }
        ::= { ciscsiConnectionStatsTable 1 }


CiscsiConnectionStatsEntry ::=
        SEQUENCE {
           cIscsiStatsNodeIndex         Unsigned32, 
           cIscsiStatsSessionIndex      Unsigned32, 
           cIscsiStatsConnectionIndex   Unsigned32, 
           cIscsiStatsConnectionRxBytes Counter64, 
           cIscsiStatsConnectionTxBytes Counter64, 
           cIscsiStatsIpSecInUse        TruthValue 
        }

cIscsiStatsNodeIndex  OBJECT-TYPE
        SYNTAX        Unsigned32 (1..4294967295)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "An integer value, which identifies an iSCSI
               node in a FC domain."
        ::= { ciscsiConnectionStatsEntry 1 }


cIscsiStatsSessionIndex  OBJECT-TYPE
        SYNTAX           Unsigned32 (1..4294967295)
        MAX-ACCESS       not-accessible
        STATUS           current
        DESCRIPTION
               "An integer value, which identifies an iSCSI
               session."
        ::= { ciscsiConnectionStatsEntry 2 }

cIscsiStatsConnectionIndex  OBJECT-TYPE
        SYNTAX             Unsigned32 (1..4294967295)
        MAX-ACCESS         not-accessible
        STATUS             current
        DESCRIPTION
               "An integer value, which identifies an iSCSI
               connection. "
        ::= { ciscsiConnectionStatsEntry 3 }

cIscsiStatsConnectionRxBytes  OBJECT-TYPE
        SYNTAX                Counter64 
        MAX-ACCESS            read-only
        STATUS                current
        DESCRIPTION
               "Total number of bytes received on an iSCSI
               session."
        ::= { ciscsiConnectionStatsEntry 4 }

cIscsiStatsConnectionTxBytes  OBJECT-TYPE
        SYNTAX                Counter64
        MAX-ACCESS            read-only
        STATUS                current
        DESCRIPTION
               "Total number of bytes transmitted on an iSCSI
               session."
        ::= { ciscsiConnectionStatsEntry 5 }

cIscsiStatsIpSecInUse         OBJECT-TYPE
        SYNTAX                TruthValue
        MAX-ACCESS            read-only
        STATUS                current
        DESCRIPTION
               "Indicates whether an iSCSI connection is secure
                or not. If the value of this object is 'true', the
                Ip Security is turned on and the connection is
                secure. If 'false', Ip Security is not turned
                on and the connection may be unsecure."
        ::= { ciscsiConnectionStatsEntry 6 }

-- Conformance

ciscoiScsiGwMIBCompliances
       OBJECT IDENTIFIER ::= { ciscoiScsiGwMIBConformance 1 }

ciscoiScsiGwMIBGroups
       OBJECT IDENTIFIER ::= { ciscoiScsiGwMIBConformance 2 }

ciscoiScsiGwMIBCompliance MODULE-COMPLIANCE
        STATUS   deprecated -- superceeded by 
                            -- ciscoiScsiGwMIBCompliance1
        DESCRIPTION
                "The compliance statement for entities which
                 implement the CISCO-ISCSI-GW-MIB."
        MODULE MANDATORY-GROUPS { cigConfigurationGroup }

        GROUP  cigLuConfigurationGroup
        DESCRIPTION
                "Implementation of this group is mandatory for all
                systems that support creation of iSCSI virtual targets 
                from LUs on remote FC targets."

        OBJECT iscsi2FcNodeRole             
        SYNTAX     BITS {             
                     initiatorTypeNode (1)
                   }  
        DESCRIPTION 
                "Only initiatorTypeNode role need to be supported."
                                           
        OBJECT fc2IscsiNodeRole             
        SYNTAX     BITS {             
                     targetTypeNode (0)
                   }  
        DESCRIPTION 
                "Only targetTypeNode role need to be supported."

        OBJECT iscsi2FcNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fc2IscsiNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fcAddressRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT iscsiNodeNameRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT scsiLuExtRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."

        ::= { ciscoiScsiGwMIBCompliances 1 }

ciscoiScsiGwMIBCompliance1 MODULE-COMPLIANCE
        STATUS   deprecated -- superceeded by 
                            -- ciscoiScsiGwMIBCompliance2
        DESCRIPTION
                "The compliance statement for entities which
                 implement the CISCO-ISCSI-GW-MIB."
        MODULE MANDATORY-GROUPS { cigConfigurationGroupRev1,
                                  cigSessionStatsGroup,
                                  cigIscsiIfGroup }

        GROUP  cigLuConfigurationGroupRev1
        DESCRIPTION
                "Implementation of this group is mandatory for all
                systems that support creation of iSCSI virtual targets 
                from LUs on remote FC targets."

        OBJECT iscsi2FcNodeRole             
        SYNTAX     BITS {             
                     initiatorTypeNode (1)
                   }  
        DESCRIPTION 
                "Only initiatorTypeNode role need to be supported."
                                           
        OBJECT fc2IscsiNodeRole             
        SYNTAX     BITS {             
                     targetTypeNode (0)
                   }  
        DESCRIPTION 
                "Only targetTypeNode role need to be supported."

        OBJECT iscsi2FcNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fc2IscsiNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fcAddressRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT iscsiNodeNameRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT scsiLuExtRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."

        OBJECT iscsi2FcNodeDiscovered             
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only read-only need to be supported."

        ::= { ciscoiScsiGwMIBCompliances 2 }

ciscoiScsiGwMIBCompliance2 MODULE-COMPLIANCE
        STATUS   deprecated -- superceeed by ciscoiScsiGwMIBCompliance3
        DESCRIPTION
                "The compliance statement for entities which
                 implement the CISCO-ISCSI-GW-MIB."
        MODULE MANDATORY-GROUPS { cigConfigurationGroupRev2,
                                  cigSessionStatsGroup,
                                  cigIscsiIfGroupRev1,
                                  cigIscsiAuthGroup,
                                  cigIscsiGigEIfGroup }

        GROUP  cigLuConfigurationGroupRev1
        DESCRIPTION
                "Implementation of this group is mandatory for all
                systems that support creation of iSCSI virtual targets 
                from LUs on remote FC targets."

        OBJECT iscsi2FcNodeRole             
        SYNTAX     BITS {             
                     initiatorTypeNode (1)
                   }  
        DESCRIPTION 
                "Only initiatorTypeNode role need to be supported."
                                           
        OBJECT fc2IscsiNodeRole             
        SYNTAX     BITS {             
                     targetTypeNode (0)
                   }  
        DESCRIPTION 
                "Only targetTypeNode role need to be supported."

        OBJECT iscsi2FcNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        MIN-ACCESS read-create
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fc2IscsiNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fcAddressRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT iscsiNodeNameRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT scsiLuExtRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."

        OBJECT iscsi2FcNodeDiscovered             
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only read-only need to be supported."

        ::= { ciscoiScsiGwMIBCompliances 3 }

ciscoiScsiGwMIBCompliance3 MODULE-COMPLIANCE
        STATUS   deprecated -- superceeded by
                            -- ciscoiScsiGwMIBCompliance4
        DESCRIPTION
                "The compliance statement for entities which
                 implement the CISCO-ISCSI-GW-MIB."
        MODULE MANDATORY-GROUPS { cigConfigurationGroupRev3,
                                  cigSessionStatsGroup,
                                  cigIscsiIfGroupRev3,
                                  cigIscsiAuthGroup,
                                  cigIscsiGigEIfGroup }

        GROUP  cigLuConfigurationGroupRev1
        DESCRIPTION
                "Implementation of this group is mandatory for all
                systems that support creation of iSCSI virtual targets 
                from LUs on remote FC targets."

        OBJECT iscsi2FcNodeRole             
        SYNTAX     BITS {             
                     initiatorTypeNode (1)
                   }  
        DESCRIPTION 
                "Only initiatorTypeNode role need to be supported."
                                           
        OBJECT fc2IscsiNodeRole             
        SYNTAX     BITS {             
                     targetTypeNode (0)
                   }  
        DESCRIPTION 
                "Only targetTypeNode role need to be supported."

        OBJECT iscsi2FcNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fc2IscsiNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fcAddressRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT iscsiNodeNameRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT scsiLuExtRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."

        OBJECT iscsi2FcNodeDiscovered             
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only read-only need to be supported."

        ::= { ciscoiScsiGwMIBCompliances 4 }


ciscoiScsiGwMIBCompliance4 MODULE-COMPLIANCE
        STATUS   deprecated -- superceded by 
                            -- ciscoiScsiGwMIBCompliance5
        DESCRIPTION
                "The compliance statement for entities which
                 implement the CISCO-ISCSI-GW-MIB."
        MODULE MANDATORY-GROUPS { cigConfigurationGroupRev3,
                                  cigSessionStatsGroup,
                                  cigIscsiIfGroupRev4,
                                  cigIscsiAuthGroup,
                                  cigIscsiGigEIfGroup }

        GROUP  cigLuConfigurationGroupRev1
        DESCRIPTION
                "Implementation of this group is mandatory for all
                systems that support creation of iSCSI virtual targets 
                from LUs on remote FC targets."

        OBJECT iscsi2FcNodeRole             
        SYNTAX     BITS {             
                     initiatorTypeNode (1)
                   }  
        DESCRIPTION 
                "Only initiatorTypeNode role need to be supported."
                                           
        OBJECT fc2IscsiNodeRole             
        SYNTAX     BITS {             
                     targetTypeNode (0)
                   }  
        DESCRIPTION 
                "Only targetTypeNode role need to be supported."

        OBJECT iscsi2FcNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fc2IscsiNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fcAddressRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT iscsiNodeNameRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT scsiLuExtRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."

        OBJECT iscsi2FcNodeDiscovered             
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only read-only need to be supported."

        ::= { ciscoiScsiGwMIBCompliances 5 }


ciscoiScsiGwMIBCompliance5 MODULE-COMPLIANCE
        STATUS   current
        DESCRIPTION
                "The compliance statement for entities which
                 implement the CISCO-ISCSI-GW-MIB."
        MODULE MANDATORY-GROUPS { cigConfigurationGroupRev3,
                                  cigConfigurationGroupSup1,
                                  cigSessionStatsGroup,
                                  cigIscsiIfGroupRev4,
                                  cigIscsiIfGroupSup1,
                                  cigIscsiAuthGroup,
                                  cigIscsiAuthGroupSup1,
                                  cigIscsiGigEIfGroup,
                                  cigConnectionStatsGroup }

        GROUP  cigLuConfigurationGroupRev1
        DESCRIPTION
                "Implementation of this group is mandatory for all
                systems that support creation of iSCSI virtual targets 
                from LUs on remote FC targets."

        OBJECT iscsi2FcNodeRole             
        SYNTAX     BITS {             
                     initiatorTypeNode (1)
                   }  
        DESCRIPTION 
                "Only initiatorTypeNode role need to be supported."
                                           
        OBJECT fc2IscsiNodeRole             
        SYNTAX     BITS {             
                     targetTypeNode (0)
                   }  
        DESCRIPTION 
                "Only targetTypeNode role need to be supported."

        OBJECT iscsi2FcNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fc2IscsiNodeRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT fcAddressRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT iscsiNodeNameRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."
                                           
        OBJECT scsiLuExtRowStatus             
        SYNTAX     INTEGER {             
                     active (1),
                     createAndGo (4),
                     destroy (6)}
        DESCRIPTION 
                "Only 'createAndGo', 'destroy' and 'active' need to be 
                supported."

        OBJECT iscsi2FcNodeDiscovered             
        MIN-ACCESS read-only
        DESCRIPTION 
                "Only read-only need to be supported."

        ::= { ciscoiScsiGwMIBCompliances 6 }


-- Units of Conformance

cigConfigurationGroup  OBJECT-GROUP
        OBJECTS  { 
                   iscsiImprtExprtTgtsConfImport, 
                   iscsiImprtExprtTgtsConfExport, 
                   iscsi2FcNodeName, 
                   iscsi2FcNodeRole, 
                   iscsi2FcNodePersistentFCAddr, 
                   iscsi2FcPortPersistentFCAddr, 
                   iscsi2FcPortNumFCAddr,
                   iscsi2FcNodeFCAddr, 
                   iscsi2FcPortFCAddrListIndex,
                   iscsi2FcNodeVsanList2k, 
                   iscsi2FcNodeVsanList4k,
                   iscsi2FcNodeDiscovered,
                   iscsi2FcNodeRowStatus, 
                   fc2IscsiNodeRole,
                   fc2IscsiNodeName,
                   fc2IscsiPortFCAddrListIndex,
                   fc2IscsiNodePermitListIndex,
                   fc2IscsiNodeAdvIntfListIndex,
                   fc2IscsiNodeAllIntrAccessAllowed,
                   fc2IscsiNodeDiscovered,
                   fc2IscsiNodeRowStatus, 
                   fcAddress, 
                   fcSecondaryAddress,
                   fcAddressRowStatus, 
                   iscsiNodeName, 
                   iscsiNodeNameRowStatus, 
                   nodeAdvIntfIfIndex, 
                   nodeAdvIntfIfRowStatus
        }
        STATUS   deprecated -- superceeded by cigConfigurationGroupRev1
        DESCRIPTION
                "A collection of objects for iSCSI Gateway 
                configuration."
        ::= { ciscoiScsiGwMIBGroups 1 }

cigLuConfigurationGroup  OBJECT-GROUP
        OBJECTS  { 
                   scsiLuExtRemotePortFcAddress,
                   scsiLuExtRemotePortSecFcAddress,
                   scsiLuExtLocalTargetAddress,
                   scsiLuExtRemoteLun, 
                   scsiLuExtLocalLun,
                   scsiLuExtRowStatus 
        }

        STATUS   deprecated -- superceeded by 
                            -- cigLuConfigurationGroupRev1
        DESCRIPTION
                "A collection of objects for creation virtual iSCSI 
                targets from remote LUs."
        ::= { ciscoiScsiGwMIBGroups 2 }

cigSessionStatsGroup  OBJECT-GROUP
        OBJECTS  { 
                   iscsiSsnVsan
        }

        STATUS   current
        DESCRIPTION
                "A collection of objects for iSCSI session statistics."
        ::= { ciscoiScsiGwMIBGroups 3 }

cigConfigurationGroupRev1  OBJECT-GROUP
        OBJECTS  { 
                   iscsiImprtExprtTgtsConfImport, 
                   iscsiImprtExprtTgtsConfExport, 
                   iscsi2FcNodeName, 
                   iscsi2FcNodeRole, 
                   iscsi2FcNodePersistentFCAddr, 
                   iscsi2FcPortPersistentFCAddr, 
                   iscsi2FcPortNumFCAddr,
                   iscsi2FcNodeFCAddr, 
                   iscsi2FcPortFCAddrListIndex,
                   iscsi2FcNodeVsanList2k, 
                   iscsi2FcNodeVsanList4k,
                   iscsi2FcNodeDiscovered,
                   iscsi2FcNodeRowStatus, 
                   iscsi2FcNodeFcAddrAssignment,
                   fc2IscsiNodeRole,
                   fc2IscsiNodeName,
                   fc2IscsiPortFCAddrListIndex,
                   fc2IscsiNodePermitListIndex,
                   fc2IscsiNodeAdvIntfListIndex,
                   fc2IscsiNodeAllIntrAccessAllowed,
                   fc2IscsiNodeDiscovered,
                   fc2IscsiNodeRowStatus, 
                   fcAddress, 
                   fcSecondaryAddress,
                   fcAddressRowStatus, 
                   iscsiNodeName, 
                   iscsiNodeNameRowStatus, 
                   nodeAdvIntfIfIndex, 
                   nodeAdvIntfIfRowStatus
        }
        STATUS   deprecated -- superceeded by cigConfigurationGroupRev2
        DESCRIPTION
                "A collection of objects for iSCSI Gateway 
                configuration."
        ::= { ciscoiScsiGwMIBGroups 4 }

cigLuConfigurationGroupRev1  OBJECT-GROUP
        OBJECTS  { 
                   scsiLuExtRemotePortFcAddress,
                   scsiLuExtRemotePortSecFcAddress,
                   scsiLuExtLocalTargetAddress,
                   scsiLuExtRemoteLun, 
                   scsiLuExtLocalLun,
                   scsiLuExtRowStatus,
                   scsiLuExtRemoteSecLun 
        }

        STATUS   current
        DESCRIPTION
                "A collection of objects for creation virtual iSCSI 
                targets from remote LUs."
        ::= { ciscoiScsiGwMIBGroups 5 }

cigIscsiIfGroup  OBJECT-GROUP
        OBJECTS  { 
               iscsiIfTcpKeepAliveTimeout,
               iscsiIfTcpMaxBandwidth,
               iscsiIfTcpMaxRetransmissions,
               iscsiIfTcpMinRetransmitTime,
               iscsiIfTcpPMTUEnable,
               iscsiIfTcpQOS,
               iscsiIfTcpSACKEnable,
               iscsiIfTcpSendBufferSize, 
               iscsiIfTcpMinBandwidth,
               iscsiIfTcpPMTUResetTimeout,
               iscsiIfTcpLocalPort
        }
        STATUS   deprecated -- superceeded by cigIscsiIfGroupRev1
        DESCRIPTION
                "A collection of objects for iSCSI interface 
                configuration and monitoring."
        ::= { ciscoiScsiGwMIBGroups 6 }

cigIscsiIfGroupRev1  OBJECT-GROUP
        OBJECTS  { 
               iscsiIfTcpKeepAliveTimeout,
               iscsiIfTcpMaxBandwidth,
               iscsiIfTcpMaxRetransmissions,
               iscsiIfTcpMinRetransmitTime,
               iscsiIfTcpPMTUEnable,
               iscsiIfTcpQOS,
               iscsiIfTcpSACKEnable,
               iscsiIfTcpSendBufferSize, 
               iscsiIfTcpMinBandwidth,
               iscsiIfTcpPMTUResetTimeout,
               iscsiIfTcpLocalPort,
               iscsiIfForwardingMode,
               iscsiIfIntrProxyMode,
               iscsiIfIntrProxyModeNodeFcAddr,
               iscsiIfIntrProxyModePortFcAddr,
               iscsiIfIntrProxyModeFcAddrAsgnmt
        }
        STATUS   deprecated -- superceeded by cigIscsiIfGroupRev2
        DESCRIPTION
                "A collection of objects for iSCSI interface 
                configuration and monitoring."
        ::= { ciscoiScsiGwMIBGroups 7 }

cigIscsiAuthGroup  OBJECT-GROUP
        OBJECTS  { 
               iscsiAuthMethod,
               iscsi2FcNodeAuthUser,
               iscsiGigEIfAuthMethod
        }
        STATUS   current 
        DESCRIPTION
                "A collection of objects for iSCSI authentication."
        ::= { ciscoiScsiGwMIBGroups 8 }

cigConfigurationGroupRev2  OBJECT-GROUP
        OBJECTS  { 
                   iscsiImprtExprtTgtsConfImport, 
                   iscsiImprtExprtTgtsConfExport, 
                   iscsi2FcNodeName, 
                   iscsi2FcNodeRole, 
                   iscsi2FcNodePersistentFCAddr, 
                   iscsi2FcPortPersistentFCAddr, 
                   iscsi2FcPortNumFCAddr,
                   iscsi2FcNodeFCAddr, 
                   iscsi2FcPortFCAddrListIndex,
                   iscsi2FcNodeVsanList2k, 
                   iscsi2FcNodeVsanList4k,
                   iscsi2FcNodeDiscovered,
                   iscsi2FcNodeRowStatus, 
                   iscsi2FcNodeFcAddrAssignment,
                   fc2IscsiNodeRole,
                   fc2IscsiNodeName,
                   fc2IscsiPortFCAddrListIndex,
                   fc2IscsiNodePermitListIndex,
                   fc2IscsiNodeAdvIntfListIndex,
                   fc2IscsiNodeAllIntrAccessAllowed,
                   fc2IscsiNodeDiscovered,
                   fc2IscsiNodeRowStatus, 
                   fc2IscsiNodeTrespassMode,   
                   fc2IscsiNodeRevertToPrimaryPort,
                   fcAddress, 
                   fcSecondaryAddress,
                   fcAddressRowStatus, 
                   iscsiNodeName, 
                   iscsiNodeNameRowStatus, 
                   nodeAdvIntfIfIndex, 
                   nodeAdvIntfIfRowStatus
        }
        STATUS   deprecated -- superceeded by cigConfigurationGroupRev3
        DESCRIPTION
                "A collection of objects for iSCSI Gateway 
                configuration."
        ::= { ciscoiScsiGwMIBGroups 9 }

cigIscsiGigEIfGroup  OBJECT-GROUP
        OBJECTS  { 
               iscsiGigEIfIsnsServerProfileName,
               iscsiGigEIfIscsiSessions     
        }
        STATUS   current
        DESCRIPTION
                "A collection of objects for iSCSI GigE interface
                configurations."
        ::= { ciscoiScsiGwMIBGroups 10 }

cigIscsiIfGroupRev2  OBJECT-GROUP
        OBJECTS  { 
               iscsiIfTcpKeepAliveTimeout,
               iscsiIfTcpMaxBandwidth,
               iscsiIfTcpMaxRetransmissions,
               iscsiIfTcpMinRetransmitTime,
               iscsiIfTcpPMTUEnable,
               iscsiIfTcpQOS,
               iscsiIfTcpSACKEnable,
               iscsiIfTcpSendBufferSize, 
               iscsiIfTcpMinBandwidth,
               iscsiIfTcpPMTUResetTimeout,
               iscsiIfTcpLocalPort,
               iscsiIfForwardingMode,
               iscsiIfIntrProxyMode,
               iscsiIfIntrProxyModeNodeFcAddr,
               iscsiIfIntrProxyModePortFcAddr,
               iscsiIfIntrProxyModeFcAddrAsgnmt
        }
        STATUS   deprecated -- superceeded by cigIscsiIfGroupRev3
        DESCRIPTION
                "A collection of objects for iSCSI interface 
                configuration and monitoring."
        ::= { ciscoiScsiGwMIBGroups 11 }

cigConfigurationGroupRev3  OBJECT-GROUP
        OBJECTS  { 
                   iscsiImprtExprtTgtsConfImport, 
                   iscsiImprtExprtTgtsConfExport, 
                   iscsi2FcNodeName, 
                   iscsi2FcNodeRole, 
                   iscsi2FcNodePersistentFCAddr, 
                   iscsi2FcPortPersistentFCAddr, 
                   iscsi2FcPortNumFCAddr,
                   iscsi2FcNodeFCAddr, 
                   iscsi2FcPortFCAddrListIndex,
                   iscsi2FcNodeVsanList2k, 
                   iscsi2FcNodeVsanList4k,
                   iscsi2FcNodeDiscovered,
                   iscsi2FcNodeRowStatus, 
                   iscsi2FcNodeFcAddrAssignment,
                   fc2IscsiNodeRole,
                   fc2IscsiNodeName,
                   fc2IscsiPortFCAddrListIndex,
                   fc2IscsiNodePermitListIndex,
                   fc2IscsiNodeAdvIntfListIndex,
                   fc2IscsiNodeAllIntrAccessAllowed,
                   fc2IscsiNodeDiscovered,
                   fc2IscsiNodeRowStatus, 
                   fc2IscsiNodeTrespassMode,   
                   fc2IscsiNodeRevertToPrimaryPort,
                   fcAddress, 
                   fcSecondaryAddress,
                   fcAddressRowStatus, 
                   iscsiNodeName, 
                   iscsiNodeNameRowStatus, 
                   nodeAdvIntfIfIndex, 
                   nodeAdvIntfIfRowStatus,
                   iscsiInitiatorIdleTimeout,
                   iscsiIntrIdentificationMode
        }
        STATUS   current 
        DESCRIPTION
                "A collection of objects for iSCSI Gateway 
                configuration."
        ::= { ciscoiScsiGwMIBGroups 12 }


cigIscsiIfGroupRev3  OBJECT-GROUP
        OBJECTS  {
               iscsiIfTcpKeepAliveTimeout,
               iscsiIfTcpMaxBandwidth,
               iscsiIfTcpMaxRetransmissions,
               iscsiIfTcpMinRetransmitTime,
               iscsiIfTcpPMTUEnable,
               iscsiIfTcpQOS,
               iscsiIfTcpSACKEnable,
               iscsiIfTcpSendBufferSize,
               iscsiIfTcpMinBandwidth,
               iscsiIfTcpPMTUResetTimeout,
               iscsiIfTcpLocalPort,
               iscsiIfForwardingMode,
               iscsiIfIntrProxyMode,
               iscsiIfIntrProxyModeNodeFcAddr,
               iscsiIfIntrProxyModePortFcAddr,
               iscsiIfIntrProxyModeFcAddrAsgnmt,
               iscsiIfIntrIdentificationMode
        }
        STATUS   deprecated -- superceded by cigIscsiIfGroupRev4
        DESCRIPTION
                "A collection of objects for iSCSI interface
                configuration and monitoring."
        ::= { ciscoiScsiGwMIBGroups 13 }

cigIscsiIfGroupRev4  OBJECT-GROUP
        OBJECTS  {
               iscsiIfTcpKeepAliveTimeout,
               iscsiIfTcpMaxBandwidth,
               iscsiIfTcpMaxRetransmissions,
               iscsiIfTcpMinRetransmitTime,
               iscsiIfTcpPMTUEnable,
               iscsiIfTcpQOS,
               iscsiIfTcpSACKEnable,
               iscsiIfTcpSendBufferSize,
               iscsiIfTcpMinBandwidth,
               iscsiIfTcpPMTUResetTimeout,
               iscsiIfForwardingMode,
               iscsiIfIntrProxyMode,
               iscsiIfIntrProxyModeNodeFcAddr,
               iscsiIfIntrProxyModePortFcAddr,
               iscsiIfIntrProxyModeFcAddrAsgnmt,
               iscsiIfIntrIdentificationMode,
               iscsiIfTcpLocalTcpPort,
               iscsiIfTcpRndTrpTimeEst
        }
        STATUS   current
        DESCRIPTION
                "An collection of objects for iSCSI interface
                configuration and monitoring."
        ::= { ciscoiScsiGwMIBGroups 14 }


cigIscsiIfGroupSup1  OBJECT-GROUP
        OBJECTS  {
               iscsiIfNumNormalConnections, 
               iscsiIfNumDiscovConnections,
               iscsiIfTcpCWMEnable,
               iscsiIfTcpCWMBurstSize,
               iscsiIfTcpMaxJitter

        }
        STATUS   current
        DESCRIPTION
                "A collection of objects for iSCSI interface
                configuration and monitoring."
        ::= { ciscoiScsiGwMIBGroups 15 }


cigConnectionStatsGroup  OBJECT-GROUP
        OBJECTS  {
                  cIscsiStatsConnectionTxBytes,
                  cIscsiStatsConnectionRxBytes,
                  cIscsiStatsIpSecInUse

        }
        STATUS current
                DESCRIPTION
                "A collection of objects for iSCSI connection
                statistics."
        ::= { ciscoiScsiGwMIBGroups 16 }

cigConfigurationGroupSup1  OBJECT-GROUP
        OBJECTS  {
                   iscsiTargetUserName,
                   iscsiTargetPassword
        }
        STATUS   current
        DESCRIPTION
                "A collection of objects for iSCSI Gateway
                configuration."
        ::= { ciscoiScsiGwMIBGroups 17 }


cigIscsiAuthGroupSup1  OBJECT-GROUP
        OBJECTS  {
               iscsi2FcTargetUserName,
               iscsi2FcTargetPassword 
        }
        STATUS   current
        DESCRIPTION
                "A collection of objects for iSCSI authentication."
        ::= { ciscoiScsiGwMIBGroups 18 }

END
