[Docs] [txt|pdf] [Tracker] [WG] [Email] [Diff1] [Diff2] [Nits] [IPR]

Versions: 00 01 02 03 04 05 06 07 08 09 10 11 RFC 4544

Internet Draft                                              Mark Bakke
<draft-ietf-ips-iscsi-mib-02.txt>                           Jim Muchow
Expires January 2002                                     Cisco Systems

                                                      Marjorie Krueger
                                                       Hewlett-Packard

                                                         Tom McSweeney
                                                                   IBM

                                                             July 2001


                Definitions of Managed Objects for iSCSI



1.  Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet- Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.


1.1.  Copyright Notice

   Copyright (C) The Internet Society (2000).  All Rights Reserved.


2.  Abstract

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in TCP/IP based internets.



Bakke, Muchow             Expires January 2002                  [Page 1]


Internet Draft                  iSCSI MIB                      July 2001


   In particular it defines objects for managing a client using the
   iSCSI (SCSI over TCP) protocol.  It is meant to match the latest
   version of iSCSI defined in [ISCSI].


3.  Acknowledgments

   In addition to the authors, several people contributed to the
   development of this MIB.  Thanks especially to those who took the
   time to participate in our weekly conference calls to build our
   requirements, object models, table structures, and attributes: John
   Hufferd, Tom McSweeney (IBM), Kevin Gibbons (Nishan Systems), Chad
   Gregory (Intel), Jack Harwood (EMC), Hari Mudaliar (Adaptec), Ie Wei
   Njoo (Agilent), Lawrence Lamers (SAN Valley), Satish Mali (Stonefly
   Networks), and William Terrell (Troika).

   Special thanks to Tom McSweeney, Ie Wei Njoo, and Kevin Gibbons, who
   wrote the descriptions for many of the tables and attributes in this
   MIB.


4.  The SNMP Management Framework

   The SNMP Management Framework presently consists of five major
   components:

    o   An overall architecture, described in RFC 2571 [RFC2571].

    o   Mechanisms for describing and naming objects and events for the
        purpose of management.  The first version of this Structure of
        Management Information (SMI) is called SMIv1 and described in
        STD 16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC
        1215 [RFC1215].  The second version, called SMIv2, is described
        in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and
        STD 58, RFC 2580 [RFC2580].

    o   Message protocols for transferring management information.  The
        first version of the SNMP message protocol is called SNMPv1 and
        described in STD 15, RFC 1157 [RFC1157].  A second version of
        the SNMP message protocol, which is not an Internet standards
        track protocol, is called SNMPv2c and described in RFC 1901
        [RFC1901] and RFC 1906 [RFC1906].  The third version of the
        message protocol is called SNMPv3 and described in RFC 1906
        [RFC1906], RFC 2572 [RFC2572] and RFC 2574 [RFC2574].

    o   Protocol operations for accessing management information.  The
        first set of protocol operations and associated PDU formats is
        described in STD 15, RFC 1157 [RFC1157].  A second set of



Bakke, Muchow             Expires January 2002                  [Page 2]


Internet Draft                  iSCSI MIB                      July 2001


        protocol operations and associated PDU formats is described in
        RFC 1905 [RFC1905].

    o   A set of fundamental applications described in RFC 2573
        [RFC2573] and the view-based access control mechanism described
        in RFC 2575 [RFC2575].

   A more detailed introduction to the current SNMP Management Framework
   can be found in RFC 2570 [RFC2570].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  Objects in the MIB are
   defined using the mechanisms defined in the SMI.

   This memo specifies a MIB module that is compliant to the SMIv2.  A
   MIB conforming to the SMIv1 can be produced through the appropriate
   translations.  The resulting translated MIB must be semantically
   equivalent, except where objects or events are omitted because no
   translation is possible (use of Counter64).  Some machine readable
   information in SMIv2 will be converted into textual descriptions in
   SMIv1 during the translation process.  However, this loss of machine
   readable information is not considered to change the semantics of the
   MIB.


5.  Discussion

   This MIB structure is intended to satisfy fault, performance, and
   security management for an iSCSI implementation.  It is structured
   around the well-known iSCSI objects, such as targets, initiators,
   sessions, connections, and the like.

   It is worthwhile to note that this is an iSCSI MIB and and such
   reflects only iSCSI objects (real or virtual). This means that this
   MIB will not directly deal with real SCSI objects or the SCSI
   protocol in general. This should be dealt with in a SCSI MIB if such
   a beast exists.  The iSCSI tables that would likely have parallel
   objects in a SCSI MIB contain a RowPointer, which can be used to
   point to the corresponding object in a standard or proprietary SCSI
   MIB.

   The iSCSI MIB consists of eight objects, each of which is represented
   by several different tables.  This section contains a brief
   description of the "object" hierarchy and a description of each
   object, followed by a discussion of the actual SNMP table structure
   within the objects.





Bakke, Muchow             Expires January 2002                  [Page 3]


Internet Draft                  iSCSI MIB                      July 2001


5.1.  Overall MIB structure

   The top-level object in this structure is the iSCSI instance, which
   contains all of the other objects.

   iscsiInstance
      -- A distinct iSCSI entity within the managed system.
      -- Most implementations will have just one of these.
      -- Stats are included instance level for errors which cause
      -- session termination.
      iscsiTargetPortal
         -- An IP Address and TCP Port pair on which this instance is
         -- listening for connections to its targets.
         -- No statistics are included at this level.
      iscsiInitiatorPortal
         -- An IP Address from which this instance can make connections
         -- to other targets.
         -- No statistics are included at this level.
      iscsiSession
         -- An active iSCSI session between an initiator and a target.
         -- The session's direction may be Inbound (outside initiator to
         -- our target) or Outbound (our initiator to an outside target).
         -- Statistics at this level are performance-related.
         iscsiConnection
            -- An active TCP connection within an iSCSI session
            -- No statistics appear here.
      iscsiTarget
         -- An iSCSI target to which this iSCSI instance is providing
         -- access.
         -- Statistics relating to security and faults are included.
         iscsiAccessList
            -- A list of initiators that are allowed access to this
            -- target.
            -- No statistics are included here.
      iscsiInitiator
         -- An iSCSI initiator, used by this iSCSI instance to access
         -- iSCSI targets.
         -- Statistics relating to security and faults are included.

   An Instance can contain Initiators, Targets, or both.  Multiple
   InitiatorPortals and TargetPortals may be present; the MIB assumes
   that any Target may be accessed via any TargetPortal, although other
   access controls not reflected in the MIB might limit this.

   Logical Units and LUNs are SCSI-level entities, which will be covered
   in a separate SCSI MIB.





Bakke, Muchow             Expires January 2002                  [Page 4]


Internet Draft                  iSCSI MIB                      July 2001


5.2.  MIB "object" structure

   Each iSCSI "object" is comprised of several tables, which will make
   it easier to navigate the iSCSI MIB from a graphical browser, and to
   update the iSCSI MIB in the future.

   Placing all of the indices, attributes, and statistics for each
   object in the same table would make the addition of new statistics
   and attributes appear messy.  Since iSCSI is an evolving standard, it
   is worth having a few extra tables to make this easier.  To this end,
   the attributes and statistics have been placed in separate tables,
   which augment the main indexed table for each object.  Since there
   are several categories of statistics that will likely grow, most of
   the objects contain multiple statistics tables.

   The following structure is used for all objects.  Please do not be
   frightened; each of the objects includes only a few of these tables,
   as appropriate.  Just replace the "*" in the following names with the
   iSCSI object name in which you are interested.  For example, the
   Target object would be iscsiTargetInfo.

   iscsi*Info
      -- The main structure holding objects of a given type
      iscsi*Objects
         -- sub-iscsi*Info structures go here
         -- Example:  iscsiTargetInfo belongs under iscsiInstanceObjects
         -- and iscsiConnnectionInfo belongs under iscsiSessionObjects
      iscsi*Scalars
         -- iscsi*Info scalars go here
      iscsi*AttributesTable
         iscsi*AttributesEntry
            -- iscsi*Table index attributes
            -- iscsi*Entry non-statistical attributes
      iscsi*StatsTable
         iscsi*StatsEntry
            -- Augments iscsiAttributes*Entry
            -- iscsi*Entry generic statistical attributes
            -- Contains performance-related counters
            -- Examples: Total requests, responses, data bytes
      iscsi*SessionErrorStatsTable
         iscsi*SessionErrorStatsEntry
            -- Augments iscsiAttributes*Entry
            -- Connection statistics for errors that terminate sessions
            -- Used within Instance
            -- Examples:  Digest, format, and connection timeout errors
      iscsi*CxnErrorStatsTable
         iscsi*CxnErrorStatsEntry
            -- Augments iscsiAttributes*Entry



Bakke, Muchow             Expires January 2002                  [Page 5]


Internet Draft                  iSCSI MIB                      July 2001


            -- Connection error statistics
            -- Used within Session
            -- Examples:  Digest and connection timeout errors
      iscsi*LoginStatsTable
         iscsi*LoginStatsEntry
            -- Augments iscsiAttributes*Entry
            -- Numbers of successful and different types of
            -- unsuccessful logins
            -- Used by Target, Initiator
      iscsi*LogoutStatsTable
         iscsi*TxLogoutStatsEntry
            -- Augments iscsiAttributes*Entry
            -- Numbers of normal and abnormal logouts
            -- Used by Target, Initiator

   Note that this MIB does not attempt to count everything that could be
   counted; it is designed to include only those counters that would be
   useful for identifying performance, security, and fault problems from
   a management station.

5.3.  iscsiInstanceInfo

   iscsiInstanceInfo is the primary table of the iSCSI MIB from which
   all other tables are derived.  It contains the
   iscsiInstanceAttributesTable which lists all the known iSCSI
   instances accessible by the agent.

   One could envision that there might be just one instance (or row in
   this table); however, it exists as a table to allow for multiple
   virtual instances.  For example, many IP routing products now allow
   multiple virtual routers.  The iSCSI MIB has the same premise.

   Also, it is possible that for larger systems, a single SNMP agent may
   control and monitor multiple subsystems, each of which have one or
   even more instances.

   A scalar predecessor of the table called the iscsiInstanceNumber
   denotes the number of instances or rows in the
   iscsiInstanceAttributesTable. Each row also contains similar "Number"
   or instance counts for the various rows of the sub-tables that are
   derived from this table. The term "endpoint" has been used to denote
   either a target or initiator instance.

   The instance attributes include information on the last target or
   initiator at the other end of a session that caused a session
   failure.

   iscsiInstanceInfo also contains iscsiInstanceObjects, from which all



