Internet Draft                                     Kevin Gibbons
    <draft-ietf-ips-isns-01.txt>                          Josh Tseng
    Expires September 2001                             Charles Monia
                                                      Nishan Systems

                                                   Franco Travostino
                                                     Nortel Networks

                                                          Ken Hirata
                                                   Vixel Corporation

                                                          Mark Bakke
                                                       Cisco Systems

                                                          Jim Hafner
                                                        IBM Research

                                                         Howard Hall
                                                      Pirus Networks

                                                          March 2001


                  iSNS Internet Storage Name Service

Status of this Memo

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

    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.

Acknowledgements

    Numerous individuals contributed to the creation of this draft
    through their careful review and submissions of comments and
    recommendations.  We acknowledge the following persons for their
    technical contributions to this document:  John Hufferd (IBM),
    Julian Satran (IBM), Kaladhar Voruganti(IBM), Joe Czap (IBM), Yaron


Gibbons, Tseng, Monia      Standards Track
iSNS                          March 2001

    Klein (Sanrad), Larry Lamers (SAN Valley), Jack Harwood (EMC),
    David Black (EMC), and David Robinson (Sun).

Comments

    Comments should be sent to the IPS mailing list (ips@ece.cmu.edu)
    or to the authors.

1.       Abstract

    This document provides a generic framework centering around use of
    the iSNS for discovery and management of storage entities in an
    enterprise-scale IP storage network.  iSNS is an application that
    stores client attributes and monitors the availability and
    reachability of storage assets in an integrated IP storage network.
    Due to its role as a consolidated information repository, iSNS
    provides for more efficient and scalable management of IP storage
    assets.

2.       Conventions used in this document

    iSNS refers to the framework consisting of the storage network
    model and associated services.

    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
    "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in
    this document are to be interpreted as described in RFC-2119 [2].

    All frame formats are in big endian network byte order.

3.       iSNS Overview

    The iSNS provides a common framework used to provide naming,
    discovery, and resource management services for enterprise-scale IP
    storage networks. iSNS can be implemented to support iSCSI, iFCP,
    and/or FCIP protocols as needed; an iSNS implementation MAY provide
    support for any one, two, or all three of these protocols as
    desired by the implementer.  Implementation requirements within
    each of these protocols is further discussed in section 5. Although
    use of iSNS is optional for iSCSI and FCIP, these protocols will
    benefit from iSNS as the number of devices in the storage network
    increases.

3.1      iSNS Architectural Components

3.1.1    iSNS Client

    Entities that initiate transactions using the iSNSP are referred to
    as iSNS clients.  Using the iSNSP, iSNS clients can register their
    attribute information, download information about other registered
    clients in a common DD, and receive asynchronous notification of
    topology events that occur in their DD(s). Management stations are


Gibbons, Tseng, Monia      Standards Track                           2
iSNS                          March 2001

    a special type of iSNS client that have access to all DDs stored in
    the iSNS.

3.1.2    iSNS Server

    The iSNS server responds to iSNS protocol queries and requests, and
    initiates iSNS protocol State Change Notifications.  Properly
    authenticated information submitted by a registration request is
    stored in an internal or external database.

    The iSNS server MAY be discovered by iSNS clients through a
    multicast discovery message, although the protocol format for this
    discovery mechanism is beyond the scope of this document.

3.1.3    iSNS Database

    The iSNS database is the information repository for the iSNS
    server(s).  It maintains information about iSNS client attributes.
    A directory-enabled implementation of iSNS may store client
    attributes in an LDAP directory infrastructure.

3.1.4    iSNS Protocol (iSNSP)

    The iSNS Protocol (iSNSP) is a flexible and lightweight protocol
    that specifies how iSNS clients and servers communicate.  It is
    suitable for various platforms, including switches and targets as
    well as server hosts.

3.2      iSNS Functional Components

    There are three main functional components of the iSNS:

    1)  A Name Service Providing Storage Resource Discovery
    2)  Discovery Domain (DD) and Login Control Service
    3)  State Change Notification Service

3.2.1    Name Registration Service

    The iSNS provides a registration function to allow all entities in
    a storage network to register and query the directory.  Both
    targets and initiators can register in the iSNS, as well as query
    for information about other initiators and targets.  This allows,
    for example, a client initiator to obtain information about target
    devices from the iSNS server. This service is modeled on the Fibre
    Channel Generic Services Name Server described in FC-GS-3, with
    extensions, operating within the context of an IP network.

    In order to maintain consistency between DNS Name-to-IP address
    mappings stored in the iSNS, and the same mapping which may exist
    in DNS servers, a common backend database storing such mappings MAY
    be implemented to support both DNS and iSNS.  This backend database
    can be based upon a standard network directory service such as
    LDAP.

Gibbons, Tseng, Monia      Standards Track                           3
iSNS                          March 2001


    The naming registration service also provides the ability to obtain
    a network unique Domain ID for iFCP gateways and Fibre Channel
    Autonomous Regions (AR's), when required.

3.2.2    Discovery Domain and Login Control Service

    The Discovery Domain (DD) Service facilitates the partitioning of
    iSNS client devices into more manageable groupings for
    administrative and login control purposes. With DD's, an
    administrator can partition groups of initiators and targets into
    more manageable groups in order to limit the login process to the
    more appropriate subset of targets registered in the iSNS.  iSNS
    clients must be in at least one common DD in order to obtain
    information about each other from the iSNS.  iSNS clients can be a
    member of multiple DD's simultaneously.

    The DD information stored in the iSNS can be used by various
    enforcement points in the network to provide enhanced security.
    For example, a DD-aware switch can block storage initiators from
    accessing targets that are not in the same DD, even if the
    initiator somehow obtained address information for a target outside
    of its DD.  This functionality is the equivalent of the _Hard
    Zoning_ functionality in a Fibre Channel network.

    Login Control allows targets to "slave" their access control
    mechanism to the iSNS.  The target downloads the list of authorized
    initiators from the iSNS.  Each initiator is uniquely identified by
    an iSCSI WWUI, iFCP Port Name, or FCIP IP Address.  Only initiators
    that match the required identification and authenticating
    information provided by the iSNS will be allowed access by that
    target during the initiator's session login (e.g., the iSCSI login
    process).  If spoofing of initiator identities is a concern, the
    target MAY use the public key certificate of the authorized
    initiator, obtained from the iSNS server, to authenticate the
    initiator.

    DD's can be managed offline by a separate management workstation,
    through the iSNSP or through SNMP.  If the target opts to use the
    Login Control feature of the iSNS, the target subordinates
    management of access control policy (i.e., the list of initiators
    allowed to login to that target) to the management workstations
    that are manipulating information in the iSNS database.

    If authorized, a target can upload its own Login Control list.
    This is accomplished using the RegDevDD message and listing the
    WWUI of each initiator to be registered in the Target's DD.

    Devices that do not belong to any Discovery Domain SHALL NOT be
    accessible to any other device (except the management station).
    Depending on the implementation, newly registered devices that have
    not explicitly been placed into a DD by the management station MAY
    be placed into a "default DD" where they are visible to other

Gibbons, Tseng, Monia      Standards Track                           4
iSNS                          March 2001

    devices in that DD.  Other implementations MAY decide that they are
    registered with no DD, making them inaccessible to any other
    devices in the iSNS database.

3.2.3    State Change Notification Service

    The State Change Notification (SCN) service allows the iSNS to
    issue notifications about network events that affect the
    operational state of iSNS client entities. The iSNS client has the
    ability to register for these notifications of events detected by
    the iSNS.  The types of events for which SCNs can be sent include
    change in Discovery Domain (DD) membership and device registration
    updates.

    The State Change Notification service utilizes the Discovery Domain
    Service, as described in section 3.1.2, to control the distribution
    of notification messages.  Notifications about changes within a DD
    are limited to members of that DD.

    If the iSNS is unable to service an SCN registration it SHALL
    reject the SCN registration request, returning a SCN Registration
    Rejected error code.  The rejection might occur in situations where
    the network size, or current level of SCN registrations, has passed
    an implementation-specific threshold.  A client not allowed to
    register for SCNs SHOULD monitor its sessions with other storage
    devices directly.

    The specific notification mechanism by which the iSNS learns of the
    events is implementation-specific, but can include examples such as
    explicit notification messages from an iSNS client to the iSNS
    server, or a hardware interrupt to a switch-hosted iSNS as a result
    of link failure.  The iSNS is equivalent to the Fibre Channel State
    Change Notification service, with extensions, operating within the
    context of an IP network.

3.3      iSNS and Domain Name System (DNS)

    A directory-enabled iSNS implementation may use LDAP to store iSNS
    client attributes.  If this is the case, then LDAP can be used to
    support both the iSNS and DNS server infrastructures, maintaining
    consistency in Domain Name-to-IP address mappings used by DNS and
    iSNS.

    A detailed description of the Domain Name System (DNS) protocol is
    found in [RFC 1035], and is beyond the scope of this document. If a
    common LDAP information base is used to support both DNS and iSNS
    servers, then Domain-Name-to-IP address mappings for storage
    devices can be obtained from either DNS servers or the iSNS.

3.4       iSNS and LDAP

    LDAP is a generic protocol to access directory services through the
    network.  It is a passive service designed to deliver scalable

Gibbons, Tseng, Monia      Standards Track                           5
iSNS                          March 2001

    directory services using a get/set model.  Applications designed
    and tailored to specific user requirements interact with LDAP for
    their generic directory service needs.  On the other hand, iSNS is
    an application that goes beyond the simple get/set model, and
    provides specific capabilities needed to monitor and manage an
    enterprise-scale storage network.  iSNS is one example of an
    application that can leverage the services of LDAP.  By layering
    iSNS on top of LDAP, the capabilities of both iSNS and LDAP can be
    leveraged to manage and scale the enterprise IP storage network.

    The iSNS application provides capabilities that LDAP alone is not
    designed to achieve.  This includes the following:

    1)  Client Attribute Awareness - The iSNS server application
    interprets attribute values submitted by clients in registration
    messages, and can take appropriate action based upon specific
    registered attribute values.

    2)  State Change Notification - An iSNS server may initiate
    notification messages to clients in the event of a change in the
    network, such as the non-availability or reachability of a storage
    device, or a specific change in the value of a client attribute.

    3)  Monitoring of Clients - iSNS provides a Entity Status Inquiry
    message to verify the availability and reachability of storage
    devices.

    4)  Lightweight - iSNSP is a simple and lightweight protocol
    suitable for implementation on embedded devices such as switches
    and targets.  There are no unused or "wasted" features that may bog
    down the performance of the host device.

3.5       iSNS Discovery and SLP

    The Service Location Protocol (SLP) provides a flexible and
    scalable framework for providing hosts with access to information
    about the existence, location, and configuration of networked
    services.  SLP MAY be used by iSNS clients to discover the IP
    address of the iSNS server.  To implement discovery through SLP, a
    Service Agent (SA) should be cohosted in the iSNS server, and a
    User Agent (UA) should be in each iSNS client. Each client
    multicasts a discovery message requesting the IP address of the
    iSNS server(s).  The SA responds to this request.  Optionally, the
    location of the iSNS can be stored in the SLP Directory Agent (DA).

    If iSNS is not used, then the IP address of the iSNS server should
    be manually configured in each iSNS client.

    Note that a complete description and specification of SLP can be
    found in [RFC2608], and is beyond the scope of this document.
    Additional details on use of SLP to discover iSNS can be found in
    the document draft-bakke-iscsi-slp-00.txt.


Gibbons, Tseng, Monia      Standards Track                           6
iSNS                          March 2001

3.6     iSNS and NAT

    The existence of NAT will have an impact upon information retrieved
    from the iSNS.  If the iSNS client exists in a different addressing
    domain than the iSNS server, then IP address information stored in
    the iSNS server may not be correct when interpreted in the domain
    of the iSNS client.

    There are several possible approaches to allow operation of iSNS
    within a NAT network.  The first approach is to require use of the
    canonical TCP port number by both targets and initiators when
    addressing targets across a NAT boundary, and for the iSNS client
    to not query for nominal IP addresses.  Rather, an iSNS client
    initiator SHALL query for the DNS Fully Qualified Domain Name
    (i.e., Entity Identifier) when seeking addressing information.
    Once retrieved, the DNS name can be interpreted in each address
    domain and mapped to the appropriate IP address by local DNS
    servers.

    A second approach is to deploy a distributed network of iSNS
    servers.  Local iSNS servers are deployed inside and outside NAT
    boundaries, with each local server storing relevant IP addresses
    for their respective NAT domains.  Updates among the network of
    decentralized, local iSNS servers are handled using LDAP and using
    appropriate NAT translation rules implemented within the update
    mechanism in each server.

    A final approach is to simply disallow use of NAT in between
    communication between the iSNS server and any iSNS client.

3.7     Interactions Between iSNS Infrastructures

    Each individual iSNS deployment is designed to be operated in
    networks under the control of a single administrative authority.
    This administrative authority facilitates a seamless, integrated
    policy for iSNS usage, including security, naming and registration
    of storage assets, and management of Discovery Domains.  Through
    leverage of an Internet-based database framework such as LDAP, the
    iSNS not only scales to large storage networks, but also to support
    interactions among multiple independently managed storage
    infrastructures, each managed by its own administrative authority.

    The information registered in the iSNS can be shared with other
    iSNS servers managed by other administrative authorities through
    out-of-band, non-iSNS protocols.  By importing registration
    information from a remote iSNS server, storage connectivity can be
    established to devices managed by that server.

    The following examples illustrate possible methods to transfer iSNS
    records of devices between autonomous, independently-administered
    iSNS servers.  In the first example, a back-end LDAP information
    base is used to support the iSNS server.  The following diagram
    illustrates use of the LDAP protocol to import iSNS registration

Gibbons, Tseng, Monia      Standards Track                           7
iSNS                          March 2001

    information from one iSNS server to another.  Once the record
    transfer of the remote device is completed, it becomes visible and
    accessible to local devices on the local iSNS server.  This allows
    local devices to establish sessions with remote devices (provided
    firewall boundaries can be negotiated).

    +-------------------------+           +-------------------------+
    |+------+ iSNSP           |           |           iSNSP +-----+ |
    ||dev A |<----->+------+  |           |  +------+<----->|dev C| |
    |+------+       |      |  |           |  |      |       +-----+ |
    |+------+ iSNSP |local |  |           |  |remote| iSNSP +-----+ |
    ||dev B |<----->| iSNS |  |           |  | iSNS |<----->|dev D| |
    |+------+       |      |  |           |  |      |       +-----+ |
    |........       +--+---+  |   WAN     |  +---+--+               |
    |.dev C'.          |      |   Link    |      |                  |
    |........          |      =============      |                  |
    |                  |      |           |      |                  |
    |               +--+---+  |           |  +---+--+               |
    |               | local|<--- <--- <--- <-|remote|               |
    |               | LDAP |  |  LDAP:    |  | LDAP |               |
    |               +------+  Xfer "dev C"|  +------+               |
    +-------------------------+           +-------------------------+

           Enterprise                           Enterprise
           Network A                            Network B

    In the above diagram, two business partners wish to share storage
    "dev C". Using LDAP, the record for "dev C" can be transfered from
    Network B to Network A.  Once accessible to the local iSNS in
    Network A, local devices A and B can now discover and connect to
    "dev C".























Gibbons, Tseng, Monia      Standards Track                           8
iSNS                          March 2001

    +-------------------------+           +-------------------------+
    |+------+ iSNSP           |           |           iSNSP +-----+ |
    ||dev A |<----->+------+  |           |  +------+<----->|dev C| |
    |+------+       |      |  |           |  |      |       +-----+ |
    |+------+ iSNSP |local |  |           |  |remote| iSNSP +-----+ |
    ||dev B |<----->| iSNS |  |           |  | iSNS |<----->|dev D| |
    |+------+       |      |  |           |  |      |       +-----+ |
    |........       +------+  |   WAN     |  +---+--+               |
    |.dev C'.          ^      |   Link    |      |                  |
    |........          |      =============      v                  |
    |                  |      |           |      |SNMP              |
    |                  |      |           |      |                  |
    |               +--+----+ |           |      v                  |
    |               | SNMP  |<--- <--- <--- <----                   |
    |               | Mgmt  | |  SNMP: Xfer "dev C"                 |
    |               |Station| |           |                         |
    |               +-------+ |           |                         |
    +-------------------------+           +-------------------------+

           Enterprise                           Enterprise
           Network A                            Network B

    The above diagram illustrates a second example of how iSNS records
    can be shared.  In this case, the iSNS servers are not using LDAP
    to store records.  This method uses an SNMP-based management
    station to manually download the desired record for "dev C", and
    then directly upload it to the local iSNS. Once the record is
    transfered to the local iSNS in Network A, "dev C" becomes visible
    and accessible (provided firewall boundaries can be negotiated) to
    other devices in Network A.

    Other methods, including proprietary protocols, can be used to
    transfer device records between independently-administered iSNS
    servers.  Further discussion and explanation of these methodologies
    is beyond the scope of this document.

3.8      Deployment Architecture Diagram

    The following diagram displays examples of where and how iSNS can
    be deployed, and of the various IP-based storage entities that it
    can support.













Gibbons, Tseng, Monia      Standards Track                           9
iSNS                          March 2001


     +------------+          +-----------+          +-----------+
     |            |   LDAP   | Directory |   LDAP   |   iSNS    |
     | DNS Server |<-------->|  Database |<-------->|  Server   |
     |            |          |           |          |           |
     +------+-----+          +-----+-----+          +-----+-----+
            |                      |                      |
            | DNS                  | LDAP           iSNSP |
            |Queries               |                      |
     +------+----------------------+----------------------+---------+
     |                                                              |
     |                         IP Network                           |
     |                                                              |
     +----+-----------+----------+---------------+-------------+----+
          |           |          |               |             |
          |           |    +-----+-----+  +------+-----+  +----+----+
          |           |    |iSCSI-/    |  |iFCP   /    |  |  FCIP   |
          |           |    | FC  /iSNS |  |Switch/iSNS |  | Gateway |
          |           |    |Gtwy/Server|  |     /Server|  |         |
          |           |    +----+------+  +-+-------+--+  +----+----+
          |           |         |           |       |          |
     +----+----+ +----+---+ +---+----+ +----+-+ +---+----+ +---+----+
     |  iSCSI  | |  iSCSI | | Fibre  | |  FC  | | Fibre  | | Fibre  |
     |Initiator| | Target | |Channel | |Device| |Channel | |Channel |
     +---------+ +--------+ |Network | +------+ |Network | |Network |
                            +--------+          +--------+ +--------+
                        iSNS Client Entities

4.       iSNS Object Model

    iSNS provides the framework for the registration and discovery of
    iSCSI devices, Fibre Channel-based devices using iFCP, and FCIP
    tunnel endpoint gateways.  This architecture defines common objects
    that can be used to represent components referenced by each of
    these three protocols.  In iSCSI, the IP-based storage end devices
    (NICs, controllers, etc...) are registered in the iSNS.  In iFCP,
    the iFCP gateway and its supported Fibre Channel-based storage end
    devices (HBA's, controllers, etc...) have their attributes
    registered in the iSNS by the iFCP gateway.  Finally, for FCIP,
    only the FCIP gateway and its supported tunnel endpoints are
    registered in the iSNS by the FCIP gateway.

    The following architecture framework provides elements needed to
    describe various storage device objects and attributes that may
    exist on an IP storage network.  Five object entities are defined
    in this architecture framework.  They are PORTAL, NETWORK ENTITY,
    STORAGE NODE, STORAGE PORT, and DISCOVERY DOMAIN.  Each of these
    objects are described in greater detail in sections 4.1 to 4.5.

    The object containment hierarchy starts with the DISCOVERY DOMAIN.
    The DISCOVERY DOMAIN contains a set of NETWORK ENTITY objects,
    STORAGE NODE objects, and/or PORTAL objects.  Conversely, an
    individual NETWORK ENTITY, STORAGE NODE, or PORTAL can be contained

Gibbons, Tseng, Monia      Standards Track                          10
iSNS                          March 2001

    in one or more DISCOVERY DOMAIN objects.  The NETWORK ENTITY object
    describes a device or gateway visible to the IP network.  It can
    contain one or more STORAGE NODE objects, and one or more PORTAL
    objects.  STORAGE NODE objects are used to represent an initiator
    or target storage controller, while a PORTAL represents an IP
    Address and Port Number which can be used to access any of the
    STORAGE NODE objects within that NETWORK ENTITY object.  Within the
    STORAGE NODE are one or more STORAGE PORTS. Each object has a set
    of attributes described in section 5.  Not all objects are
    applicable to each protocol (i.e., iSCSI, iFCP, and FCIP) supported
    by iSNS.  For example, the STORAGE PORT object is not used in
    iSCSI.  In the diagrams below, objects are denoted in all CAPITAL
    letters.

4.1      NETWORK ENTITY Object

    The NETWORK ENTITY object represents a device or gateway that is
    accessible from the IP network.  This device or gateway may support
    one or more initiators or target controllers that are either
    internal to the storage device, or accessible through a network
    behind the gateway.  Each individual initiator or target controller
    is represented by subordinate STORAGE NODE objects.

                                    Applicability            Primary
    Attribute                 iSCSI     iFCP     FCIP     Key Attribute
    ---------                 -----     ----     ----     -------------
    Entity Identifier           *         *        *            *
    Entity Type                 *         *        *
    Management IP Address       *         *        *
    ESI Interval                *         *        *
    Timestamp                   *         *        *
    Entity Certificate          *         *        *
    SCN Event Bitmap            *         *        *
    ESI TCP/UDP Port            *         *        *

4.2      PORTAL Object

    The PORTAL object is a port through which access to any STORAGE
    NODE within the NETWORK ENTITY can be obtained.  A NETWORK ENTITY
    must have one or more PORTALs, each of which is usable by STORAGE
    NODEs contained in that NETWORK ENTITY to gain access to the IP
    network.

                                    Applicability            Primary
    Attribute                 iSCSI     iFCP     FCIP     Key Attribute
    ---------                 -----     ----     ----     -------------
    IP Address                  *        *         *            *
    TCP/UDP Port                *        *         *            *
    Portal Symbolic Name        *        *         *

4.3      STORAGE NODE Object



Gibbons, Tseng, Monia      Standards Track                          11
iSNS                          March 2001

    The STORAGE NODE object defines an individual storage initiator or
    target.  This entity may be a RAID controller, a Fibre Channel HBA,
    or other individual storage controller.  The STORAGE NODE may have
    one or more STORAGE PORT objects.  There may be one or more STORAGE
    NODE objects within the NETWORK ENTITY.

                                    Applicability            Primary
    Attribute                 iSCSI     iFCP     FCIP     Key Attribute
    ---------                 -----     ----     ----     -------------
    WWUI                        *                              *
    Node Name (WWNN)                      *                    *
    Node Type                   *         *
    Alias/Node Symbolic Name    *         *
    FC Node IP-Address                    *
    FC Node IPA                           *
    Node Certificate            *         *

    The primary key used to uniquely identify an iSCSI-based STORAGE
    ENTITY is WWUI, while the key for an iFCP/Fibre Channel-based
    STORAGE ENTITY is WWNN.  iFCP/Fibre Channel-based Nodes contain 1
    or more STORAGE PORT objects, which are keyed with a WWPN.

4.4      DISCOVERY DOMAIN Object

    DISCOVERY DOMAINS are a security and management mechanism used to
    partition storage resources.  Zoning prevents initiators from
    potentially logging in to every possible target during device
    discovery.  When queried, the iSNS server will only provide
    information on storage entities in a common DD.  Initiators will
    thus not be able to "see" devices that are not in a common DD.

                                    Applicability            Primary
    Attribute                 iSCSI     iFCP     FCIP     Key Attribute
    ---------                 -----     ----     ----     -------------
    DD_ID                      *         *        *           *
    DD_Symbolic Name           *         *        *           *
    DD_Member (WWUI)           *                              *
    DD_Member (WWPN)                     *                    *
    DD_Member (WWNN)                     *                    *
    DD_Member (IP Address)     *                  *           *

4.5      STORAGE PORT Object

    The STORAGE PORT object defines an individual service delivery port
    that services a STORAGE ENTITY.  An iSCSI device does not have a
    STORAGE PORT, and this object is therefore unused for an iSCSI
    device.  For a Fibre Channel device, the STORAGE PORT describes an
    N_PORT interface.






Gibbons, Tseng, Monia      Standards Track                          12
iSNS                          March 2001

                                    Applicability            Primary
    Attribute                 iSCSI     iFCP     FCIP     Key Attribute
    ---------                 -----     ----     ----     -------------
    Port Name (WWPN)                      *                    *
    Port_ID                               *
    Port_Type                             *
    Port_Symbolic Name                    *
    FC Fabric Port Name (FWWN)            *
    FC Hard Address                       *
    FC Port IP Address                    *
    FC Class of Service                   *
    FC FC-4 Types                         *
    FC FC-4 Descriptors                   *
    FC FC-4 Features                      *

4.6      Diagram Examples

    In each of the following subsections, the attributes described for
    each object are covered in more detail in section 5.4.  The Key
    Attribute column indicates that the attribute is a search key which
    can be used to query for that object.

4.6.1    iSCSI

    The following diagram models how a simple iSCSI-based initiator and
    target is represented using database objects stored in the iSNS.
    In this implementation, each target and initiator is attached to a
    single PORTAL.  Since the devices shown are iSCSI, the STORAGE PORT
    object does not apply.  All required attributes are also shown in
    this diagram:
























Gibbons, Tseng, Monia      Standards Track                          13
iSNS                          March 2001

    +----------------------------------------------------------------+
    |                         IP Network                             |
    +------------+--------------------------------------+------------+
                 |                                      |
                 |                                      |
    +-----+------+------+-----+            +-----+------+------+-----+
    |     | PORTAL      |     |            |     | PORTAL      |     |
    |     | -IP Addr 1  |     |            |     | -IP Addr 2  |     |
    |     | -TCP Port 1 |     |            |     | -TCP Port 2 |     |
    |     +-----+ +-----+     |            |     +-----+ +-----+     |
    |           | |           |            |           | |           |
    |           | |           |            |           | |           |
    |  +--------+ +--------+  |            |   +-------+ +--------+  |
    |  |                   |  |            |   |                  |  |
    |  |  STORAGE NODE     |  |            |   |  STORAGE NODE    |  |
    |  |  -WWUI            |  |            |   |   -WWUI          |  |
    |  |  -Alias: "server1"|  |            |   |   -Alias: "disk1"|  |
    |  |  -Type: initiator |  |            |   |   -Type: target  |  |
    |  |                   |  |            |   |                  |  |
    |  +-------------------+  |            |   +------------------+  |
    |                         |            |                         |
    |    NETWORK ENTITY       |            |    NETWORK ENTITY       |
    |   -Entity ID (FQDN):    |            |   -Entity ID (FQDN):    |
    |    "strg1.foo.com"      |            |    "strg2.bar.com"      |
    |   -Type: iSCSI          |            |   -Type: iSCSI          |
    |                         |            |                         |
    +-------------------------+            +-------------------------+

    The object model can be expanded to describe more complex devices,
    such as an iSCSI device with more than one storage controller, each
    controller accessible through any of multiple PORTAL interfaces.
    The storage controllers on this highly-available device which can
    be accessed through alternate PORTAL interfaces, if any original
    interface should fail.  The following diagram describes such a
    device:



















Gibbons, Tseng, Monia      Standards Track                          14
iSNS                          March 2001

    +---------------------------------------------------------------+
    |                         IP Network                            |
    +-------------------+-----------------------+-------------------+
                        |                       |
                        |                       |
    +------------+------+------+---------+------+------+------------+
    |            | PORTAL      |         | PORTAL      |            |
    |            | -IP Addr 1  |         | -IP Addr 2  |            |
    |            | -TCP Port 1 |         | -TCP Port 2 |            |
    |            +-----+ +-----+         +-----+ +-----+            |
    |                  | |                     | |                  |
    |  +---------------+ +---------------------+ +---------------+  |
    |  +-------+ +----------------+ +-------------------+ +------+  |
    |          | |                | |                   | |         |
    |  +-------+ +-------+ +------+ +--------+ +--------+ +------+  |
    |  |                 | |                 | |                 |  |
    |  | STORAGE NODE    | | STORAGE NODE    | | STORAGE NODE    |  |
    |  |  -WWUI 1        | |  -WWUI 2        | |  -WWUI 3        |  |
    |  |  -Alias: "disk1"| |  -Alias: "disk2"| |  -Alias: "disk3"|  |
    |  |  -Type: target  | |  -Type: target  | |  -Type: target  |  |
    |  |                 | |                 | |                 |  |
    |  +-----------------+ +-----------------+ +-----------------+  |
    |                                                               |
    |                         NETWORK ENTITY                        |
    |                    -Entity ID (FQDN): "dev1.foo.com"          |
    |                    -Type: iSCSI                               |
    |                                                               |
    +---------------------------------------------------------------+

4.6.2    iFCP

    The iFCP protocol allows native Fibre Channel devices, or Fibre
    Channel fabrics connected to an iFCP gateway, to be directly
    internetworked using IP.

    When supporting iFCP, the iSNS stores the attributes of the Fibre
    Channel devices themselves, attributes of the iFCP gateway, as well
    as Fibre Channel fabric switch attributes that might also be stored
    in an FC name server.

    The following diagram shows a representation of a gateway
    supporting multiple Fibre Channel devices behind it.  The two
    PORTAL objects represent IP interfaces on the iFCP gateway that can
    be used to access the two Fibre Channel devices behind it.  The
    NETWORK ENTITY object represents the iFCP gateway itself, while
    each of the STORAGE NODE objects represents an actual Fibre Channel
    device.  One of the target devices has two ports, each represented
    by a STORAGE PORT object.






Gibbons, Tseng, Monia      Standards Track                          15
iSNS                          March 2001

    +---------------------------------------------------------------+
    |                         IP Network                            |
    +-------------------+-----------------------+-------------------+
                        |                       |
                        |                       |
    +------------+------+------+---------+------+------+------------+
    |            | PORTAL      |         | PORTAL      |            |
    |            | -IP Addr 1  |         | -IP Addr 2  |            |
    |            | -TCP Port 1 |         | -TCP Port 2 |            |
    |            +-----+ +-----+         +-----+ +-----+            |
    |                  | |                     | |                  |
    |  +---------------+ +---------------------+ +---------------+  |
    |  |              Fibre Channel Loop or Fabric               |  |
    |  +-------+ +-----------------+ +----------------+ +--------+  |
    |          | |                 | |                | |           |
    |  +-+-----+ +-----+-+ +--+----+ +------+---+-----+ +-----+--+  |
    |  | |STORAGE PORT | | |  |STORAGE PORT |   |STORAGE PORT |  |  |
    |  | | -WWPN 1     | | |  | -WWPN 2     |   | -WWPN 3     |  |  |
    |  | | -Port ID 1  | | |  | -Port ID 2  |   | -Port ID 3  |  |  |
    |  | | -FWWN 1     | | |  | -FWWN 2     |   | -FWWN 3     |  |  |
    |  | | -FC COS     | | |  | -FC COS     |   | -FC COS     |  |  |
    |  | +-------------+ | |  +-------------+   +-------------+  |  |
    |  |                 | |                                     |  |
    |  | STORAGE NODE    | |            STORAGE NODE             |  |
    |  |   -WWNN 1       | |              -WWNN 2                |  |
    |  |   -Symbolic Name| |              -Symbolic Name         |  |
    |  |   -FC Node IPA  | |              -FC Node IPA           |  |
    |  |   -Type: target | |              -Type: target          |  |
    |  |                 | |                                     |  |
    |  +-----------------+ +-------------------------------------+  |
    |                                                               |
    |                   NETWORK ENTITY                              |
    |                  -Entity ID (FQDN): "gtwy1.foo.com"           |
    |                  -Type: iFCP                                  |
    |                                                               |
    +---------------------------------------------------------------+

4.6.3     FCIP
















Gibbons, Tseng, Monia      Standards Track                          16
iSNS                          March 2001

    The following diagram depicts FCIP gateways stored in the iSNS.  In
    FCIP, the iSNS is only used for tunnel endpoint discovery.
    Therefore, no information about the storage end nodes are
    registered in the iSNS, and the STORAGE PORT and STORAGE NODE
    objects are not applicable.

    +----------------------------------------------------------------+
    |                         IP Network                             |
    +-------------+-------------------------+----------------+-------+
                  |                         |                |
                  |                         |                |
    +-----+-------+------+----+    +-+------+------+--+------+-----+-+
    |     | PORTAL       |    |    | | PORTAL      |  | PORTAL     | |
    |     | -IP Addr 1   |    |    | | -IP Addr 2  |  | -IP Addr 3 | |
    |     | -TCP Port 1  |    |    | | -TCP Port 2 |  | -TCP Port 3| |
    |     +--------------+    |    | +-------------+  +------------+ |
    |                         |    |                                 |
    |    NETWORK ENTITY       |    |      NETWORK ENTITY             |
    |  -Entity ID (FQDN):     |    |     -Entity ID (FQDN):          |
    |   "Tunnelgtwy1.foo.com" |    |      "Tunnelgtwy2.bar.com"      |
    |  -Type: FCIP            |    |     -Type: FCIP                 |
    +-------------------------+    +---------------------------------+

5.       iSNS Implementation Requirements

    iSNS can be implemented with features to support any combination of
    the following protocols: iSCSI, iFCP, and FCIP.  Implementation of
    support for any or all of these protocols is OPTIONAL. IF iSNS is
    implemented to support a particular protocol, then a minimum set of
    attributes and iSNSP commands is REQUIRED for support of that
    protocol. This section details specific requirements for support of
    each of these IP storage protocols.

5.1      iSCSI Requirements

    Use of iSNS in support of iSCSI is OPTIONAL.  iSCSI devices MAY be
    manually configured with the WWUI and IP address of peer devices,
    without the aid or intervention of iSNS.  iSCSI devices also MAY
    use SLP [RFC 2608] to discover peer iSCSI devices.  However, for
    scaling a storage network to a larger number of iSCSI devices, use
    of iSNS is RECOMMENDED.

5.1.1    Required Attributes for Support of iSCSI

    The following attributes are available to support iSCSI.
    Attributes indicated in the REQUIRED TO IMPLEMENT column MUST be
    supported by an iSNS server used to support iSCSI.  Attributes
    indicated in the REQUIRED TO USE column MUST be supported by an
    iSCSI device that elects to use the iSNS.





Gibbons, Tseng, Monia      Standards Track                          17
iSNS                          March 2001

                                                REQUIRED     REQUIRED
    Object                Attribute           to Implement   to Use
    ------                ---------           ------------   --------
    NETWORK ENTITY     Entity Identifier            *           *
                       Entity Type                  *           *
                       Management IP Address
                       ESI Interval                 *
                       Timestamp                    *
                       Entity Certificate           *
                       SCN Event Bitmap             *
                       ESI TCP/UDP Port             *           *

    PORTAL             IP Address                   *           *
                       TCP/UDP Port                 *           *
                       Portal Symbolic Name         *

    STORAGE NODE       WWUI                         *           *
                       Node Type                    *           *
                       Alias/Symbolic Node Name     *
                       Node Certificate             *

    DISCOVERY DOMAIN   DD_ID                        *           *
                       DD_Symbolic Name             *
                       DD Member (Entity ID)        *
                       DD_Member (WWUI)             *           *
                       DD_Member (IP Address)       *

    All iSCSI user-specified and vendor-specified attributes are
    optional to implement and use.

5.1.2    Attribute Descriptions for iSCSI Storage Systems

    The iSNS attributes used to represent iSCSI Storage Systems are
    shown and described in the following diagram:




















Gibbons, Tseng, Monia      Standards Track                          18
iSNS                          March 2001

    - iSCSI NETWORK ENTITY
        |
        - Entity Identifier
        |    By convention this is the DNS name of the
        |    Portal IP-Address(es).  If it is not registered
        |    the iSNS will assign a unique alphanumeric
        |    identifier to it.
        - Entity Type
        |    Indicates this is an iSCSI registration
        - Mgt IP-Address
        |    If it is not registered then in-band management
        |    is assumed.
        - Entity Status Inquiry Interval
        |    If 0 no status inquiry is used
        - Timestamp
        |    Timestamp of last registration update
        - Entity Certificate
        |    X.509 certificate bound to the Entity (FQDN)
        - SCN Event Bitmap
        |    Indicates current SCN state
        - ESI TCP/UDP Port
             Destination port number for ESI messages
        - PORTAL (1 - n per ENTITY)
        |   |
        |   - IP-Address
        |   - TCP/UDP Port
        |   |    The IP-Addr and Port together uniquely
        |   |    define a portal.
        |   - Portal Symbolic Name
        |
        - STORAGE NODE (1 - m per ENTITY)
            |
            - WWUI (World-Wide Unique Identifier)
            - Node Type (initiator / target / ...)
            - Alias/Symbolic Node Name
            - Node Certificate

5.1.3    Example iSCSI Object Model Diagrams

    The following diagram models how a simple iSCSI-based initiator and
    target is represented using database objects stored in the iSNS.
    In this implementation, each target and initiator is attached to a
    single PORTAL.  Since the devices shown are iSCSI, the STORAGE PORT
    object does not apply.  All required attributes are also shown in
    this diagram:









Gibbons, Tseng, Monia      Standards Track                          19
iSNS                          March 2001

    +----------------------------------------------------------------+
    |                         IP Network                             |
    +------------+--------------------------------------+------------+
                 |                                      |
                 |                                      |
    +-----+------+------+-----+            +-----+------+------+-----+
    |     | PORTAL      |     |            |     | PORTAL      |     |
    |     | -IP Addr 1  |     |            |     | -IP Addr 2  |     |
    |     | -TCP Port 1 |     |            |     | -TCP Port 2 |     |
    |     +-----+ +-----+     |            |     +-----+ +-----+     |
    |           | |           |            |           | |           |
    |           | |           |            |           | |           |
    |  +--------+ +--------+  |            |   +-------+ +--------+  |
    |  |                   |  |            |   |                  |  |
    |  |  STORAGE NODE     |  |            |   |  STORAGE NODE    |  |
    |  |  -WWUI            |  |            |   |   -WWUI          |  |
    |  |  -Alias: "server1"|  |            |   |   -Alias: "disk1"|  |
    |  |  -Type: initiator |  |            |   |   -Type: target  |  |
    |  |                   |  |            |   |                  |  |
    |  +-------------------+  |            |   +------------------+  |
    |                         |            |                         |
    |    NETWORK ENTITY       |            |    NETWORK ENTITY       |
    |   -Entity ID (FQDN):    |            |   -Entity ID (FQDN):    |
    |    "strg1.foo.com"      |            |    "strg2.bar.com"      |
    |   -Type: iSCSI          |            |   -Type: iSCSI          |
    |                         |            |                         |
    +-------------------------+            +-------------------------+

    The object model can be expanded to describe more complex devices,
    such as an iSCSI device with more than one storage controller, each
    controller accessible through any of multiple PORTAL interfaces.
    The storage controllers on this highly-available device which can
    be accessed through alternate PORTAL interfaces, if any original
    interface should fail.  The following diagram describes such a
    device:



















Gibbons, Tseng, Monia      Standards Track                          20
iSNS                          March 2001

    +---------------------------------------------------------------+
    |                         IP Network                            |
    +-------------------+-----------------------+-------------------+
                        |                       |
                        |                       |
    +------------+------+------+---------+------+------+------------+
    |            | PORTAL      |         | PORTAL      |            |
    |            | -IP Addr 1  |         | -IP Addr 2  |            |
    |            | -TCP Port 1 |         | -TCP Port 2 |            |
    |            +-----+ +-----+         +-----+ +-----+            |
    |                  | |                     | |                  |
    |  +---------------+ +---------------------+ +---------------+  |
    |  +-------+ +----------------+ +-------------------+ +------+  |
    |          | |                | |                   | |         |
    |  +-------+ +-------+ +------+ +--------+ +--------+ +------+  |
    |  |                 | |                 | |                 |  |
    |  | STORAGE NODE    | | STORAGE NODE    | | STORAGE NODE    |  |
    |  |  -WWUI 1        | |  -WWUI 2        | |  -WWUI 3        |  |
    |  |  -Alias: "disk1"| |  -Alias: "disk2"| |  -Alias: "disk3"|  |
    |  |  -Type: target  | |  -Type: target  | |  -Type: target  |  |
    |  |                 | |                 | |                 |  |
    |  +-----------------+ +-----------------+ +-----------------+  |
    |                                                               |
    |                         NETWORK ENTITY                        |
    |                    -Entity ID (FQDN): "dev1.foo.com"          |
    |                    -Type: iSCSI                               |
    |                                                               |
    +---------------------------------------------------------------+

5.1.4    Required Commands and Response Messages for Support of iSCSI

    The following are iSNSP messages and responses are available in
    support of iSCSI.  Messages indicated in the REQUIRED TO IMPLEMENT
    column MUST be implemented in iSNS servers used for iSCSI devices.
    Messages indicated in the REQUIRED TO USE column must be
    implemented in iSCSI devices that elect to use the iSNS.


















Gibbons, Tseng, Monia      Standards Track                          21
iSNS                          March 2001

                                                      REQUIRED TO:
       Message Description    Abbreviation  Func ID  Implement  Use
       -------------------    ------------  -------  ---------  ---
    Register Dev Attr Req     RegDevAttr    0x0001       *       *
    Dev Attr Query Request    DevAttrQry    0x0002       *       *
    Dev Get Next Request      DevGetNext    0x0003       *
    Deregister Dev Request    DeregDev      0x0004       *       *
    SCN Register Request      SCNReg        0x0005       *
    SCN Deregister Request    SCNDereg      0x0006       *
    SCN Event                 SCNEvent      0x0007       *
    State Change Notification SCN           0x0008       *
    Register DD               RegDD         0x0009       *       *
    Deregister DD             DeregDD       0x000A       *       *
    Register Dev in DD        RegDevDD      0x000B       *       *
    Deregister Dev in DD      DeregDevDD    0x000C       *       *
    Entity Status Inquiry     ESI           0x000D       *
    Name Service Heartbeat    Heartbeat     0x000E
    NOT USED                                0x000F
    Request Network Time      RqstTime      0x0010
    NOT USED                                0x0011-0x0012
    RESERVED                                0x0013-0x8000

    The following are iSNSP response messages used in support of iSCSI:

                                                      REQUIRED TO:
    Response Message Desc     Abbreviation  Func_ID  Implement  Use
    ---------------------     ------------  -------  ---------  ---
    Register Dev Attr Rsp     RegDevRsp     0x8001       *       *
    Dev Attr Query Resp       DevAttrQryRsp 0x8002       *       *
    Dev Get Next Resp         DevGetNextRsp 0x8003       *
    Deregister Dev Resp       DeregDevRsp   0x8004       *       *
    SCN Register Resp         SCNRegRsp     0x8005       *
    SCN Deregister Resp       SCNDeregRsp   0x8006       *
    SCN Event Resp            SCNEventRsp   0x8007       *
    SCN Response              SCNRsp        0x8008       *
    Register DD Resp          RegDDRsp      0x8009       *       *
    Deregister DD Resp        DeregDDRsp    0x800A       *       *
    Register Dev in DD Resp   RegDevDDRsp   0x800B       *       *
    Deregister Dev in DD Resp DeregDevDDRsp 0x800C       *       *
    Entity Stat Inquiry Resp  ESIRsp        0x800D       *
    NOT USED                                0x800E-0x800F
    Request Net Time Resp     RqstTimeRsp   0x8010
    NOT USED                                0x8011-0x8012
    RESERVED                                0x8013-0xFFFF

5.2      iFCP Requirements

    In iFCP, use of iSNS is REQUIRED.  No alternatives exist for
    support of iFCP Naming & Discovery functions.  iSNS is integral to
    the operation of iFCP, in order to allow iFCP gateways to execute
    Fibre Channel S_ID and D_ID address mappings to remote gateways.

5.2.1    Required Attributes for Support of iFCP

Gibbons, Tseng, Monia      Standards Track                          22
iSNS                          March 2001


    The following table displays attributes that are used by iSNS to
    support iFCP.  Attributes indicated in the REQUIRED TO IMPLEMENT
    column MUST be supported by the iSNS server that supports iFCP.
    Attributes indicated in the REQUIRED TO USE column MUST be
    supported by iFCP gateways.

                                                REQUIRED     REQUIRED
    Object                Attribute           to Implement    to Use
    ------                ---------           ------------   --------
    NETWORK ENTITY     Entity Identifier            *           *
                       Entity Type                  *           *
                       Management IP Address
                       ESI Interval                 *           *
                       Timestamp                    *
                       Entity Certificate           *
                       SCN Event Bitmap             *
                       ESI TCP/UDP Port             *           *

    PORTAL             IP Address                   *           *
                       TCP/UDP Port                 *           *
                       Portal Symbolic Name         *

    STORAGE NODE       Node Name                    *           *
                       Node Type                    *           *
                       Alias/Node Symbolic Name     *
                       FC Node IP Address           *
                       FC Node IPA                  *
                       Node Certificate             *

    DISCOVERY DOMAIN   DD_ID                        *           *
                       DD_Symbolic Name             *
                       DD Member (Entity ID)        *
                       DD_Member (IP Address)       *
                       DD Member (WWPN)             *           *
                       DD Member (WWNN)             *

    STORAGE PORT       Port Name (WWPN)             *           *
                       Port_ID                      *           *
                       Port Type                    *           *
                       Port Symbolic Name           *
                       FC Fabric Port Name (FWWN)   *
                       FC Hard Address              *
                       FC Port IP Address           *
                       FC Class of Service          *
                       FC FC-4 Types                *
                       FC FC-4 Descriptors          *
                       FC FC-4 Features             *

5.2.2    Attribute Descriptions for iFCP Gateways and FC devices

    The iSNS attributes used to represent iFCP Storage Systems are
    shown and described in the following figure:

Gibbons, Tseng, Monia      Standards Track                          23
iSNS                          March 2001


    - iFCP NETWORK ENTITY
        |
        - Entity Identifier
        |    By convention this is the DNS name of the
        |    Portal IP-Address(es).  If it is not registered
        |    the iSNS will assign a unique alphanumeric
        |    identifier to it.
        - Entity Type
        |    Indicates this is an iFCP registration
        - Management IP-Address
        |    If it is not registered then in-band management
        |    is assumed.
        - Entity Status Inquiry Interval
        |    0 if no status inquiry is used
        - Timestamp
        |    Last registration update.  Maintained by the iSNS.
        - Entity Certificate
        |    X.509 certificate bound to the Entity (FQDN)
        - SCN Event Bitmap
        |    Indicates current SCN state
        - ESI TCP/UDP Port
        |    Destination port number for ESI messages
        |
        - PORTAL (1 - n per ENTITY)
        |   |
        |   - IP-Address
        |   - TCP/UDP Port
        |   |    The IP-Address and Port combined uniquely
        |   |    define a portal.
        |   - Portal Symbolic Name
        |
        - NODE (1 - m per ENTITY)
           |
           - Node Name (WWNN)
           - Node Type (initiator / target / ...)
           - Alias/Node Symbolic Name
           - FC Node IP-Address
           - FC Node IPA
           - Node Certificate
           |
           - PORT (1 - k per NODE)
              |
              - Port Name (WWPN)
              - Port ID
              - Port Type
              - Port Symbolic Name
              - FC Fabric Port Name (FWWN)
              - FC Hard Address
              - FC Port IP Address
              - FC Class of Service
              - FC FC-4 Types
              - FC FC-4 Descriptor

Gibbons, Tseng, Monia      Standards Track                          24
iSNS                          March 2001

              - FC FC-4 Features

5.2.3    iFCP Attribute Requirements

5.2.3.1  Port_ID

    Port_ID assignments for each STORAGE PORT object within a single
    NETWORK ENTITY SHALL be unique.  For each NETWORK ENTITY (i.e.,
    iFCP gateway), no more than one STORAGE PORT can be assigned a
    given PORT_ID value.

5.2.4    Example iFCP Object Model Diagram

    The iFCP protocol allows native Fibre Channel devices, or Fibre
    Channel fabrics connected to an iFCP gateway, to be directly
    internetworked using IP.

    When supporting iFCP, the iSNS stores the attributes of the Fibre
    Channel devices themselves, attributes of the iFCP gateway, as well
    as Fibre Channel fabric switch attributes that might also be stored
    in an FC name server.

    The following diagram shows a representation of a gateway
    supporting multiple Fibre Channel devices behind it.  The two
    PORTAL objects represent IP interfaces on the iFCP gateway that can
    be used to access the two Fibre Channel devices behind it.  The
    NETWORK ENTITY object represents the iFCP gateway itself, while
    each of the STORAGE NODE objects represents an actual Fibre Channel
    device.  One of the target devices has two ports, each represented
    by a STORAGE PORT object.
























Gibbons, Tseng, Monia      Standards Track                          25
iSNS                          March 2001

    +---------------------------------------------------------------+
    |                         IP Network                            |
    +-------------------+-----------------------+-------------------+
                        |                       |
                        |                       |
    +------------+------+------+---------+------+------+------------+
    |            | PORTAL      |         | PORTAL      |            |
    |            | -IP Addr 1  |         | -IP Addr 2  |            |
    |            | -TCP Port 1 |         | -TCP Port 2 |            |
    |            +-----+ +-----+         +-----+ +-----+            |
    |                  | |                     | |                  |
    |  +---------------+ +---------------------+ +---------------+  |
    |  |              Fibre Channel Loop or Fabric               |  |
    |  +-------+ +-----------------+ +----------------+ +--------+  |
    |          | |                 | |                | |           |
    |  +-+-----+ +-----+-+ +--+----+ +------+---+-----+ +-----+--+  |
    |  | |STORAGE PORT | | |  |STORAGE PORT |   |STORAGE PORT |  |  |
    |  | | -WWPN 1     | | |  | -WWPN 2     |   | -WWPN 3     |  |  |
    |  | | -Port ID 1  | | |  | -Port ID 2  |   | -Port ID 3  |  |  |
    |  | | -FWWN 1     | | |  | -FWWN 2     |   | -FWWN 3     |  |  |
    |  | | -FC COS     | | |  | -FC COS     |   | -FC COS     |  |  |
    |  | +-------------+ | |  +-------------+   +-------------+  |  |
    |  |                 | |                                     |  |
    |  | STORAGE NODE    | |            STORAGE NODE             |  |
    |  |   -WWNN 1       | |              -WWNN 2                |  |
    |  |   -Symbolic Name| |              -Symbolic Name         |  |
    |  |   -FC Node IPA  | |              -FC Node IPA           |  |
    |  |   -Type: target | |              -Type: target          |  |
    |  |                 | |                                     |  |
    |  +-----------------+ +-------------------------------------+  |
    |                                                               |
    |                   NETWORK ENTITY                              |
    |                  -Entity ID (FQDN): "gtwy1.foo.com"           |
    |                  -Type: iFCP                                  |
    |                                                               |
    +---------------------------------------------------------------+

5.2.5    Required Commands and Response Messages for Support of iFCP

    The iSNSP messages and responses displayed in the following tables
    are available to support iFCP gateways.  Messages indicated in the
    REQUIRED TO IMPLEMENT column MUST be supported by the iSNS server
    used by iFCP gateways.  Messages indicated in the REQUIRED TO USE
    column MUST be supported by the iFCP gateways themselves.










Gibbons, Tseng, Monia      Standards Track                          26
iSNS                          March 2001

                                                      REQUIRED TO:
       Message Description    Abbreviation  Func ID  Implement  Use
       -------------------    ------------  -------  ---------  ---
    Register Dev Attr Req     RegDevAttr    0x0001       *       *
    Dev Attr Query Request    DevAttrQry    0x0002       *       *
    Dev Get Next Request      DevGetNext    0x0003       *
    Deregister Dev Request    DeregDev      0x0004       *       *
    SCN Register Request      SCNReg        0x0005       *
    SCN Deregister Request    SCNDereg      0x0006       *
    SCN Event                 SCNEvent      0x0007       *
    State Change Notification SCN           0x0008       *
    Register DD               RegDD         0x0009       *       *
    Deregister DD             DeregDD       0x000A       *       *
    Register Dev in DD        RegDevDD      0x000B       *       *
    Deregister Dev in DD      DeregDevDD    0x000C       *       *
    Entity Status Inquiry     ESI           0x000D       *
    Name Service Heartbeat    Heartbeat     0x000E       *
    Reserved                  Reserved      0x000F
    Request Network Time      RqstTime      0x0010
    Request Domain ID         RqstDmnId     0x0011
    Release Domain ID         RlseDmnId     0x0012
    Get Domain IDs            GetDmnIds     0x0013
    RESERVED                                0x0014-0x8000

    The following are iSNSP response messages in support of iFCP:

                                                      REQUIRED TO:
    Response Message Desc     Abbreviation  Func_ID  Implement  Use
    ---------------------     ------------  -------  ---------  ---
    Register Dev Attr Rsp     RegDevRsp     0x8001       *       *
    Dev Attr Query Resp       DevAttrQryRsp 0x8002       *       *
    Dev Get Next Resp         DevGetNextRsp 0x8003       *
    Deregister Dev Resp       DeregDevRsp   0x8004       *       *
    SCN Register Resp         SCNRegRsp     0x8005       *
    SCN Deregister Resp       SCNDeregRsp   0x8006       *
    SCN Event Resp            SCNEventRsp   0x8007       *
    SCN Response              SCNRsp        0x8008       *
    Register DD Resp          RegDDRsp      0x8009       *       *
    Deregister DD Resp        DeregDDRsp    0x800A       *       *
    Register Dev in DD Resp   RegDevDDRsp   0x800B       *       *
    Deregister Dev in DD Resp DeregDevDDRsp 0x800C       *       *
    Entity Stat Inquiry Resp  ESIRsp        0x800D       *
    NOT USED                                0x800E-0x800F
    Request Net Time Resp     RqstTimeRsp   0x8010
    Request Domain ID Resp    RqstDmnIdRsp  0x8011
    Release Domain ID Resp    RlseDmnIdRsp  0x8012
    Get Domain IDs            GetDmnIds     0x0013
    RESERVED                                0x8014-0xFFFF

5.3      FCIP Requirements

    Use of iSNS in support of FCIP is OPTIONAL.  iSNS MAY be used to
    provide dynamic tunnel endpoint discovery.  iSNS MAY also be used

Gibbons, Tseng, Monia      Standards Track                          27
iSNS                          March 2001

    to allocate DOMAIN_ID addresses, in an FCIP/Fibre Channel fabric
    implementation with multiple Autonomous Regions.

5.3.1    Required Attributes for Support of FCIP

    The following lists attributes used in support of FCIP.  Attributes
    indicated in the REQUIRED TO IMPLEMENT column MUST be supported by
    the iSNS server.  Attributes indicated in the REQUIRED TO USE
    column MUST be supported by an FCIP gateway that elects to use the
    iSNS for dynamic tunnel endpoint discovery.

                                                REQUIRED     REQUIRED
    Object                Attribute           to Implement    to Use
    ------                ---------           ------------   --------
    NETWORK ENTITY     Entity Identifier            *           *
                       Entity Type                  *           *
                       Management IP Address
                       ESI Interval                 *           *
                       Timestamp                    *
                       Entity Certificate           *
                       SCN Event Bitmap             *
                       ESI TCP/UDP Port             *

    PORTAL             IP Address                   *           *
                       TCP/UDP Port                 *           *
                       Portal Symbolic Name         *

5.3.2    Attribute Descriptions for FCIP Gateways

    The iSNS attributes used to represent FCIP gateways are shown and
    described in the following figure:

    - FCIP NETWORK ENTITY
        |
        - Entity Identifier
        |    By convention this is the DNS name of the
        |    Portal IP-Address(es).  If it is not registered
        |    the iSNS will assign a unique alphanumeric
        |    identifier to it.
        - Entity Type
        |    Indicates this is an FCIP registration
        - Mgt IP-Address
        |    If it is not registered then in-band management
        |    is assumed.
        - Entity Status Inquiry Interval
        |    0 if no status inquiry is used
        - Timestamp
        |    Last registration update / status inquiry received
        - Entity Certificate
        |    X.509 certificate bound to the Entity (FQDN)
        - SCN Event Bitmap
        |    Indicates current SCN state
        - ESI TCP/UDP Port

Gibbons, Tseng, Monia      Standards Track                          28
iSNS                          March 2001

        |    Destination port number for ESI messages
        - PORTAL (1 - n per ENTITY)
            |
            - Index
            - IP-Address
            - TCP/UDP Port
            |    The IP-Addr and Port combined uniquely
            |    define a portal.
            - Portal Symbolic Name

5.3.3     Example FCIP Object Model Diagram

    The following diagram depicts FCIP gateways stored in the iSNS.  In
    FCIP, the iSNS is only used for tunnel endpoint discovery.
    Therefore, no information about the storage end nodes are
    registered in the iSNS, and the STORAGE PORT and STORAGE NODE
    objects are not applicable.

    +----------------------------------------------------------------+
    |                         IP Network                             |
    +-------------+-------------------------+----------------+-------+
                  |                         |                |
                  |                         |                |
    +-----+-------+------+----+    +-+------+------+--+------+-----+-+
    |     | PORTAL       |    |    | | PORTAL      |  | PORTAL     | |
    |     | -IP Addr 1   |    |    | | -IP Addr 2  |  | -IP Addr 3 | |
    |     | -TCP Port 1  |    |    | | -TCP Port 2 |  | -TCP Port 3| |
    |     +--------------+    |    | +-------------+  +------------+ |
    |                         |    |                                 |
    |    NETWORK ENTITY       |    |      NETWORK ENTITY             |
    |  -Entity ID (FQDN):     |    |     -Entity ID (FQDN):          |
    |   "Tunnelgtwy1.foo.com" |    |      "Tunnelgtwy2.bar.com"      |
    |  -Type: FCIP            |    |     -Type: FCIP                 |
    +-------------------------+    +---------------------------------+

5.3.4    Required Commands and Response Messages for Support of FCIP

    The following tables display iSNS messages and responses that are
    used to support FCIP.  Messages indicated in the REQUIRED TO
    IMPLEMENT column MUST be supported by the iSNS server used to
    support FCIP.  Messages indicated in the REQUIRED TO USE column
    MUST be supported by the FCIP gateway that elects to use the iSNS.












Gibbons, Tseng, Monia      Standards Track                          29
iSNS                          March 2001

                                                      REQUIRED TO:
       Message Description    Abbreviation  Func ID  Implement  Use
       -------------------    ------------  -------  ---------  ---
    Register Dev Attr Req     RegDevAttr    0x0001       *       *
    Dev Attr Query Request    DevAttrQry    0x0002       *       *
    Dev Get Next Request      DevGetNext    0x0003       *
    Deregister Dev Request    DeregDev      0x0004       *       *
    SCN Register Request      SCNReg        0x0005       *
    SCN Deregister Request    SCNDereg      0x0006       *
    SCN Event                 SCNEvent      0x0007       *
    State Change Notification SCN           0x0008       *
    Register DD               RegDD         0x0009       *       *
    Deregister DD             DeregDD       0x000A       *       *
    Register Dev in DD        RegDevDD      0x000B       *       *
    Deregister Dev in DD      DeregDevDD    0x000C       *       *
    Entity Status Inquiry     ESI           0x000D       *
    Name Service Heartbeat    Heartbeat     0x000E       *
    Reserved                  Reserved      0x000F
    Request Network Time      RqstTime      0x0010
    Request Domain ID         RqstDmnId     0x0011
    Release Domain ID         RlseDmnId     0x0012
    Get Domain IDs            GetDmnIds     0x0013
    RESERVED                                0x0014-0x8000

    The following are iSNSP response messages in support of FCIP:

                                                      REQUIRED TO:
    Response Message Desc     Abbreviation  Func_ID  Implement  Use
    ---------------------     ------------  -------  ---------  ---
    Register Dev Attr Rsp     RegDevRsp     0x8001       *       *
    Dev Attr Query Resp       DevAttrQryRsp 0x8002       *       *
    Dev Get Next Resp         DevGetNextRsp 0x8003       *
    Deregister Dev Resp       DeregDevRsp   0x8004       *       *
    SCN Register Resp         SCNRegRsp     0x8005       *
    SCN Deregister Resp       SCNDeregRsp   0x8006       *
    SCN Event Resp            SCNEventRsp   0x8007       *
    SCN Response              SCNRsp        0x8008       *
    Register DD Resp          RegDDRsp      0x8009       *       *
    Deregister DD Resp        DeregDDRsp    0x800A       *       *
    Register Dev in DD Resp   RegDevDDRsp   0x800B       *       *
    Deregister Dev in DD Resp DeregDevDDRsp 0x800C       *       *
    Entity Stat Inquiry Resp  ESIRsp        0x800D       *
    NOT USED                                0x800E-0x800F
    Request Net Time Resp     RqstTimeRsp   0x8010
    Request Domain ID Resp    RqstDmnIdRsp  0x8011
    Release Domain ID Resp    RlseDmnIdRsp  0x8012
    Get Domain IDs Resp       GetDmnIdsRsp  0x8013
    RESERVED                                0x8014-0xFFFF

5.4      Attribute Descriptions for Discovery Domain Registration




Gibbons, Tseng, Monia      Standards Track                          30
iSNS                          March 2001

    Discovery Domains are a required iSNS attribute for all protocols.
    The iSNS attributes for Discovery Domain registration are shown in
    the following figure:

    DISCOVERY DOMAIN
       |
       - DD_ID
       - DD_Symbolic Name

    DD_MEMBER
       |
       - DD_ID
       - Entity Identifier, WWUI, WWNN, WWPN, IP-Address or FWWN

    Members of a Discovery Domain can be defined by registering one of
    the following storage entity attributes in a Discovery Domain:

         - Entity Identifier: this places all contained iSCSI or
                              iFCP storage nodes, or FCIP gateways,
                              in the Discovery Domain
         - WWUI             : this places the individual iSCSI
                              storage node in the Discovery Domain
         - WWNN             : this places all associated iFCP
                              ports in the Discovery Domain
         - WWPN             : this places the associated iFCP
                              port in the Discovery Domain
         - FWWN             : this places all iFCP ports
                              attached to the Fabric Port in
                              the Discovery Domain
         - IP-Address       : this places all associated iSCSI storage
                              nodes or FCIP storage entities in the
                              Discovery Domain

    Discovery Domains are logical groupings of initiators and targets
    that are used to limit the login process to the appropriate subset
    of devices registered in the iSNS.  Discovery Domains are described
    in Section 3.1.2.

6.       iSNS Message Protocol

    The iSNSP message format is similar to the format of other common
    protocols such as DHCP, DNS and BOOTP.  An iSNSP message may be
    sent in one or more iSNS Protocol Data Units (PDU). The following
    describes the format of the iSNSP PDU:










Gibbons, Tseng, Monia      Standards Track                          31
iSNS                          March 2001

    Byte   MSb                                        LSb
    Offset 31                                           0
           +---------------------+----------------------+
         0 |   iSNSP VERSION     |    FUNCTION ID       | 4 Bytes
           +---------------------+----------------------+
         4 |     PDU LENGTH      |       FLAGS          | 4 Bytes
           +---------------------+----------------------+
         8 |   TRANSACTION ID    |    SEQUENCE ID       | 4 Bytes
           +---------------------+----------------------+
        12 |                                            |
           |                PDU PAYLOAD                 | N Bytes
           |                    ...                     |
           +--------------------------------------------+
    12 + N |    AUTHENTICATION BLOCK (if present)       | L Bytes
           +--------------------------------------------+
                      Total Length = 12 + N

6.1      iSNS PDU Header

    The iSNSP header contains the iSNSP VERSION, FUNCTION ID, PDU
    LENGTH, FLAGS, TRANSACTIONID, and SEQUENCE ID fields as defined
    below:

    iSNSP VERSION - Currently 0x0001

    FUNCTION ID defines the type of iSNS message.  It indicates the
    function the message is supporting.  See section 5 under the
    appropriate protocol (i.e., iSCSI, iFCP, and/or FCIP) for a mapping
    of the FUNCTION_ID value to the iSNSP Command or Response message.
    All PDU's comprising an iSNSP message must have the same
    FUNCTION_IDand TRANSACTION ID value.

    iSNS PDU LENGTH - Specifies the length of the PDU PAYLOAD field in
    bytes.The payload contains the data/attribute values for the
    operation.

    FLAGS - Indicates additional information about the message and the
    type of iSNS entity that generated the message.  The following
    table displays the valid flags:

    Bit Field            Enabled Means:
    ---------            -------------
      0-9                RESERVED
       10                First PDU of the iSNS message
       11                Last PDU of the iSNS message
       12                Update Flag (used only for RegDevAttr)
       13                Authentication Block Present
       14                Sender is the iSNS server
       15                Sender is the iSNS client

    TRANSACTION ID - Is set to a unique random value for each request
    message.  Replies MUST use the same TRANSACTION ID value as the


Gibbons, Tseng, Monia      Standards Track                          32
iSNS                          March 2001

    associated iSNS request message.  If a message is retransmitted,
    the same TRANSACTION ID value MUST be used.

    SEQUENCE ID - Is set to a unique value for each PDU within a single
    transaction.  Each SEQUENCE_ID value in each PDU SHALL be numbered
    sequentially in the order that the PDU's are transmitted.  If a
    message is retransmitted, then the same SEQUENCE_ID value MUST be
    used for all PDU's in the message.

6.2      iSNS Message Segmentation and Reassembly

    iSNS messages may be carried in one or more iSNS PDU's.  If only
    one iSNS PDU is used to carry the iSNS message, then bit 10 (First
    PDU) and bit 11 in the FLAGS field (Last PDU) SHALL both be
    enabled.  If multiple PDUs are used to carry the iSNS message, then
    bit 10 SHALL be enabled in the first PDU of the message, and bit 11
    SHALL be enabled in the last PDU.

    All PDU's comprising the same iSNSP message SHALL have the same
    FUNCTION_ID and TRANSACTION_ID values.  Each PDU comprising an
    iSNSP message SHALL have a unique SEQUENCE_ID value.  The recipient
    of the iSNSP message SHALL NOT process the message until it
    receives

    The authentication operation described in section 6.4 SHALL be
    performed on a per-PDU basis.

6.3      iSNS Message Payload

    The MESSAGE PAYLOAD is variable length and contains attributes used
    for registration and query operations.  The attribute data items
    use a format similar to other protocols, such as DHCP (RFC 2131)
    options.  Each iSNS attribute is specified in the iSNSP message
    payload using Tag-Length-Value (TLV) data format, as shown below:

    Byte   MSb                                        LSb
    Offset 31                                           0
           +--------------------------------------------+
         0 |               Attribute Tag                | 4 Bytes
           +--------------------------------------------+
         4 |            Attribute Length (N)            | 4 Bytes
           +--------------------------------------------+
         8 |                                            |
           |              Attribute Value               | N Bytes
           |                                            |
           +--------------------------------------------+
                       Total Length = 8 + N

    Attribute Tag - a 4-byte tag field that identifies the attribute as
    defined in section 5.5.  This field contains the ID of the
    indicated attribute.



Gibbons, Tseng, Monia      Standards Track                          33
iSNS                          March 2001

    Attribute Length - a 4-byte field that indicates the length, in
    bytes, of the attribute value to follow.

    Attribute Value - a variable-length field containing the attribute
    value.

    The above format is used to identify each attribute in the iSNS
    message payload.  Each iSNSP request message contains several
    attributes in the above format to identify the requesting iSNS
    client and register or query for attribute values in the iSNS
    server.

    For iSNS response messages sent by the iSNS server to the client, a
    4-byte ERROR CODE field is included as the first field in the iSNSP
    PAYLOAD.  This field contains 0x00000000 (NO ERROR) if the original
    iSNSP request message was processed normally by the iSNS server.

        Error Code       Error Description
        ----------       -----------------
           0             No Error
           1             Unknown Error
           2             Message Format Error
           3             Invalid Registration
           4             Invalid Registration Update
           4             Invalid Query
           5             Authentication Unknown
           6             Authentication Absent
           7             Authentication Failed
           8             No Such Entry
           9             Version Not Supported
          10             Internal Bus Error
          11             Busy Now
          12             Option Not Understood
          13             Invalid Update
          14             Message Not Supported
          15             SCN Event Rejected
          16             SCN Registration Rejected
          17             Entity Status Inquiry (ESI) Not Available
          18             DOMAIN_ID not available

    For iSNS State Change Notification message and Request Network Time
    Response messages, a 4-byte TIMESTAMP field is included. The
    TIMESTAMP is a 4-byte unsigned, fixed-point integer giving the
    number of seconds since 00:00:00 GMT on January 1, 1970.

6.4      Message Authentication

    iSNSP provides an optional PDU authentication capability. Network
    interactions using iSNSP occur in short transactions, and are
    generally not session based.  The iSNS client connects to the iSNS
    server only when information needs to be registered or queried.



Gibbons, Tseng, Monia      Standards Track                          34
iSNS                          March 2001

    Public Key Encryption MAY be used for message authentication.  If a
    public key infrastructure is not available, a shared secret
    algorithm MAY alternatively be used.  A shared secret mechanism may
    leverage a Kerberos server, or may involve manual distribution of a
    private key to the iSNS server and each iSNS client.

    If a PKI is available with an X.509 certificate authority, then
    public key authentication of clients is possible.  The
    authentication block leverages the DSA with SHA-1 algorithm, which
    can easily integrate into a public key infrastructure.

    The SNSP optional authentication block is a digital signature for
    the iSNSP PDU.  The digital signature is calculated on a per-PDU
    basis.  The authentication block contains the following
    information:

    1.  A time stamp, to prevent replay attacks
    2.  A structured authenticator containing a signature calculated
        over the time stamp and the message being secured
    3.  An indicator of the cryptographic algorithm that was used to
        calculate the signature.
    4.  An indicator of the keying material and algorithm parameters,
        used to calculate the signature.

    The authentication block is described in the following figure:

       Byte   MSb                              LSb
       Offset 7    6    5    4    3    2    1    0
              +----------------------------------+
          0   |   AUTHENTICATION BLOCK LENGTH    |     2 Bytes
              +----------------------------------+
          2   |    BLOCK STRUCTURE DESCRIPTOR    |     2 Bytes
              +----------------------------------+
          4   |           TIMESTAMP              |     4 Bytes
              +----------------------------------+
          8   |       SPI STRING LENGTH          |     1 Byte
              +----------------------------------+
          9   |           SPI STRING             |     N Bytes
              +----------------------------------+
      9 + N   |     STRUCTURED AUTHENTICATOR     |     M Bytes
              +----------------------------------+
                 Total Length = 9 + N + M

    AUTHENTICATION BLOCK LENGTH - Defines the length of the
    authentication block, beginning with the BSD field and running
    through the last byte of the STRUCTURED AUTHENTICATOR.

    BLOCK STRUCTURE DESCRIPTOR (BSD) - Defines the structure and
    algorithm to use for the STRUCTURED AUTHENTICATOR.  Currently, the
    only defined value for BSD is 0x0002, which represents DSA with
    SHA-1. Details on DSA can be found in [DSS].  BSD values from
    0x0000 to 0x7FFF are assigned by IANA, while 0x8000 to 0x8FFF are
    for private use. The BSD value 0x0002 is compatible with the X.509

Gibbons, Tseng, Monia      Standards Track                          35
iSNS                          March 2001

    PKI specification, allowing easy integration of the STRUCTURED
    AUTHENTICATOR format with an existing PKI infrastructure.

    TIMESTAMP - This is a 4-byte unsigned, fixed-point integer giving
    the number of seconds since 00:00:00 GMT on January 1, 1970.

    SPI STRING LENGTH - The length of the SPI STRING field.

    SPI STRING (Security Parameters Index) - Index to the key and
    algorithm used by the message recipient to decode the STRUCTURED
    AUTHENTICATOR field.

    STRUCTURED AUTHENTICATOR - Contains the digital signature.  For the
    default BSD value of 0x0002, this field contains the binary ASN.1
    encoding of output values from the DSA with SHA-1 signature
    calculation.

6.5      iSNS Client Registration Attributes

    When an iSNS client registers with the iSNS server, it provides
    attribute values to describe the entity characteristics and
    capabilities.  The attributes are also returned by the iSNS server
    in response to queries.

    The following table lists all iSNSP message attributes for device
    registration and queries:




























Gibbons, Tseng, Monia      Standards Track                          36
iSNS                          March 2001

    Attribute Name    Length(bytes) Tag  Reg Key   Query Keys
    --------------    ------------- ---  -------   ----------
    Delimiter                 0      0     N/A     N/A
    Entity Identifier      0-255     1     N/A     1,3,17,32,34,64
    Entity Type               4      2      1      1,3,17,32,34,64
    Management IP Address    16      3      1      1,3,17,32,34,64
    ESI Interval              4      4      1      1,3,17,32,34,64
    ESI TCP/UDP Port          4      5      1      32,1&33,34,64
    Timestamp                 8      6      1      1,3,17,32,34,64
    Entity Event Bitmap       4      7      1      32,1&33,34,64
    Entity Certificate   variable    8      1      32,1&33,34,64
    Portal IP Address        16     16      1      1,32,64
    Portal TCP/UDP Port       4     17      1      1,32,64
    Portal Symbolic Name   0-255    18    16&17      1,32,64
    WWUI                   4-255    32      1      1,32,1&33
    Node Name (WWNN)          8     33      1      1,34,64
    Node Type                 4     34   32 or 33  32,1&33,34,64
    Alias/Symbolic Node Name 0-255  35   32 or 33  32,1&33,34,64
    FC Node IP Address       16     36     33      34,64
    FC Node IPA               8     37     33      34,64
    Node Certificate   variable     38   32 or 33  32,1&33,34,64
    Port Name (WWPN)          8     64     33      1,34,66,68,71,72
    Port ID                   4     65     64      64,17,65
    Port Type                 4     66     64      64,17&65
    Port Symbolic Name     0-255    67     64      64,17&65
    Fabric Port Name (FWWN)   8     68     64      64,17&65
    FC Hard Address           4     69     64      64,17&65
    FC Port IP Address       16     70     64      64,17&65
    FC Class of Service       4     71     64      64,17&65
    FC FC-4 Types            32     72     64      64,17&65
    FC FC-4 Descriptor     0-255    73     64      64,17&65
    FC FC-4 Features         128    74     64      64,17&65
    User-Specific-Entity  0-65536 128-255   1      --user defined--
    User-Specific-Portal  0-65536 256-383 16&17    --user defined--
    User-Spec-iSCSI-Node  0-65536 384-511  32      --user defined--
    User-Spec-iFCP-Node   0-65536 512-639  33      --user defined--
    User-Spec-iFCP-Port   0-65536 640-767  64      --user defined--
    RESERVED                      768-895
    Vendor-Specific-DD    0-65536 896-1023 101    --vendor defined--
    Vendor-Specific-DD    0-65536 896-1023 101    --vendor defined--
    Vendor-Specific       0-65536 1024-2047       --vendor defined--
    RESERVED                      2048-65535

    The following is a description of the columns used in the above
    table:

    Size - indicates the attribute length.  Variable-length identifiers
    are NULL character terminated, which is included in the length.

    Tag - the value used to identify the attribute.  All undefined tag
    values are reserved.



Gibbons, Tseng, Monia      Standards Track                          37
iSNS                          March 2001

    Reg Key - indicates the attribute ID(s) that is (are) the unique
    key used for attribute registration.  This attribute is also known
    as the primary key for the iSNS directory database entry.

    Query Keys - indicates the attribute IDs that can be used to query
    the iSNS directory database.

    iSNS client attributes are defined below.

6.5.1    Entity Identifier-Keyed Attributes

    The following attributes are registered in the iSNS using the
    Entity Identifier attribute as the key.

6.5.1.1  Entity Identifier (DNS Name)

    The Entity Identifier is a variable length identifier that uniquely
    identifies an entity registered in the iSNS.  The attribute length
    varies from 1 to 255 bytes, and is a unique value within the iSNS.
    By convention the Entity Identifier is the DNS Name used by the
    entity.  The Entity Identifier along with the Alias can be used to
    uniquely identify and address any associated STORAGE NODE.

    If the iSNS client does not provide an Entity Identifier during
    registration, the iSNS shall generate one that is unique within the
    iSNS.

6.5.1.2  Entity Type

    Entity Type is a 2-byte field that indicates the type of network
    entity that is being registered and is provided by the iSNS client.
    The valid types are defined as below.

        Type Value      Entity Type
        ---------_      -----------
           1            iSCSI
           2            iFCP
           3            FCIP
        All Others      RESERVED


6.5.1.3  Management IP Address

    This optional field is provided by the iSNS client.  It contains
    the IP Address used to manage the entity.  The Management IP
    Address is a 16-byte field that may contain either a 32-bit IPv4 or
    128-bit IPv6 address.  When this field contains an IPv4 value, the
    most significant 12 bytes are set to 0x00.  If the network entity
    is capable of being managed and this field is not set, then in-band
    management is assumed.

6.5.1.4  Entity Status Inquiry Interval


Gibbons, Tseng, Monia      Standards Track                          38
iSNS                          March 2001

    This optional field is provided by the iSNS client.  It indicates
    the minimum time, in seconds, between Entity Status Inquiry (ESI)
    messages sent from the iSNS to a client.  ESI messages can be used
    to verify that a client registration continues to be valid.  To
    request monitoring by the iSNS, an iSNS client registers a non-zero
    value for this attribute using a RegDevAttr message.  If the value
    is 0 then entity status messages SHALL not be sent.

    If the iSNS is unable to issue ESI messages, it SHALL reject the
    ESI request by returning a "ESI Not Available" error code.  The
    rejection might occur in situations where the resulting frequency
    of ESI messages being issued to clients would pass an
    implementation-specific threshold.  If the registration is part of
    a multi-attribute RegDevAttr message and the registration is
    rejected with _ESI Not Available_, then the multi-attribute
    registration SHALL be resent with a ESI value of 0.

6.5.1.5  ESI TCP/UDP Port

    This is the TCP or UDP Port Number of the iSNS client entity uses
    to receive ESI messages from the iSNS server and transmit ESI
    responses.

6.5.1.6  Entity Registration Timestamp

    Indicates the time the client registration occurred, or the most
    recent response from the iSNS client to the Client Status Inquiry
    message, whichever is later.  It is the time, in milliseconds,
    after the standard base time of 00:00:00 GMT on January 1, 1970,
    that the update occurred.  The timestamp can be used to ensure the
    SNS directory does not contain entries for non-existent devices.
    An implementation may decide to remove stale registrations of iSNS
    clients that exceed an implementation-specific threshhold age
    limit.

6.5.1.7  Entity Event Bitmap

    This optional field is provided by the iSNS client.  It indicates
    the events that the client is interested in.  These events can
    cause SCN to be generated.

    Bit Field          Flag Description
    ---------          ----------------
        0              CHANGE IN DD MEMBERSHIP
        1              CHANGE IN NETWORK
        2              CHANGE IN DEVICE REGISTRATION PARAMETERS
        3              DEVICE ADDED
        4              DEVICE REMOVED
        5              CLIENT STATUS UPDATE REQUESTED (for CSI message)

6.5.1.8  Entity Certificate



Gibbons, Tseng, Monia      Standards Track                          39
iSNS                          March 2001

    This optional attribute contains an X.509 certificate that is bound
    to the NETWORK ENTITY of the iSNS client.  For example, in FCIP
    this X.509 certificate may have the Fully Qualified Domain Name of
    the FCIP gateway device.  This certificate is uploaded and
    registered to the iSNS by clients wishing to allow other clients to
    authenticate themselves and access the services offered by that
    NETWORK ENTITY.  This certificate MAY also be used to set up the
    TLS association between the iSNS client and server, as well as to
    key the authentication block in the iSNSP.

6.5.2    Portal-Keyed Attributes

    The following attributes are registered in the iSNS using the
    combined Portal IP-Address and Portal TCP/UDP Port as the key.
    Each set of Portal-Keyed attributes is also associated with one
    Entity Identifier object key.

    Although the combined Portal IP-Address and Portal TCP/UDP Port key
    is associated with one Entity Identifier, it is unique across the
    entire iSNS.

6.5.2.1  Portal IP Address

    The IP address of the PORTAL through which a STORAGE NODE can
    transmit and receive storage data.  This required field is provided
    by the iSNS client. When an IPv4 value is contained in this field,
    the most significant 12 bytes are set to 0x00.  The Portal IP
    Address along with the Portal TCP/UDP Port number uniquely
    identifies a Network Entity Portal.

6.5.2.2 Portal TCP/UDP Port

    The TCP/UDP port of the PORTAL through which a STORAGE NODE can
    transmit and receive storage data.  This required field is provided
    by the iSNS client.  If the value is 0, then the port number is the
    implied canonical port number of the protocol being used.  The
    Portal IP Address along with the Portal TCP/UDP Port number
    uniquely identifies a Network Entity Portal.

6.5.2.3 Portal Symbolic Name

    This is an optional, variable-length text-based value from 0 to 255
    bytes.  The text field contains user-readable ASCII text, and is
    terminated with at least one NULL character. The Portal Symbolic
    Name is a user-readable description of the Portal entry in the
    iSNS.
6.5.3    Node-Keyed Attributes

    The following attributes are registered in the iSNS using the WWUI
    (for iSCSI) or WWNN (for iFCP) attribute as the key.  Each set of
    Node-Keyed attributes is also associated with one Entity Identifier
    object key.


Gibbons, Tseng, Monia      Standards Track                          40
iSNS                          March 2001

    Although the WWUI (for iSCSI) or WWNN (for iFCP) key is associated
    with one Entity Identifier, it is unique across the entire iSNS.

6.5.3.1  World Wide Unique Identifier (WWUI)

    This identifier uniquely defines an iSCSI STORAGE NODE.  This field
    is required for iSCSI STORAGE NODEs, and is provided by the iSNS
    client.

6.5.3.2  Alias/Symbolic Node Name

    This is an optional, variable-length text-based value from 0 to 255
    bytes.  The text field contains user-readable ASCII text, and is
    terminated with at least one NULL character. The Alias is a user-
    readable description of the node entry in the iSNS.  The Node
    Symbolic Name is available for use by both Fibre Channel and iSCSI
    clients.

6.4.3.3  Node Name (WWNN)

    Node Name is a 64-bit identifier that uniquely identifies the iFCP
    device node in the network, and is provided by a Fibre Channel-
    based iSNS client entity. This globally unique identifier is used
    during the device registration process, and uses a value conforming
    to IEEE Naming Assignment Authority (NAA) type 1, 2, 5, or 6.  This
    format is found in ANSI/IEEE Std 802-1990 [802-1990].

6.5.3.4  Node Type

    This 16-bit field is a bitmap indicating the type of STORAGE NODE.
    The fields are defined as below.  An enabled bit indicates the node
    has the corresponding characteristics.

        Bit Field       Node Type
        ---------       ---------
           0 (Lsb)      Target
           1            Initiator
        All Others      RESERVED

    This field will be consistent with the FC-4 Feature bits described
    in [FC-GS-3] if the node represents a Fibre Channel device.  The
    default value for this field is 0x0000, which is "unknown".

6.5.3.5  FC Node IP Address

    This optional IP address is associated with the device node in the
    network.  This field is included for compatibility with Fibre
    Channel.  When an IPv4 value is contained in this field, the most
    significant 12 bytes are set to 0x00.  This value is provided by
    the iSNS client.

6.5.3.5  FC Node IPA


Gibbons, Tseng, Monia      Standards Track                          41
iSNS                          March 2001

    This optional 8 byte Fibre Channel Initial Process Associator (IPA)
    is associated with the device node in the network.  This field is
    included for compatibility with Fibre Channel, and is provided by a
    Fibre Channel-based iSNS client entity.  The initial process
    associator can be used for communication between Fibre Channel
    devices.

6.5.3.6  Node Certificate

    This optional attribute contains an X.509 certificate that is bound
    to the STORAGE NODE of the iSNS client.  For example, in iSCSI this
    X.509 certificate may have the WWUI of the target device.  This
    certificate is uploaded and registered to the iSNS by clients
    wishing to allow other clients to authenticate themselves and
    access the STORAGE NODE.  This certificate SHOULD NOT be used to
    set up the authenticating SA supporting the iSNSP authentication
    block.

6.5.4    Storage Port-Keyed Attributes

    The following attributes are registered in the iSNS using the Port
    Name (WWPN) attribute as the key.  Each set of Port-Keyed
    attributes is also associated with one Node-Keyed object.

    Although the Port Name (WWPN) key is associated with one Node-Keyed
    object, it is unique across the entire iSNS.

6.5.4.1  Port Name (WWPN)

    This 64-bit identifier uniquely defines the iFCP device port, and
    is provided by a Fibre Channel-based iSNS client entity. This
    globally unique identifier is used during the device registration
    process, and uses a value conforming to IEEE Naming Assignment
    Authority (NAA) type 1, 2, 5, or 6.  This format is found in
    ANSI/IEEE Std 802-1990 [802-1990].

6.5.4.2  Port ID

    Along with the IP Address, this field uniquely identifies a native
    Fibre Channel device port in the network, and maps one-to-one to a
    specific Port Name (WWPN) entry.  The Port ID is used for iFCP
    based storage devices.

6.5.4.3  Port Type

    Indicates the type of iFCP device port.  This is provided by the
    iSNS client entity.  Encoded values for this field are listed in
    the following table:






Gibbons, Tseng, Monia      Standards Track                          42
iSNS                          March 2001

    Type              Description
    ----              -----------
    0x0000           Unidentified/Null Entry
    0x0001           Fibre Channel N_Port
    0x0002           Fibre Channel NL_Port
    0x0003           Fibre Channel F/NL_Port
    0x0004-0080      RESERVED
    0x0081           Fibre Channel F_Port
    0x0082           Fibre Channel FL_Port
    0x0083           RESERVED
    0x0084           Fibre Channel E_Port
    0x0085-00FF      RESERVED
    0xFF11           mFCP Port
    0xFF12           iFCP Port
    0xFF13-FFFF      RESERVED

6.5.4.4  Port Symbolic Name

    A variable-length text-based description of up to 255 bytes, that
    is associated with the iSNS-registered device port in the network.
    The text field contains user-readable ASCII text and is terminated
    with at least one NULL character.  This optional field is normally
    provided by the iSNS client during registration.  However, network
    management application can update this field as required.

6.5.4.5  Fabric Port Name (FWWN)

    This 64-bit identifier uniquely defines the fabric port.  If the
    iSNS client is attached to a Fibre Channel fabric port with a
    registered Port Name, then that fabric Port Name shall be indicated
    in this field.  This field is included in the iSNSP for
    compatibility with Fibre Channel fabric devices and topologies.

    The Fabric Port may itself be registered as a port in the iSNS.  In
    that case, the Fabric Port Name (FWWN) attribute of fabric attached
    ports will match the Port Name (WWPN) of the Fabric Port
    registration.

6.5.4.6  FC Hard Address

    This optional field is the requested hard address 24-bit NL Port
    Identifier, included in the iSNSP for compatibility with Fibre
    Channel Arbitrated Loop devices and topologies.

6.5.4.7  FC Port IP Address

    The IP address associated with the device port in the network.
    This optional field is included for compatibility with Fibre
    Channel.  When an IPv4 value is contained in this field, the most
    significant 12 bytes are set to 0x00.  This value is provided by
    the iSNS client.

6.5.4.8  FC Class of Service (COS)

Gibbons, Tseng, Monia      Standards Track                          43
iSNS                          March 2001


    This 32-bit bit-map field indicates the FC COS types that are
    supported by the registered port.  This field is provided by the
    Fibre Channel-based iSNS client.  The COS values are equivalent to
    Fibre Channel COS values.  The valid COS types, and associated bit-
    map, are listed in the following table:

    Class of Service   Description                         Bit-Map
    ----------------   -----------                         ---------
          2            Delivery Confirmation Provided      bit 2 set
          3            Delivery Confirmation Not Provided  bit 3 set
                       RESERVED                            other

6.5.4.9  FC FC-4 Types

    This 32-byte field indicates the FC-4 protocol types supported by
    the associated port.  This required field for iFCP ports is
    provided by the iSNS client.  This field can be used to support
    Fibre Channel devices.

6.5.4.10 FC FC-4 Descriptor

    A variable-length text-based description of up to 255 bytes, that
    is associated with the iSNS-registered device port in the network.
    This optional field for iFCP ports is provided by the iSNS client.
    This field can be used to support Fibre Channel devices.

6.5.4.11 FC FC-4 Features

    This is a 128-byte array, 4 bits per type, for the FC-4 protocol
    types supported by the associated port.  This optional field for
    iFCP ports is provided by the iSNS client.  This field can be used
    to support Fibre Channel devices.

6.5.5    Domain ID

    This is a 4-byte field, with a valid value range of 1 _ 239.  This
    optional field is for iFCP Transparent Mode.  When in iFCP
    Transparent Mode, the Request Domain ID message SHALL be used by an
    iFCP gateway to reserve an available Domain ID for use.  When a
    Domain ID is no longer required, it SHALL be released by the iFCP
    gateway using the Release Domain ID message.  The iSNS MAY use the
    Client Status Inquiry message to determine if an iFCP gateway is
    still present on the network.

6.6      Discovery Domain Registration Attributes

    iSNS clients can be placed into areas of control belonging to one
    or more Discovery Domains.  When an iSNS client or Network
    Management System registers a DD, it provides attribute values to
    describe the DD characteristics and capabilities.  The following
    table lists the iSNSP DD attributes:


Gibbons, Tseng, Monia      Standards Track                          44
iSNS                          March 2001

    Attribute Name     Size(bytes)    ID      Reg Key     Query Key
    --------------     -----------    --      -------     ---------
    DD_ID                   4        101                     101
    DD_Symbolic Name       1-64      102        101          101
    DD Member (Ent Ident)  0-255     103        101          101
    DD_Member (WWUI)       4-255     104        101          101
    DD_Member (WWPN)        8        105        101          101
    DD_Member (WWNN)        8        106        101          101
    DD_Member (FWWN)        8        107        101          101
    DD_Member (IP Addr)    16        108        101          101
    Vendor-Specific      0-65535   640-767      101          101

    DD_ID - a unique identifier used in the iSNS directory database to
    indicate the DD.  This value is used as the key for any DD
    attribute query. If the iSNS client does not provide a DD_ID in a
    DD registration request message, the iSNS shall generate a DD_ID
    value that is unique within the iSNS database for that new DD
    (i.e., the iSNS client will be registered in a new DD).  The DD ID
    value of 0 is reserved.

    DD_Symbolic Name - an ASCII, variable-length string that is  NULL-
    terminated.  This is an optional user-readable field used to assist
    a network administrator in tracking the DD function.  When
    registered by a client, the DD symbolic name SHALL be verified
    unique by the iSNS.  If the DD symbolic name is not unique, then
    the DD registration SHALL be rejected with an _Invalid
    Registration_ error code.  The invalid attribute(s), in this case
    the DD symbolic name, SHALL be included in the response.

    DD_Member (WWUI) - the Entity Identifier of an iSNS client that is
    a member of the DD.  The DD may have a list of 0 to n members.
    Membership is represented by the Entity Identifier of the iSNS
    client being listed.

    DD_Member (WWUI) - the World Wide Unique Identifier of an iSNS
    client that is a member of the DD.  The DD may have a list of 0 to
    n members.  Membership is represented by the WWUI of the iSNS
    client being listed.

    DD_Member (WWPN) - the Port Name of an iSNS client that is a member
    of the DD.  The DD may have a list of 0 to n members.  Membership
    is represented by the Port Name (WWPN) of the iSNS client being
    listed.

    DD_Member (WWNN) - the Node Name of an iSNS client that is a member
    of the DD.  The DD may have a list of 0 to n members.  Membership
    is represented by the Node Name (WWNN) of the iSNS client being
    listed.

    DD_Member (FWWN) - the Fabric World Wide Name of an iSNS client
    that is a member of the DD.  The DD may have a list of 0 to n
    members.  Membership is represented by the FWWN of the iSNS client
    being listed.

Gibbons, Tseng, Monia      Standards Track                          45
iSNS                          March 2001


    DD_Member (IP Addr) - the IP address of an iSNS client that is a
    member of the DD.  The DD may have a list of 0 to n members.  This
    IP address indicates that all storage entities using this IP
    address are members of the DD.

6.7      Vendor-Specific and User-Specific Attributes

    Specific iSNS implementations MAY define vendor-specific attributes
    for private use.  The tag values reserved for vendor-specific and
    user-specific use are defined in section 6.5 and 6.6.  To avoid
    misinterpreting proprietary attributes, it is RECOMMENDED that the
    vendor's own OUI (Organizationally Unique Identifier) be placed in
    the upper three bytes of the attribute field itself.  If the OUI is
    not used, then some other unique marker recognizable by the vendor
    SHOULD be used.  The OUI is defined in IEEE Std 802-1990, and is
    the same constant used to generate 48 bit Universal LAN MAC
    addresses.  A vendor's own iSNS implementation will then be able to
    recognize the OUI in the vendor-specific or user-specific attribute
    field, and be able to execute vendor-specific handling of the
    attribute.

6.8      State Change Notification and Client Status Inquiry Flags

    A State Change Notification (SCN) allows an iSNS client to be
    notified of changes within a DD, network, or existing device
    attribute values in the iSNS directory database.  An iSNS client
    registers for SCN's using the SCN Registration Request command.
    The SCN message is sent to the iSNS client by the iSNS server.

    The types of changes for which SCNs are sent is based on flags set
    in the EVENT TYPE FLAGS field.  The EVENT TYPE FLAGS field is a 16-
    bit mask containing flags for different event types.

    Client Status Inquiry (CSI) allows an iSNS server to verify that an
    iSNS client entity is still connected to the network.  The CSI
    message is sent to the iSNS client by the server to verify client
    status.  If enabled, the iSNS server will send a CSI to request a
    Client Status Inquiry Update message from the SCE.

    The following table displays the flags in the EVENT TYPE FLAGS
    field used in SCNReg, SCN and CSI messages:

    Bit Field          Flag Description
    ---------          ----------------
        0              CHANGE IN DD MEMBERSHIP
        1              CHANGE IN NETWORK
        2              CHANGE IN DEVICE REGISTRATION PARAMETERS
        3              DEVICE ADDED
        4              DEVICE REMOVED
        5              CLIENT STATUS UPDATE REQUESTED (for CSI message)



Gibbons, Tseng, Monia      Standards Track                          46
iSNS                          March 2001

    CHANGE IN DD MEMBERSHIP - indicates a change has occurred in a DD
    that the iSNS client is a member of.  A client can be a member of
    multiple DDs.  This flag indicates that a change in registration
    parameters or membership has occured, either an addition or
    deletion, to a DD that the client is a member of.

    CHANGE IN NETWORK - indicates a change in the network has occurred.
    The change may be anywhere in the network of devices.  This flag is
    administratively controlled, and may not be allowed by the iSNS
    server except for use by an IP address associated with a Network
    Management Station.

    CHANGE TO DEVICE REGISTRATION PARAMETERS - indicates a change in a
    device registration in the network or DDs that the client is a
    member of.  This flag is used in conjunction with CHANGE IN DD
    MEMBERSHIP and CHANGE IN NETWORK flags indicate whether the change
    in device registration occurred in a DD or the network.  This flag
    may be administratively enabled/disabled.

    DEVICE ADDED - indicates a device addition has occurred in the
    network or DD. This flag is used in conjunction with CHANGE IN DD
    MEMBERSHIP and CHANGE IN NETWORK flags indicate whether the
    addition occurred in a DD or the network.

    DEVICE REMOVED - indicates a device removal has occurred in the
    network or DD. This flag is used in conjunction with CHANGE IN DD
    MEMBERSHIP and CHANGE IN NETWORK flags indicate whether the removal
    occurred in a DD or the network.

7.       iSNSP Message Descriptions

    The iSNSP PDU payload follows the iSNSP PDU header described in
    section 6.1.  The message payload contains a list of attributes,
    each in TLV format described in section 6.3.

7.1      Registration and Query Messages

    The iSNSP registration and query message payloads contain a list of
    attributes, and have the following format:















Gibbons, Tseng, Monia      Standards Track                          47
iSNS                          March 2001

              MSb                                    LSb
              31                                       0
              +----------------------------------------+
              |         Source Attribute               |
              +----------------------------------------+
              |         Key Attribute[1]               |
              +----------------------------------------+
              |         Key Attribute[2] (if present)  |
              +----------------------------------------+
              |         Key Attribute[3] (if present)  |
              +----------------------------------------+
              |                 . . .                  |
              +----------------------------------------+
              |       - Delimiter Attribute -          |
              +----------------------------------------+
              |   Operating Attribute[1]               |
              +----------------------------------------+
              |   Operating Attribute[2] (if present)  |
              +----------------------------------------+
              |   Operating Attribute[3] (if present)  |
              +----------------------------------------+
              |                 . . .                  |
              +----------------------------------------+

    iSNS Registration and Query messages, sent by iSNS Clients, are
    sent to the iSNS IP-Address and TCP/UDP Port.  The iSNS Responses
    will be sent to the iSNS Client IP-Address and the originating
    TCP/UDP Port used for the associated registration and query
    message.

7.1.1     Source Attribute

    The source attribute is used to identify the iSNS client to the
    iSNS server.  The source attribute is an attribute that uniquely
    identifies the source of the message.  Valid source attribute types
    are shown below.

            Valid Source Attributes
            -----------------------
            Entity Identifier
            WWUI (iSCSI only)
            Node WWN (iFCP only)
            Port WWN (iFCP only)

    The source attribute is used to bind the scope of a query into the
    Discovery Domains of which the source is a member.

    The iSNS may validate that the Source Attribute matches client
    certificate information.  If the iSNS is validating Source
    Attribute information, and the Source Attribute does not match the
    client certificate, then the request will be rejected with an
    authentication error code.


Gibbons, Tseng, Monia      Standards Track                          48
iSNS                          March 2001

7.1.1.1   Source Attribute for Initial Registration

    A length value of 0 in the source attribute TLV is valid for
    initial client registration when the iSNS is being used to assign a
    unique Entity Identifier to the client.  In this case, since the
    Entity Identifier will not yet have been assigned, the source
    attribute field will contain a 0 length Entity Identifier.  The
    response message to the registration will contain the assigned
    identifier.

7.1.2     Key Attribute

    Key attributes are used to identify the object (or objects) in the
    iSNS server that the registration or query operation will be
    performed on.  The number of Key Attributes depends on the specific
    iSNSP request or query operation being performed.  Following the
    set of Key Attributes is a Delimiter Attribute, whose tag value is
    0.

7.1.2.1   Key Attribute for Initial Registration

    A length value of 0 in the key attribute TLV is valid for initial
    client registration when the iSNS is being used to assign a unique
    Entity Identifier to the client.  In this case, the Entity
    Identifier will not yet have been assigned.  The key attribute
    field will contain a 0 length Entity Identifier.  The response
    message to the registration will contain the assigned identifier.

7.1.3     Delimiter Attribute

    The Delimiter Attribute separates the key and operating attributes
    in a message.  The Delimiter Attribute has a tag value of 0 and a
    length value of 0.  The Delimiter Attribute is effectively 8 Bytes
    long, a 4 Byte tag containing 0x00000000, and a 4 Byte length field
    containing 0x00000000.

7.1.4     Operating Attributes

    The Operating Attributes are a list of one or more attributes
    related to the actual iSNS registration or query operation being
    performed.

    The number of Operating Attributes depends on the specific iSNSP
    request or query.  For example, the Operating Attributes in a
    Device Attribute Query message are the set of attributes to be
    returned in the associated Device Attribute Query Response message
    that match the Key Attributes of the query.

    Some iSNSP messages do not require any Operating Attributes.

7.1.4.1   Operating Attributes for Query and Get Next Requests



Gibbons, Tseng, Monia      Standards Track                          49
iSNS                          March 2001

    A length value of 0 in an Operating Attribute TLV is valid for
    query request and get next messages, where the iSNS will be
    returning matching attribute values in the response message.  In
    this case the Operating Attributes indicate the desired attributes
    to be returned in the response and therefore do not require values.
    The response message will contain valid values for the Operating
    Attributes if the Key Attributes in the query or get next are
    matched.

7.1.5     Registration and Query Message Types

    The following describes each query and message type.

7.1.5.1   Register Device Attribute Request (RegDevAttr)

    The RegDevAttr message type is 0x0001. The RegDevAttr message
    provides an iSNS client with the means to register network
    entities.  The iSNS client formulates a RegDevAttr by specifying a
    Source, Key Attribute(s), and list of Operating Attributes to
    register.  All values are in Tag Length Value (TLV) format.  The
    Source attribute of the RegDevAttr message is as defined in Section
    7.1.1.

    For the initial network entity registration the Key Attribute SHALL
    be the Entity Identifier.  A length value of 0 in the key attribute
    TLV is valid for initial client registration when the iSNS is being
    used to assign a unique Entity Identifier to the client.

    The operating attributes are the elements that will be registered
    and associated with the key attributes.  Multiple attributes
    associated with the one key attribute can be registered in one
    RegDevAttr.

    One RegDevAttr message can contain attributes for Entity, Portal,
    Node, and Port objects if they are contained in the same Entity.
    When the registration contains attributes for the Entity, Portal,
    Node or Port objects together, then the appropriate Portal, Node
    and Port key attributes must be registered as part of the operating
    attributes.

    Ordering of the attributes is important in multi object
    registrations.  For example, Node Attributes follow a valid Node
    key.

    When a registration of a Portal, Node or Port is performed, the
    appropriate associations between objects will be created in the
    iSNS.

    Attributes following the Delimiter Attribute are Operating
    Attributes.  Depending on the setting of the Update bit in the
    FLAGS field, the Operating attribute values in the RegDevAttr
    message will either replace existing value(s), or be added to
    existing value(s) of the specified operating attribute.

Gibbons, Tseng, Monia      Standards Track                          50
iSNS                          March 2001


7.1.5.1.1 Update Flag

    The Update Flag, contained in the message header FLAGS field,
    indicates the RegDevAttr message is an update to an existing entry.

    If the key attributes match an existing object in the iSNS
    directory database, and the Update bit in the flags field is not
    set, then the registration will replace the existing registration.
    The existing object shall be de-registered.  A new registration
    will be created with the new attribute value(s) in the registration
    request.  Existing associations between objects will be updated to
    reflect the new information.  For example, an existing Node object
    may be de-registered and reregistered with a different Entity
    object as part of a registration.

    If the key attributes match an existing entry in the iSNS database
    and the Update bit in the FLAGS field is enabled, then the new
    attribute value(s) in the registration request SHALL update
    existing values or add additional attributes in the key entry.
    Existing associations between objects will be maintained.  If the
    Update bit is set and the registration would cause a change in
    associations, then the error _Invalid Registration Update_ SHALL be
    returned.  For example, if a RegDevAttr message with an Entity
    Identifier key for one entity contains a Node WWUI attribute
    associated with another entity, then an error shall be returned.

7.1.5.2   Device Attribute Query Request (DevAttrQry)

    The DevAttrQry message type is 0x0002.  The DevAttrQry message
    provides an iSNS client with the means to query the iSNS server for
    network entity attributes.

    The Source attribute of the DevAttrQry message is as defined in
    Section 7.1.1.  The source is used to scope the query to the
    Discovery Domains that the source attribute is a member of.

    The Key Attribute(s) follow the source attribute in the message
    payload.  The attributes returned by the query will be from objects
    WHERE the Key Attribute(s) match the object.  The Key Attributes
    map to a type of object.

    The DevAttrQry message shall support the following Key Attributes:











Gibbons, Tseng, Monia      Standards Track                          51
iSNS                          March 2001

           Valid Key Attributes for Queries
           --------------------------------
            Entity Identifier
            Entity Type
            Node Type
            Portal IP-Address
            Portal IP-Address, Portal TCP/UDP Port
            WWUI (iSCSI only)
            Node WWN (iFCP only)
            Port WWN (iFCP only)

    If the network entities matching key attributes are not in the same
    Discovery Domain as the Source Attribute, then the results for the
    network entity will not be included in the response message.

    The Operating Attributes are the attributes whose values are being
    queried.


7.1.5.3   Device Get Next Request (DevGetNext)

    The DevGetNext message type is 0x0003. This message provides the
    iSNS client with the means to sequentially retrieve Entity
    Identifiers, IP Addresses, WWUI's, Node Names and Port Names from
    devices in DDs to which the client has access.

    The Source attribute of the DevGetNext message is as defined in
    Section 7.1.1.  The source is used to scope the Get Next process to
    the Discovery Domains that the source attribute is a member of.  It
    is the Entity Identifier, WWUI, Node Name, Port Name, or the IP-
    Address of the client performing the query.

    The Key Attribute follows the source attribute in the message
    payload.  The Key Attribute is a Entity Identifier, WWUI, IP
    Address, Node Name, or Port Name.  If the key length value entered
    is zero, signifying an empty key value field, the first accessible
    a Entity Identifier, WWUI, IP Address, Node Name, or Port Name
    instance shall be returned to the client.

    There are no Delimiter or Operating Attributes in the DevGetNext
    request message.

7.1.5.4   Deregister Device Request (DeregDev)

    The DeregDev message type is 0x0004.  An iSNS client port or device
    is removed from the iSNS directory database by using DeregDev.
    Upon receiving the DeregDev, the iSNS server removes all object
    registrations associated with the Key Attribute in the payload.

    The DeregDev request message payload contains a Source Attribute
    and Key Attribute(s).  The Source attribute of the DeregDev message
    is as defined in Section 7.1.1.  Valid Key Attributes are shown
    below:

Gibbons, Tseng, Monia      Standards Track                          52
iSNS                          March 2001


           Valid Key Attributes for DeregDev
           ---------------------------------
            Entity Identifier
            Portal IP-Address
            Portal IP-Address, Portal TCP/UDP Port
            WWUI (iSCSI only)
            Node WWN (iFCP only)
            Port WWN (iFCP only)

    The removal of the object will initiate an SCN message to
    registered iSNS clients that are in the same DD as the removed
    device or port.  After removing the port or device, the iSNS server
    sends back an acknowledgement to the iSNS client.

7.1.5.5   SCN Register Request (SCNReg)

    The SCNReg message type is 0x0005.  The State Change Notification
    Registration Request (SCNReg) message allows an iSNS client to
    register a network entity to receive State Change Notification
    (SCN) messages.  SCN messages allow an iSNS client to be notified
    of changes within the DD or network (if administratively allowed)
    that the device port is a member of.

    The SCNReg request message payload contains a Source Attribute, Key
    Attribute(s), and Operating Attributes.  The Source attribute of
    the SCNReg message is as defined in Section 7.1.1.  Valid Key
    Attributes for an SCNReg are shown below:

           Valid Key Attributes for SCNReg
           --------------------------------
            Entity Identifier
            Portal IP-Address
            Portal IP-Address, Portal TCP/UDP Port
            WWUI (iSCSI only)
            Node WWN (iFCP only)
            Port WWN (iFCP only)


    The network entities matching the Key Attributes are registered to
    receive SCNs.

    The Operating Attributes section contains the Entity Event Bitmap
    attribute.  The bitmap indicates the INTERESTED EVENT TYPE FLAGS
    that the network entity is registering for.

    Section 6.8 describes each flag used in the EVENT TYPE FLAGS field.


7.1.5.6   SCN Deregister Request (SCNDereg)




Gibbons, Tseng, Monia      Standards Track                          53
iSNS                          March 2001

    The SCNDereg message type is 0x0006. The SCNDereg message allows an
    iSNS client to deregister a network entity to receive State Change
    Notification (SCN) messages.

    The SCNDereg request message payload contains a Source Attribute
    and Key Attribute(s).  The Source attribute of the SCNDereg message
    is as defined in Section 7.1.1.  Valid Key Attributes for an
    SCNDereg are shown below:

           Valid Key Attributes for SCNDereg
           --------------------------------
            Entity Identifier
            Portal IP-Address
            Portal IP-Address, Portal TCP/UDP Port
            WWUI (iSCSI only)
            Node WWN (iFCP only)
            Port WWN (iFCP only)

    The network entities matching the Key Attributes are deregistered
    for SCNs.

    There are no Delimiter or Operating Attributes in the SCNDereg
    message.

7.1.5.7   SCN Event (SCNEvent)

    The SCNEvent message type is 0x0007. The SCNEvent is a special
    message generated by a network entity for the iSNS.  The SCNEvent
    allows a network entity to request generation of a State Change
    Notification (SCN) message by the iSNS.  The SCN, sent by the iSNS,
    then notifies other registered network entities within a DD or
    network (if administratively allowed) of the change indicated in
    the SCNEvent.

    Most SCNs are automatically generated by the iSNS when network
    entities are registered or deregistered from the directory
    database.  SCNs are also be generated when a network management
    application makes changes to the DD membership in the iSNS.
    However, a network entity can trigger a SCN by using the SCNEvent.

    The format of the SCNEvent message is shown below:

              MSb                                    LSb
              31                                       0
              +----------------------------------------+
              |            Source Attribute            |
              +----------------------------------------+
              |          Source Event Bitmap           |
              +----------------------------------------+

    The Source Attribute is the object that caused the SCN to be
    generated.  The Source Attribute can be an Entity Identifier, WWUI,
    Node Name or Port Name.

Gibbons, Tseng, Monia      Standards Track                          54
iSNS                          March 2001


    The Source Event Bitmap indicates the event that caused the SCN to
    be generated.  The Event Bitmap is a 32 bit field, with the
    following definitions:

    Bit Field          Flag Description
    ---------          ----------------
        0              CHANGE IN DD MEMBERSHIP
        1              CHANGE IN NETWORK
        2              CHANGE IN DEVICE REGISTRATION PARAMETERS
        3              DEVICE ADDED
        4              DEVICE REMOVED
        5              CLIENT STATUS UPDATE REQUESTED (for CSI message)
     All Others        Reserved

7.1.5.8   State Change Notification (SCN)

    The SCN message type is 0x0008. The SCN is a special message
    generated by the iSNS which allows a registered network entity to
    be notified of changes within a DD, network (if administratively
    allowed), or about device registration parameter updates in the
    iSNS directory database.

    The types of events that a network entity will be notified about
    are based on the value of the Entity Event Bitmap, as described in
    Section 6.8.

    The format of the SCN message is shown below:

              MSb                                    LSb
              31                                       0
              +----------------------------------------+
              |         Destination Attribute          |
              +----------------------------------------+
              |               Timestamp                |
              +----------------------------------------+
              |           Source Attribute[1]          |
              +----------------------------------------+
              |          Source Event Bitmap[1]        |
              +----------------------------------------+
              |    Source Attribute [2](if present)    |
              +----------------------------------------+
              |   Source Event Bitmap [2](if present)  |
              +----------------------------------------+
              |    Source Attribute [3](if present)    |
              +----------------------------------------+
              |   Source Event Bitmap [3](if present)  |
              +----------------------------------------+
              |                 . . .                  |
              +----------------------------------------+




Gibbons, Tseng, Monia      Standards Track                          55
iSNS                          March 2001

    The Destination Attribute is the object that is receiving the SCN.
    The Destination Attribute can be an Entity Identifier, WWUI, Node
    Name or Port Name.

    The Timestamp field indicates the time the SCN Event was generated.
    The timestamp is a 4-byte unsigned, fixed-point integer giving the
    number of seconds since 00:00:00 GMT on January 1, 1970.

    The Source Attribute is the object that caused the SCN to be
    generated.  The Source Attribute can be an Entity Identifier, WWUI,
    Node Name or Port Name.

    The Source Event Bitmap indicates the event that caused the SCN to
    be generated.  The Event Bitmap is a 32 bit field, with the
    following definitions:

    Bit Field          Flag Description
    ---------          ----------------
        0              CHANGE IN DD MEMBERSHIP
        1              CHANGE IN NETWORK
        2              CHANGE IN DEVICE REGISTRATION PARAMETERS
        3              DEVICE ADDED
        4              DEVICE REMOVED
        5              CLIENT STATUS UPDATE REQUESTED (for CSI message)
     All Others        Reserved

7.1.5.9   Register DD (RegDD)

    The RegDD message type is 0x0009.  This message allows an iSNS
    client to create a new Discovery Domain (DD) or update an existing
    DD Symbolic Name.  Once created, network identities can be added
    and deleted from the DD.

    DDs are uniquely defined using DD_IDs.  DD registration attributes
    are described in section 5.5.

    The RegDD message payload contains the Source Attribute, Key
    Attributes and Operating Attributes. The Source attribute of the
    RegDD message is as defined in Section 7.1.1.

    The Key Attribute for a RegDD message is the DD ID for the domain
    being added or updated.  If the DD ID matches an existing DD, then
    the DD Symbolic Name will be updated with the value contained in
    the Operating Attribute payload.  If the DD ID does not match an
    existing DD, then a new DD is registered with the DD ID.  The new
    DD Symbolic Name will be the value contained in the Operating
    Attribute payload.

    The Operating Attribute for a RegDD message is the DD_Symbolic Name
    for the DD.

7.1.5.10  Deregister DD (DeregDD)


Gibbons, Tseng, Monia      Standards Track                          56
iSNS                          March 2001

    The DeregDD message type is 0x000A.  This message allows an iSNS
    client to deregister an existing Discovery Domain (DD).

    DDs are uniquely defined using DD_IDs.  DD registration attributes
    are described in section 5.5.

    The DeregDD message payload contains Source Attribute and Key
    Attributes.  The Source attribute of the DeregDD message is as
    defined in Section 7.1.1.

    The Key Attribute for a DeregDD message is the DD ID for the domain
    being removed.  If the DD ID matches an existing DD, then the DD
    will be removed and a success error code returned.  If the DD ID
    does not match an existing DD then the error code _No Such Entry_
    will be returned.

7.1.5.11  Register Device in DD (RegDevDD)

    The RegDevDD message type is 0x000B.  This message allows an iSNS
    client to add network identities to the DD.  DD registration
    attributes are described in section 5.5.

    The RegDevDD message payload contains the Source Attribute, Key
    Attribute and Operating Attributes. The Source attribute of the
    RegDevDD message is as defined in Section 7.1.1.  The Key Attribute
    for a RegDevDD message is the DD ID for the Discovery Domain (DD)
    to which the network entity will be added.  If the DD ID matches an
    existing DD, then the network entity will be added to the DD. If
    the DD ID does not match an existing DD then the error code _No
    Such Entry_ will be returned.

    The Operating Attribute for a RegDevDD message is the member to be
    added to the DD.  Valid members for a DD are shown in section 4.4.
    The network identities matching the Key Attributes will be added to
    the DD.

7.1.5.12  Deregister Device in DD (DeregDevDD)

    The DeregDevDD message type is 0x000C. This message allows an iSNS
    client to remove network identities from a DD.  DD attributes are
    described in section 5.5.

    The DeregDevDD message payload contains the Source Attribute, Key
    Attribute and Operating Attributes. The Source attribute of the
    DeregDevDD message is as defined in Section 7.1.1.  The Key
    Attribute for a DeregDevDD message is the DD ID for the Discovery
    Domain (DD) from which the network entity will be deregistered.  If
    the DD ID matches an existing DD, then the network entity will be
    removed to the DD. If the DD ID does not match an existing DD then
    the error code _No Such Entry_ will be returned.

    The Operating Attributes for a DeregDevDD message are the members
    to be deregistered from the DD.  Valid members for a DD are shown

Gibbons, Tseng, Monia      Standards Track                          57
iSNS                          March 2001

    in section 4.4.  The network identities matching the Operating
    Attributes will be deregistered from the DD indicated in the Key
    Attribute.

    If any of the Operating Attributes do not match a network entity in
    the DD then the error code _No Such Entry_ will be returned.  All
    other matching network entities will be removed.

7.1.5.13  Entity Status Inquiry (ESI)

    The ESI message type is 0x000D. This message is used to verify that
    an individual iSNS client is reachable and available.

    The ESI response message payload contains the destination attribute
    specifying the Entity Identifier of the iSNS client.

    If the iSNS client fails to respond to three consecutive ESI
    messages, then the iSNS shall remove that client from the iSNS
    database and trigger the appropriate State Change Notifications, if
    any.

7.1.5.14  Request Network Time (RqstTime)

    The RqstTime message type is 0x0010.  This is a special message
    that returns the network time as stored in the iSNS.  The iSNS uses
    NTP to obtain and maintain the network time provided in the
    RqstTime message.

    There are no Key or Operating attributes in this message.

7.1.5.15  Request Domain ID (RqstDmnId)

    The RqstDmnId message type is 0x0011. This optional message is used
    for FCIP and iFCP Transparent Mode to allocate DOMAIN_ID values
    used to assign 3-byte Fibre Channel PORT_ID values. In the case of
    FCIP, the iSNS client may be an address assignment authority for an
    Autonomous Region of a Fibre Channel fabric.  In the case of iFCP,
    the iSNS server becomes the address assignment authority for the
    entire iFCP fabric.

    The iSNS server responds to RqstDmnID with the DOMAIN_ID values
    from the range 1 to 239 that have not been previously allocated to
    other iSNS clients.  If no further unallocated DOMAIN_ID values are
    available from this range, the iSNS server SHALL respond with the
    error code 18 "DOMAIN_ID not available".

    Once a DOMAIN_ID value is allocated by the iSNS server, it shall
    not be reused until it has been deallocated by the iSNS client to
    which the value was assigned, or the CSI message detects that the
    iSNS client no longer exists on the network.

    The iSNS server and client SHALL use TCP to transmit and receive
    RqstDmnID, RqstDmnIDRsp, RlseDmnID, and RlseDmnIDRsp messages.

Gibbons, Tseng, Monia      Standards Track                          58
iSNS                          March 2001


7.1.5.16  Release Domain ID (RlseDmnId)

    The RlseDmnId message type is 0x0012. This optional message is used
    for FCIP and iFCP Transparent Mode to release DOMAIN_ID values used
    to assign 3-byte Fibre Channel PORT_ID values. In the case of FCIP,
    the iSNS client may be an address assignment authority for an
    Autonomous Region of a Fibre Channel fabric.  In the case of iFCP,
    the iSNS server becomes the address assignment authority for the
    entire iFCP fabric.

    Once a DOMAIN_ID value is allocated by the iSNS server, it shall
    not be reused until it has been deallocated by the iSNS client to
    which the value was assigned, or the CSI message detects that the
    iSNS client no longer exists on the network.

    The iSNS server and client SHALL use TCP to transmit and receive
    RqstDmnID, RqstDmnIDRsp, RlseDmnID, and RlseDmnIDRsp messages.

7.1.5.17  Get Domain IDs (GetDmnIds)

    The GetDmnIds message type is 0x0013. This optional message is used
    for FCIP and iFCP Transparent Mode to query for the currently used
    DOMAIN_ID values used to assign 3-byte Fibre Channel PORT_ID
    values. In the case of FCIP, the iSNS client may be an address
    assignment authority for an Autonomous Region of a Fibre Channel
    fabric.  In the case of iFCP, the iSNS server becomes the address
    assignment authority for the entire iFCP fabric.

    The GetDmnIds message payload contains Source Attribute and Key
    Attributes.  The Source attribute of the GetDmnIds message is as
    defined in Section 7.1.1.

    The Key Attribute for a GetDmnIds message is the Domain, used as a
    Scope, for the query.  The Operating Attribute is the Domain
    attribute.  If the Domain Scope matches a domain, then the utilized
    Area Codes will be returned in the Operating Attribute.  If the
    Domain used as a key is 0, then all currently used Domain IDs will
    be returned.  If the Domain Scope is non-zero and does not match an
    existing Domain then the error code _No Such Entry_ will be
    returned.

7.2      Response Messages

    The iSNSP response message payloads contain an Error Code, followed
    by a list of attributes, and have the following format:








Gibbons, Tseng, Monia      Standards Track                          59
iSNS                          March 2001

              MSb                                    LSb
              31                                       0
              +----------------------------------------+
              |          4-byte ERROR CODE             |
              +----------------------------------------+
              |      Key Attribute[1] (if present)     |
              +----------------------------------------+
              |      Key Attribute[2] (if present)     |
              +----------------------------------------+
              |      Key Attribute[3] (if present)     |
              +----------------------------------------+
              |                 . . .                  |
              +----------------------------------------+
              |  - Delimiter Attribute - (if present)  |
              +----------------------------------------+
              |   Operating Attribute[1] (if present)  |
              +----------------------------------------+
              |   Operating Attribute[2] (if present)  |
              +----------------------------------------+
              |   Operating Attribute[3] (if present)  |
              +----------------------------------------+
              |                 . . .                  |
              +----------------------------------------+

    The iSNS Response messages will be sent to the iSNS Client IP-
    Address and the originating TCP/UDP Port that was used for the
    associated registration and query message.

7.2.1   Error Code

    The iSNSP response message payloads contain a 4-byte ERROR CODE
    field.  If the operation completed successfully the Error Code
    field will contain No Error, represented by 0x00000000.  The list
    of valid Error Codes are shown below:




















Gibbons, Tseng, Monia      Standards Track                          60
iSNS                          March 2001

    Error Code       Error Description
    ----------       -----------------
       0             No Error
       1             Unknown Error
       2             Message Format Error
       3             Invalid Registration
       4             Invalid Registration Update
       4             Invalid Query
       5             Authentication Unknown
       6             Authentication Absent
       7             Authentication Failed
       8             No Such Entry
       9             Version Not Supported
      10             Internal Bus Error
      11             Busy Now
      12             Option Not Understood
      13             Invalid Update
      14             Message Not Supported
      15             SCN Event Rejected
      16             SCN Registration Rejected
      17             Client Status Inquiry Not Available
      18             DOMAIN_ID not available

7.2.2   Key Attributes in Response

    Depending on the specific iSNSP request, the response message will
    contain Key Attributes.  For example, a Register Device Attribute
    Response message will contain the Key Attributes used in the Device
    Attribute Registration with the assigned values, if they were
    assigned by the iSNS.

7.2.3   Delimiter Attribute in Response

    The Delimiter Attribute separates the key and operating attributes
    in a response message, if they exist.  The Delimiter Attribute has
    a tag value of 0 and a length value of 0.  The Delimiter Attribute
    is effectively 8 Bytes long, a 4 Byte tag containing 0x00000000,
    and a 4 Byte length field containing 0x00000000.

7.2.4   Operating Attributes in Response

    The Operating Attributes in a response are the results related to
    the iSNS registration or query operation being performed.

    The number of Operating Attributes in the response depends on the
    specific iSNSP request or query response.  For example, the
    Operating Attributes in a Device Attribute Query Response message
    are the set of Operating Attributes from network entity entries
    that matched the Key Attributes in the associated Device Attribute
    Query message.

7.2.5     Registration and Query Message Types


Gibbons, Tseng, Monia      Standards Track                          61
iSNS                          March 2001

    The following describes each query and message type.

7.2.5.1 Register Device Attribute Rsp (RegDevRsp)

    The RegDevRsp message type is 0x8001.  The RegDevRsp message
    contains the results for the RegDevAttr message with the same
    TRANSACTION ID.

    The Error Code contains the operation results.  If the registration
    completed successfully the code of _No Error_ is returned.  If an
    error occurred then the appropriate code will be returned.

    The Key Attribute contains the key used for the Register Device
    Attribute message.  If the RegDevAttr registration message was used
    to assign a unique Entity Identifier to the network entity, then
    the key attribute field contains the assigned Entity Identifier.

    There are no Operating Attributes in the RegDevRsp message.

7.2.5.2    Device Attribute Query Response (DevAttrQryRsp)

    The DevAttrQryRsp message type is 0x8002.  The DevAttrQryRsp
    message contains the results for the DevAttrQry message with the
    same TRANSACTION ID.

    The Error Code contains the operation results.  If the query
    completed successfully the code of _No Error_ is returned.  If an
    error occurred then the appropriate code will be returned.

    For a successful query result, the DevAttrQryRsp Operating
    Attribute field will contain the set of results that match the
    original DevAttrQry Key Attributes.

7.2.5.3    Device Get Next Response (DevGetNextRsp)

    The DevGetNextRsp message type is 0x8003. The DevGetNextRsp message
    contains the results for the DevGetNext message with the same
    TRANSACTION ID.

    The Error Code contains the operation results.  If the operation
    completed successfully the code of _No Error_ is returned.  If an
    error occurred then the appropriate code will be returned.

    The Key Attribute field contains the next key, in lexicographical
    order, after the Key Attribute used in the DevGetNext message.

    The Operating Attribute field contains the same attributes as were
    in the DevGetNext message.  The values of the Operating Attributes
    are the attribute values associated with the key returned.

7.2.5.4    Deregister Device Response (DeregDevRsp)



Gibbons, Tseng, Monia      Standards Track                          62
iSNS                          March 2001

    The DeregDevRsp message type is 0x8004. If the DeregDev operation
    completed successfully then the code of _No Error_ is returned.  If
    an error occurred then the appropriate code will be returned.

    The DeregDevRsp message does not contain any key or operating
    attributes.

7.2.5.5    SCN Register Response (SCNRegRsp)

    The SCNRegRsp message type is 0x8005. If the SCNReg operation
    completed successfully then the code of _No Error_ is returned.  If
    an error occurred then the appropriate code will be returned.

    The SCNRegRsp message does not contain any key or operating
    attributes.

7.2.5.6    SCN Deregister Response (SCNDeregRsp)

    The SCNDeregRsp message type is 0x8006. If the SCNDereg operation
    completed successfully then the code of _No Error_ is returned.  If
    an error occurred then the appropriate code will be returned.

    The SCNDeregRsp message does not contain any key or operating
    attributes.

7.2.5.7    SCN Event Response (SCNEventRsp)

    The SCNEventRsp message type is 0x8007. If the SCNEvent operation
    completed successfully then the code of _No Error_ is returned.  If
    an error occurred then the appropriate code will be returned.

    The SCNEventRsp message does not contain any key or operating
    attributes.

7.2.5.5    SCN Response (SCNRsp)

    The SCNRsp message type is 0x8008.  If the SCN operation completed
    successfully then the code of _No Error_ is returned.  If an error
    occurred then the appropriate code will be returned.

    The SCNRsp message does not contain any key or operating
    attributes.

7.2.5.9    Register DD Response (RegDDRsp)

    The RegDDRsp message type is 0x8009. If the RegDD operation
    completed successfully then the code of _No Error_ is returned.  If
    an error occurred then the appropriate code will be returned.

    The RegDDRsp message does not contain any key or operating
    attributes.

7.2.5.10   Deregister DD Response (DeregDDRsp)

Gibbons, Tseng, Monia      Standards Track                          63
iSNS                          March 2001


    The DeregDDRsp message type is 0x800A.  If the DeregDD operation
    completed successfully then the code of _No Error_ is returned.  If
    an error occurred then the appropriate code will be returned.

    The DeregDDRsp message does not contain any key or operating
    attributes.

7.2.5.11   Register Device in DD Response (RegDevDDRsp)

    The RegDevDDRsp message type is 0x800B. If the RegDevDD operation
    completed successfully then the code of _No Error_ is returned.  If
    an error occurred then the appropriate code will be returned.

    The DeregDDRsp message does not contain any key or operating
    attributes.

7.2.5.12   Deregister Device in DD Response (DeregDevDDRsp)

    The DeregDevDDRsp message type is 0x800C. If the DeregDevDD
    operation completed successfully then the code of _No Error_ is
    returned.  If an error occurred then the appropriate code will be
    returned.

    The DeregDevDDRsp message does not contain any key or operating
    attributes.

7.2.5.13   Entity Status Inquiry Response (ESIRsp)

    The ESIRsp message type is 0x800D. This message provides
    confirmation that the ESI message was received and processed by the
    iSNS client.

    The ESIRsp response message payload contains the source attribute
    of the iSNS client network entity.

    Upon receiving the ESIRsp from the iSNS client, the iSNS server
    SHALL update the timestamp attribute for that client.

    If the ESI operation completed successfully on the iSNS client then
    the code of _No Error_ is returned.  If an error occurred then the
    appropriate code will be returned.

    The ESIRsp message does not contain any key or operating
    attributes.

7.2.5.14   Request Network Time Response (RqstTimeRsp)

    The RqstTimeRsp message type is 0x8010.  The format of the
    RqstTimeRsp payload is different then other response message
    payloads, and is shown below:



Gibbons, Tseng, Monia      Standards Track                          64
iSNS                          March 2001

              MSb                                    LSb
              31                                       0
              +----------------------------------------+
              |          4-byte ERROR CODE             |
              +----------------------------------------+
              |          4-byte TIMESTAMP              |
              +----------------------------------------+

    The TIMESTAMP is a 4-byte unsigned, fixed-point integer giving the
    number of seconds since 00:00:00 GMT on January 1, 1970.  The
    Network Time Protocol can be used by the iSNS to generate the
    timestamp provided.  The iSNS TIMESTAMP shall only be considered to
    be locally significant.

7.2.5.15   Request Domain ID Response (RqstDmnIdRsp)

    The RqstDmnIdRsp message type is 0x8011.  This optional message
    provides the response for RqstDmnID, and is used for FCIP and iFCP
    Transparent Mode to allocate DOMAIN_ID values used to assign 3-byte
    Fibre Channel PORT_ID values. In the case of FCIP, the iSNS client
    may be an address assignment authority for an Autonomous Region of
    a Fibre Channel fabric.  In the case of iFCP, the iSNS server
    becomes the address assignment authority for the entire iFCP
    fabric.

    The iSNS server responds to RqstDmnID with the DOMAIN_ID values
    from the range 1 to 239 that have not been previously allocated to
    other iSNS clients.  If no further unallocated DOMAIN_ID values are
    available from this range, the iSNS server SHALL respond with the
    error code 18 "DOMAIN_ID not available".

    Once a DOMAIN_ID value is allocated by the iSNS server, it shall
    not be reused until it has been deallocated by the iSNS client to
    which the value was assigned, or the CSI message detects that the
    iSNS client no longer exists on the network.

    The iSNS server and client SHALL use TCP to transmit and receive
    RqstDmnID, RqstDmnIDRsp, RlseDmnID, and RlseDmnIDRsp messages.

7.2.5.16   Release Domain ID Response (RlseDmnIdRsp)

    The RlseDmnIdRsp message type is 0x8012. This optional message
    provides the response for RlseDmnId, and is used for FCIP and iFCP
    Transparent Mode to release DOMAIN_ID values used to assign 3-byte
    Fibre Channel PORT_ID values. In the case of FCIP, the iSNS client
    may be an address assignment authority for an Autonomous Region of
    a Fibre Channel fabric.  In the case of iFCP, the iSNS server
    becomes the address assignment authority for the entire iFCP
    fabric.

    Once a DOMAIN_ID value is allocated by the iSNS server, it shall
    not be reused until it has been deallocated by the iSNS client to


Gibbons, Tseng, Monia      Standards Track                          65
iSNS                          March 2001

    which the value was assigned, or the ESI message detects that the
    iSNS client no longer exists on the network.

    The iSNS server and client SHALL use TCP to transmit and receive
    RqstDmnID, RqstDmnIDRsp, RlseDmnID, and RlseDmnIDRsp messages.

7.2.5.17  Get Domain IDs Response (GetDmnIdsResp)

    The GetDmnIdsResp message type is 0x8013. This optional message is
    used for FCIP and iFCP Transparent Mode to return the results of a
    query for the currently-allocated DOMAIN_ID values used to assign
    3-byte Fibre Channel PORT_ID values. In the case of FCIP, the iSNS
    client may be an address assignment authority for an Autonomous
    Region of a Fibre Channel fabric.  In the case of iFCP, the iSNS
    server becomes the address assignment authority for the entire iFCP
    fabric.

    If the Domain Scope matches a domain, then the utilized Area Codes
    will be returned in the Operating Attribute.  If the Domain used as
    a key is 0, then all currently used Domain IDs will be returned.
    If the Domain Scope is non-zero and does not match an existing
    Domain then the error code _No Such Entry_ will be returned.

8.       Security Considerations

8.1      Data Integrity and Authentication

    Data integrity and authentication requirements for communication
    between iSNS clients and server can be achieved through use of the
    authentication block described in section 6.4.

8.2      Confidentiality

    If the operational evironment requires confidentiality in iSNSP
    queries and responses, then the iSNSP shall be used with Transport
    Layer Security (TLS).  However, there will be many instances where
    confidentiality will not be a requirement.  None of the information
    stored in the iSNS database is inherently confidential.  This
    includes X.509 certificates, which should contain only public keys.
    In these cases where confidentiality is not required, the iSNS can
    be used only with the message authentication block described in
    section 6.4.

8.3      Security Model

    The iSNS server will leverage existing security mechanisms
    currently used to secure resources such as DNS servers, e-mail
    relays servers, and other sensitive and otherwise vulnerable
    network resources.  Existing firewalls technology can protect
    against active attacks from the Public Internet.

9.       References


Gibbons, Tseng, Monia      Standards Track                          66
iSNS                          March 2001

    [RFC1035]      Domain Implementation and Specification
    [STD0035]      Domain Name System
    [RFC2065]      Domain Name System Security Extensions
    [RFC2608]      Service Location Protocol, Version 2
    [FC-GS-2]      Fibre Channel Generic Services-2, ANSI NCITS 288
    [FC-GS-3]      Fibre Channel Generic Services-3, NCITS Working
                   Draft Rev 7.01, November 28, 2000
    [RFC2609]      Service Templates and Service
    [IEEE802.1Q]   Standard for Virtual Bridged Local Area Networks
    [RFC1510]      The Kerberos Network Authentication Service
    [DSS]          FIPS PUB 186-2, National Institute of Standards and
                   Technology, Digital Signature Standard(DSS),
                   Technical Report
    [802-1990]     ANSI/IEEE Std 802-1990, Name: IEEE Standards for
                   Local and Metropolitan Area Networks: Overview and
                   Architecture
    [SPC]          SCSI-3 Primary Commands, ANSI NCITS 995D, Revision
                   11a
    [iSCSI-SLP]    Finding iSCSI Targets and Name Servers Using SLP,
                   draft-bakke-iscsi-slp-00.txt
    [iSCSI-NDR]    iSCSI Naming and Discovery Requirements,
                   draft-ietf-ips-iscsi-name-disc-00.txt

   1  Bradner, S., "The Internet Standards Process -- Revision 3", BCP
      9, RFC 2026, October 1996.

   2  Bradner, S., "Key words for use in RFCs to Indicate Requirement
      Levels", BCP 14, RFC 2119, March 1997


























Gibbons, Tseng, Monia      Standards Track                          67
iSNS                          March 2001

10.       Author's Addresses

    Josh Tseng
    Kevin Gibbons
    Charles Monia
    Nishan Systems
    3850 North First Street
    San Jose, CA 95134-1702
    Phone: (408) 519-3749
    Email: jtseng@nishansystems.com

    Franco Travostino
    Nortel Networks
    3 Federal Street
    Billerica, MA  01821
    Phone:  978-288-7708
    Email:  travos@nortelnetworks.com

    Kenneth Hirata
    Vixel Corporation
    Irvine, CA 92618
    Phone: (949) 450-6100
    Email: khirata@vixel.com

    Mark Bakke
    Cisco Systems
    6450 Wedgewood Road
    Maple Grove, MN  55311
    Phone:  763-398-1054
    Email:  mbakke@cisco.com

    Jim Hafner
    IBM Research
    Almaden Research Center K53-B2
    650 Harry Road
    San Jose, CA 95120-6099
    Email:  hafner@almaden.ibm.com
    Phone:  408-927-1892

    Howard Hall
    Pirus Networks
    43 Nagog Park
    Acton, MA 01720
    Email:  howard@pirus.com
    Phone:  978-206-9103









Gibbons, Tseng, Monia      Standards Track                          68
iSNS                          March 2001


Full Copyright Statement

    "Copyright (C) The Internet Society (date). All Rights Reserved.
    This document and translations of it may be copied and furnished to
    others, and derivative works that comment on or otherwise explain
    it or assist in its implementation may be prepared, copied,
    published and distributed, in whole or in part, without restriction
    of any kind, provided that the above copyright notice and this
    paragraph are included on all such copies and derivative works.
    However, this document itself may not be modified in any way, such
    as by removing the copyright notice or references to the Internet
    Society or other Internet organizations, except as needed for the
    purpose of developing Internet standards in which case the
    procedures for copyrights defined in the Internet Standards process
    must be followed, or as required to translate it into languages
    other than English.

    The limited permissions granted above are perpetual and will not be
    revoked by the Internet Society or its successors or assigns.

    This document and the information contained herein is provided on
    an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
    ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
    THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."



























Gibbons, Tseng, Monia      Standards Track                          69
iSNS                          March 2001

                         Appendix A - iSNS Examples

A.1       iSCSI Initialization Example

    This example assumes an SLP Service Agent (SA) has been implemented
    on the iSNS host, and an SLP User Agent (UA) has been implemented
    on the iSNS initiator.  See [RFC2608] for further details on SA's
    and UA's.  This example also assumes the target is configured to
    use the iSNS, and have its access control policy "slaved" to the
    iSNS.












































Gibbons, Tseng, Monia      Standards Track                          70
iSNS                          March 2001


A.1.1     Simple iSCSI Target Registration

    In this example, a simple target with a single WWUI registers with
    the iSNS.  The target has not been assigned a Fully Qualified
    Domain Name (FQDN) by the administrator.

    +--------------------------+------------------+-------------------+
    |    iSCSI Target Device   |    iSNS          |Management Station |
    +--------------------------+------------------+-------------------+
    |Discover iSNS--SLP------->|                  |/*mgmt station is  |
    |                          |<--SLP--iSNS Here:| administratively  |
    |                          |      192.36.53.1 | authorized to view|
    |                          |                  | all DD's.  Device |
    |                          |                  | WWUIabcd has been |
    |      RegDevAttr--------->|                  | previously placed |
    |Src:(tag=1) NULL          |                  | into DDabcd******/|
    |Key:(tag=1) NULL          |                  |                   |
    |tag=2: "iSCSI"            |                  |                   |
    |tag=4: 0                  |                  |                   |
    |tag=16: "192.36.4.5"      |                  |                   |
    |tag=17: "5001"            |                  |                   |
    |tag=32: "WWUIabcd"        |                  |                   |
    |tag=34: "target"          |                  |                   |
    |tag=35: "disk 1"          |                  |                   |
    |                          |<---RegDevAttrRsp |                   |
    |                          |tag=1: "iSNS:0001"|                   |
    |                          |                  |                   |
    |      DevAttrQry--------->|      SCN-------->|                   |
    |Src:(tag=32) "WWUIabcd"   |(or SNMP trap)    |                   |
    |Key:(tag=2) "iSCSI"       |src: "iSNS:0001"  |                   |
    |Key:(tag=34) "initiator"  |dest: "mgmt.foo.com"                  |
    |tag=16:  NULL             |CHANGE IN NETWORK |                   |
    |tag=32:  NULL             |                  |<-------SCNRsp     |
    |/*Query asks for all iSCSI|                  |                   |
    |devices' IP address, port |<---DevAttrQryRsp |                   |
    |number, and WWUI*/        |tag=16:"192.36.4.1"                   |
    |                          |tag=32:"WWUIpdq"  |<-----DevAttrQry   |
    |                          |tag=16:"192.1.3.2"|src: mgmt.foo.com  |
    |                          |tag=32:"WWUIrst"  |key:(tag=1)iSNS:0001
    |/*************************|                  |Op Attr: (tag=16)  |
    |Our target "iSNS:0001"    |                  |Op Attr: (tag=17)  |
    |discovers two initiators  |                  |Op Attr: (tag=32)  |
    |in the same DD.  It will  |                  |                   |
    |accept iSCSI logins from  |                  |                   |
    |these two identified      |                  |                   |
    |initiators presented by   |                  |                   |
    |iSNS*********************/| DevAttrQryRsp--->|                   |
    |                          |tag=16: 192.36.4.5|                   |
    |                          |tag=17: 5001      |                   |
    |                          |tag=32: WWUIabcd  |                   |
    +--------------------------+------------------+-------------------+


Gibbons, Tseng, Monia      Standards Track                          71
iSNS                          March 2001


A.1.2     Target Registration and DD Configuration

    In this example, a more complex target registers with the iSNS.
    This target has been configured with a Fully Qualified Domain Name
    (FQDN) in the DNS servers, and the user wishes to use this
    identifier for the device.  Also, the user wishes to use public key
    certificates in the iSCSI login authentication.

    +--------------------------+------------------+-------------------+
    |    iSCSI Target Device   |    iSNS          |Management Station |
    +--------------------------+------------------+-------------------+
    |Discover iSNS--SLP-->     |                  |/*mgmt station is  |
    |                          |<--SLP--iSNS Here:| administratively  |
    |                          |      192.36.53.1 | authorized to view|
    |      RegDevAttr-->       |                  | all DD's ********/|
    |Src:(tag=1)"jbod1.foo.com"|                  |                   |
    |Key:(tag=1)"jbod1.foo.com"|                  |                   |
    |tag=1: "jbod1.foo.com"    |                  |                   |
    |tag=2: "iSCSI"            |                  |                   |
    |tag=4: 5 seconds          |                  |                   |
    |tag=16: "192.36.34.4"     |                  |                   |
    |tag=17: "5001"            |                  |                   |
    |tag=16: "192.36.53.5"     |                  |                   |
    |tag=17: "5001"            |                  |                   |
    |tag=32: "WWUIabcd"        |                  |                   |
    |tag=35: "Target"          |/*****************|                   |
    |tag=36: "Volume 1"        |jbod1.foo.com is  |                   |
    |tag=39: X.509 cert blob 1 |now registered in |                   |
    |tag=32: "WWUIefgh"        |iSNS, but is not  |                   |
    |tag=35: "Target"          |in any DD. Therefore,                 |
    |tag=36: "Volume 2"        |no other devices  |                   |
    |tag=39: X.509 cert blob 2 |can "see" it.     |                   |
    |                          |*****************/|                   |
    |                          |<--DevAttrRsp     |                   |
    |                          |                  |                   |
    |                          |       SCN------> |                   |
    |                          |  (or SNMP trap)  |                   |
    |                          |src: jbod1.foo.com|                   |
    |                          |dest: mgmt.foo.com|                   |
    |                          |CHANGE IN NETWORK |                   |
    |                          |                  |                   |
    |                          |                  |<--SCNRsp          |
    |                          |                  |<--DevAttrQry      |
    |                          |                  |src: mgmt.foo.com  |
    |                          |                  |key:  (tag=1)      |
    |                          |                  |  jbod1.foo.com    |
    |                          |                  |Op Attr: (tag=2)   |
    |                          |                  |Op Attr: (tag=16)  |
    |                          |                  |Op Attr: (tag=17)  |
    |                          |                  |Op Attr: (tag=32)  |
    |                          |                  |                   |
    |                          | DevAttrQryRsp--> |                   |

Gibbons, Tseng, Monia      Standards Track                          72
iSNS                          March 2001

    |                          |tag=2:  "iSCSI"   |                   |
    |                          |tag=16: 192.36.34.4                   |
    |                          |tag=17: 5001      |                   |
    |                          |tag=16: 192.36.53.5                   |
    |                          |tag=17: 5001      |/**Mgmt Station ***|
    |                          |tag=32:"WWUIabcd" |displays device,   |
    |                          |tag=32:"WWUIefgh" |the operator decides
    |                          |                  |to place "WWUIabcd"|
    |                          |                  |into Domain "DDxyz"|
    |/*************************|                  |******************/|
    |Target is now registered  |                  |                   |
    |in iSNS.  It has been placed                 |<--RegDevDD        |
    |in DDxyz by management    |                  |src:(tag=1)
    |station.                  |                  |  "mgmt.foo.com"   |
    |*************************/|                  |key: "DDxyz"       |
    |                          |                  |tag=32: "WWUIabcd" |
    |                          |                  |                   |
    |                          |    RegDevRsp---->|                   |
    +--------------------------+------------------+-------------------+



































Gibbons, Tseng, Monia      Standards Track                          73
iSNS                          March 2001


A.1.3     Initiator Registration and Target Discovery

    The following example illustrates a new initiator registering with
    the iSNS, and discovering the target WWUIabcd from the example in
    A.1.1.

    +--------------------------+------------------+-------------------+
    |    iSCSI Initiator       |    iSNS          |Management Station |
    +--------------------------+------------------+-------------------+
    |Discover iSNS--SLP-->     |                  |/*mgmt station is  |
    |                          |<--SLP--iSNS Here:| administratively  |
    |                          |      192.36.53.1 | authorized to view|
    |RegDevAttr-->             |                  | all DD's ********/|
    |Src:(tag=1)"svr1.foo.com" |                  |                   |
    |Key:(tag=1)"svr1.foo.com" |                  |                   |
    |tag=1: "svr1.foo.com"     |                  |                   |
    |tag=2: "iSCSI"            |                  |                   |
    |tag=4: 5 seconds          |/*****************|                   |
    |tag=16: "192.20.3.1"      |Device not in any |                   |
    |tag=17: "5001"            |DD, so it is      |                   |
    |tag=32: "WWUIijkl"        |inaccessible by   |                   |
    |tag=35: "Initiator"       |other devices     |                   |
    |tag=36: "Server1"         |*****************/|                   |
    |tag=39: X.509 cert blob 3 |                  |                   |
    |                          |<--DevAttrRsp     |                   |
    |                          |                  |                   |
    |                          |       SCN------> |                   |
    |                          |  (or SNMP trap)  |                   |
    |                          |src: svr1.foo.com |                   |
    |                          |dest: mgmt.foo.com|                   |
    |                          |CHANGE IN NETWORK |                   |
    |                          |                  |                   |
    |                          |                  |<------SCNRsp      |
    |                          |                  |<----DevAttrQry    |
    |                          |                  |src: mgmt.foo.com  |
    |                          |                  |key:  (tag=1)      |
    |                          |                  |  svr1.foo.com     |
    |                          |                  |Op Attr: (tag=2)   |
    |                          |                  |Op Attr: (tag=16)  |
    |                          |                  |Op Attr: (tag=17)  |
    |                          |                  |Op Attr: (tag=32)  |
    |                          | DevAttrQryRsp--> |                   |
    |                          |tag=2:  "iSCSI"   |                   |
    |                          |tag=17:192.20.3.1 |                   |
    |                          |tag=32:"WWUIijkl" |                   |
    |                          |                  |/**Mgmt Station ***|
    |                          |                  |displays device,   |
    |                          |                  |the operator decides
    |                          |                  |to place "WWUIijkl"|
    |                          |                  |into Domain "DDxyz"|
    |                          |                  |with device WWUIabcd
    |                          |                  |******************/|

Gibbons, Tseng, Monia      Standards Track                          74
iSNS                          March 2001

    |                          |                  |<--RegDevDD        |
    |                          |                  |src: (tag=1)       |
    |                          |                  |  "mgmt.foo.com"   |
    |                          |                  |key: "DDxyz"       |
    |                          |                  |tag=32: "WWUIijkl  |
    |                          |                  |                   |
    |                          |     RegDevRsp--->|/******************|
    |                          |                  |"WWUIijkl" has been|
    |                          |                  |moved to "DDxyz"   |
    |                          |                  |******************/|
    |                          |<-----SCN         |                   |
    |                          |src: "WWUIijkl"   |                   |
    |                          |dest: "WWUIijkl"  |                   |
    |                          |CHANGE IN DD MEMBERSHIP               |
    |    DevAttrQry----------->|                  |                   |
    |src: "WWUIabcd"           |/*****************|                   |
    |key:(tag=2) "iSCSI"       |Note that WWUIabcd|                   |
    |key:(tag=35) "Target"     |also receives an  |                   |
    |Op Attr: (tag=16)         |SCN that WWUIijkl |                   |
    |Op Attr: (tag=17)         |is in the same DD |                   |
    |Op Attr: (tag=32)         |*****************/|                   |
    |Op Attr: (tag=36)         |                  |                   |
    |Op Attr: (tag=39)         |<-----AttrQryRsp  |                   |
    |                          |tag=16: 192.36.34.4                   |
    |                          |tag=17: 5001      |                   |
    |                          |tag=16: 192.36.53.5                   |
    |                          |tag=17: 5001      |                   |
    |                          |tag=32: WWUIabcd  |                   |
    |                          |tag=36: Volume 1  |                   |
    |                          |tag=39: X.509 cert blob 2             |
    |                          |                  |                   |
    |/***The initiator has discovered             |                   |
    |the target, and has everything               |                   |
    |needed to complete iSCSI login               |                   |
    |The same process occurs on the               |                   |
    |target side; the SCN prompts the             |                   |
    |target to download the list of               |                   |
    |authorized initiators from the               |                   |
    |iSNS (i.e., those initiators in the          |                   |
    |same DD as the target.************/          |                   |
    +--------------------------+------------------+-------------------+













Gibbons, Tseng, Monia      Standards Track                          75
iSNS                          March 2001


                      Appendix B _ SNMP Management MIB

    The following SNMP MIB is for iSNS network management.  The
    definition is based on SNMPv2c.  This is the first general release
    of the MIB.

    iSNS DEFINITIONS ::= BEGIN
    --
    --  iSNS.mib: IETF IPS Internet Storage Name Service (iSNS)
    management
    --  v1.0
    --
    IMPORTS
        enterprises,
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        IpAddress,
        Counter32
             FROM SNMPv2-SMI

        Gauge
             FROM RFC1155-SMI

        OBJECT-GROUP
             FROM SNMPv2-CONF

        TEXTUAL-CONVENTION,
        DisplayString,
        DateAndTime,
        RowStatus,
        PhysAddress,
        TimeStamp
             FROM SNMPv2-TC;

    FCIDtype  ::= OCTET STRING (SIZE (3))
    WWNtype   ::= OCTET STRING (SIZE (8))
    EntIdx    ::= INTEGER
    PortalIdx ::= INTEGER
    NodeIdx   ::= INTEGER
    EIDtype   ::= OCTET STRING
    NodeType  ::= OCTET STRING (SIZE (2))
    EntType   ::= INTEGER {iSCSI(1), FCIP(2), iFCP(3)}
    WWUItype  ::= OCTET STRING
    DDIDtype  ::= INTEGER

    TFtype   ::= INTEGER {true(1), false(2)}

    iSNS  MODULE-IDENTITY
          LAST-UPDATED "200103010000Z"
          ORGANIZATION "IETF IPS iSNS Working Group"
          CONTACT-INFO "

Gibbons, Tseng, Monia      Standards Track                          76
iSNS                          March 2001

            Attn: Kevin Gibbons / Josh Tseng
                  Nishan Systems
                  3850 North First Street
                  San Jose, CA 95134
                  USA
                  Tel : +1 408 519-3700
                  email : snmp@nishansystems.com "
          DESCRIPTION "The MIB for internet Storage Name Service (iSNS)
    Management."
              ::=  {experimental 1}

    --
    -- Internet Storage Name Service Management
    --

    iSnsVersion OBJECT-TYPE
        SYNTAX          INTEGER (0..65535)
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
    "The version of this iSNS instance.  The header of each iSNSP
     message contains iSNS version information."
        ::= {iSNS 1}

    --
    -- Discovery Domain Membership Information --------------------
    --

    iSnsDdMmbrs      OBJECT IDENTIFIER ::= {iSNS 2}

    --
    -- Naming Service's Discovery Domain Information --------------
    --

    iSnsNumDomains        OBJECT-TYPE
        SYNTAX            INTEGER
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
    "The current total number of Discovery Domain entries
     in the iSNS."
        ::= {iSnsDdMmbrs 1}

    iSnsNewDomainMemberStatus OBJECT-TYPE
        SYNTAX      INTEGER {inNoDomain(0), inDefaultDomain(1)}
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
    "The Domain Status for a new device when added to the network.
    Either the
     new device will not be in a domain, or go into a default domain.
    The
     default domain is by convention DD ID 1."

Gibbons, Tseng, Monia      Standards Track                          77
iSNS                          March 2001

        ::= {iSnsDdMmbrs 2}

    iSnsDDTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF iSnsDDtInfoEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
    "A table containing configuration information for each
     Discovery Domain (DD) configured in the network
     managed by the iSNS."
        ::= {iSnsDdMmbrs 3}

    iSnsDDtInfoEntry OBJECT-TYPE
        SYNTAX      iSnsDDtInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
    "Configuration information for each Discovery Domain
     (DD) configured in the network."
        INDEX   {iSnsDDtId}
        ::= {iSnsDDTable 1}

    iSnsDDtInfoEntry ::=
        SEQUENCE {
           iSnsDDtId             DDIDtype,
           iSnsDDtSymbolicName   OCTET STRING,
           iSnsDDtRowStatus      RowStatus
          }

    iSnsDDtId         OBJECT-TYPE
        SYNTAX          INTEGER
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
    "The ID that refers to this Discovery Domain."
        ::= {iSnsDDtInfoEntry 1}

    iSnsDDtSymbolicName    OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE (0 .. 64))
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
    "The Discovery Domain Symbolic Name field contains
     a variable length description (from 0 to 64) that is
     associated with the DD.  If the DD Sym Name is not
     registered, then the length of this field is set to zero
     bytes."
        ::= {iSnsDDtInfoEntry 2}

    iSnsDDtRowStatus  OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-write
        STATUS        current