Bakke, Muchow             Expires January 2002                  [Page 6]


Internet Draft                  iSCSI MIB                      July 2001


   of the other tables are derived.

5.4.  iscsiTargetPortalInfo

   iscsiTargetPortalInfo is contained within iscsiInstanceObjects, and
   contains the iscsiTargetPortalAttributesTable.

   The iscsiTargetPortalAttributesTable lists local sockets on which the
   iSCSI instance is listening for incoming connections to its targets.
   This table contains the local IP address, TCP (or other protocol)
   port, and IP protocol (for now, just TCP) on which the socket is
   listening.  It also includes a portal group aggregation tag; iSCSI
   target ports within this instance sharing the same tag can contain
   connections within the same session.

   This table will usually be empty for iSCSI instances that contain
   only initiators (such as iSCSI host driver implementations).

5.5.  iscsiInitiatorPortalInfo

   iscsiInitiatorPortalInfo is contained within iscsiInstanceObjects,
   and contains the iscsiInitiatorPortalAttributesTable.

   The iscsiInitiatorPortalAttributesTable lists the IP addresses from
   which the iSCSI instance may initiate connections to other targets.
   Each entry in this table contains a local IP address and IP protocol
   (for now, just TCP), and a portal group aggregation tag, indicating
   which portals an initiator may use together within a multiple-
   connection session.

   This table will usually be empty for iSCSI instances that contain
   only targets (such as most iSCSI devices).

5.6.  iscsiSessionInfo

   iscsiSessionInfo is contained within iscsiInstanceObjects, and
   contains the iscsiSessionAttributesTable.

   The iscsiSessionAttributesTable contains a set of rows that list the
   sessions known to be existing locally for each iSCSI instance.

   The session type for each session indicates whether the session is
   used for normal SCSI commands, for discovery using the SendTargets
   text command, or for other purposes such as booting an initiator.

   The session direction for each session indicates whether it is an
   Inbound Session or an Outbound Session.  Inbound sessions are from
   some other initiator to a target within this iSCSI instance; Outbound



Bakke, Muchow             Expires January 2002                  [Page 7]


Internet Draft                  iSCSI MIB                      July 2001


   sessions are from our initiator to a target outside this iSCSI
   instance.

   An inbound session may be correlated with its local target using the
   TargetName attribute of the session; the InitiatorName indicates the
   "other end", in some other entity.

   Similarly, an outbound session may be associated with its local
   initiator using the InitiatorName; in this case, the TargetName
   indicates the other end.

   Many attributes may be negotiated when starting an iSCSI session.
   Most of these attributes are included in the session object.

   Some attributes, such as the integrity and authentication schemes,
   have some standard values which can be extended by vendors to include
   their own schemes.  Rather than using enumerated types for these, a
   UTF8String attribute is used to indicate the name of the scheme in
   use.

   The iSCSI session includes statistics related to performance;
   counting iSCSI data bytes and PDUs.  As most errors would result in
   the termination of an iSCSI session, error counters are kept for
   targets and initiators, rather than sessions.

   iscsiSessionInfo also contains iscsiSessionObjects, from which the
   Connection table is derived.

5.7.  iscsiConnectionInfo

   iscsiConnectionInfo is contained within iscsiSessionObjects, and
   contains the iscsiConnectionAttributesTable.

   The iscsiConnectionAttributesTable contains a list of active
   connections within each session.  It contains the IP addresses and
   TCP (or other protocol) ports of both the local and remote side of
   the connection.  These may be used to locate other connection-related
   information and statistics in the TCP MIB [RFC 2012].

   The attributes table also contains a connection state.  This state is
   not meant to directly map to the state tables included within the
   iSCSI specification; they are meant to be simplified, higher-level
   definitions of connection state that provide information more useful
   to a user or network manager.

   No statistics are currently kept for each connection.





Bakke, Muchow             Expires January 2002                  [Page 8]


Internet Draft                  iSCSI MIB                      July 2001


5.8.  iscsiTargetInfo

   iscsiTargetInfo is contained within iscsiInstanceObjects, and
   contains the iscsiTargetAttributesTable.

   The iscsiTargetAttributesTable contains a list of iSCSI targets which
   may be accessed through the iSCSI instance.  This table contains the
   target's iSCSI Name, alias string, and some attributes used to
   indicate the last failure that was (or should have been) sent as a
   notification or trap.  Also included is a RowPointer which can be
   used to locate the associated SCSI target object, should a SCSI MIB
   be created.

   Statistics tables augmenting iscsiTargetAttributesTable are provided.

   iscsiTargetInfo also contains iscsiTargetObjects, from which the
   AccessList tables are derived.

5.9.  iscsiAccessListInfo

   iscsiAccessListInfo is contained within iscsiTargetObjects, and
   contains the iscsiAccessListAttributesTable.

   The iscsiAccessListAttributesTable contains an entry for each
   initiator that is allowed to access the target under which it
   appears.  If a target allows access to any initiator, an
   AccessListAttributesEntry with the initiator's iSCSI name should be
   used.

   This table does not cover all possible access control schemes that a
   vendor could implement.  If access to an initiator cannot be
   determined just by its iSCSI name, an implementation may use the
   canonical name "iscsi", or may choose to place no entries in this
   table.

   No statistics are provided for access list entries.

5.10.  iscsiInitiatorInfo

   iscsiInitiatorInfo is contained within iscsiInstanceObjects, and
   contains the iscsiInitiatorAttributesTable.

   The iscsiInitiatorAttributesTable contains a list of iSCSI initiators
   which are used by this iSCSI instance to access targets.  Most
   implementations will include a single entry in this table, regardless
   of the number of physical interfaces the initiator may use.  This
   table's attributes include the initiator's iSCSI name and alias
   string.



Bakke, Muchow             Expires January 2002                  [Page 9]


Internet Draft                  iSCSI MIB                      July 2001


   Statistics tables augmenting iscsiInitiatorAttributesTable are
   provided.

5.11.  IP Addresses and TCP Port Numbers

   The IP addresses in this MIB are represented by two attributes, one
   of type InetAddressType, and the other of type InetAddress.  These
   are taken from [IPV6MIB], which is an update to [RFC2851] specifying
   how to support addresses that may be either IPv4 or IPv6.

   The TCP port numbers that appear in a few of the structures are
   described as simply port numbers, with a protocol attribute
   indicating whether they are TCP ports, or something else.  This will
   allow the MIB to be compatible with iSCSI over transports other than
   TCP in the future.

5.12.  Notifications

   Three notifications are provided.  One is sent by an initiator
   detecting a critical login failure; another is sent by a target
   detecting a critical login failure, and the third is sent upon a
   session being terminated due to an abnormal connection or digest
   failure.  Critical failures are defined as those that may expose
   security-related problems that may require immediate action, such as
   failures due to authentication, authorization, or negotiation
   problems.  Attributes in the initiator, target, and instance objects
   provide the information necessary to send in the notification, such
   as the initiator or target name and IP address at the other end that
   may have caused the failure.






















Bakke, Muchow             Expires January 2002                 [Page 10]


Internet Draft                  iSCSI MIB                      July 2001


6.  MIB Definitions



ISCSI-MIB DEFINITIONS  ::= BEGIN

    IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Unsigned32, Counter32, Counter64,
    experimental
    FROM SNMPv2-SMI

    TEXTUAL-CONVENTION, TruthValue, VariablePointer, TimeStamp
    FROM SNMPv2-TC

    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
    FROM SNMPv2-CONF

--  These are from draft-ietf-ops-rfc2851-update-00.txt
--  You will have to work out the details with your own
--  compiler being because they are so new.
    InetAddressType, InetAddress
    FROM INET-ADDRESS-MIB
    ;

-- TBD
-- 1) need a For-Real number to attach to

iscsiModule MODULE-IDENTITY
    LAST-UPDATED                    "0104020000Z" -- April 2, 2001
    ORGANIZATION                    "Cisco Systems, Inc"
    CONTACT-INFO
    "
    Mark Bakke
    Postal: Cisco Systems, Inc
    6450 Wedgwood Road, Suite 130
    Maple Grove, MN
    USA 55311

    Tel: +1 763-398-1000
    Fax: +1 763-398-1001

    E-mail: mbakke@cisco.com

    Marjorie Krueger
    Postal: Hewlett-Packard
    Networked Storage Architecture
    Networked Storage Solutions Org.



Bakke, Muchow             Expires January 2002                 [Page 11]


Internet Draft                  iSCSI MIB                      July 2001


    8000 Foothills Blvd.
    Roseville, CA 95747

    Tel: +1 916-785-2656
    Tel: +1 916-785-0391

    Email: marjorie_krueger@hp.com

    Jim Muchow
    Postal: Cisco Systems, Inc
    6450 Wedgwood Road, Suite 130
    Maple Grove, MN
    USA 55311

    Tel: +1 763-398-1000
    Fax: +1 763-398-1001

    E-mail: jmuchow@cisco.com"

    DESCRIPTION
        "."

    REVISION "0104020000Z" -- April 2, 2001
    DESCRIPTION
        "Various changes, additions, deletions:
        1) Extensive re-organization of Comformance area.
        2) Removal of Lu & Lun groups
        3) Addition of lots of DESCRIPTIONS... but
        still not enough."

    REVISION "0102280000Z" -- February 28, 2001
    DESCRIPTION
        "Complete re-write, with the assistance of various
        persons in the iSCSI MIB working group."

    REVISION "0007280000Z"   -- July 28, 2000
    DESCRIPTION
        "Update to re-arrange the tables so that
        the initiator table is now an expansion table
        for the base iSCSI table.
        Added a couple of additional variables, the
        targetLunNumber in the target table and the
        lunSerialNumber in the lun table.
        Also a better definition of the OBJECT-GROUPs. "

::= { experimental 1 }