Gibbons, Tseng, Monia      Standards Track                          78
iSNS                          March 2001

        DESCRIPTION
    "This object indicates the status of this entry.
             active (1),         read-write
             notInService (2),   read-write
             notReady (3),       read-only
             createAndGo (4),    write-only
             createAndWait (5),  write-only
             destroy (6),        write-only"
        ::= {iSnsDDtInfoEntry 3}

    --
    -- DD Entity Membership Assignment
    --

    iSnsDDMemberEntityTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF iSnsDDEIDtInfoEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
    "A table containing Entity Identifiers that
     have been assigned to specific DDs."
        ::= {iSnsDdMmbrs 4}

    iSnsDDEIDtInfoEntry  OBJECT-TYPE
        SYNTAX            iSnsDDEIDtInfoEntry
        MAX-ACCESS        not-accessible
        STATUS            current
        DESCRIPTION
    "DD membership information for Entity Identifiers."
        INDEX   {iSnsDDEIDtId}
        ::= {iSnsDDMemberEntityTable 1}

    iSnsDDEIDtInfoEntry ::=
        SEQUENCE {
           iSnsDDEIDtId        INTEGER,
           iSnsDDEIDtEID          EIDtype,
           iSnsDDEIDtRowStatus    RowStatus
          }

    iSnsDDEIDtId        OBJECT-TYPE
        SYNTAX          INTEGER
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
    "The ID that refers to the Discovery Domain that
     the entity is a member of."
        ::= {iSnsDDEIDtInfoEntry 1}

    iSnsDDEIDtEID    OBJECT-TYPE
        SYNTAX        EIDtype
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION

Gibbons, Tseng, Monia      Standards Track                          79
iSNS                          March 2001

    "The Enity ID of the entity that is a member of the DD."
        ::= {iSnsDDEIDtInfoEntry 2}

    iSnsDDEIDtRowStatus  OBJECT-TYPE
        SYNTAX            RowStatus
        MAX-ACCESS        read-write
        STATUS            current
        DESCRIPTION
    "This object indicates the status of this entry.
             active (1),         read-write
             notInService (2),   read-write
             notReady (3),       read-only
             createAndGo (4),    write-only
             createAndWait (5),  write-only
             destroy (6),        write-only"
        ::= {iSnsDDEIDtInfoEntry 3}

    --
    -- DD Portal Membership Assignment
    --

    iSnsDDMemberPortalIPAddrTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF iSnsDDPIPtInfoEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
    "A table containing Portal IP Addreses that
     have been assigned to specific DDs."
        ::= {iSnsDdMmbrs 5}

    iSnsDDPIPtInfoEntry OBJECT-TYPE
        SYNTAX      iSnsDDPIPtInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
    "DD membership information for Portal IP Addresses."
        INDEX   {iSnsDDPIPtId}
        ::= {iSnsDDMemberPortalIPAddrTable 1}

    iSnsDDPIPtInfoEntry ::=
        SEQUENCE {
           iSnsDDPIPtId       INTEGER,
           iSnsDDPIPtPIPA         IpAddress,
           iSnsDDPIPtRowStatus    RowStatus
          }

    iSnsDDPIPtId        OBJECT-TYPE
        SYNTAX          INTEGER
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
    "The ID that refers to the Discovery Domain that
     the portal is a member of."

Gibbons, Tseng, Monia      Standards Track                          80
iSNS                          March 2001

        ::= {iSnsDDPIPtInfoEntry 1}

    iSnsDDPIPtPIPA    OBJECT-TYPE
        SYNTAX        IpAddress
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
    "The Portal IP Address of the entity that is a member of the DD."
        ::= {iSnsDDPIPtInfoEntry 2}

    iSnsDDPIPtRowStatus  OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
    "This object indicates the status of this entry.
             active (1),         read-write
             notInService (2),   read-write
             notReady (3),       read-only
             createAndGo (4),    write-only
             createAndWait (5),  write-only
             destroy (6),        write-only"
        ::= {iSnsDDPIPtInfoEntry 3}

    --
    -- DD Node Membership Assignment
    --
    -- By WWUI

    iSnsDDMemberNodeWWUITable OBJECT-TYPE
        SYNTAX        SEQUENCE OF iSnsDDNWWUItInfoEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
    "A table containing Node WWUIs that
     have been assigned to specific DDs."
        ::= {iSnsDdMmbrs 6}

    iSnsDDNWWUItInfoEntry OBJECT-TYPE
        SYNTAX      iSnsDDNWWUItInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
    "DD membership information for Node WWUIs."
        INDEX   {iSnsDDNWWUItId}
        ::= {iSnsDDMemberNodeWWUITable 1}

    iSnsDDNWWUItInfoEntry ::=
        SEQUENCE {
           iSnsDDNWWUItId               INTEGER,
           iSnsDDNWWUItWWUI         WWUItype,
           iSnsDDNWWUItRowStatus    RowStatus
          }