iscsiObjects OBJECT IDENTIFIER ::= { iscsiModule 1 }



Bakke, Muchow             Expires January 2002                 [Page 12]


Internet Draft                  iSCSI MIB                      July 2001


iscsiNotifications OBJECT IDENTIFIER ::= { iscsiModule 2 }
iscsiConformance OBJECT IDENTIFIER ::= { iscsiModule 3 }

-- Textual Conventions

Utf8String ::= TEXTUAL-CONVENTION
    DISPLAY-HINT                   "255t"
    STATUS                         current
    DESCRIPTION
        "Represents textual information taken from the UTF-8
        character set.
        Any object defined using this syntax may not exceed 255
        characters in length."
    SYNTAX                         OCTET STRING (SIZE (0..255))

-- OK, the various preliminaries are out of the way...

-- There is a single object from which all others are based
iscsiInstanceInfo OBJECT IDENTIFIER ::= { iscsiObjects 1 }

iscsiInstanceObjects OBJECT IDENTIFIER ::= { iscsiInstanceInfo 1 }
iscsiInstanceScalars OBJECT IDENTIFIER ::= { iscsiInstanceInfo 2 }

iscsiInstanceNumber OBJECT-TYPE
    SYNTAX                         Unsigned32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The number of iSCSI instances monitored and/or managed
        by a single agent."
::= { iscsiInstanceScalars 1 }

-- Instance Attributes Table

iscsiInstanceAttributesTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiInstanceAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A list of iSCSI instances present on the system."
::= { iscsiInstanceInfo 3 }

iscsiInstanceAttributesEntry OBJECT-TYPE
    SYNTAX                         IscsiInstanceAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing managment information applicable



Bakke, Muchow             Expires January 2002                 [Page 13]


Internet Draft                  iSCSI MIB                      July 2001


        to a particular iSCSI instance."
    INDEX { iscsiInstIndex }
::= { iscsiInstanceAttributesTable 1 }

IscsiInstanceAttributesEntry ::= SEQUENCE {
    iscsiInstIndex                 Unsigned32,
    iscsiInstName                  Utf8String,
    iscsiInstVersionMin            INTEGER,
    iscsiInstVersionMax            INTEGER,
    iscsiInstVendorID              Utf8String,
    iscsiInstVendorVersion         Utf8String,
    iscsiInstTargetPortalNumber    Unsigned32,
    iscsiInstInitiatorPortalNumber Unsigned32,
    iscsiInstSessionNumber         Unsigned32,
    iscsiInstTargetNumber          Unsigned32,
    iscsiInstInitiatorNumber       Unsigned32,
    iscsiInstNameServiceAddrType   InetAddressType,
    iscsiInstNameServiceAddr       InetAddress,
    iscsiInstNameServicePort       Unsigned32,
    iscsiInstNameServiceType       Utf8String,
    iscsiInstLastSsnFailureType    VariablePointer,
    iscsiInstLastSsnRmtNodeName    Utf8String
}

iscsiInstIndex OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An arbitrary integer used to uniquely identify a particular
        ISCSI instance."
::= { iscsiInstanceAttributesEntry 1 }

iscsiInstName OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "A UTF-8 string, determined by the implementation to name the
        iSCSI instance.  As most implementations only use a single
        instance, this may be left blank.  Implementations that
        support multiple iSCSI instances may use this string in
        whatever manner they choose to describe the purpose of the
        instance to a user."
::= { iscsiInstanceAttributesEntry 2 }

iscsiInstVersionMin OBJECT-TYPE
    SYNTAX                         INTEGER (0..255)



Bakke, Muchow             Expires January 2002                 [Page 14]


Internet Draft                  iSCSI MIB                      July 2001


    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "Minimum version number of the iSCSI specification supported
        by this instance."
::= { iscsiInstanceAttributesEntry 3 }

iscsiInstVersionMax OBJECT-TYPE
    SYNTAX                         INTEGER (0..255)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "Maximum version number of the iSCSI specification supported
        by this instance."
::= { iscsiInstanceAttributesEntry 4 }

iscsiInstVendorID OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "A text string describing the manufacturer of this instance."
::= { iscsiInstanceAttributesEntry 5 }

iscsiInstVendorVersion OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "A text string set by the manufacturer describing the verison
        of this instance.  The format of this string is determined
        solely by the manufacturer, and is for informational purposes
        only.  It is unrelated to the iSCSI specification version
        numbers."
::= { iscsiInstanceAttributesEntry 6 }

iscsiInstTargetPortalNumber OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The number of TCP (or other transport) ports on which this
        iSCSI instance is listening for connections to its targets."
::= { iscsiInstanceAttributesEntry 7 }

iscsiInstInitiatorPortalNumber OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     read-only



Bakke, Muchow             Expires January 2002                 [Page 15]


Internet Draft                  iSCSI MIB                      July 2001


    STATUS                         current
    DESCRIPTION
        "The number of TCP (or other transport) ports on which this
        iSCSI instance may initiate connections to targets."
::= { iscsiInstanceAttributesEntry 8 }

iscsiInstSessionNumber OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The number of sessions currently associated with this iSCSI
        instance."
::= { iscsiInstanceAttributesEntry 9 }

iscsiInstTargetNumber OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The number of targets currently associated with this iSCSI
        instance."
::= { iscsiInstanceAttributesEntry 10 }

iscsiInstInitiatorNumber OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The number of initiators currently associated with this iSCSI
        instance."
::= { iscsiInstanceAttributesEntry 11 }

iscsiInstNameServiceAddrType OBJECT-TYPE
    SYNTAX                         InetAddressType
    MAX-ACCESS                     read-write
    STATUS                         current
    DESCRIPTION
        "The type of Inet address in the next object."
::= { iscsiInstanceAttributesEntry 12 }

iscsiInstNameServiceAddr OBJECT-TYPE
    SYNTAX                           InetAddress
    MAX-ACCESS                     read-write
    STATUS                         current
    DESCRIPTION
        "The Inet Address of the name service being used, if there is one."
::= { iscsiInstanceAttributesEntry 13 }



Bakke, Muchow             Expires January 2002                 [Page 16]


Internet Draft                  iSCSI MIB                      July 2001


iscsiInstNameServicePort OBJECT-TYPE
    SYNTAX                         Unsigned32 (0..65535)
    MAX-ACCESS                     read-write
    STATUS                         current
    DESCRIPTION
        "The port of the name service being used, if there is one."
::= { iscsiInstanceAttributesEntry 14 }

iscsiInstNameServiceType OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-write
    STATUS                         current
    DESCRIPTION
        "The type of name service being used, if there is one.  The
        type string should represent a valid name service that conforms
        to the iSCSI name service conventions."
::= { iscsiInstanceAttributesEntry 15 }

iscsiInstLastSsnFailureType  OBJECT-TYPE
    SYNTAX                         VariablePointer
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The exact counter instance in the iscsiInstSessionErrorStatsTable
        that was incremented when the last session failure occurred."
::= { iscsiInstanceAttributesEntry 16 }

iscsiInstLastSsnRmtNodeName  OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "Name of the remote node from the failed session."
::= { iscsiInstanceAttributesEntry 17 }

-- Instance Session Failure Stats Table

iscsiInstanceSessionErrorStatsTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiInstanceSessionErrorStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A list of iSCSI instances present on the system."
::= { iscsiInstanceInfo 4 }

iscsiInstanceSessionErrorStatsEntry OBJECT-TYPE
    SYNTAX                         IscsiInstanceSessionErrorStatsEntry
    MAX-ACCESS                     not-accessible



Bakke, Muchow             Expires January 2002                 [Page 17]


Internet Draft                  iSCSI MIB                      July 2001


    STATUS                         current
    DESCRIPTION
        "An entry (row) containing managment information applicable
        to a particular iSCSI instance."
    AUGMENTS { iscsiInstanceAttributesEntry }
::= { iscsiInstanceSessionErrorStatsTable 1 }

IscsiInstanceSessionErrorStatsEntry ::= SEQUENCE {
    iscsiInstSsnDigestErrors       Counter32,
    iscsiInstSsnCxnTimeoutErrors   Counter32,
    iscsiInstSsnFormatErrors       Counter32
}

iscsiInstSsnDigestErrors OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of sessions which were failed due to receipt of a PDU
        containing header or data digest errors."
::= { iscsiInstanceSessionErrorStatsEntry 1 }

iscsiInstSsnCxnTimeoutErrors OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of sessions which were failed due to a sequence
         exceeding a time limit."
::= { iscsiInstanceSessionErrorStatsEntry 2 }

iscsiInstSsnFormatErrors OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of sessions which were failed due to receipt of a PDU
        which contained a format error."
::= { iscsiInstanceSessionErrorStatsEntry 3 }

----------------------------------------------------------------------

iscsiTargetPortalInfo OBJECT IDENTIFIER ::= { iscsiInstanceObjects 1 }

iscsiTargetPortalObjects OBJECT IDENTIFIER ::= { iscsiTargetPortalInfo 1 }
iscsiTargetPortalScalars OBJECT IDENTIFIER ::= { iscsiTargetPortalInfo 2 }

-- Target Portal Attributes Table



Bakke, Muchow             Expires January 2002                 [Page 18]


Internet Draft                  iSCSI MIB                      July 2001


iscsiTargetPortalAttributesTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiTargetPortalAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A list of sockets (using TCP or another transport protocol)
        on which this iSCSI instance listens for incoming connections
        to its targets."
::= { iscsiTargetPortalInfo 3 }

iscsiTargetPortalAttributesEntry OBJECT-TYPE
    SYNTAX                         IscsiTargetPortalAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing managment information applicable
        to a particular target portal instance."
    INDEX { iscsiInstIndex, iscsiTgtPortalIndex  }
::= { iscsiTargetPortalAttributesTable 1 }

IscsiTargetPortalAttributesEntry ::= SEQUENCE {
    iscsiTgtPortalIndex            Unsigned32,
    iscsiTgtPortalProtocol         INTEGER,
    iscsiTgtPortalAddrType         InetAddressType,
    iscsiTgtPortalAddr             InetAddress,
    iscsiTgtPortalPort             Unsigned32,
    iscsiTgtPortalTag              INTEGER
}

iscsiTgtPortalIndex OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An arbitrary integer used to uniquely identify a particular
        port (aka socket) instance within an iSCSI instance present
        on the node."
::= { iscsiTargetPortalAttributesEntry 1 }

iscsiTgtPortalProtocol OBJECT-TYPE
    SYNTAX                         INTEGER (1..255)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The portal's transport protocol."
    DEFVAL                         { 6 } -- TCP
::= { iscsiTargetPortalAttributesEntry 2 }




Bakke, Muchow             Expires January 2002                 [Page 19]


Internet Draft                  iSCSI MIB                      July 2001


iscsiTgtPortalAddrType OBJECT-TYPE
    SYNTAX                         InetAddressType
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The type of Inet address in the next object."
::= { iscsiTargetPortalAttributesEntry 3 }

iscsiTgtPortalAddr OBJECT-TYPE
    SYNTAX                         InetAddress
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The portal's Inet address."
::= { iscsiTargetPortalAttributesEntry 4 }

iscsiTgtPortalPort OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..65535)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The portal's port number."
::= { iscsiTargetPortalAttributesEntry 5 }

iscsiTgtPortalTag OBJECT-TYPE
    SYNTAX                         INTEGER (1..65535)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The portal's aggregation tag.  Multiple-connection
        sessions may be aggregated over portals sharing an
        identical aggregation tag."
::= { iscsiTargetPortalAttributesEntry 6 }

----------------------------------------------------------------------

iscsiInitiatorPortalInfo OBJECT IDENTIFIER ::= { iscsiInstanceObjects 2 }

iscsiInitiatorPortalObjects OBJECT IDENTIFIER ::= { iscsiInitiatorPortalInfo 1 }
iscsiInitiatorPortalScalars OBJECT IDENTIFIER ::= { iscsiInitiatorPortalInfo 2 }

-- Initiator Portal Attributes Table

iscsiInitiatorPortalAttributesTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiInitiatorPortalAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION



Bakke, Muchow             Expires January 2002                 [Page 20]


Internet Draft                  iSCSI MIB                      July 2001


        "A list of Inet addresses (using TCP or another
        transport protocol) from which this iSCSI instance
        may initiate connections to other targets."
::= { iscsiInitiatorPortalInfo 3 }

iscsiInitiatorPortalAttributesEntry OBJECT-TYPE
    SYNTAX                         IscsiInitiatorPortalAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing managment information applicable
        to a particular initiator portal instance."
    INDEX { iscsiInstIndex, iscsiIntrPortalIndex  }
::= { iscsiInitiatorPortalAttributesTable 1 }

IscsiInitiatorPortalAttributesEntry ::= SEQUENCE {
    iscsiIntrPortalIndex           Unsigned32,
    iscsiIntrPortalProtocol        INTEGER,
    iscsiIntrPortalAddrType        InetAddressType,
    iscsiIntrPortalAddr            InetAddress,
    iscsiIntrPortalTag             INTEGER
}

iscsiIntrPortalIndex OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An arbitrary integer used to uniquely identify a particular
        initiator portal instance within an iSCSI instance present
        on the node."
::= { iscsiInitiatorPortalAttributesEntry 1 }

iscsiIntrPortalProtocol OBJECT-TYPE
    SYNTAX                         INTEGER (1..255)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The portal's transport protocol."
    DEFVAL                         { 6 } -- TCP
::= { iscsiInitiatorPortalAttributesEntry 2 }

iscsiIntrPortalAddrType OBJECT-TYPE
    SYNTAX                         InetAddressType
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The type of Inet address in the next object."



Bakke, Muchow             Expires January 2002                 [Page 21]


Internet Draft                  iSCSI MIB                      July 2001


::= { iscsiInitiatorPortalAttributesEntry 3 }

iscsiIntrPortalAddr OBJECT-TYPE
    SYNTAX                         InetAddress
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
    "The portal's Inet address."
::= { iscsiInitiatorPortalAttributesEntry 4 }

iscsiIntrPortalTag OBJECT-TYPE
    SYNTAX                         INTEGER (1..65535)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The portal's aggregation tag.  Multiple-connection
         sessions may be aggregated over portals sharing an
         identical aggregation tag."
::= { iscsiInitiatorPortalAttributesEntry 6 }

----------------------------------------------------------------------

iscsiSessionInfo OBJECT IDENTIFIER ::= { iscsiInstanceObjects 3 }

iscsiSessionObjects OBJECT IDENTIFIER ::= { iscsiSessionInfo 1 }
iscsiSessionScalars OBJECT IDENTIFIER ::= { iscsiSessionInfo 2 }

-- Session Attributes Table

iscsiSessionAttributesTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiSessionAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A list of Sessions belonging to each iSCSI instance
        present on the system."
::= { iscsiSessionInfo 3 }

iscsiSessionAttributesEntry OBJECT-TYPE
    SYNTAX                         IscsiSessionAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing managment information applicable
        to a particular Session instance."
    INDEX { iscsiInstIndex, iscsiSsnIndex }
::= { iscsiSessionAttributesTable 1 }




Bakke, Muchow             Expires January 2002                 [Page 22]


Internet Draft                  iSCSI MIB                      July 2001


IscsiSessionAttributesEntry ::= SEQUENCE {
    iscsiSsnIndex                  Unsigned32,
    iscsiSsnDirection              INTEGER,
    iscsiSsnTargetName             Utf8String,
    iscsiSsnTsid                   INTEGER,
    iscsiSsnInitiatorName          Utf8String,
    iscsiSsnIsid                   INTEGER,
    iscsiSsnAlias                  Utf8String,
    iscsiSsnUseR2t                 TruthValue,
    iscsiSsnBidirectionalUseR2t    TruthValue,
    iscsiSsnImmediateData          TruthValue,
    iscsiSsnType                   INTEGER,
    iscsiSsnMaxOutstandingR2t      INTEGER,
    iscsiSsnMaxDataPduLength       INTEGER,
    iscsiSsnFirstBurstSize         INTEGER,
    iscsiSsnConnectionNumber       Unsigned32,
    iscsiSsnMaxConnections         Unsigned32,
    iscsiSsnHeaderIntegrity        Utf8String,
    iscsiSsnDataIntegrity          Utf8String,
    iscsiSsnAuthMethod             Utf8String,
    iscsiSsnCommandReplay          TruthValue,
    iscsiSsnDataOrder              TruthValue,
    iscsiSsnDataDeliveryOrder      TruthValue
}

iscsiSsnIndex OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An arbitrary integer used to uniquely identify a particular
        Session instance within an iSCSI instance present on the node."
::= { iscsiSessionAttributesEntry 1 }

iscsiSsnDirection OBJECT-TYPE
    SYNTAX                         INTEGER { inboundSession(1),
                                             outboundSession(2) }
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "Direction of iSCSI session:
        InboundSession  - session is established from an external
                          initiator to a target within this iSCSI
                          instance.
        OutboundSession - session is established from an initiator
                          within this iSCSI instance to an external
                          target."
::= { iscsiSessionAttributesEntry 2 }



Bakke, Muchow             Expires January 2002                 [Page 23]


Internet Draft                  iSCSI MIB                      July 2001


iscsiSsnTargetName OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "Name of the target, as described in iscsiTgtName."
::= { iscsiSessionAttributesEntry 3 }

iscsiSsnTsid OBJECT-TYPE
    SYNTAX                         INTEGER (1..65535)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The target-defined portion of the iSCSI Session ID."
::= { iscsiSessionAttributesEntry 4 }

iscsiSsnInitiatorName OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "Name of the initiator, as described in iscsiIntrName."
::= { iscsiSessionAttributesEntry 5 }

iscsiSsnIsid OBJECT-TYPE
    SYNTAX                         INTEGER (1..65535)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The initiator-defined portion of the iSCSI Session ID."
::= { iscsiSessionAttributesEntry 6 }

iscsiSsnAlias OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The initiator or target alias communicated by the other
         end of the session during the login phase, if any."
::= { iscsiSessionAttributesEntry 7 }

iscsiSsnUseR2t OBJECT-TYPE
    SYNTAX                         TruthValue
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "Indicates whether the initiator and target have agreed to use
        the Ready To Transfer (R2T) protocol to control data flow



Bakke, Muchow             Expires January 2002                 [Page 24]


Internet Draft                  iSCSI MIB                      July 2001


        for Data PDUs flowing toward the target on this session."
::= { iscsiSessionAttributesEntry 8 }

iscsiSsnBidirectionalUseR2t OBJECT-TYPE
    SYNTAX                         TruthValue
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "Indicates whether the initiator and target have agreed to use
        the Ready To Transfer (R2T) protocol to contorl data flow
        for the write portions of bidirectional commands on this session."
::= { iscsiSessionAttributesEntry 9 }

iscsiSsnImmediateData OBJECT-TYPE
    SYNTAX                         TruthValue
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "Indicates whether the initiator and target have agreed to support
        immediate commands on this session."
::= { iscsiSessionAttributesEntry 10 }

iscsiSsnType OBJECT-TYPE
    SYNTAX                         INTEGER {
                                       normalSession(0),
                                       bootSession(1),
                                       discoverySession(2),
                                       copySession(3)
                                   }
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "Type of iSCSI session:
         normalSession    - session is a normal iSCSI session
         bootSession      - session is being used to boot an initiator
         discoverySession - session is being used only for discovery
         copySession      - session is being used by a copy manager."
::= { iscsiSessionAttributesEntry 11 }

iscsiSsnMaxOutstandingR2t OBJECT-TYPE
    SYNTAX                         INTEGER (1..65535)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The maximum number of outstanding request-to-transmit
        (R2T)s per task within this session."
::= { iscsiSessionAttributesEntry 12 }




Bakke, Muchow             Expires January 2002                 [Page 25]


Internet Draft                  iSCSI MIB                      July 2001


iscsiSsnMaxDataPduLength OBJECT-TYPE
    SYNTAX                         INTEGER (1..65535)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The maximum data payload size supported for command
        or data PDUs within this session, in units of 512
        bytes."
::= { iscsiSessionAttributesEntry 13 }