Gibbons, Tseng, Monia      Standards Track                          81
iSNS                          March 2001


    iSnsDDNWWUItId      OBJECT-TYPE
        SYNTAX          INTEGER
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
    "The ID that refers to the Discovery Domain that
     the node is a member of."
        ::= {iSnsDDNWWUItInfoEntry 1}

    iSnsDDNWWUItWWUI    OBJECT-TYPE
        SYNTAX        WWUItype
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
    "The WWUI the node that is a member of the DD."
        ::= {iSnsDDNWWUItInfoEntry 2}

    iSnsDDNWWUItRowStatus  OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
    "This object indicates the status of this entry.
             active (1),         read-write
             notInService (2),   read-write
             notReady (3),       read-only
             createAndGo (4),    write-only
             createAndWait (5),  write-only
             destroy (6),        write-only"
        ::= {iSnsDDNWWUItInfoEntry 3}

    -- DD Node Membership By Node Name WWN

    iSnsDDMemberNodeWWNTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF iSnsDDNWWNtInfoEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
    "A table containing Node WWNs that
     have been assigned to specific DDs."
        ::= {iSnsDdMmbrs 7}

    iSnsDDNWWNtInfoEntry OBJECT-TYPE
        SYNTAX      iSnsDDNWWNtInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
    "DD membership information for Node WWNs."
        INDEX   {iSNSDDNWWNtId}
        ::= {iSnsDDMemberNodeWWNTable 1}

    iSnsDDNWWNtInfoEntry ::=

Gibbons, Tseng, Monia      Standards Track                          82
iSNS                          March 2001

        SEQUENCE {
           iSnsDDNWWNtId               INTEGER,
           iSnsDDNWWNtNodeWWN      WWNtype,
           iSnsDDNWWNtRowStatus    RowStatus
          }

    iSnsDDNWWNtId       OBJECT-TYPE
        SYNTAX          INTEGER
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
    "The ID that refers to the Discovery Domain that
     the node is a member of."
        ::= {iSnsDDNWWNtInfoEntry 1}

    iSnsDDNWWNtNodeWWN    OBJECT-TYPE
        SYNTAX        WWNtype
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
    "The WWN the node that is a member of the DD."
        ::= {iSnsDDNWWNtInfoEntry 2}

    iSnsDDNWWNtRowStatus  OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
    "This object indicates the status of this entry.
             active (1),         read-write
             notInService (2),   read-write
             notReady (3),       read-only
             createAndGo (4),    write-only
             createAndWait (5),  write-only
             destroy (6),        write-only"
        ::= {iSnsDDNWWNtInfoEntry 3}

    --
    -- DD Port Membership Assignment
    --

    iSnsDDMemberPortWWNTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF iSnsDDPWWNtInfoEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
    "A table containing Port WWNs that
     have been assigned to specific DDs."
        ::= {iSnsDdMmbrs 8}

    iSnsDDPWWNtInfoEntry OBJECT-TYPE
        SYNTAX      iSnsDDPWWNtInfoEntry
        MAX-ACCESS  not-accessible