iscsiSsnFirstBurstSize OBJECT-TYPE
    SYNTAX                         INTEGER (1..65535)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The maximum length supported for unsolicited data sent
        within this session, in units of 512 bytes."
::= { iscsiSessionAttributesEntry 14 }

iscsiSsnConnectionNumber OBJECT-TYPE
    SYNTAX                         Unsigned32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The number of TCP connections that currently belong
        to this session."
::= { iscsiSessionAttributesEntry 15 }

iscsiSsnMaxConnections OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..65535)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The maximum number of connections that will be allowed
        within this session."
::= { iscsiSessionAttributesEntry 16 }

iscsiSsnHeaderIntegrity OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The name of the iSCSI header digest scheme in use
        within this session."
::= { iscsiSessionAttributesEntry 17 }

iscsiSsnDataIntegrity OBJECT-TYPE
    SYNTAX                         Utf8String



Bakke, Muchow             Expires January 2002                 [Page 26]


Internet Draft                  iSCSI MIB                      July 2001


    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The name of the iSCSI data digest scheme in use within
        this session."
::= { iscsiSessionAttributesEntry 18 }

iscsiSsnAuthMethod OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The name of the authentication method being used on this
         session, as communicated during the login phase."
::= { iscsiSessionAttributesEntry 19 }

iscsiSsnCommandReplay OBJECT-TYPE
    SYNTAX                         TruthValue
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "If True, indicates that this session has command
         replay enabled."
::= { iscsiSessionAttributesEntry 20 }

 iscsiSsnDataOrder OBJECT-TYPE
    SYNTAX                         TruthValue
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "False indicates that data PDU Sequences can be in
         any order. True indicates that data PDU Sequences
         have to be at continuously increasing addresses."
::= { iscsiSessionAttributesEntry 21 }


iscsiSsnDataDeliveryOrder OBJECT-TYPE
    SYNTAX                         TruthValue
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "False indicates that data PDUs can be in any
         order. True indicates that data PDUs have to be at
         continuously increasing addresses."
::= { iscsiSessionAttributesEntry 22 }

-- Session Stats Table




Bakke, Muchow             Expires January 2002                 [Page 27]


Internet Draft                  iSCSI MIB                      July 2001


iscsiSessionStatsTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiSessionStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A list of iSCSI command/response PDU and octet data transfer counters
        for each of the Session instances present on the system."
::= { iscsiSessionInfo 4 }

iscsiSessionStatsEntry OBJECT-TYPE
    SYNTAX                         IscsiSessionStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing iSCSI command/response PDU and
        octet data transfer counters for a particular Session instance."
    AUGMENTS { iscsiSessionAttributesEntry }
::= { iscsiSessionStatsTable 1 }

IscsiSessionStatsEntry ::= SEQUENCE {
    iscsiSsnCmdPdus                Counter32,
    iscsiSsnRspPdus                Counter32,
    iscsiSsnTxDataOctets           Counter64,
    iscsiSsnRxDataOctets           Counter64
}

iscsiSsnCmdPdus OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Command PDUs that flowed on this session instance."
::= { iscsiSessionStatsEntry 1 }

iscsiSsnRspPdus OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Response PDUs that flowed on this session instance."
::= { iscsiSessionStatsEntry 2 }

iscsiSsnTxDataOctets OBJECT-TYPE
    SYNTAX                         Counter64
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of data octets that were transmitted by



Bakke, Muchow             Expires January 2002                 [Page 28]


Internet Draft                  iSCSI MIB                      July 2001


        the local iSCSI node on this session instance."
::= { iscsiSessionStatsEntry 3 }

iscsiSsnRxDataOctets OBJECT-TYPE
    SYNTAX                         Counter64
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of data octets that were received by
        the local iSCSI node on this session instance."
::= { iscsiSessionStatsEntry 4 }

-- Session Connection Error Stats Table

iscsiSessionCxnErrorStatsTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiSessionCxnErrorStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A list of PDU or timeout connection error counters for
        each of the session instances present on this system."
::= { iscsiSessionInfo 5 }

iscsiSessionCxnErrorStatsEntry OBJECT-TYPE
    SYNTAX                         IscsiSessionCxnErrorStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing PDU or time-out connection error
        counters for a particular session instance."
    AUGMENTS { iscsiSessionAttributesEntry }
::= { iscsiSessionCxnErrorStatsTable 1 }

IscsiSessionCxnErrorStatsEntry ::= SEQUENCE {
    iscsiSsnDigestErrors           Counter32,
    iscsiSsnCxnTimeoutErrors       Counter32
}

iscsiSsnDigestErrors OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of PDUs which the session instance received which
        contained header or data digest errors."
::= { iscsiSessionCxnErrorStatsEntry 1 }

iscsiSsnCxnTimeoutErrors OBJECT-TYPE



Bakke, Muchow             Expires January 2002                 [Page 29]


Internet Draft                  iSCSI MIB                      July 2001


    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "This is the count of sequences which exceeded their
        time limit."
::= { iscsiSessionCxnErrorStatsEntry 2 }

----------------------------------------------------------------------

iscsiConnectionInfo OBJECT IDENTIFIER ::= { iscsiSessionObjects 1 }

iscsiConnectionObjects OBJECT IDENTIFIER ::= { iscsiConnectionInfo 1 }
iscsiConnectionScalars OBJECT IDENTIFIER ::= { iscsiConnectionInfo 2 }

-- Connection Attributes Table

iscsiConnectionAttributesTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiConnectionAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A list of Connections belonging to each iSCSI instance
        present on the system."
::= { iscsiConnectionInfo 3 }

iscsiConnectionAttributesEntry OBJECT-TYPE
    SYNTAX                         IscsiConnectionAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing managment information applicable
        to a particular Connection instance."
    INDEX { iscsiInstIndex, iscsiSsnIndex, iscsiCxnIndex }
::= { iscsiConnectionAttributesTable 1 }

IscsiConnectionAttributesEntry ::= SEQUENCE {
    iscsiCxnIndex                  Unsigned32,
    iscsiCxnCid                    INTEGER,
    iscsiCxnState                  INTEGER,
    iscsiCxnProtocol               INTEGER,
    iscsiCxnLocalAddrType          InetAddressType,
    iscsiCxnLocalAddr              InetAddress,
    iscsiCxnLocalPort              Unsigned32,
    iscsiCxnRemoteAddrType         InetAddressType,
    iscsiCxnRemoteAddr             InetAddress,
    iscsiCxnRemotePort             Unsigned32
}



Bakke, Muchow             Expires January 2002                 [Page 30]


Internet Draft                  iSCSI MIB                      July 2001


iscsiCxnIndex OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An arbitrary integer used to uniquely identify a particular
        Connection instance of a particular Session instance within an
        iSCSI instance present on the node."
::= { iscsiConnectionAttributesEntry 1 }

iscsiCxnCid OBJECT-TYPE
    SYNTAX                         INTEGER (1..65535)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The iSCSI Connection ID for this connection."
::= { iscsiConnectionAttributesEntry 2 }

iscsiCxnState OBJECT-TYPE
    SYNTAX                         INTEGER {
                                       login(0),
                                       negotiation(1),
                                       full(2),
                                       logout(3)
                                   }
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The current state of this connection, from an iSCSI negotiation
        point of view.  Here are the states:

        login       - The TCP connection has been established, but a
                      valid iSCSI login response with the final bit set
                      has not been sent or received.
        full        - A valid iSCSI login response with the final bit set
                      has been sent or received.
        logout      - A valid iSCSI logout command has been sent or
                      received, but the TCP connection has not yet been
                      closed."
::= { iscsiConnectionAttributesEntry 3 }

iscsiCxnProtocol OBJECT-TYPE
    SYNTAX                         INTEGER (1..255)
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The transport protocol over which this connection instance is
        running."



Bakke, Muchow             Expires January 2002                 [Page 31]


Internet Draft                  iSCSI MIB                      July 2001


    DEFVAL                         { 6 } -- TCP
::= { iscsiConnectionAttributesEntry 4 }

iscsiCxnLocalAddrType OBJECT-TYPE
    SYNTAX                         InetAddressType
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The type of Inet address in the next object."
::= { iscsiConnectionAttributesEntry 5 }

iscsiCxnLocalAddr OBJECT-TYPE
    SYNTAX                         InetAddress
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The local Inet address used by this connection instance."
::= { iscsiConnectionAttributesEntry 6 }

iscsiCxnLocalPort OBJECT-TYPE
    SYNTAX                         Unsigned32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The local port used by this connection instance."
::= { iscsiConnectionAttributesEntry 7 }

iscsiCxnRemoteAddrType OBJECT-TYPE
    SYNTAX                         InetAddressType
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The type of Inet address in the next object."
::= { iscsiConnectionAttributesEntry 8 }

iscsiCxnRemoteAddr OBJECT-TYPE
    SYNTAX                         InetAddress
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The remote Inet address used by this connection instance."
::= { iscsiConnectionAttributesEntry 9 }

iscsiCxnRemotePort OBJECT-TYPE
    SYNTAX                         Unsigned32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION



Bakke, Muchow             Expires January 2002                 [Page 32]


Internet Draft                  iSCSI MIB                      July 2001


        "The remote port used by this connection instance."
::= { iscsiConnectionAttributesEntry 10 }

----------------------------------------------------------------------

iscsiTargetInfo OBJECT IDENTIFIER ::= { iscsiInstanceObjects 4 }

iscsiTargetObjects OBJECT IDENTIFIER ::= { iscsiTargetInfo 1 }
iscsiTargetScalars OBJECT IDENTIFIER ::= { iscsiTargetInfo 2 }

-- Target Attributes Table

iscsiTargetAttributesTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiTargetAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A list of targets belonging to each iSCSI instance
        present on the system."
::= { iscsiTargetInfo 3 }

iscsiTargetAttributesEntry OBJECT-TYPE
    SYNTAX                         IscsiTargetAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing managment information applicable
        to a particular target instance."
    INDEX { iscsiInstIndex, iscsiTgtIndex }
::= { iscsiTargetAttributesTable 1 }

IscsiTargetAttributesEntry ::= SEQUENCE {
    iscsiTgtIndex                  Unsigned32,
    iscsiTgtName                   Utf8String,
    iscsiTgtAlias                  Utf8String,
    iscsiTgtLastFailureTime        TimeStamp,
    iscsiTgtLastFailureType        VariablePointer,
    iscsiTgtLastIntrFailureName    Utf8String,
    iscsiTgtLastIntrFailureAddrType InetAddressType,
    iscsiTgtLastIntrFailureAddr    InetAddress
}

iscsiTgtIndex OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An arbitrary integer used to uniquely identify a particular



Bakke, Muchow             Expires January 2002                 [Page 33]


Internet Draft                  iSCSI MIB                      July 2001


        target instance within an iSCSI instance present on the node."
::= { iscsiTargetAttributesEntry 1 }

iscsiTgtName OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "A globally unique, UTF-8 identifier for this Target.  The
        Target Name is independent of the location of the target,
        and can be resolved into a set of addresses through various
        discovery services."
::= { iscsiTargetAttributesEntry 2 }

iscsiTgtAlias OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "A human-readable name or description of the target.  If
        configured, this alias may be communicated to the initiator
        during a Login Response message.  This string is not used as
        an identifier, but can be displayed by the initiator's user
        interface in a list of targets to which it is connected. "
::= { iscsiTargetAttributesEntry 3 }

iscsiTgtLastFailureTime OBJECT-TYPE
    SYNTAX                         TimeStamp
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The value of object sysUpTime when the last failure
        occurred."
::= { iscsiTargetAttributesEntry 4 }

iscsiTgtLastFailureType  OBJECT-TYPE
    SYNTAX                         VariablePointer
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The exact counter instance in the iscsiTargetLoginStatsTable
        that was incremented when the last failure occurred."
::= { iscsiTargetAttributesEntry 5 }

iscsiTgtLastIntrFailureName  OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current



Bakke, Muchow             Expires January 2002                 [Page 34]


Internet Draft                  iSCSI MIB                      July 2001


    DESCRIPTION
        "An UTF-8 string giving the name of the initiator
        that failed the last login attempt."
::= { iscsiTargetAttributesEntry 6 }

iscsiTgtLastIntrFailureAddrType OBJECT-TYPE
    SYNTAX                         InetAddressType
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The type of Inet address in the next object."
::= { iscsiTargetAttributesEntry 7 }

iscsiTgtLastIntrFailureAddr OBJECT-TYPE
    SYNTAX                         InetAddress
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "An Inet address giving the host address of the initiator
        that failed the last login attempt."
::= { iscsiTargetAttributesEntry 8 }

-- Target Login Stats Table

iscsiTargetLoginStatsTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiTargetLoginStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A table of counters which keep track of the number of
        times this target failed an initiator's login attempt
        for each important reason."
::= { iscsiTargetInfo 4 }

iscsiTargetLoginStatsEntry OBJECT-TYPE
    SYNTAX                         IscsiTargetLoginStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing counters for each login
        failure reason."
    AUGMENTS { iscsiTargetAttributesEntry }
::= { iscsiTargetLoginStatsTable 1 }

IscsiTargetLoginStatsEntry ::= SEQUENCE {
    iscsiTgtLoginAccepts           Counter32,
    iscsiTgtLoginOtherFails        Counter32,
    iscsiTgtLoginRedirects         Counter32,



Bakke, Muchow             Expires January 2002                 [Page 35]


Internet Draft                  iSCSI MIB                      July 2001


    iscsiTgtLoginAuthorizeFails    Counter32,
    iscsiTgtLoginAuthenticateFails Counter32,
    iscsiTgtLoginNegotiateFails    Counter32
}

iscsiTgtLoginAccepts OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Login Response PDUs with status
        0x0000, Accept Login, transmitted by this
        target."
::= { iscsiTargetLoginStatsEntry 1 }

iscsiTgtLoginOtherFails OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Login Response PDUs with any status
        code not counted in the other failure status objects
        below that was transmitted by this target."
::= { iscsiTargetLoginStatsEntry 3 }

iscsiTgtLoginRedirects OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Login Response PDUs with status class 0x01,
        Redirection, transmitted by this target."
::= { iscsiTargetLoginStatsEntry 2 }

iscsiTgtLoginAuthorizeFails OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Login Response PDUs with status 0x0202,
        Forbidden Target, transmitted by this target.

        If this counter is incremented, an iscsiTgtLoginFailure
        notification should be sent."
::= { iscsiTargetLoginStatsEntry 4 }

iscsiTgtLoginAuthenticateFails OBJECT-TYPE
    SYNTAX                         Counter32



Bakke, Muchow             Expires January 2002                 [Page 36]


Internet Draft                  iSCSI MIB                      July 2001


    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Login Response PDUs with status 0x0201,
        Authentication Failed, transmitted by this target

        If this counter is incremented, an iscsiTgtLoginFailure
        notification should be sent."
::= { iscsiTargetLoginStatsEntry 5 }

iscsiTgtLoginNegotiateFails OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The number of times a target has effectively refused a
        login because the parameter negotiation failed.
        [Ed. While this situation can occur, the exact mechanism
        is as yet undefined in the iSCSI Protocol Spec.]

        If this counter is incremented, an iscsiTgtLoginFailure
        notification should be sent."
::= { iscsiTargetLoginStatsEntry 6 }

-- Target Logout Stats Table

iscsiTargetLogoutStatsTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiTargetLogoutStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "When a target receives a Logout command, it responds
        with a Logout Response that carries a status code.
        This table contains counters for both normal and
        abnormal logout requests received by this target."
::= { iscsiTargetInfo 5 }

iscsiTargetLogoutStatsEntry OBJECT-TYPE
    SYNTAX                         IscsiTargetLogoutStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing counters of Logout Response
        PDUs that were transmitted by a particular target instance."
    AUGMENTS { iscsiTargetAttributesEntry }
::= { iscsiTargetLogoutStatsTable 1 }

IscsiTargetLogoutStatsEntry ::= SEQUENCE {



Bakke, Muchow             Expires January 2002                 [Page 37]


Internet Draft                  iSCSI MIB                      July 2001


    iscsiTgtLogoutNormals          Counter32,
    iscsiTgtLogoutOthers           Counter32
}

iscsiTgtLogoutNormals OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Logout Command PDUs with
        reason code 0, Closes the session, received by this target."
::= { iscsiTargetLogoutStatsEntry 1 }

iscsiTgtLogoutOthers OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Logout Command command PDUs with
        any status code other than 0, received by the target."
::= { iscsiTargetLogoutStatsEntry 2 }

----------------------------------------------------------------------

iscsiAccessListInfo OBJECT IDENTIFIER ::= { iscsiTargetObjects 2 }

iscsiAccessListObjects OBJECT IDENTIFIER ::= { iscsiAccessListInfo 1 }
iscsiAccessListScalars OBJECT IDENTIFIER ::= { iscsiAccessListInfo 2 }

-- Access List Attributes Table

iscsiAccessListAttributesTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiAccessListAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A list of iSCSI initiators which will be granted access
        to iSCSI resources through targets within the iSCSI
        instance."
::= { iscsiAccessListInfo 3 }

iscsiAccessListAttributesEntry OBJECT-TYPE
    SYNTAX                         IscsiAccessListAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing management information
        applicable to an initiator which is known by a target



Bakke, Muchow             Expires January 2002                 [Page 38]


Internet Draft                  iSCSI MIB                      July 2001


        within an iSCSI instance on this node."
    INDEX { iscsiInstIndex, iscsiTgtIndex, iscsiALIndex }
::= { iscsiAccessListAttributesTable  1 }

IscsiAccessListAttributesEntry ::= SEQUENCE {
    iscsiALIndex                   Unsigned32,
    iscsiALInitiatorName           Utf8String
}

iscsiALIndex OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An arbitrary integer used to uniquely identify a particular
        Access List instance of a particular target instance within an
        iSCSI instance present on the node."
::= { iscsiAccessListAttributesEntry 1 }

iscsiALInitiatorName OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The globally unique name of the initiator, sent to the
        target in the <InitiatorName> key of the Login Command."
::= { iscsiAccessListAttributesEntry 2 }

----------------------------------------------------------------------

iscsiInitiatorInfo OBJECT IDENTIFIER ::= { iscsiInstanceObjects 5 }

iscsiInitiatorObjects OBJECT IDENTIFIER ::= { iscsiInitiatorInfo 1 }
iscsiInitiatorScalars OBJECT IDENTIFIER ::= { iscsiInitiatorInfo 2 }

-- Initiator Attributes Table

iscsiInitiatorAttributesTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiInitiatorAttributesEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A list of initiators belonging to each iSCSI instance
        present on the system."
::= { iscsiInitiatorInfo 3 }

iscsiInitiatorAttributesEntry OBJECT-TYPE
    SYNTAX                         IscsiInitiatorAttributesEntry



Bakke, Muchow             Expires January 2002                 [Page 39]


Internet Draft                  iSCSI MIB                      July 2001


    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing managment information applicable
        to a particular initiator instance."
    INDEX  { iscsiInstIndex, iscsiIntrIndex }
::= { iscsiInitiatorAttributesTable 1 }

IscsiInitiatorAttributesEntry ::= SEQUENCE {
    iscsiIntrIndex                 Unsigned32,
    iscsiIntrName                  Utf8String,
    iscsiIntrAlias                 Utf8String,
    iscsiIntrLastFailureTime       TimeStamp,
    iscsiIntrLastFailureType       VariablePointer,
    iscsiIntrLastTgtFailureName    Utf8String,
    iscsiIntrLastTgtFailureAddrType InetAddressType,
    iscsiIntrLastTgtFailureAddr    InetAddress
}

iscsiIntrIndex OBJECT-TYPE
    SYNTAX                         Unsigned32 (1..4294967295)
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An arbitrary integer used to uniquely identify a particular
        Initiator instance within an iSCSI instance present on the
        node."
::= { iscsiInitiatorAttributesEntry 1 }

iscsiIntrName OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "A text-based identifier for this Initiator that
        is globally unique. The Initiator Name is
        independent of the location of the initiator."
::= { iscsiInitiatorAttributesEntry 2 }

iscsiIntrAlias OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "A human-readable name or description of the initiator. If
        configured, this initiator alias may be communicated to
        the target during a Login Request message. This string is
        not used as an identifier, but can be displayed by the