Gibbons, Tseng, Monia      Standards Track                          83
iSNS                          March 2001

        STATUS      current
        DESCRIPTION
    "DD membership information for Port WWNs."
        INDEX   {iSnsDDPWWNtId}
        ::= {iSnsDDMemberPortWWNTable 1}

    iSnsDDPWWNtInfoEntry ::=
        SEQUENCE {
           iSnsDDPWWNtId               INTEGER,
           iSnsDDPWWNtPortWWN      WWNtype,
           iSnsDDPWWNtRowStatus    RowStatus
          }

    iSnsDDPWWNtId       OBJECT-TYPE
        SYNTAX          INTEGER
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
    "The ID that refers to the Discovery Domain that
     the port is a member of."
        ::= {iSnsDDPWWNtInfoEntry 1}

    iSnsDDPWWNtPortWWN    OBJECT-TYPE
        SYNTAX        WWNtype
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
    "The WWN the port that is a member of the DD."
        ::= {iSnsDDPWWNtInfoEntry 2}

    iSnsDDPWWNtRowStatus  OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
    "This object indicates the status of this entry.
             active (1),         read-write
             notInService (2),   read-write
             notReady (3),       read-only
             createAndGo (4),    write-only
             createAndWait (5),  write-only
             destroy (6),        write-only"
        ::= {iSnsDDPWWNtInfoEntry 3}

    --
    -- iSNS Registered Objects ----------------------------------------
    ----------
    --

    iSnsRegObj      OBJECT IDENTIFIER ::= {iSNS 3}

    --


Gibbons, Tseng, Monia      Standards Track                          84
iSNS                          March 2001

    -- iSNS Content Information ---------------------------------------
    -----------
    --

    --
    -- iSNS Registered Entity Information
    --

    iSnsNumEntities       OBJECT-TYPE
        SYNTAX            INTEGER
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
    "The current total number of Entity entries in the iSNS."
        ::= {iSnsRegObj 1}

    --
    -- iSNS Registered Entities Table
    --

    iSnsRegEntityTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF iSnsREtInfoEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
    "A table containing the registered entities in the iSNS."
        ::= {iSnsRegObj 2}

    iSnsREtInfoEntry  OBJECT-TYPE
        SYNTAX            iSnsREtInfoEntry
        MAX-ACCESS        not-accessible
        STATUS            current
        DESCRIPTION
    "Information on registered entities in the iSNS."
        INDEX   {iSnsREtEIdx}
        ::= {iSnsRegEntityTable 1}

    iSnsREtInfoEntry ::=
        SEQUENCE {
           iSnsREtEIdx         EntIdx,
           iSnsREtEID            EIDtype,
           iSnsREtType         EntType,
           iSnsREtMgtIpAddr    IpAddress,
           iSnsREtESIintvl     INTEGER,
           iSnsREtESIport      INTEGER,
           iSnsREtTimestamp    DateAndTime,
           iSnsREtESCNmap      OCTET STRING
                  }

    iSnsREtEIdx                OBJECT-TYPE
        SYNTAX                 EntIdx
        MAX-ACCESS             read-only
        STATUS                 current

Gibbons, Tseng, Monia      Standards Track                          85
iSNS                          March 2001

        DESCRIPTION
    "The Entity Index for this entity.  The index is
     derived for mapping between objects."
        ::= {iSnsREtInfoEntry 1}

    iSnsREtEID                 OBJECT-TYPE
        SYNTAX                 EIDtype
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "The Entity Identifier for this entity as defined in
     the iSNS Specification."
        ::= {iSnsREtInfoEntry 2}

    iSnsREtType                OBJECT-TYPE
        SYNTAX                 EntType
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "The Entity Type as defined in the iSNS Specification.
               Type Value       Entity Type
               ----------       -----------
                  1             iSCSI
                  2             iFCP
                  3             FCIP
                All Others      Reserved
    "
        ::= {iSnsREtInfoEntry 3}

    iSnsREtMgtIpAddr           OBJECT-TYPE
        SYNTAX                 IpAddress
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "The Entity Management IP address for this entity as
     defined in the iSNS Specification."
        ::= {iSnsREtInfoEntry 4}

    iSnsREtESIintvl            OBJECT-TYPE
        SYNTAX                 INTEGER
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "ESI interval as defined in the iSNS Specification."
        ::= {iSnsREtInfoEntry 5}

    iSnsREtESIport            OBJECT-TYPE
        SYNTAX                 INTEGER
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "The TCP/UDP port used for ESI updates as defined
     in the iSNS Specification."

Gibbons, Tseng, Monia      Standards Track                          86
iSNS                          March 2001

        ::= {iSnsREtInfoEntry 6}

    iSnsREtTimestamp            OBJECT-TYPE
        SYNTAX                 DateAndTime
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "The entity registration timestamp as defined in the
     iSNS Specification."
        ::= {iSnsREtInfoEntry 7}

    iSnsREtESCNmap            OBJECT-TYPE
        SYNTAX                 OCTET STRING (SIZE (4))
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "The entity SCN notification map as defined in the
     iSNS Specification."
        ::= {iSnsREtInfoEntry 8}

    --
    -- iSNS Registered Portal Information
    --

    iSnsNumPortals        OBJECT-TYPE
        SYNTAX            INTEGER
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
    "The current total number of registered Portals in iSNS."
        ::= {iSnsRegObj 3}

    --
    -- iSNS Registered Portals Table
    --

    iSnsRegPortalTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF iSnsRPRTLtInfoEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
    "A table containing the registered portals in the iSNS."
        ::= {iSnsRegObj 4}

    iSnsRPRTLtInfoEntry  OBJECT-TYPE
        SYNTAX            iSnsRPRTLtInfoEntry
        MAX-ACCESS        not-accessible
        STATUS            current
        DESCRIPTION
    "Information on registered entity portals in the iSNS."
        INDEX   {iSnsRPRTLtEIdx, iSnsRPRTLtPrtlIdx}
        ::= {iSnsRegPortalTable 1}


Gibbons, Tseng, Monia      Standards Track                          87
iSNS                          March 2001

    iSnsRPRTLtInfoEntry ::=
        SEQUENCE {
           iSnsRPRTLtEIdx      EntIdx,
           iSnsRPRTLtPrtlIdx   PrtlIdx,
           iSnsRPRTLtEID       EIDtype,
           iSnsRPRTLtIpAddr    IpAddress,
           iSnsRPRTLtPort      INTEGER
                  }

    iSnsRPRTLtEIdx             OBJECT-TYPE
        SYNTAX                 EntIdx
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "The Entity Index of the entity associated with this portal.
     The index is derived for mapping between objects."
        ::= {iSnsRPRTLtInfoEntry 1}

    iSnsRPRTLtPrtlIdx          OBJECT-TYPE
        SYNTAX                 PortalIdx
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "The Portal Index for this node.  The index is derived for
     mapping between objects."
        ::= {iSnsRPRTLtInfoEntry 2}

    iSnsRPRTLtEID              OBJECT-TYPE
        SYNTAX                 EIDtype
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "The Entity Identifier of the entity associated with this portal."
        ::= {iSnsRPRTLtInfoEntry 3}

    iSnsRPRTLtIpAddr           OBJECT-TYPE
        SYNTAX                 IpAddress
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "The IP Address for this portal as defined in the iSNS
     Specification."
        ::= {iSnsRPRTLtInfoEntry 4}

    iSnsRPRTLtPort             OBJECT-TYPE
        SYNTAX                 INTEGER
        MAX-ACCESS             read-only
        STATUS                 current
        DESCRIPTION
    "The TCP/UDP port for this portal as defined in the iSNS
     Specification."
        ::= {iSnsRPRTLtInfoEntry 5}


Gibbons, Tseng, Monia      Standards Track                          88
iSNS                          March 2001

    --
    -- iSNS Registered Node Information by WWUI,
    --

    iSnsNumWWUINodes      OBJECT-TYPE
        SYNTAX            INTEGER
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
    "The current total number of Node entries, by WWUI, in the iSNS."
        ::= {iSnsRegObj 5}

    --
    -- iSNS Registered Node Table by WWUI
    --

    iSnsRegWWUINodeTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF iSnsRegWWUINtEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
    "A table containing the registered Nodes, by WWUI, in the iSNS."
        ::= {iSnsRegObj 6}

    iSnsRegWWUINtEntry    OBJECT-TYPE
        SYNTAX            iSnsRegWWUINtEntry
        MAX-ACCESS        not-accessible
        STATUS            current
        DESCRIPTION
    "Information on registered entity nodes, by WWUI, in the iSNS."
        INDEX          {iSnsRegWWUINtEIdx, iSnsRegWWUINtNodeIdx}
        ::= {iSnsRegWWUINodeTable 1}

    iSnsRegWWUINtEntry ::= SEQUENCE {
        iSnsRegWWUINtEIdx              EntIdx,
        iSnsRegWWUINtNodeIdx           NodeIdx,
        iSnsRegWWUINtEID               EIDtype,
        iSnsRegWWUINtNodeWWUI          WWUItype,
        iSnsRegWWUINtNodeType          NodeType,
        iSnsRegWWUINtNodeAliasSymb     OCTET STRING
                                    }

    iSnsRegWWUINtEIdx            OBJECT-TYPE
        SYNTAX                   EntIdx
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The Entity Index of the Entity associated with this node.  The
     index is derived for mapping between objects."
        ::= {iSnsRegWWUINtEntry 1}

    iSnsRegWWUINtNodeIdx          OBJECT-TYPE
        SYNTAX                    NodeIdx

Gibbons, Tseng, Monia      Standards Track                          89
iSNS                          March 2001

        MAX-ACCESS                read-only
        STATUS                    current
        DESCRIPTION
    "The Node Index for this node.  The index is derived for
     mapping between objects."
        ::= {iSnsRegWWUINtEntry 2}

    iSnsRegWWUINtEID             OBJECT-TYPE
        SYNTAX                   EIDtype
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The Entity Identifier of the Entity associated with this node."
        ::= {iSnsRegWWUINtEntry 3}

    iSnsRegWWUINtNodeWWUI        OBJECT-TYPE
        SYNTAX                   WWUItype
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The WWUI for this node as defined in the iSNS Specification."
        ::= {iSnsRegWWUINtEntry 4}

    iSnsRegWWUINtNodeType         OBJECT-TYPE
        SYNTAX                    NodeType
        MAX-ACCESS                read-only
        STATUS                    current
        DESCRIPTION
    "The Node Type bit-map as defined in the iSNS Specification.
               Bit Field       Node Type
               ---------       ---------
                  0 (Lsb)      Target
                  1            Initiator
               All Others      RESERVED
    "
        ::= {iSnsRegWWUINtEntry 5}

    iSnsRegWWUINtNodeAliasSymb    OBJECT-TYPE
        SYNTAX                    OCTET STRING (SIZE(0..255))
        MAX-ACCESS                read-only
        STATUS                    current
        DESCRIPTION
    "The Alias/Symbolic Name of the node as defined in the
     iSNS Specification.  This is a variable-length text-based
     description of up to 255 bytes."
        ::= {iSnsRegWWUINtEntry 6}

    --
    -- iSNS Registered Node, by WWN, Information
    --

    iSnsNumWWNNodes      OBJECT-TYPE
        SYNTAX            INTEGER

Gibbons, Tseng, Monia      Standards Track                          90
iSNS                          March 2001

        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
    "The current total number of Node entries, by WWN, in the iSNS."
        ::= {iSnsRegObj 7}

    --
    -- iSNS Registered Node Table by WWN
    --

    iSnsRegWWNNodeTable    OBJECT-TYPE
        SYNTAX         SEQUENCE OF iSnsRegWWNNtEntry
        MAX-ACCESS     not-accessible
        STATUS         current
        DESCRIPTION
    "A table containing the registered Nodes, by WWN, in the iSNS."
        ::= {iSnsRegObj 8}

    iSnsRegWWNNtEntry    OBJECT-TYPE
        SYNTAX           iSnsRegWWNNtEntry
        MAX-ACCESS       not-accessible
        STATUS           current
        DESCRIPTION
    "Information on registered entity nodes, by WWN, in the iSNS."
        INDEX          {iSnsRegWWNNtNodeWwn}
        ::= {iSnsRegWWNNodeTable 1}

    iSnsRegWWNNtEntry ::= SEQUENCE {
        iSnsRegWWNNtNodeWwn           WWNtype,
        iSnsRegWWNNtEIdx              EntIdx,
        iSnsRegWWNNtEID               EIDtype,
        iSnsRegWWNNtNodeType          NodeType,
        iSnsRegWWNNtNodeAliasSymb     OCTET STRING,
        iSnsRegWWNNtFcNodeIpAddress   IpAddress,
        iSnsRegWWNNtFcNodeIPA         OCTET STRING
                                    }

    iSnsRegWWNNtNodeWwn          OBJECT-TYPE
        SYNTAX                   WWNtype
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The Node WorldWideName as defined in the iSNS Specification."
        ::= {iSnsRegWWNNtEntry 1}

    iSnsRegWWNNtEIdx          OBJECT-TYPE
        SYNTAX                   EntIdx
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The Entity Index of the Entity associated with this node.  The
     index is derived for mapping between objects."
        ::= {iSnsRegWWNNtEntry 2}

Gibbons, Tseng, Monia      Standards Track                          91
iSNS                          March 2001


    iSnsRegWWNNtEID          OBJECT-TYPE
        SYNTAX                   EIDtype
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The Entity Identifier of the Entity associated with this node."
        ::= {iSnsRegWWNNtEntry 3}

    iSnsRegWWNNtNodeType         OBJECT-TYPE
        SYNTAX                   NodeType
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The Node Type bit-map as defined in the iSNS Specification.
               Bit Field       Node Type
               ---------       ---------
                  0 (Lsb)      Target
                  1            Initiator
               All Others      RESERVED
    "
        ::= {iSnsRegWWNNtEntry 4}

    iSnsRegWWNNtNodeAliasSymb    OBJECT-TYPE
        SYNTAX                   OCTET STRING (SIZE(0..255))
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The Alias/Symbolic Name of the node as defined in the
     iSNS Specification.  This is a variable-length text-based
     description of up to 255 bytes."
        ::= {iSnsRegWWNNtEntry 5}

    iSnsRegWWNNtFcNodeIpAddress  OBJECT-TYPE
        SYNTAX                   IpAddress
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The FC Node IP address of the node as defined in the
     iSNS Specification."
        ::= {iSnsRegWWNNtEntry 6}

    iSnsRegWWNNtFcNodeIPA        OBJECT-TYPE
        SYNTAX                   OCTET STRING (SIZE(8))
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The object identifies the FC Initial Process Associator
     of the node for the entry as defined in the iSNS
     Specification."
        ::= {iSnsRegWWNNtEntry 7}

    --

Gibbons, Tseng, Monia      Standards Track                          92
iSNS                          March 2001

    -- iSNS Registered Port Information
    --

    iSnsNumPorts          OBJECT-TYPE
        SYNTAX            INTEGER
        MAX-ACCESS        read-only
        STATUS            current
        DESCRIPTION
    "The current total number of Port entries in the iSNS.
     This is only applicable to iFCP entries."
        ::= {iSnsRegObj 9}

    --
    -- iSNS Port Table
    --

    iSnsRegWWNPortTable    OBJECT-TYPE
        SYNTAX             SEQUENCE OF iSnsRegWWNPtEntry
        MAX-ACCESS         not-accessible
        STATUS             current
        DESCRIPTION
    "Information on registered entity ports, by WWN, in the iSNS."
        ::= {iSnsRegObj 10}

    iSnsRegWWNPtEntry        OBJECT-TYPE
        SYNTAX             iSnsRegWWNPtEntry
        MAX-ACCESS         not-accessible
        STATUS             current
        DESCRIPTION
    "Information on registered entity ports, by WWN, in the iSNS."
        INDEX          {iSnsRegWWNPtPortWwn}
        ::= {iSnsRegWWNPortTable 1}

    iSnsRegWWNPtEntry ::= SEQUENCE {
        iSnsRegWWNPtPortWwn             WWNtype,
        iSnsRegWWNPtPortID              FCIDtype,
        iSnsRegWWNPtPortType            INTEGER,
        iSnsRegWWNPtPortSymb            OCTET STRING,
        iSnsRegWWNPtNodeWwn             WWNtype,
        iSnsRegWWNPtFabricPortWwn       WWNtype,
        iSnsRegWWNPtFcHA                FCIDtype,
        iSnsRegWWNPtFcPortIpAddress     IpAddress,
        iSnsRegWWNPtFcCos               INTEGER,
        iSnsRegWWNPtFcFc4Types          OCTET STRING,
        iSnsRegWWNPtFcFc4Descr          OCTET STRING,
        iSnsRegWWNPtFcFc4Features       OCTET STRING
                                  }

    iSnsRegWWNPtPortWwn           OBJECT-TYPE
        SYNTAX                    WWNtype
        MAX-ACCESS                read-only
        STATUS                    current
        DESCRIPTION

Gibbons, Tseng, Monia      Standards Track                          93
iSNS                          March 2001

    "The Port WWN as defined in the iSNS Specification."
        ::= {iSnsRegWWNPtEntry 1}

    iSnsRegWWNPtPortID            OBJECT-TYPE
        SYNTAX                    FCIDtype
        MAX-ACCESS                read-only
        STATUS                    current
        DESCRIPTION
    "The Port ID as defined in the iSNS Specification."
        ::= {iSnsRegWWNPtEntry 2}

    iSnsRegWWNPtPortType          OBJECT-TYPE
        SYNTAX          INTEGER {
            unknown       (0),
            n-port        (1),
            nl-port       (2),
            f-nl-port     (3),
            f-port        (129),     -- x'81'
            fl-port       (130),     -- x'82'
            e-port        (132),     -- x'84'
            b-port        (133),     -- x'85'
            mFCP-port     (65297),   -- x'FF11'
            iFCP-port     (65298),   -- x'FF12'
            unknown-end   (65535)
                }
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
    "The Port Type as defined in the iSNS Specification."
        ::= {iSnsRegWWNPtEntry 3}

    iSnsRegWWNPtPortSymb      OBJECT-TYPE
        SYNTAX                OCTET STRING(SIZE(0..255))
        MAX-ACCESS            read-only
        STATUS                current
        DESCRIPTION
    "The Port Symbolic Name as defined in the iSNS Specification."
        ::= {iSnsRegWWNPtEntry 4}

    iSnsRegWWNPtNodeWwn       OBJECT-TYPE
        SYNTAX                WWNtype
        MAX-ACCESS            read-only
        STATUS                current
        DESCRIPTION
    "The Node WWN associated with this Port as defined in the iSNS
    Specification."
        ::= {iSnsRegWWNPtEntry 5}

    iSnsRegWWNPtFabricPortWwn   OBJECT-TYPE
        SYNTAX                  WWNtype
        MAX-ACCESS              read-only
        STATUS                  current
        DESCRIPTION

Gibbons, Tseng, Monia      Standards Track                          94
iSNS                          March 2001

    "The Fabric Port WWN associated with this Port as defined in the
    iSNS Specification."
        ::= {iSnsRegWWNPtEntry 6}

    iSnsRegWWNPtFcHA             OBJECT-TYPE
        SYNTAX                   FCIDtype
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The FC Hard Address as defined in the iSNS Specification."
        ::= {iSnsRegWWNPtEntry 7}

    iSnsRegWWNPtFcPortIpAddress  OBJECT-TYPE
        SYNTAX                   IpAddress
        MAX-ACCESS               read-only
        STATUS                   current
        DESCRIPTION
    "The FC Port IP Address as defined in the iSNS Specification."
        ::= {iSnsRegWWNPtEntry 8}

    iSnsRegWWNPtFcCos         OBJECT-TYPE
        SYNTAX          INTEGER {
                --        class-unknown (0),
                          class-F (1),
                          class-1 (2),
                          class-F-1 (3),
                          class-2 (4),
                          class-F-2 (5),
                          class-1-2 (6),
                          class-F-1-2 (7),
                          class-3 (8),
                          class-F-3 (9),
                          class-1-3 (10),
                          class-F-1-3 (11),
                          class-2-3 (12),
                          class-F-2-3 (13),
                          class-1-2-3 (14),
                          class-F-1-2-3 (15)
                        }
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION
    "The FC Class of Service as defined in the iSNS Specification."
        ::= {iSnsRegWWNPtEntry 9}

    iSnsRegWWNPtFcFc4Types    OBJECT-TYPE
        SYNTAX                OCTET STRING (SIZE (32))
        MAX-ACCESS            read-only
        STATUS                current
        DESCRIPTION
    "The FC FC-4 Types as defined in the iSNS Specification."
        ::= {iSnsRegWWNPtEntry 10}


Gibbons, Tseng, Monia      Standards Track                          95
iSNS                          March 2001

    iSnsRegWWNPtFcFc4Descr    OBJECT-TYPE
        SYNTAX                OCTET STRING (SIZE (32))
        MAX-ACCESS            read-only
        STATUS                current
        DESCRIPTION
    "The FC FC-4 Descriptors as defined in the iSNS Specification."
        ::= {iSnsRegWWNPtEntry 11}

    iSnsRegWWNPtFcFc4Features    OBJECT-TYPE
        SYNTAX                OCTET STRING (SIZE (32))
        MAX-ACCESS            read-only
        STATUS                current
        DESCRIPTION
    "The FC FC-4 Features as defined in the iSNS Specification."
        ::= {iSnsRegWWNPtEntry 12}

    END





































Gibbons, Tseng, Monia      Standards Track                          96