Bakke, Muchow             Expires January 2002                 [Page 40]


Internet Draft                  iSCSI MIB                      July 2001


        target's user interface in a list of initiators to which it
        is connected."
::= { iscsiInitiatorAttributesEntry 3 }

iscsiIntrLastFailureTime OBJECT-TYPE
    SYNTAX                         TimeStamp
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The value of object sysUpTime when the last failure
        occurred."
::= { iscsiInitiatorAttributesEntry 4 }

iscsiIntrLastFailureType  OBJECT-TYPE
    SYNTAX                         VariablePointer
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The exact counter instance in the iscsiInitiatorLoginStatsTable
        that was incremented when the last failure occurred."
::= { iscsiInitiatorAttributesEntry 5 }

iscsiIntrLastTgtFailureName  OBJECT-TYPE
    SYNTAX                         Utf8String
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "An UTF-8 string giving the name of the target
        that failed the last login attempt."
::= { iscsiInitiatorAttributesEntry 6 }

iscsiIntrLastTgtFailureAddrType OBJECT-TYPE
    SYNTAX                         InetAddressType
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The type of Inet address in the next object."
::= { iscsiInitiatorAttributesEntry 7 }

iscsiIntrLastTgtFailureAddr OBJECT-TYPE
    SYNTAX                         InetAddress
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "An Inet address giving the host address of the target
        that failed the last login attempt."
::= { iscsiInitiatorAttributesEntry 8 }




Bakke, Muchow             Expires January 2002                 [Page 41]


Internet Draft                  iSCSI MIB                      July 2001


-- Initiator Login Stats Table

iscsiInitiatorLoginStatsTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiInitiatorLoginStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "A table of counters which keep track of the number of
        times this initiator's login attempts failed for each
        important reason."
::= { iscsiInitiatorInfo 4 }

iscsiInitiatorLoginStatsEntry OBJECT-TYPE
    SYNTAX                         IscsiInitiatorLoginStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing counters of each major
        reason for an iSCSI login failure."
    AUGMENTS { iscsiInitiatorAttributesEntry }
::= { iscsiInitiatorLoginStatsTable 1 }

IscsiInitiatorLoginStatsEntry ::= SEQUENCE {
    iscsiIntrLoginAcceptRsps       Counter32,
    iscsiIntrLoginOtherFailRsps    Counter32,
    iscsiIntrLoginRedirectRsps     Counter32,
    iscsiIntrLoginAuthFailRsps     Counter32,
    iscsiIntrLoginAuthenticateFails Counter32,
    iscsiIntrLoginNegotiateFails   Counter32
}

iscsiIntrLoginAcceptRsps OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Login Response PDUs with status
        0x0000, Accept Login, received by this initiator."
::= { iscsiInitiatorLoginStatsEntry 1 }

iscsiIntrLoginOtherFailRsps OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Login Response PDUs received by this
        initiator with any status code not counted in the
        objects below."



Bakke, Muchow             Expires January 2002                 [Page 42]


Internet Draft                  iSCSI MIB                      July 2001


::= { iscsiInitiatorLoginStatsEntry 2 }

iscsiIntrLoginRedirectRsps OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Login Response PDUs with status class 0x01,
        Redirection, received by this initiator."
::= { iscsiInitiatorLoginStatsEntry 3 }

iscsiIntrLoginAuthFailRsps OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Login Response PDUs with status class 0x201,
        Authentication Failed, received by this initiator."
::= { iscsiInitiatorLoginStatsEntry 4 }

iscsiIntrLoginAuthenticateFails OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The number of times the initiator has aborted a
        login because the target could not be authenticated.

        No response is sent.

        If this counter is incremented, an iscsiIntrLoginFailure
        notification should be sent."
::= { iscsiInitiatorLoginStatsEntry 5 }

iscsiIntrLoginNegotiateFails OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The number of times the initiator has aborted a
        login because parameter negotiation with the target
        failed.

        No response is sent.

        If this counter is incremented, an iscsiIntrLoginFailure
        notification should be sent."
::= { iscsiInitiatorLoginStatsEntry 6 }



Bakke, Muchow             Expires January 2002                 [Page 43]


Internet Draft                  iSCSI MIB                      July 2001


-- Initiator Logout Stats Table

iscsiInitiatorLogoutStatsTable OBJECT-TYPE
    SYNTAX                         SEQUENCE OF IscsiInitiatorLogoutStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "When an initiator attempts send a Logout command, the target
        responds with a Logout Response that carries a status code.
        This table contains a list of counters of Logout Response
        PDUs of each status code, that were received by each
        initiator instance belonging to this iSCSI instance present
        on this system."
::= { iscsiInitiatorInfo 5 }

iscsiInitiatorLogoutStatsEntry OBJECT-TYPE
    SYNTAX                         IscsiInitiatorLogoutStatsEntry
    MAX-ACCESS                     not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry (row) containing counters of Logout Response
        PDUs of each status code, that were received by
        a particular initiator instance."
    AUGMENTS { iscsiInitiatorAttributesEntry }
::= { iscsiInitiatorLogoutStatsTable 1 }

IscsiInitiatorLogoutStatsEntry ::= SEQUENCE {
    iscsiIntrLogoutNormals         Counter32,
    iscsiIntrLogoutOthers          Counter32
}

iscsiIntrLogoutNormals OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Logout Command PDUs with
        reason code 0, Closes the session, transmitted by this
        initiator."
::= { iscsiInitiatorLogoutStatsEntry 1 }

iscsiIntrLogoutOthers OBJECT-TYPE
    SYNTAX                         Counter32
    MAX-ACCESS                     read-only
    STATUS                         current
    DESCRIPTION
        "The count of Logout Command command PDUs with
        any status code other than 0, transmitted by this initiator."



Bakke, Muchow             Expires January 2002                 [Page 44]


Internet Draft                  iSCSI MIB                      July 2001


::= { iscsiInitiatorLogoutStatsEntry 2 }

------------------------------------------------------------------------
-- Notifications

-- First, define a dummy number to allow SMIv2 Notifications to be
-- converted to SMIv1 Traps
iscsiNotificationsPrefix OBJECT IDENTIFIER ::= { iscsiNotifications 0 }

iscsiTgtLoginFailure NOTIFICATION-TYPE
    OBJECTS {
        iscsiTgtLastFailureType,
        iscsiTgtLastIntrFailureName,
        iscsiTgtLastIntrFailureAddrType,
        iscsiTgtLastIntrFailureAddr
    }
    STATUS current
    DESCRIPTION
        "Sent when a login is failed by a target. It is expected that
        only authorization, authentication, and negotiation failures
        will be flagged."
::= { iscsiNotificationsPrefix 1 }

iscsiIntrLoginFailure NOTIFICATION-TYPE
    OBJECTS {
        iscsiIntrLastFailureType,
        iscsiIntrLastTgtFailureName,
        iscsiIntrLastTgtFailureAddrType,
        iscsiIntrLastTgtFailureAddr
    }
    STATUS current
    DESCRIPTION
        "Sent when a login is failed by a initiator.It is expected that
        only authentication, and negotiation failures will be flagged."
::= { iscsiNotificationsPrefix 2 }

iscsiInstSessionFailure NOTIFICATION-TYPE
    OBJECTS {
        iscsiInstLastSsnFailureType,
        iscsiInstLastSsnRmtNodeName
    }
    STATUS current
    DESCRIPTION
        "Sent when an active session is failed by either the initiator
        or the target."
::= { iscsiNotificationsPrefix 3 }

------------------------------------------------------------------------



Bakke, Muchow             Expires January 2002                 [Page 45]


Internet Draft                  iSCSI MIB                      July 2001


-- Conformance Statements

iscsiGroups OBJECT IDENTIFIER ::= { iscsiConformance 1 }

iscsiInstanceAttributesGroup OBJECT-GROUP
    OBJECTS {
        iscsiInstanceNumber,
        iscsiInstName,
        iscsiInstVersionMin,
        iscsiInstVersionMax,
        iscsiInstVendorID,
        iscsiInstVendorVersion,
        iscsiInstTargetPortalNumber,
        iscsiInstInitiatorPortalNumber,
        iscsiInstSessionNumber,
        iscsiInstTargetNumber,
        iscsiInstInitiatorNumber,
        iscsiInstNameServiceAddrType,
        iscsiInstNameServiceAddr,
        iscsiInstNameServicePort,
        iscsiInstNameServiceType,
        iscsiInstLastSsnFailureType,
        iscsiInstLastSsnRmtNodeName
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 1 }

iscsiInstanceSessionErrorStatsGroup OBJECT-GROUP
    OBJECTS {
        iscsiInstSsnDigestErrors,
        iscsiInstSsnCxnTimeoutErrors,
        iscsiInstSsnFormatErrors
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 2 }

iscsiTargetPortalAttributesGroup OBJECT-GROUP
    OBJECTS {
        iscsiTgtPortalProtocol,
        iscsiTgtPortalAddrType,
        iscsiTgtPortalAddr,
        iscsiTgtPortalPort,
        iscsiTgtPortalTag
    }



Bakke, Muchow             Expires January 2002                 [Page 46]


Internet Draft                  iSCSI MIB                      July 2001


    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 3 }

iscsiInitiatorPortalAttributesGroup OBJECT-GROUP
    OBJECTS {
        iscsiIntrPortalProtocol,
        iscsiIntrPortalAddrType,
        iscsiIntrPortalAddr,
        iscsiIntrPortalTag
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 4 }

iscsiSessionAttributesGroup OBJECT-GROUP
    OBJECTS {
        iscsiSsnDirection,
        iscsiSsnTargetName,
        iscsiSsnTsid,
        iscsiSsnInitiatorName,
        iscsiSsnIsid,
        iscsiSsnAlias,
        iscsiSsnUseR2t,
        iscsiSsnBidirectionalUseR2t,
        iscsiSsnImmediateData,
        iscsiSsnType,
        iscsiSsnMaxOutstandingR2t,
        iscsiSsnMaxDataPduLength,
        iscsiSsnFirstBurstSize,
        iscsiSsnConnectionNumber,
        iscsiSsnMaxConnections,
        iscsiSsnHeaderIntegrity,
        iscsiSsnDataIntegrity,
        iscsiSsnAuthMethod,
        iscsiSsnCommandReplay,
        iscsiSsnDataOrder,
        iscsiSsnDataDeliveryOrder
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 5 }

iscsiSessionStatsGroup OBJECT-GROUP
    OBJECTS {



Bakke, Muchow             Expires January 2002                 [Page 47]


Internet Draft                  iSCSI MIB                      July 2001


        iscsiSsnCmdPdus,
        iscsiSsnRspPdus,
        iscsiSsnTxDataOctets,
        iscsiSsnRxDataOctets
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 6 }

iscsiSessionCxnErrorStatsGroup OBJECT-GROUP
    OBJECTS {
        iscsiSsnDigestErrors,
        iscsiSsnCxnTimeoutErrors
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 7 }

iscsiConnectionAttributesGroup OBJECT-GROUP
    OBJECTS {
        iscsiCxnCid,
        iscsiCxnState,
        iscsiCxnProtocol,
        iscsiCxnLocalAddrType,
        iscsiCxnLocalAddr,
        iscsiCxnLocalPort,
        iscsiCxnRemoteAddrType,
        iscsiCxnRemoteAddr,
        iscsiCxnRemotePort
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 8 }

iscsiTargetAttributesGroup OBJECT-GROUP
    OBJECTS {
        iscsiTgtName,
        iscsiTgtAlias,
        iscsiTgtLastFailureTime,
        iscsiTgtLastFailureType,
        iscsiTgtLastIntrFailureName,
        iscsiTgtLastIntrFailureAddrType,
        iscsiTgtLastIntrFailureAddr
    }
    STATUS current



Bakke, Muchow             Expires January 2002                 [Page 48]


Internet Draft                  iSCSI MIB                      July 2001


    DESCRIPTION
        "."
::= { iscsiGroups 9 }

iscsiTargetLoginStatsGroup OBJECT-GROUP
    OBJECTS {
        iscsiTgtLoginAccepts,
        iscsiTgtLoginOtherFails,
        iscsiTgtLoginRedirects,
        iscsiTgtLoginAuthorizeFails,
        iscsiTgtLoginAuthenticateFails,
        iscsiTgtLoginNegotiateFails
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 10 }

iscsiTargetLogoutStatsGroup OBJECT-GROUP
    OBJECTS {
        iscsiTgtLogoutNormals,
        iscsiTgtLogoutOthers
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 11 }

iscsiAccessListAttributesGroup OBJECT-GROUP
    OBJECTS {
        iscsiALInitiatorName
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 12 }

iscsiInitiatorAttributesGroup OBJECT-GROUP
    OBJECTS {
        iscsiIntrName,
        iscsiIntrAlias,
        iscsiIntrLastFailureTime,
        iscsiIntrLastFailureType,
        iscsiIntrLastTgtFailureName,
        iscsiIntrLastTgtFailureAddrType,
        iscsiIntrLastTgtFailureAddr
    }
    STATUS current



Bakke, Muchow             Expires January 2002                 [Page 49]


Internet Draft                  iSCSI MIB                      July 2001


    DESCRIPTION
        "."
::= { iscsiGroups 13 }

iscsiInitiatorLoginStatsGroup OBJECT-GROUP
    OBJECTS {
        iscsiIntrLoginAcceptRsps,
        iscsiIntrLoginOtherFailRsps,
        iscsiIntrLoginRedirectRsps,
        iscsiIntrLoginAuthFailRsps,
        iscsiIntrLoginAuthenticateFails,
        iscsiIntrLoginNegotiateFails
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 14 }

iscsiInitiatorLogoutStatsGroup OBJECT-GROUP
    OBJECTS {
        iscsiIntrLogoutNormals,
        iscsiIntrLogoutOthers
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 15 }

iscsiNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        iscsiTgtLoginFailure,
        iscsiIntrLoginFailure,
        iscsiInstSessionFailure
    }
    STATUS current
    DESCRIPTION
        "."
::= { iscsiGroups 16 }

------------------------------------------------------------------------

iscsiCompliances OBJECT IDENTIFIER ::= { iscsiConformance 2 }

iscsiComplianceV1 MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "Initial version of compliance statement based on
        initial version of MIB."



Bakke, Muchow             Expires January 2002                 [Page 50]


Internet Draft                  iSCSI MIB                      July 2001


    MODULE       -- this module
    MANDATORY-GROUPS {
        iscsiInstanceAttributesGroup,
        iscsiTargetPortalAttributesGroup,
        iscsiInitiatorPortalAttributesGroup,
        iscsiSessionAttributesGroup,
        iscsiSessionStatsGroup,
        iscsiSessionCxnErrorStatsGroup,
        iscsiConnectionAttributesGroup,
        iscsiTargetAttributesGroup,
        iscsiTargetLoginStatsGroup,
        iscsiTargetLogoutStatsGroup,
        iscsiAccessListAttributesGroup,
        iscsiInitiatorAttributesGroup,
        iscsiInitiatorLoginStatsGroup,
        iscsiInitiatorLogoutStatsGroup
    }
::= { iscsiCompliances 1 }

END



7.  Security Considerations

   This MIB currently contains no read-write, read-create, or RowStatus
   attributes, and cannot be directly used to affect the configuration
   or operation of an iSCSI entity.

   Information gleaned from this MIB could be used to make connections
   to the iSCSI targets it represents.  However, it is the responsbility
   of the initiators and targets involved to authenticate each other to
   ensure that an inappropriately advertised or discovered initiator or
   target does not compromise their security.  These issues are
   discussed in [ISCSI].

8.  References

[ISCSI]     Satran, J., et. al., "iSCSI", draft-ietf-ips-iSCSI-07, July
            2001.

[RFC2571]   Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture
            for Describing SNMP Management Frameworks", RFC 2571, April
            1999.

[RFC1155]   Rose, M., and K. McCloghrie, "Structure and Identification
            of Management Information for TCP/IP-based Internets", STD
            16, RFC 1155, May 1990.



Bakke, Muchow             Expires January 2002                 [Page 51]


Internet Draft                  iSCSI MIB                      July 2001


[RFC1212]   Rose, M., and K. McCloghrie, "Concise MIB Definitions", STD
            16, RFC 1212, March 1991.

[RFC1215]   M. Rose, "A Convention for Defining Traps for use with the
            SNMP", RFC 1215, March 1991.

[RFC2578]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
            Rose, M., and S. Waldbusser, "Structure of Management
            Information Version 2 (SMIv2)", STD 58, RFC 2578, April
            1999.

[RFC2579]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
            Rose, M., and S. Waldbusser, "Textual Conventions for
            SMIv2", STD 58, RFC 2579, April 1999.

[RFC2580]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
            Rose, M., and S. Waldbusser, "Conformance Statements for
            SMIv2", STD 58, RFC 2580, April 1999.

[RFC1157]   Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple
            Network Management Protocol", STD 15, RFC 1157, May 1990.

[RFC1901]   Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
            "Introduction to Community-based SNMPv2", RFC 1901, January
            1996.

[RFC1906]   Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
            "Transport Mappings for Version 2 of the Simple Network
            Management Protocol (SNMPv2)", RFC 1906, January 1996.

[RFC2572]   Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message
            Processing and Dispatching for the Simple Network Management
            Protocol (SNMP)", RFC 2572, April 1999.

[RFC2574]   Blumenthal, U., and B. Wijnen, "User-based Security Model
            (USM) for version 3 of the Simple Network Management
            Protocol (SNMPv3)", RFC 2574, April 1999.

[RFC1905]   Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
            "Protocol Operations for Version 2 of the Simple Network
            Management Protocol (SNMPv2)", RFC 1905, January 1996.

[RFC2573]   Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications",
            RFC 2573, April 1999.

[RFC2575]   Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based
            Access Control Model (VACM) for the Simple Network
            Management Protocol (SNMP)", RFC 2575, April 1999.



Bakke, Muchow             Expires January 2002                 [Page 52]


Internet Draft                  iSCSI MIB                      July 2001


[RFC2570]   Case, J., Mundy, R., Partain, D., and B. Stewart,
            "Introduction to Version 3 of the Internet-standard Network
            Management Framework", RFC 2570, April 1999.

[RFC2012]   McCloghrie, K., "SNMPv2 Management Information Base for the
            Transmission Control Protocol using SMIv2", RFC 2012,
            November 1996.

[RFC2851]   Daniele, M., et. al., "Textual Conventions for Internet
            Network Addresses", RFC 2851, June 2000.

[IPV6MIB]   Daniele, M., et. al., "Textual Conventions for Internet
            Network Addresses", draft-ietf-ops-rfc2851-update-00.txt,
            February 2001

9.  Authors' Addresses

       Mark Bakke
       Postal: Cisco Systems, Inc
       6450 Wedgwood Road, Suite 130
       Maple Grove, MN
       USA 55311

       Tel: +1 763-398-1000
       Fax: +1 763-398-1001

       E-mail: mbakke@cisco.com

       Marjorie Krueger
       Postal: Hewlett-Packard
       Networked Storage Architecture
       Networked Storage Solutions Org.
       8000 Foothills Blvd.
       Roseville, CA
       USA 95747

       Tel: +1 916-785-2656
       Tel: +1 916-785-0391

       Email: marjorie_krueger@hp.com











Bakke, Muchow             Expires January 2002                 [Page 53]


Internet Draft                  iSCSI MIB                      July 2001


       Tom McSweeney
       Postal: IBM Corporation
       600 Park Offices Drive
       Research Triangle Park, NC
       USA 27709

       Tel: +1-919-254-5634
       Fax: +1-919-254-0391

       E-mail: rf42tpme@us.ibm.com

       Jim Muchow
       Postal: Cisco Systems, Inc
       6450 Wedgwood Road, Suite 130
       Maple Grove, MN
       USA 55311

       Tel: +1 763-398-1000
       Fax: +1 763-398-1001

       E-mail: jmuchow@cisco.com"






























Bakke, Muchow             Expires January 2002                 [Page 54]


Html markup produced by rfcmarkup 1.129b, available from https://tools.ietf.org/tools/rfcmarkup/